masterlong 发表于 2024-10-26 23:21:41

发个暗藏图元的小工具

本帖最后由 masterlong 于 2024-10-29 14:10 编辑

通过将图元60组码改为1以暗藏图元
工具包含以下几个命令

voff``````设置不可见
vsee`````取消不可见
v222`````恢复原图层
vmove````转存
vmoveall``转存所有
vmlist````显示所有暗藏块名

主要应用场景:
反复修改圈云线时将之前的云线暗藏






补充遗漏的公共函数

;999```获取当前dwg空间列表
(defun getvplist( / vp )
(setq vp '())
(vlax-for x *Layouts*
(setq vp (cons (strcase (vla-get-Name x)) vp))
)
(cons "MODEL" (vl-remove "MODEL" vp))
)

;999公共函数
;;16.1 [功能] 返回对象的名称
(defun aboutName ( obj )
(if (vlax-property-available-p obj 'Name)
(vlax-get-Property obj 'Name)
"<NONE_NAME>"
)
)

;999公共函数
;;dxf获取图元某个dxf组码(内参不限种类顺序::: n ent )
(defun dxf( n ent / temp tmp )
(if (/= (type n) 'int)
(setq tempent
    ent n
    ntemp
)
)
(if (= (type ent) 'ENAME)
(setq temp (entget ent))
(setq temp ent)
)
(cond
((= n 62) (if (setq tmp (assoc n temp))(cdr tmp)256))    ;;颜色
;;;;;;((= n 6 ) (if (setq tmp (assoc n temp))(cdr tmp)"BYLAYER"));;线型
;;;;;;((= n 48) (if (setq tmp (assoc n temp))(cdr tmp)(getvar "celtscale")));;线型比例
( T (cdr (assoc n temp)))
)
)

masterlong 发表于 2024-10-26 23:27:08

本帖最后由 masterlong 于 2024-10-28 09:44 编辑

很简单的小程序
频繁修改且需要留痕时
还算方便



所谓暗藏是将图元dxf60设为1
这种方式实现的不可见
与图层的关闭冻结是不一样的
它与图层状态无关

我在画图过程中
图层冻结解冻关闭显示等等
这些操作比较频繁
所以“绝对不可见”对我比较重要

具体实现步骤
获取图元的图层
图层名添加特定前缀
新建特定图层
图元转换至该特定图层
设定不可见

这样处理的目的
主要是便于后期管理
因为甲方本身有多个部门
各自有不同的需求
有些要求修改圈云线
有些又觉得图面不整洁
dwg冻结关闭了图层发给他吧
保不齐他解冻打开图层
别说没这种可能
这种人是少但我就真见过


另外提醒一点
find命令里有个选项
是针对不可见图元的
按需设置好了


Leolaputa 发表于 2024-10-28 10:59:19

有一定的应用场景,能否与图层隔离一起使用,这样就有两套图层隔离可以用了。

huisguiji 发表于 2024-10-27 08:30:45

这个功能和图层的冻结功能是一个作用吗?

wangsr 发表于 2024-10-27 07:04:36

谢谢分享。

paulpipi 发表于 2024-10-27 07:42:47

感谢无私分享,试用一下,谢谢

moranyuyan 发表于 2024-10-27 09:31:55

这个与自带的隐藏有什么不同之处

zkq1212 发表于 2024-10-27 09:41:22

谢谢分享。

oistre 发表于 2024-10-27 12:22:03


谢谢分享。

moranyuyan 发表于 2024-10-27 13:26:46

没有搞明白这个怎么用

不一样地设计 发表于 2024-10-27 14:37:19


谢谢分享!!
页: [1] 2 3
查看完整版本: 发个暗藏图元的小工具