几何尺寸与公差论坛------致力于产品几何量公差标准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, 08:48 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】再谈实体旋转与拖动的问题

再谈实体旋转与拖动的问题
再谈实体旋转与拖动的问题
有那位兄弟知道,怎样模仿cad中的旋转实体命令(rotate)和拖动实体命令(move)的效果。
实体的旋转与拖动我尝试过用acedjig函数,但是这个函数只能拖动和旋转一个实体,(请问能用acedjig编辑多个实体么?)
并且,在拖动和旋转的过程中,会显示出一些不应该的效果
比如我用acedjig拖动和旋转,一个带属性(acdbattribute)的块引用(这个块中也存在块定义(acdbattributedefintion))的过程中。都会显示相应块的块定义。例如我在块中添加的块定义的tag="texttag",则在拖动和旋转的过程中,总会显示“texttag”这个字符。
但是cad中move一个实体和rotate一个实体的时候,则不会这样。
归根到底,我就是想知道怎样模仿cad中,旋转和移动一个实体的那种效果,cad是怎么做到的。
.......还是你呀?那方法是对的。你可以别把acdbattributedefinition加进块里面嘛!那样不是不会显示出来?jig完之后还是把原来的实体移过去就行了呀。
呵呵~bluelightcsy 兄弟还是我~
我是在jig中按照要移动的pblockreference,创建一个临时的pblockreferencetemp(根据原来的blockid,重新创建一个临时的块表记录,这个块表记录中不包含acdbattributedefinition),但是,原来的pblockreference中包含acdbattribute啊,而且我要求在移动(或旋转)的过程中,要随时显示要移动的pblockreference和其包含的acdbattribute。
也就是说在移动过程中,必须pblockreference和acdbattribute同时显示。
但是jig不能同时移动多个实体。我不知道应该怎么解决
你看cad中的移动和旋转命令。可以移动和旋转任何数量的实体。我就是想要那种效果。不知道cad是怎么做到的?
再次感谢bluelightcsy 兄弟,关注我的帖子.....
....这么说吧,有一个块a,里面有一个属性,名字叫b,值为c。你想移动的时候显示成什么样?根据我的理解,你要显示a,b?是这样吗?
实在不好意思了~~bluelightcsy兄弟,最近事情很多,比较忙,没来的论坛
我想无论是在拖动或者旋转的过程中,都是显示a和c,
也就是说我只是想显示属性值
要是再通俗一点说,
你在cad中做一个简单的包含属性定义的块,然后用insert命令插入一个块参照。<---这是准备工作
然后用移动命令或者旋转命令,操作这个块参照。要的就是那种效果
我做了一个简单的图。你可以直接用移动或者旋转命令操作一下图中的实体。就是那种效果
感谢兄弟关注
该文件为 autocad
。。。还是没搞明白你想显示撒。总之显示撒都是可以做到的。拿你的图来说,你是想显示bj而不是10和50这具体的数字吧?试一下下面代码,把所有attributedefinition变成attribute.
acdbattribute* pent = null;
pent = new acdbattribute();
if(null == pent)
return acad::eoutofmemory;
// set the parameters of the acdbattribute
// set entity common fields
((acdbattribute*)pent)->setpropertiesfrom(pattribdef);
// set attdef common fields
((acdbattribute*)pent)->setinvisible(adesk::kfalse);
// put in default value for test
((acdbattribute*)pent)->settextstring(pattribdef->tag());
// append the attribute to the block reference
pblockref->appendattribute(pent);
谢谢楼上兄弟~我使用一个代理的类实现了要求
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


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

高级搜索
显示模式

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

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



所有的时间均为北京时间。 现在的时间是 06:25 PM.


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