明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1333|回复: 8

[讨论] 有没有直接显示指定图层的程序

[复制链接]
发表于 2015-6-16 15:37:09 | 显示全部楼层 |阅读模式
有时候想PU一下图层,可是总有几个图层不能PU掉,找那几个图层的东西也找不到,有没有一个小程序能找到相关图层上东西。谢谢
发表于 2015-6-16 15:58:52 | 显示全部楼层
qselect 不能解决吗?
 楼主| 发表于 2015-6-16 16:49:12 | 显示全部楼层
不能,有些图层在块里面就选择不到了
发表于 2015-6-16 23:30:27 | 显示全部楼层
如果块在图层上,而其他图元都不在那个图层上,也会清理不到。
发表于 2015-6-17 00:35:51 | 显示全部楼层
可以采用高飞鸟的符号管理器
他的图层合并比CAD自带的要方便
发表于 2015-6-20 00:30:54 | 显示全部楼层
cad有个命令是laytrans,不过你还是找找插件脚本啥的吧,自带的感觉操作起来略微有些麻烦。
但是也有人说自带的laytrans命令安全点,具体我也不清楚到底是啥意思。
发表于 2015-6-22 12:02:48 | 显示全部楼层
用CAD2014以上直接把图层合并就行了
发表于 2015-6-29 11:19:27 | 显示全部楼层
这两个应该是你需要的
列出所有图层信息 smartstar 2012-11-11 http://bbs.mjtd.com/thread-99095-1-1.html
多选试图层合并【KAIXIN】 2011-12-22 http://bbs.mjtd.com/thread-91373-1-1.html
发表于 2022-2-23 15:16:17 | 显示全部楼层
本帖最后由 ly8zx2109 于 2022-2-23 16:13 编辑

(vl-load-com)
(defun c:xs (/ acaddocument acadobject ed i layer layers n ss zdc zdc1)
  (setvar "cmdecho" 0)
  (setq
    AcadObject         (vlax-get-acad-object)
    AcadDocument (vla-get-ActiveDocument AcadObject)
    Layers         (vla-get-Layers AcadDocument)
  )
  (if Layers
    (progn
      (princ "\n请选择对象,未被选中的对象所在的层将被关闭!!!")
      (setq
        ss (ssget ":S")
        i  0
        n  0
      )
      (if ss
        (progn
          (repeat (sslength ss)
            (setq
              ed  (Vlax-Ename->Vla-Object (ssname ss i))
              zdc (vla-get-Layer ed)
              i          (1+ i)
            )
            (if        (= i 1)
              (setq zdc1 zdc)
              (setq zdc1 (strcat zdc1 "," zdc))
            )
          )
          (repeat (vla-get-Count Layers)
            (setq
              Layer (vla-item Layers n)
              n            (1+ n)
            )
            (if        (wcmatch (vla-get-Name Layer) zdc1)
              (vla-put-LayerOn Layer :vlax-true)
              (vla-put-LayerOn Layer :vlax-false)
            )
          )
        )
      )
    )
  )
  (setvar "cmdecho" 1)
  (princ)
)

(defun c:sx (/ acaddocument acadobject i layer layers)
  (setvar "cmdecho" 0)
  (setq
    AcadObject         (vlax-get-acad-object)
    AcadDocument (vla-get-ActiveDocument AcadObject)
    Layers         (vla-get-Layers AcadDocument)
    i                 0
  )
  (if Layers
    (repeat (vla-get-Count Layers)
      (setq
        Layer (vla-item Layers i)
        i     (1+ i)
      )
      (vla-put-LayerOn Layer :vlax-true)
    )
  )
  (setvar "cmdecho" 1)
  (princ)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-14 14:39 , Processed in 0.348257 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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