利用AutLISP管理图形数据库.pptVIP

  • 31
  • 0
  • 约7.26千字
  • 约 22页
  • 2018-10-04 发布于浙江
  • 举报
第5章 利用AutoLISP管理图形数据库 AutoCAD既是一个绘图软件包,又是一个图元数据管理系统,它在生成图形的同时也记录下了图元的数据和信息,利用AutoLISP提供的数据库操作函数,可对当前的图形数据库进行检索、编辑和修改,从而更新屏幕图形。 5.1 选择集的处理 所谓选择集是指图形中选定的部分图元或所有图元的集合。 Auto LISP提供了选择以下六种有关选择集的处理函数: 1) ssget-----创建选择集 2) ssadd-----把图元加到选择集中 3) ssdel-----从选择集中删除图元 4) sslength—测定选择集中的图元数 5) ssname----从选择集中获取图元名 6) ssmemb----测试图元是否为选择集成员 5.1.1 创建选择集 调用格式1:(ssget [方式] [点1] [点2]) 有如下形式: 1) (ssget) 不带任何参数,请求进行一般图元选择。 2) (ssget ‘(20 35)) ----选择通过点“20 ,35”的图元。 3) (ssget “L”) ----选择最新加入数据库的图元。 4) (ssget “P”) ----选择前一次已选择过的图元。 5) (ssget “W” ‘(0 0) ‘(5 5)) ----选择窗口内的图元。 6) (ssget “C” ‘(0 0) ‘(5 5)) ----选择窗口涉及的图元。 7) (ssget “wp” [点1] [点2] …) ----多边形窗口方式选择。 8) (ssget “cp” [点1] [点2] …) ----多边形窗叉方式选择。 9) (ssget “F” [点1] [点2] …) ----折线方式选择。 10) (ssget “X”) ---- 选择全部图元。 调用格式2:(ssget “X” [过滤表]) 例如: (ssget “x” ‘((0 . “CIRCLE”))) ---选择所有的圆。 (ssget “x” ‘((8 . “3”))) ---- 选择层3上的所有图元。 (ssget “x” ‘((0 . “CIRCLE”) (8 . “3”) (62 . 1))) ---- 选择层3上红颜色的圆。 说明: 1)用ssget函数只能选择主图元 ,而不能选择子图元。 2)选择集可以保存于AutoLISP变量中。如: (setq s1 (ssget “x” ‘((0 . “LINE”) (8 . “3”)))) 3)选择集中的图元是唯一的。 4)当前图形中建立的选择集数量不能多于128个,如果超过这个极限,则ssget函数将返回nil。 过滤DXF码 构造选择集举例: (1)通配符模式 过滤器序列中指定的符号名称可包含通配符模式,常用的通配符如下: ? 匹配任何单个字符 @ 匹配任何单个字母 # 匹配任何单个数字 . 匹配除字母和数字之外的任何单个字符 * 匹配任何字符串,包括null串 [-] 匹配连字符范围内的字符,如[1-5] 通配符可单独使用,也可组合使用,其中最常用的是“*” 和“?”。例如: (setq s (ssget “X” ‘((8 . “A*”)))) ;表示层名第一个子母为A的所有层均被加入选择集。 (2)关系测试 = 等于 != /= 不等于 小于 大于 = 小于等于 = 大于等于 * 恒为真 位与 = 位屏蔽 例如:(setq s (ssget “X” ‘((0 . “CIRCLE”)(-4 .””) (40 . 20.0)))) ;所有半径大于20的圆加入选择集。 (3)逻辑分组 通过应用逻辑分组运算符,可以创建更为复杂的多层嵌套关系测试。 逻辑分组运算符如下: AND AND 与运算,测试一个或多个DXF组 OR OR 或运算,测试一个或多个DXF组 XOR XOR 异或运算,测试两个DXF组 NOT NOT 非运算,测试一个DXF组 例如: (setq s (ssget “X” ‘((-4 . “OR”) (8 . “1”) (8 . “2”) (-4 . “OR”)))) 表示创建由1层或2层上的图元组成的选择集。 5.1.2 操作选择集

文档评论(0)

1亿VIP精品文档

相关文档