取得选择集中虚线、中心线、双点划线图元选择集
本帖最后由 langjs 于 2021-6-12 17:59 编辑;;; 取得选择集中虚线、中心线、双点划线图元选择集。by:langjs
(defun ssline (ss xianxing / ent i name ss1 tuc xlst)
(setq ss1 (ssadd) xlst '() )
(repeat (setq i (sslength ss))
(setq name (ssname ss (setq i (1- i)))
ent (entget name)
tuc (cdr (assoc 8 ent)) ; 取得图元所在具体图层
)
(if (assoc 6 ent) ; 如果取得6代码,则说明该图元线型是不随层的
(if (member (cdr (assoc 6 ent)) xianxing) ; 不随层则判断该图元线型是否在线型过滤条件里,在则加入选择集。
(setq ss1 (ssadd name ss1))
) ; 没有6代码,则说明该图元线型必然是随层的
(if (member (cdr (assoc 6 (tblsearch "layer" tuc))) xianxing) ; 随层的判断该图元图层默认线型是否在线型过滤条件里,在则
(setq ss1 (ssadd name ss1))
)
)
)
ss1
)
;;; 测试
(defun c:aa (/ ss xuxian) ; 亮显虚线
(setq ss (ssget ":S" '((0 . "LINE,LWPOLYLINE,CIRCLE,ARC")))
xuxian (list "ACAD_ISO03W100" "ACAD_ISO02W100" "DASHED" "DASHED2" "DASHEDX2" "HIDDEN" "HIDDEN2" "HIDDENX2")
ss (ssline ss xuxian)
)
(sssetfirst nil ss)
(princ)
)
(defun c:bb (/ ss zxxian) ; 亮显中心线
(setq ss (ssget ":S" '((0 . "LINE,LWPOLYLINE,CIRCLE,ARC")))
zxxian (list "ACAD_ISO04W100" "ACAD_ISO08W100" "ACAD_ISO10W100" "CENTER" "CENTER2" "CENTERX2" "DASHDOT" "DASHDOTX2"
"G" "J" "ZX"
)
ss (ssline ss zxxian)
)
(sssetfirst nil ss)
(princ)
)
(defun c:cc (/ sdxian ss) ; 亮显双点划线
(setq ss (ssget ":S" '((0 . "LINE,LWPOLYLINE,CIRCLE,ARC")))
sdxian (list "ACAD_ISO05W100" "ACAD_ISO12W100" "DIVIDE" "DIVIDE2" "DIVIDEX2" "PHANTOM" "PHANTOM2" "PHANTOMX2" "SD")
ss (ssline ss sdxian)
)
(sssetfirst nil ss)
(princ)
)
感谢分享,感谢分享!! 新鲜的代码,感谢楼主分享。 谢谢大师分享 感谢大神的分享 非常感谢langjs大师分享好程序。随便请教一下,如果我要选择非 continuous 线型 (~continuous)该如何表达? 感谢大师分享。。。感谢
页:
[1]