非选择集图层关闭【20211204·优化更新】【1205·再次更新】
本帖最后由 masterlong 于 2021-12-5 17:22 编辑好像express里是叫图层隔离?
不知道啥原因
就是不喜欢隔离这个词
PGP : lo 【普通模式】非选择集图层关闭
PGP : loo 【穿透模式】非选择集图层关闭
本来用飞诗的带关键字的ssget做的
但实际使用
还是觉得命令分开更顺手
支持框选
;;;;;=========================================20211204·更新
原代码采用递归方式提取图块图层
遇到超大图块时会卡死
现优化为while方式提取
速度大幅提高
将11M的dwg插入到图纸中测试
耗时仅5秒
;;;;;=========================================20211205·以上附件已再次更新
再次进行更新
单独提取图块定义图层
并将0层直接删除
现在除非所选图元包含了0层
否则0层不会开启
masterlong 发表于 2020-8-2 14:51
试试下面这个程序
大侠我试了下,啥都不能显示,是不是哪里出了点错误的 ;999公共函数
;;dxf获取图元某个dxf组码(内参不限种类顺序::: n ent )
(defun dxf( n ent / temp tmp )
(if (/= (type n) 'int)
(setq temp ent
ent n
n temp
)
)
(if (= (type ent) 'ENAME)
(setq temp (entget ent))
(setq temp ent)
)
(if (= n 62)
(if (setq tmp (assoc n temp))(cdr tmp)256)
(cdr (assoc n temp))
)
)
(vl-load-com)
(setq *ent2obj* vlax-Ename->Vla-Object
*obj2ent* vlax-vla-object->ename
*acad* (vlax-get-acad-object)
*doc* (vla-get-ActiveDocument *acad*)
*LAYERS* (vla-get-Layers *doc*)
) 本帖最后由 magicheno 于 2020-8-4 19:39 编辑
masterlong 发表于 2020-8-3 15:52
再试试
我在后面单独加了command给他关掉了
(setq oldlay (getvar "Clayer"))
(setvar "clayer" "W-DIM" )
(command "layer")
(command"off" "0" )
(command"")
(setvar "Clayer" oldlay)
什么叫穿透模式 穿透是针对图块的
借用了论坛一个帖子的叫法
loo选中图块以后
通过递归的方式
提取图块内所有图元
包括块中块的图元图层
因此最后显示的是完整的块
可以说很好吗? 实用,谢谢分享! 原来如此,大侠老早就弄出来了,非常好用,问下0层默认关闭的,怎么选择开出来呢 大侠,有空可以测试下我的这个图纸上的阀门,穿透或者不穿透都显示不了呢,不知道为啥 大侠试了下,块里面如果是0层的话就都显示不了了,是咋回事呢 试试下面这个程序