几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » ObjectARX(C++)
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


 
 
主题工具 搜索本主题 显示模式
旧 2009-04-16, 04:57 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】[求助]有谁继承过acdbattribute?

[求助]有谁继承过acdbattribute?
[求助]有谁继承过acdbattribute?
我实现继承了acdbattribute一个自定义实体,只是改变其画法也就是重写worlddraw,
可是对其进行移动时只发现其acdbblockreference移动,这个块属性不移动,还有就是移动一会就会发生内存读取错误,有那个高手可以指点一下吗?
楼主请仔细读一下arx帮助文件里关于自定义实体的部分, acdbattribute是列在不应被继承的类目下的. 所有列在不应被继承的类条目下的类, arx都不支持对其完整继承(包括画法, 包括移动方式, 包括删除方式等等等等). 如果你继承了这些类, 就算把所有的virtual funtion都写好了, 也不保证运行.
如果要改变attribute的绘画方式, 应该从外部也就是attribute插入时的参数下手.
virtue is like a rich stone, best plain set.
-- francis bacon, <of beauty>
这个我查过了,没有这个类,原文如下:
applications should not derive classes from the following:
acdbdimension
acdbsymboltable, acdbsymboltablerecord, and all classes derived from them
acdbblockbegin
acdbblockend
acdbsequenceend
acdb2dpolyline
acdb2dvertex
acdb3dpolyline
acdb3dpolylinevertex
acdbpolygonmesh
acdbpolygonmeshvertex
acdbpolyfacemesh
acdbpolyfacemeshvertex
acdbfacerecord
acdbviewport
acdbminsertblock
acdbvertex
还有我在调试过程中发现改自定义实体加入到块ref时worlddraw竟然运行两次!不会是加入数据库两次吧?我想极可能是这个造成的,再说我的注记很复杂,不能简单的通过文本来解决,那位高手能指点一下吗
难道2以上版本arx已经支持acdbattribute继承了? 0肯定不行.
再说就算它支持继承, 移动也跟worlddraw没关系啊, 移动算在transform function下的, 只告诉它怎么画不够啊..
virtue is like a rich stone, best plain set.
-- francis bacon, <of beauty>
我是用5的,2的不能吗?我没用过2,那怎么办啊!有那种算法可以实现块移动注记跟着移动而注记移动块却不移动的啊,就类似块的属性操作!
..按照acad自己的块插入(insert->block)的方式插入的注记块本身就是这样的呀(块移动注记也移动, 注记可以单独移动), 用程序的话就是有一个需要插入的块记录, 图纸里先插入一个块参考, 然后把块记录本身打开, 把其中的注记成分抄到attribute类里,再把attribute加入块参考. 这样做出来的块参考就是注记可以单独移动的了..
楼下电子书下载里有实例的, 王咣生版主好象也在什么地方放过chalrs mcauley那本书里的例子? 哪位记得的指点一下吧, 偶实在是不想再把代码一个字一个字打出来了..=.=
virtue is like a rich stone, best plain set.
-- francis bacon, <of beauty>
看来楼上的mm误会了我的意思了,你说的那个我知道,只是我的注记没法弄到attribute中,因为我的注记有下划线,区域等等,只能通过改变类的worlddraw来实现,其实我已经实现了,只是编辑时系统会发生读取错误!,而我如果把注记类继承于acdbtext的话代码不变什么都好!,可是就没有了acdbattribute的块移动注记也跟着移动的性质了!现在最好的方法是怎样避免继承acdbattribute是发生的问题,我认为及有可能是worlddraw调用两次的原因!这个问题我到现在还搞不懂,为什么这个函数会调用两次!
如果是这样的话, 你不应该继承acdbattribute类, 因为它们是设计为只处理字母和数字输入, 下划线啊什么的处理不受支持.
可以考虑做一个新的entity(不是块), 里面的成员是块的图像和acdbtext做成的注记, 然后给这个entity定义你想要的移动方式.
virtue is like a rich stone, best plain set.
-- francis bacon, <of beauty>
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
 


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 04:31 AM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多