明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1848|回复: 2

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

[复制链接]
发表于 2013-5-12 15:54:02 | 显示全部楼层 |阅读模式
10明经币
想把图层不规范的图纸整理一下,便于图层管理,
希望框选(同时也能点选)图元,判断图元的类型,不同的类型变到不同的图层(图中已经存在需要的图层),图元的颜色等随层:
圆-------立管层
直线------- 管道层
单多行文字、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" "立管层" "");改图层
)
供你 参考!其他类似!

发表于 2013-5-12 19:37:45 | 显示全部楼层
  1. ;框选图元归层 明经 ZZXXQQ 2013.5.12 汶川地震五周年
  2. (defun c:ly1 ()
  3. (setvar "CMDECHO" 0)
  4. (if (and (setq pt1 (getpoint "\n框选第一角点: "))
  5. (setq pt2 (getcorner pt1 "\n框选第二角点: "))) (progn
  6.   (if (setq ss (ssget "W" pt1 pt2 '((0 . "CIRCLE"))))
  7.    (command "_.CHPROP" ss "" "LA" "立管层1" "")
  8.   )
  9.   (if (setq ss (ssget "W" pt1 pt2 '((0 . "LINE"))))
  10.    (command "_.CHPROP" ss "" "LA" "管道层1" "")
  11.   )
  12.   (if (setq ss (ssget "W" pt1 pt2 '((0 . "*POLYLINE,DIMENSION,*TEXT"))))
  13.    (command "_.CHPROP" ss "" "LA" "标注层1" "")
  14.   )
  15.   (if (setq ss (ssget "W" pt1 pt2 '((0 . "INSERT"))))
  16.    (command "_.CHPROP" ss "" "LA" "图块层1" "")
  17.   )
  18. ))
  19. (setvar "CMDECHO" 1)
  20. (princ)
  21. )

下面是通用函数
  1. (defun c:ly ()
  2. (setvar "CMDECHO" 0)
  3. (if (and (setq pt1 (getpoint "\n框选第一角点: "))
  4. (setq pt2 (getcorner pt1 "\n框选第二角点: "))
  5. (setq wei (getstring "\n层名尾号: "))) (progn
  6.   (if (setq ss (ssget "W" pt1 pt2 '((0 . "CIRCLE"))))
  7.    (command "_.CHPROP" ss "" "LA" (strcat "立管层" wei) "")
  8.   )
  9.   (if (setq ss (ssget "W" pt1 pt2 '((0 . "LINE"))))
  10.    (command "_.CHPROP" ss "" "LA" (strcat "管道层" wei) "")
  11.   )
  12.   (if (setq ss (ssget "W" pt1 pt2 '((0 . "*POLYLINE,DIMENSION,*TEXT"))))
  13.    (command "_.CHPROP" ss "" "LA" (strcat "标注层" wei) "")
  14.   )
  15.   (if (setq ss (ssget "W" pt1 pt2 '((0 . "INSERT"))))
  16.    (command "_.CHPROP" ss "" "LA" (strcat "图块层" wei) "")
  17.   )
  18. ))
  19. (setvar "CMDECHO" 1)
  20. (princ)
  21. )
回复

使用道具 举报

发表于 2013-12-7 22:09:34 | 显示全部楼层
楼主问题解决了么?
没解决我来弄这10个大洋
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-27 13:23 , Processed in 0.162922 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表