求救! « CAD家园

问题已经解决,谢谢!

标签: , ,

4 条评论 发表在“求救!”上

  1. 如题
    CAD HELP:
    图元过滤器表是一个使用 DXF 组码的关联表,其格式与由 entget 返回的表的格式相同(关于组码表,请参见 DXF Reference
    )。除了图元名(组码 -1)、句柄(组码 5)和扩展数据代码(大于 1000 的组码)以外,函数 ssget 可识别其他所有组码。如果在过滤器表中使用了无效的组码,则 ssget 将其忽略。要想用扩展数据搜索对象,可使用组码 -3,详细说明请参见过滤扩展数据。
    当过滤器表作为{zh1}一个参数提供给 ssget 时,该函数将扫描选定的对象并创建一个选择集,该选择集包括符合指定准则的所有主图元的名称。例如,可以获得包含指定类型、在指定图层上或是具有指定颜色的所有对象的选择集。
    过滤器表指定了要检查的图元特性,以及构造匹配条件所用的值。
    下列样例演示了带有不同对象选择选项的过滤器表的使用方法。
    使用过滤器表的 SSGET 样例
    函数调用效果
    (setq ss1 (ssget ‘((0 . “TEXT”))) ) 提示执行普通对象选择,只把文字对象加入选择集。
    (setq ss1 (ssget “P” ‘((0 . “LINE”))) ) 创建包含最近创建的选择集中所有线对象的选择集。
    (setq ss1 (ssget “W” pt1 pt2 ‘((8 . “FLOOR9″))) ) 创建窗口中所有位于图层 FLOOR9 上的对象的选择集。
    (setq ss1 (ssget “X” ‘((0 . “CIRCLE”))) ) 创建包含数据库中所有圆对象的选择集。
    (ssget “I” ‘((0 . “LINE”)
    (62 . 5))) 创建所有蓝色线对象的选择集,该选择集是 Implied 选择集的一部分(这些对象是在 PICKFIRST 生效的情况下选中的)。注意此过滤器拾取颜色为 5(蓝色)的线,但不包括那些由“随层”或“随块”特性设置出的颜色。
    如果组码和所需值都已知,则可以按照上述方式引用表。如果其中某一项由变量来指定,则必须用 list 和 cons 函数构造该表。下列代码创建数据库中所有在图层 FLOOR3 上的对象的选择集。
    (setq lay_name “FLOOR3″)
    (setq ss1
    (ssget “X”
    (list (cons 8 lay_name))
    )
    )
    如果用过滤器表指定多个特性,那么只有满足所有指定条件的图元才被加到选择集中,如下所示:
    (ssget “X” (list (cons 0 “CIRCLE”)(cons 8 lay_name)(cons 62 1)))
    这段代码选择的对象是,在图层 FLOOR3 中红色的圆对象。这类测试执行了布尔的 AND 运算。关于对象属性附加测试的说明,请参见过滤器测试的逻辑分组。
    ssget 函数通过扫描选定的图元,比较每个主图元的字段和指定的过滤器表来过滤图形。如果图元的属性与过滤器表中的所有指定字段都xx匹配,则返回的选择集中将包括此图元,否则不包括。如果选定的图元中没有与指定的过滤准则匹配的图元,则 ssget
    函数返回 nil。
    注意 某些组码的含义可因图元而异,并且不是所有的图元都有完整的组码。如果在过滤器中指定了一个特殊的组码,则 ssget 返回的选择集中不包括那些没有该组码的图元。
    当 ssget 过滤图形时,获取的选择集可包括图纸空间和模型空间中的图元。然而,当选择集被传递给一个 AutoCAD 命令时,只使用当前空间中的图元(图元的 67 组码值指定了图元所属的空间)。详细信息请参见自定义手册

郑重声明:资讯 【求救! « CAD家园】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——