求框选图元,根据图元类型进入不同图层
本帖最后由 半听可乐 于 2013-5-12 15:55 编辑想把图层不规范的图纸整理一下,便于图层管理,
希望框选(同时也能点选)图元,判断图元的类型,不同的类型变到不同的图层(图中已经存在需要的图层),图元的颜色等随层:
圆-------立管层
直线------- 管道层
单多行文字、PL线、引线、线性或对齐标注 ------- 标注层
图块-------图块层
-------------------------------作为外行,我设想程序大致结构如下-----------------------------------------
(defun c:ly1 ();;所选图元分别进入后面所列图层(立管层1,管道层1,标注层1,图块层1)
(defun c:ly2 ();;所选图元分别进入后面所列图层 (立管层2,管道层2,标注层2,图块层2)
(defun c:ly3 ();;所选图元分别进入后面所列图层 (立管层3,管道层3,标注层3,图块层3)
……
不知道我说清楚了没,求之若渴,盼各位热心的大侠拔刀相助!
帖子已经转到编程申请板块,编程零基础,特此申请
http://bbs.mjtd.com/thread-101385-1-1.html ;框选图元归层 明经 ZZXXQQ 2013.5.12 汶川地震五周年
(defun c:ly1 ()
(setvar "CMDECHO" 0)
(if (and (setq pt1 (getpoint "\n框选第一角点: "))
(setq pt2 (getcorner pt1 "\n框选第二角点: "))) (progn
(if (setq ss (ssget "W" pt1 pt2 '((0 . "CIRCLE"))))
(command "_.CHPROP" ss "" "LA" "立管层1" "")
)
(if (setq ss (ssget "W" pt1 pt2 '((0 . "LINE"))))
(command "_.CHPROP" ss "" "LA" "管道层1" "")
)
(if (setq ss (ssget "W" pt1 pt2 '((0 . "*POLYLINE,DIMENSION,*TEXT"))))
(command "_.CHPROP" ss "" "LA" "标注层1" "")
)
(if (setq ss (ssget "W" pt1 pt2 '((0 . "INSERT"))))
(command "_.CHPROP" ss "" "LA" "图块层1" "")
)
))
(setvar "CMDECHO" 1)
(princ)
)
;这个是通用函数
(defun c:ly ()
(setvar "CMDECHO" 0)
(if (and (setq pt1 (getpoint "\n框选第一角点: "))
(setq pt2 (getcorner pt1 "\n框选第二角点: "))
(setq wei (getstring "\n层名尾号: "))) (progn
(if (setq ss (ssget "W" pt1 pt2 '((0 . "CIRCLE"))))
(command "_.CHPROP" ss "" "LA" (strcat "立管层" wei) "")
)
(if (setq ss (ssget "W" pt1 pt2 '((0 . "LINE"))))
(command "_.CHPROP" ss "" "LA" (strcat "管道层" wei) "")
)
(if (setq ss (ssget "W" pt1 pt2 '((0 . "*POLYLINE,DIMENSION,*TEXT"))))
(command "_.CHPROP" ss "" "LA" (strcat "标注层" wei) "")
)
(if (setq ss (ssget "W" pt1 pt2 '((0 . "INSERT"))))
(command "_.CHPROP" ss "" "LA" (strcat "图块层" wei) "")
)
))
(setvar "CMDECHO" 1)
(princ)
)
这个应该好做
这个自己尝试写下,无非就是dxf组码筛选改层 仲文玉 发表于 2013-5-11 12:25 static/image/common/back.gif
这个自己尝试写下,无非就是dxf组码筛选改层
如果会肯定自己弄了~~ 各种观望不出手啊? 自己写写更健康 你们不能这样啊~ (Defun c:j1 ()
(Sets Ss (ssget ":L" '((0 . "Circle")));建选择集
(command "_chprop" Ss "" "la" "立管层" "");改图层
)
供你 参考!其他类似!