半听可乐 发表于 2013-5-11 09:42:41

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

本帖最后由 半听可乐 于 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-11 09:42:42

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

陨落 发表于 2013-5-11 12:06:01

这个应该好做

仲文玉 发表于 2013-5-11 12:25:02

这个自己尝试写下,无非就是dxf组码筛选改层

半听可乐 发表于 2013-5-11 13:11:40

仲文玉 发表于 2013-5-11 12:25 static/image/common/back.gif
这个自己尝试写下,无非就是dxf组码筛选改层

如果会肯定自己弄了~~

500w008 发表于 2013-5-11 13:36:00

半听可乐 发表于 2013-5-11 16:01:02

各种观望不出手啊?

crazylsp 发表于 2013-5-11 17:17:57

自己写写更健康

半听可乐 发表于 2013-5-11 19:45:36

你们不能这样啊~

wowan1314 发表于 2013-5-12 03:26:10

(Defun c:j1 ()
(Sets Ss (ssget ":L" '((0 . "Circle")));建选择集
(command "_chprop" Ss "" "la" "立管层" "");改图层
)
供你 参考!其他类似!
页: [1] 2 3
查看完整版本: 求框选图元,根据图元类型进入不同图层