fyje 发表于 2002-9-13 17:05:00

请问:如何创建经过任意实体的选择集

我知道经过线型的选择集的构造方法
pointlist=acutBuildList(RTPOINT,pt1, RTPOINT,pt2, RTPOINT,pt3, RTPOINT,pt4,0)
acedSSGet(“F”,pointlist,NULL,NULL,ssname);
如果是任意实体(比如,圆)呢?请指教

leeyeafu 发表于 2002-9-16 08:57:00

ARX没提供类似的方法,可以这样......

首先,栏选(“F”方式选择对象)可以选择圆对象,也可选择任意图形对象(在关闭、锁定的图层除外),要以圆或弧作为选择栏来构造选择集,只能以折线来拟合,根据你的图形的精度要求,用程序来构造pointlist拟合圆或弧应该不会很困难。

hothua 发表于 2002-9-17 20:54:00

acedSSGet类的选择有缺陷?

acedSSGet类除了“X"选项外,基本上都跟屏幕显示相关,但待选实体不在显示去范围或者图形复杂,范围很大。acedSSGet选择往往达不到要求。不知道哪位高手有较好的解决方法。

stoneball 发表于 2002-9-20 16:18:00

创建经过任意实体的选择集

resbuf *pSel;
pSel = acutBuildList(RTDXF0,"CIRCLE",0);
pointlist=acutBuildList(RTPOINT,pt1, RTPOINT,pt2, RTPOINT,pt3, RTPOINT,pt4,0)
acedSSGet(“F”,pointlist,NULL,pSel,ssname);
选择圆,同理可得

leeyeafu 发表于 2002-9-23 07:55:00

好,又学到一招,但有些不明白

1、关键字RTDXFO是什么意思?
2、从ARX帮助中看到,acedSSGet()函数的第四个参数是表示一个选择集过滤的链表结构,不知楼上的朋友是否误解了。

stoneball 发表于 2002-10-16 17:03:00

应该没错

中国虫 发表于 2002-10-21 18:29:00

遍历实体,因为是指针操作,非常的快。

pckite 发表于 2005-1-8 20:22:00

hothua发表于2002-9-17 20:54:00static/image/common/back.gif回复:(hothua)acedSSGet类的选择有缺陷?acedSSGet类除了“X\"选项外,基本上都跟屏幕显示相关,但待选实体不在显示去范围或者图形复杂,范围很大。acedSSGet选择往往达不到要求。不知道哪位

<BR>这个问题值得研究,不知道哪位高手能决定?
页: [1]
查看完整版本: 请问:如何创建经过任意实体的选择集