找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1011|回复: 1

[求助]:可否高亮显示polyline的某一部分

[复制链接]
发表于 2003-8-2 17:18:56 | 显示全部楼层 |阅读模式

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

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

×
在arx的帮助文档里面,region,solid,mline有子实体的功能,因此可以高亮某个子实体,但是polyline现在并不支持子实体。不知道能不能通过其他的方法实现高亮显示polyline的“子实体”?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-8-2 17:34:21 | 显示全部楼层

Re: [求助]:可否高亮显示polyline的某一部分

最初由 asky333 发布
[B]在arx的帮助文档里面,region,solid,mline有子实体的功能,因此可以高亮某个子实体,但是polyline现在并不支持子实体。不知道能不能通过其他的方法实现高亮显示polyline的“子实体”? [/B]


由于没有提供AcDbPolyline::getGsMarkersAtSubentPath() 方法,所以亮显子段不能工作。

但是你可以自己实现AcDbPolyline类的getGsMarkersAtSubentPath() 方法,如下:

  1. [font=courier]
  2. ErrorStatus AcDbPolyline::getGsMarkersAtSubentPath(
  3.    const AcDbFullSubentPath& subPath,
  4.    AcDbIntArray& gsMarkers) const
  5. {
  6.    assertReadEnabled();
  7.    gsMarkers.append( subPath.subentId().index() );
  8.    return Acad::eOk;
  9. }
  10. [/font]


从AcDbPolyline派生自己的类,来实现AcDbPolyline::getGsMarkersAtSubentPath()

在亮显子段前,从自己的类创建一个新的对象,然后调用AcDbPolyline 类的copyFrom() 方法,使自己的类包含polyline的属性,然后用handOverTo() 方法替换原来的那个POLYLINE,你就可以量显子段了。

在亮显操作后,再调用handOverTo() 恢复刚才删除的那个POLYLINE。

实现自己的派生类时候,不要用 ACRX_DEFINE... 或者_DECLARE.. 宏,并且不调用::rxInit() 注册自己的派生类。因为copyFrom() 操作仅仅是在相同类对象之间操作。这样,ACAD就认为你的“派生类”就是普通的Pline了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 02:42 , Processed in 0.247919 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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