ARX记录

选择集  me:就是查询函数。 

大多数ObjectARX函数在处理选择集和实体时,都用名字来识别选择集或实体,该名字用一个长整型对来表示的,并对AutoCAD来维护。在ObjectARX中,该名字的类型为ads_name。

    在对选择集或实体进行操作之前,ObjectARX应用程序必须通过调用一个返回其名字的库函数来得到选择集或实体名字。
注意:选择集和实体的名字是不稳定的,它们仅仅在AutoCAD当前图形工作时有效。如果从AutoCAD退出或切换到另一个图形时其值就会丢失。
    对于选择集来说,它也是与当前图有关联的,所以其名字的不稳定性不会影响选择集。但是对于实体就不一样了,因为它是被存放在图形数据库中的,名字的不稳定性要影响到对实体的操作。应用程序必须在下一次对同一图文件中的同一实体进行操作,可以使用实体句柄,重新获取其实体名。
    选择集的处理
    ObjectARX函数对选择集的处理类似于AutoLISP。acedSSGet()函数提供大多数创建选择集方法。它一般通过以下三种方法之一创建选择集:
    (1)、提供让用户选择对象。
    (2)、象交互式应用AutoCAD一样,利用RICKFIRST定义、Crossing、Crossing Polygon、Fence、Last、Previous、Window、Window Polygon等匹配条件的方式来选择实体对象,也可以通过指定一个单独点或Fence点来选择。
    (3)、使用一系列属性和条件筛选当前图数据库来选择实体对象。
     该函数原型为:
     int acedSSGet(const chat *str,const void *pt1,const void *pt2,const struct resbuf *entmask,ads_name ss);
     acedSSGet()的第一个参数str,说明所使用的选择条件,如下:
表示码                  意义
NULL         单点选择(如果指定了pt1)或用户选择(如果pt1也为NULL)
#             非几何选择(all、last、previous)
:$           提供提示文字
.             用户拾取方式
:?          其他回调函数
A             All选择方式
B             Box选择方式
C             Crossing选择方式
CP            Crossing Polygon选择方式
:D           可以重复,即可以重复选择一个实体,并加入选择集中
:E           在aperture中的所有实体
F             Fence选择方式
G             Groups选择
I              如果存在RICKFIRST集、则用该集
:K                           关键字回调函数
L              Last选择方式
M             多重选择方式
P              Previous选择方式
:S            强制单个实体对象被选择
W             Window选择方式
WP            Window Polygon选择方式
X              用于筛选程序搜索整个图形数据库
posted @ 2012-06-07 16:12  thinkpore  阅读(198)  评论(0)    收藏  举报