找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2622|回复: 10

[求助]:请教各位朋友一个关于重载transformBy函数的问题!

[复制链接]
发表于 2006-2-7 16:24:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Acad::ErrorStatus Test::transformBy(const AcGeMatrix3d& xform)
{
        assertWriteEnabled();
        // TODO: implement this function.
        Acad::ErrorStatus es(Acad::eOk) ;

        AcDbEntity *pEntity = NULL ;
       
        for (int i = 0; i < m_RefValves.length(); i++)
        {
               
                es = acdbOpenObject(pEntity,m_RefValves,AcDb::kForWrite,Adesk::kTrue) ;
                if (es != Acad::eOk)
                {
                        acutPrintf("Can not open the entity!");
                        continue;
                }
                       
                pEntity->transformBy(xform) ;
                pEntity->close();
                pEntity->draw() ;
        }

        es = m_pLine.transformBy(xform);

        return es ;
}

这是一个自定义实体类,重载它的transformBy函数。
主要是实现这个自定义实体和m_RefValves中包含的其他实体相关联编辑。
其中m_RefValves是一个AcDbObjectIdArray,表示其他Object的ID。
但为什么当我自定义实体改变(比如移动旋转等)的时候,其他实体的改变
(pEntity->transformBy(xform) ;)就不对呢,自定义实体的transformBy()
的xform和m_RefValves中包含实体的transformBy()的xform不同,就是说移动
的不同步。请各位朋友帮忙看看,谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-2-7 17:03:42 | 显示全部楼层
是不是当主实体移动时,相关实体跟着移动,但有先后顺序呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-8 08:46:52 | 显示全部楼层
不是先后顺序,是移动的幅度不同,比如说主实体移动了一个单位的距离,但相关实体移动的距离是两个单位的距离或更多个单位的距离。真是郁闷,这东西烦了我好长时间。RedCAD兄弟,你上次那个两条直线的例子啊,实现的是直线的拉伸关联,如果要实现移动和旋转的关联该怎么做呢?我老是搞不好,不知道你最近忙不忙,如果有空的话不知道你是否可以做个简单的例子看一下,谢谢你啊!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-8 09:19:55 | 显示全部楼层
楼主可以发个代码看看,引起这种问题的情况有好几种
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-8 10:15:55 | 显示全部楼层
yxfly,我确实很忙,同时我也有一些难题在处理,你的问题是完全可以实现的,等我有点空的时候吧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-8 13:07:36 | 显示全部楼层
呵呵,非常感谢RedCAD兄弟,问题已经解决了!你给的思路是对的,这段时间多亏你的帮助,我要做下一个任务了,这个可以先告一段落了。再次感谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-8 13:36:32 | 显示全部楼层
以后大家都要互相帮助
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-11 20:58:49 | 显示全部楼层
我做的例子,是可以的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-30 09:28:17 | 显示全部楼层
恩,谢谢各位大虾,偶也学到了东西
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-30 11:17:20 | 显示全部楼层
但如果要让这个调整过程自动进行那就有点难度了,目前正在研究,不知binbin 的程序是否能实现动态调整,下来看看吧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-30 22:30:31 | 显示全部楼层
不好说,发你的代码看看
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-23 13:30 , Processed in 0.550467 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表