乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 90|回复: 6

再谈实体旋转与拖动的问题

[复制链接]

16

主题

57

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
121
发表于 2008-4-25 07:59:00 | 显示全部楼层 |阅读模式
有那位兄弟知道,怎样模仿CAD中的旋转实体命令(rotate)和拖动实体命令(Move)的效果。
实体的旋转与拖动我尝试过用AcEdJig函数,但是这个函数只能拖动和旋转一个实体,(请问能用AcEdJig编辑多个实体么?)
并且,在拖动和旋转的过程中,会显示出一些不应该的效果
比如我用AcEdJig拖动和旋转,一个带属性(AcDbAttribute)的块引用(这个块中也存在块定义(AcDbAttributeDefintion))的过程中。都会显示相应块的块定义。例如我在块中添加的块定义的tag="textTag",则在拖动和旋转的过程中,总会显示“textTag”这个字符。
但是CAD中move一个实体和rotate一个实体的时候,则不会这样。
归根到底,我就是想知道怎样模仿CAD中,旋转和移动一个实体的那种效果,CAD是怎么做到的。
回复

使用道具 举报

0

主题

64

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
64
发表于 2008-4-25 19:20:00 | 显示全部楼层
.......还是你呀?那方法是对的。你可以别把AcDbAttributeDefinition加进块里面嘛!那样不是不会显示出来?Jig完之后还是把原来的实体移过去就行了呀。
回复

使用道具 举报

16

主题

57

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
121
发表于 2008-4-26 19:59:00 | 显示全部楼层
呵呵~bluelightcsy 兄弟还是我~
我是在jig中按照要移动的pBlockReference,创建一个临时的pBlockReferenceTemp(根据原来的BlockId,重新创建一个临时的块表记录,这个块表记录中不包含AcDbAttributeDefinition),但是,原来的pBlockReference中包含AcDbAttribute啊,而且我要求在移动(或旋转)的过程中,要随时显示要移动的pBlockReference和其包含的AcDbAttribute。
也就是说在移动过程中,必须pBlockReference和AcDbAttribute同时显示。
但是JIg不能同时移动多个实体。我不知道应该怎么解决
你看CAD中的移动和旋转命令。可以移动和旋转任何数量的实体。我就是想要那种效果。不知道CAD是怎么做到的?
再次感谢bluelightcsy 兄弟,关注我的帖子.....
回复

使用道具 举报

0

主题

64

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
64
发表于 2008-4-27 20:42:00 | 显示全部楼层
....这么说吧,有一个块A,里面有一个属性,名字叫B,值为C。你想移动的时候显示成什么样?根据我的理解,你要显示A,B?是这样吗?
回复

使用道具 举报

16

主题

57

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
121
发表于 2008-5-3 18:22:00 | 显示全部楼层
实在不好意思了~~bluelightcsy兄弟,最近事情很多,比较忙,没来的论坛
我想无论是在拖动或者旋转的过程中,都是显示A和C,
也就是说我只是想显示属性值
要是再通俗一点说,
你在CAD中做一个简单的包含属性定义的块,然后用insert命令插入一个块参照。
然后用移动命令或者旋转命令,操作这个块参照。要的就是那种效果
我做了一个简单的图。你可以直接用移动或者旋转命令操作一下图中的实体。就是那种效果
感谢兄弟关注
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:g03u4jebqe0.dwg 
下载次数:0  文件大小:24.68 KB  售价:2银币 [记录]
下载权限: 不限 以上或 Vip会员   [开通Vip]   [签到领银币]  [免费赚银币]

回复

使用道具 举报

0

主题

64

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
64
发表于 2008-5-8 12:48:00 | 显示全部楼层
。。。还是没搞明白你想显示撒。总之显示撒都是可以做到的。拿你的图来说,你是想显示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);
回复

使用道具 举报

16

主题

57

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
121
发表于 2008-5-9 18:09:00 | 显示全部楼层
谢谢楼上兄弟~我使用一个代理的类实现了要求
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-6 07:07 , Processed in 0.396633 second(s), 71 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表