找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2656|回复: 5

[求助]:[ObjectARX求助]如何查找一个实体并高亮显示而且要在CAD2000中

[复制链接]
发表于 2002-2-11 09:58:11 | 显示全部楼层 |阅读模式

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

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

×
在ObjectARX开发中如何查找一个实体并高亮显示而且要在AutoCAD2000中导航到该实体并以适当大小比例显示出来,同时要求该实体以某种颜色不停闪动(blink).
我想这是各位高手必然要做的,希望给我一些代码,祝愿晓东cad论坛越办越好,
成为中国第一CAD论坛!也祝愿所有论坛成员马年幸福一帆风顺.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-2-11 10:12:35 | 显示全部楼层

Re: [求助]:[ObjectARX求助]如何查找一个实体并高亮显示而且要在CAD2000中

最初由 hotgirl 发布
[B]在ObjectARX开发中如何查找一个实体并高亮显示而且要在AutoCAD2000中导航到该实体并以适当大小比例显示出来,同时要求该实体以某种颜色不停闪动(blink).
我想这是各位高手必然要做的,希望给我一些代码,祝愿晓东cad论... [/B]


用AcDbEntity::highlight()方法,亮显一个实体,导航可以先得到实体的包围盒,用AcDbEntity::getGeomExtents(),然后根据包围盒,你可以用我在论坛提供的ARX的ZOOM方法把实体ZOOM到窗口内.至于闪烁,CAD中不太好实现,当然也有方法,我想这个没有太大必要,亮显实体就足够了.

最后,谢谢你的鼓励,希望大家能共同努力,把网站和论坛办成最好,希望这里是每一个志同道合的朋友的家.希望大家常回家看看.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-2-19 11:45:12 | 显示全部楼层

Re: [求助]:[ObjectARX求助]如何查找一个实体并高亮显示而且要在CAD2000中

最初由 hotgirl 发布
[B]在ObjectARX开发中如何查找一个实体并高亮显示而且要在AutoCAD2000中导航到该实体并以适当大小比例显示出来,同时要求该实体以某种颜色不停闪动(blink).
我想这是各位高手必然要做的,希望给我一些代码,祝愿晓东cad论... [/B]

  1. void FlashEntity(const AcDbObjectId        &ridObj)
  2. {
  3.         CArxEntity ent;
  4.         if(!ent.OpenEntity(ridObj))
  5.                 return;
  6.         acutPrintf(_T("\n三秒后自动结束显示或按 Esc 立即结束显示...\n"));
  7.         DWORD dwCount=::GetTickCount();
  8.         while(!acedUsrBrk())
  9.         {
  10.                 ent->highlight();
  11.                 ::acedUpdateDisplay();
  12.                 ent->unhighlight();
  13.                 ::acedUpdateDisplay();
  14.                 if(::GetTickCount()-dwCount>=3000)
  15.                         break;
  16.         }
  17. }
复制代码

如果想动态闪烁那就搞个线程吧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-2-20 15:36:20 | 显示全部楼层
多谢!请广州德赛的CAD开发工程师们解答闪烁问题!我看到过广州德赛实现的实体闪烁!
广州德赛在CAD开发利用方面藏龙卧虎,请千万赐教!

另外,XDsoft,我只知道实体handle,及ID,用户不用选点,用户通过oracle数据库选中一个实体记录(有实体handle),
你的zoom方法如何实现?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-2-21 09:21:48 | 显示全部楼层
最初由 hotgirl 发布
[B]多谢!请广州德赛的CAD开发工程师们解答闪烁问题!我看到过广州德赛实现的实体闪烁!
广州德赛在CAD开发利用方面藏龙卧虎,请千万赐教!

另外,XDsoft,我只知道实体handle,及ID,用户不用选点,用户通过oracle数据库选中... [/B]


既然知道了实体的AcDbObjectId,那么就可以用:
AcDbOpenObject打开这个对象,然后使用对象的AcDbEntity::getGeomExtents()得到实体的包围盒AcDbExtents类对象

virtual Acad::ErrorStatus
getGeomExtents(

    AcDbExtents& extents) const;

extents        Output the entity's extents

然后用 AcDbExtents::maxPoint
       AcDbExtents::minPoint
得到左下点和右上点.

根据这两个点,就可以用ZOOM方法了.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-12-25 09:47:39 | 显示全部楼层
我用下面的代码写,但FAILED(RESULT)总数失败,为什么?
                IAcadApplication *pAcad;
.
.
.                                       
VARIANT minPoint;
                                        VARIANT maxPoint;
                                        HRESULT RESULT = AcAxGetBoundingBox(objId,&minPoint,&maxPoint);
                                        if (FAILED(RESULT)) return;
                                       
                                        pAcad->ZoomWindow(minPoint,maxPoint);


如果是自定义的实体,必须重载getGeomExtents才可以成功返回!
应该还有别的办法,否则自定义实体的程序卸载后,自定义实体还可显示它的box.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 12:17 , Processed in 0.191057 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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