当前位置:网站首页 > 新媒体 > 正文

cad 二次开发教程(python二次开发cad教程)

0 李勇seo 李勇seo 2025-04-26 00:29 4

2.11.2 操作选择集

1.向选择集中加入图元

( ssadd name ss) 函数用于向选择集中加入图元,函数返回加入新图元后的选择集。如果不带任何变元参数时(ssadd)表示建立一个空的选择集,只带name参数时,表示建立只包含名为name图元的选择集。如果带2个参数,表明将name图元加入到指定的选择集中,若选择集中已有此图元,则忽略添加请求,并且不报告错误。

ssadd创建的选择集可以包含图纸空间的图元,也可包模型空间的图元,我们也可在应用程序中用DXF组码的67位码过滤,去掉不需要的图元,67组码值为1,指定图元处理图纸空间。

2.从选择集中删除图元

 (ssdel name ss)从选择集ss中删除名称为name的图元。

3.获取选择集中的图元数目

 (sslength ss)

4.访问选择集图元

 (ssname ss n),返回选择集中第n个图元名,序号为从0开始计数的整数。

(ssanme ss  0) 第一个图元;

(ssanme ss l-1) l为图元数目,返回最后一个图元名。

5.测试某个图元是否在选择集中

(ssmemb name ss),存在返回图元名,不存在返回nil。

6.删除选择集,释放内存。 (setq ss nil)

2.11.3 应用实例

  因为比较重要,现具体说2个实例。

例1:选择屏幕上要保留的图形,删除其它未被选中的图形。

(defun c:delnot( / ss1 ss2 ss3 n ent)

(setq ss1 (ssget) ss2 (ssget “X”) )

(if (not ss1)

(command “erase” ss2 “”)

(progn

(setq ss3 (ssadd) n 0 )

(repeat (sslength ss2 )

(setq ent (ssname ss2 n))

(if (not (ssmemb ent ss1))

(ssadd ent ss3)

)

(setq n (1+ n))

)

(command “erase” ss3 “” “redraw”)

)

)

)

例2:改变现行图形中所有文本尺寸大小。

(defun c:change( / a ts n index b1 b c d b2)

(setq a (ssget “X” ‘((0 . “TEXT”))))

(setq ts (getdist “\n输入新的文本大小:”))

(setq n (sslength a))

(setq index 0)

(repeat n

(setq b1 (entget (ssname a index)))

(setq index (1+ index))

(setq c (assoc 40 b1))

(setq d (cons (car c) ts))

(setq b2 (subst d c b1))

(entmod b2)

)

(princ)

)

李勇seo

李勇seo

TA很懒,啥都没写...

本文暂时没有评论,来添加一个吧(●'◡'●)

取消回复欢迎 发表评论:

@百闻站长 本站部分内容转自互联网,若有侵权等问题请及时与本站联系,我们将在第一时间删除处理。 | 粤ICP备2025402138号 | (地图