求帮改一下程序,框选内容
本帖最后由 wgij007 于 2021-4-1 22:10 编辑(defun c:sb (/ ss)
(while (setq ss (ssget":s" '((0 . "DIMENSION,TEXT,*LEADER" (62.1) )))))
)
能帮忙改一下吗,自己改的不能包括红色,要求:选择以上内容DIMENSION,TEXT,*LEADER与红色的所有。不是红色的以上。
本帖最后由 caoyin 于 2021-4-2 00:22 编辑
楼主有必要学一点基础知识,
(ssget ":S" '((-4 . "<OR")
(0 . "DIMENSION,TEXT,*LEADER")
(-4 . "<AND")
(0 . "LINE,CIRCLE,ARC")
(62 . 1)
(-4 . "AND>")
(-4 . "OR>")
)
)
蓝色的or,表示在or之间有若干个条件,满足其中一个即可
绿色,条件之一:对象类型包括尺寸标注、单行文字、引线或多重引线
红色,条件之二:对象类型包括直线、圆、圆弧,同时ACI颜色必须为1
---------------------------------------------------------------------------------------------------------
如果你说的红色对象包含第一个条件中的对象,代码则为:
(ssget ":S" '((0 . "DIMENSION,TEXT,*LEADER,LINE,CIRCLE,ARC")
(62 . 1)
)
)
------------------------------------------------------------------------------------------------------------
再如果,严格按照你上面的描述,把你的SB 和SB2 两处代码合并,
(ssget ":S" '((-4 . "<OR")
(0 . "DIMENSION,TEXT,*LEADER")
(62 . 1)
(-4 . "OR>")
)
)
绿色,条件之一:对象类型包括尺寸标注、单行文字、引线或多重引线
红色,条件之二:ACI颜色为1 的任何对象类型
------------------------------------------------------------------------------------------------------------
总结,写代码,本身是很严谨的问题,所以问问题,描述也要清晰、完整、准确!
(setq ss (ssget ":s" '((0 . "DIMENSION,TEXT,*LEADER") (62 . 1)))) caoyin 发表于 2021-3-27 22:49
(setq ss (ssget ":s" '((0 . "DIMENSION,TEXT,*LEADER") (62 . 1))))
不行呀,带红色的还是没选中 楼主要检查下,你要选择的对象颜色是对象色还是图层色(bylayer,但图层整体是红色),dxf码是不一样的。 G〆h 发表于 2021-3-29 08:47
楼主要检查下,你要选择的对象颜色是对象色还是图层色(bylayer,但图层整体是红色),dxf码是不一样的。
如选择标注,与其他红色的(如红色的线等等) 本帖最后由 caoyin 于 2021-3-30 14:48 编辑
(defun C:TT (/ X LAYS)
(defun X (E)
(if (setq E (tblnext "LAYER" (not E)))
(if (= (cdr (assoc 62 E)) 1)
(cons (cdr (assoc 2 E)) (X E))
(X E)
)
)
)
(foreach X (X nil) (setq LAYS (strcat X ",")))
(setq ss (ssget ":S" (append
'((0 . "DIMENSION,TEXT,*LEADER")
(-4 . "<OR")
(62 . 1)
)
(if LAYS
(list '(-4 . "<AND")
(cons 8 LAYS)
'(62 . 256)
'(-4 . "AND>")
)
)
'((-4 . "OR>"))
)
)
)
)
caoyin 发表于 2021-3-30 01:20
(defun C:TT (/ X LAYS)
(defun X (E)
(if (setq E (tblnext "LAYER" (not E)))
tt ; 错误: ssget 列表值错误
有错误 caoyin 发表于 2021-3-30 01:20
(defun C:TT (/ X LAYS)
(defun X (E)
(if (setq E (tblnext "LAYER" (not E)))
没错误了,但框选没反映。CAD2006 wgij007 发表于 2021-3-30 18:06
没错误了,但框选没反映。CAD2006
你框选什么内容?尺寸标注、单行文字、引线和多重引线?
页:
[1]
2