明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 666|回复: 1

请高手帮忙,编一个按图层拆分图形的代码

[复制链接]
发表于 2024-5-26 13:38:06 来自手机 | 显示全部楼层 |阅读模式
20明经币
本帖最后由 jcmtxgt 于 2024-5-26 13:50 编辑

工作中经常会遇到,把一个图形里面的图层移开来进行操作,图层多的比较繁复。
能不能实现一个功能,框选之后直接按图层拆分,把各个图层的实体分别移开,并且在图的右上角留下一个直线作为基准点,方便操作后再移回原位。
在明经找的一段代码,不知道对编程是否有帮助,先行谢过
根据图层名称拆分选择集SS
(defun K:SSplit4Lay (SS / EntLst en Tmp LayLst Lay LayEnts)
  (defun LM:ss->ent (SS / i Lst)
    (if SS
      (repeat (setq i (sslength SS))
        (setq Lst (cons (ssname SS (setq i (1- i))) Lst))
      )
    )
  );б by Lee Mac
  (setq EntLst (LM:ss->ent SS))
  (foreach en EntLst
    (setq Tmp (cdr (assoc 8 (entget en))))
    (if (not (member Tmp LayLst))
      (setq LayLst (cons Tmp LayLst))
    )
  );
  (foreach Lay LayLst
    (setq Tmp '())
    (foreach en EntLst
      (if (eq (strcase Lay) (strcase (cdr (assoc 8 (entget en)))))
        (setq Tmp (cons en Tmp))
      )
    )
    (setq LayEnts (cons (cons Lay Tmp) LayEnts))
  )
  (reverse LayEnts)
)


[/code]



о
(K:SSplit4Lay SS) => (("Lay1" en1 en2 ... en_i) ("Lay2" en4 en5 en6 ...en_j)....)



发表于 2024-7-2 11:07:05 | 显示全部楼层
上图档说明
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-8 10:15 , Processed in 0.331809 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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