【加入刷新功能】图层全开、全解锁、解冻及全恢复
本帖最后由 lml2023 于 2023-9-13 10:17 编辑这是个老程序,来自于:http://bbs.mjtd.com/forum.php?mod=viewthread&tid=109829&highlight=%CD%BC%B2%E3%C8%AB&_dsign=85ce996e
这个程序本身写得不错,但是有个缺点,就是全部解锁还是淡显;如果RE一下就可以变亮;但是恢复锁定还是亮显,明显缺少了一个regon的刷新动作,我这里稍微改一下就可以实现
;;35-图层3个全部3X,图层再次恢复4X
(Defun STB(TAB / snl sll)
(SetQ snl '()sll (TblNext TAB T))
(While (SetQ snl (Cons (Cdr (Assoc 2 sll)) snl)sll (TblNext TAB nil)))
(vl-sort snl '<))
(defun c:3X();图层全开、解锁、解冻
(princ "\n****图层全开、解锁、解冻,3个全部,程序加了自动RE****")
(foreach x (setq *laystatus(mapcar'(lambda(x)(entget(TBLOBJNAME"layer"x)))(stb"layer")))
(entmod(subst(cons 62 (abs(cdr(assoc 62 x))))(assoc 62 x)(subst'(70 . 0)(assoc 70 x)x))))(command-S "regen" ));天神,,,加入regen刷新命令
(defun c:4X();;恢复图层
(princ "\n****恢复图层,恢复全开之前状态****")
(foreach x *laystatus
(entmod x))
(setq *laystatus nil)(command-S "regen" ));天神,,,加入regen刷新命令
本帖最后由 e2002 于 2023-9-13 10:34 编辑
不需要调用 regen 命令,也是可以实现和内置命令同样的暗显与恢复效果的。
这里有个需要注意的点: system variable :LAYLOCKFADECTL 。
代码中要加一下判断 AutoCAD 版本,因为早期版本是没有这个 lock fade 效果的。
e2002 发表于 2023-9-13 10:31
不需要调用 regen 命令,也是可以实现和内置命令同样的暗显与恢复效果的。
这里有个需要注意的点: system...
好的,谢谢 ekinwp 发表于 2023-9-14 08:11
不知道为什么提示未定义command-S
手动改一下 谢谢分享源码。 谢谢分享源码 谢谢分享源码 不知道为什么提示未定义command-S 不过去掉-s后完美可以使用了 ekinwp 发表于 2023-9-14 08:12
不过去掉-s后完美可以使用了
手动改一下
页:
[1]
2