半听可乐 发表于 2013-5-12 15:54:02

求框选图元,根据图元类型进入不同图层


想把图层不规范的图纸整理一下,便于图层管理,
希望框选(同时也能点选)图元,判断图元的类型,不同的类型变到不同的图层(图中已经存在需要的图层),图元的颜色等随层:
圆-------立管层
直线------- 管道层
单多行文字、PL线、引线、线性或对齐标注 ------- 标注层
图块-------图块层

-------------------------------作为外行,我设想程序大致结构如下-----------------------------------------
(defun c:ly1 ();;所选图元分别进入后面所列图层(立管层1,管道层1,标注层1,图块层1)
(defun c:ly2 ();;所选图元分别进入后面所列图层   (立管层2,管道层2,标注层2,图块层2)
(defun c:ly3 ();;所选图元分别进入后面所列图层   (立管层3,管道层3,标注层3,图块层3)
……

不知道我说清楚了没,求之若渴,盼各位热心的大侠拔刀相助!
下面是热心朋友wowan1314 给的提示,实在惭愧,不知从何下手改造成想要的效果,编程零基础,特此申请

(Defun c:j1 ()
(Sets Ss (ssget ":L" '((0 . "Circle")));建选择集
(command "_chprop" Ss "" "la" "立管层" "");改图层
)
供你 参考!其他类似!

ZZXXQQ 发表于 2013-5-12 19:37:45

;框选图元归层 明经 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)
)

1993063 发表于 2013-12-7 22:09:34

楼主问题解决了么?
没解决我来弄这10个大洋
页: [1]
查看完整版本: 求框选图元,根据图元类型进入不同图层