999999 发表于 2020-9-18 15:53:59

(求助)源码 如何把以下框选解锁的图层改成固定图层解锁其它锁定

本帖最后由 999999 于 2020-11-20 20:42 编辑

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=100432&highlight=%BD%E2%CB%F8 以上是原贴,,因为我这边有固定的加载图层,想实现一键解锁除:layer1    layer2   layer3   ...   外的其它图层全部锁定
图层名这里没有打全,希望有大神出手帮忙修改解决一下,我之后再加上去,代码如下:
(defun c:uk(/ x)
(setvar "CMDECHO" 0)
(command "layer" "Lo" "*" "")
(if (progn (princ "\nSelect Layer to be unlocked:")
            (setq ss (ssget))) (progn
(setq n 0)
(repeat (sslength ss)
   (setq ln (cdr(assoc 8 (entget(ssname ss n))))
         n (1+ n))
   (command "layer" "unlock" ln "")
)
))
(setvar "CMDECHO" 1)
(princ "\n仅解锁选定图元所在图层,锁住其他图层")
(princ )
)


先谢谢大神们的热心帮助

Andyhon 发表于 2020-9-18 15:54:00

(defun c:uk(/ ln)
(setvar "CMDECHO" 0)
(setq ln "layer1,layer2,layer3")
(command "layer" "Lo" "*" "unlock" ln "")
(setvar "CMDECHO" 1)
(princ )
)

999999 发表于 2020-9-18 19:54:47

Andyhon 发表于 2020-9-18 15:54
(defun c:uk(/ ln)
(setvar "CMDECHO" 0)
(setq ln "layer1,layer2,layer3")


谢谢大神的热心帮忙,谢谢

xj6019 发表于 2020-9-18 21:57:45


以下几个代码配合使用,效果很好,我一直这样从一份大图里面摘取自己需要的某些图层的东西。


(defun c:GTT(/ q);选择一个或几个图层对象,将之外其他所有图层锁定,锁定的图层暗色显示,凸显不锁定图层图元
(COMMAND "LAYISO" "S" "L" "80")
(princ)

)




(DEFUN C:FC ()(COMMAND"LAYULK" )) ;解锁指定图层


(DEFUN C:FCC ()(COMMAND "-layer""u""*""")(COMMAND "REGEN")) ;所有圖層解鎖

像你的情况,可以把常用的几个图层每个图层画一条线,一组平行线放一起,用的时候命令GTT框选这组平行线,回车,看看效果,应该感觉会不错的。
如果想临时再解锁几个图层,就用FC选择性的挑选个图元点一下。
用完后FCC,一次全部都解锁。
这几个代码搭配使用,我目前感觉还是比较完美的,不知道别人是怎么玩的高级玩法。唯一的缺陷是,遇到非常大的cad文件的时候,会有点运行迟缓。
不过功能方面感觉挺好的,一直也没找到按照这个模式,速度很快的方式。

999999 发表于 2020-9-18 22:31:01

xj6019 发表于 2020-9-18 21:57
以下几个代码配合使用,效果很好,我一直这样从一份大图里面摘取自己需要的某些图层的东西。




谢谢你哟,GTT的那个功能好像不适合07的CAD,不知道是不是没有那个功能,后面的还可以哟,07的操作图层还是比较快的,最怕的就是很高版本画图了,操作图层真的很卡   然后我想问一下,像解锁指定图层这样的能不能实现框选呀

zj20190405 发表于 2020-9-19 11:27:36

xj6019 发表于 2020-9-18 21:57
以下几个代码配合使用,效果很好,我一直这样从一份大图里面摘取自己需要的某些图层的东西。




大佬真的牛逼

zj20190405 发表于 2020-9-19 12:46:53

xj6019 发表于 2020-9-18 21:57
以下几个代码配合使用,效果很好,我一直这样从一份大图里面摘取自己需要的某些图层的东西。




大佬请问下,我执行你的代码,选择锁定图层了,但是我想再执行拉伸,如何做呢,(c:sss)

zj20190405 发表于 2020-9-19 12:49:59

xj6019 发表于 2020-9-18 21:57
以下几个代码配合使用,效果很好,我一直这样从一份大图里面摘取自己需要的某些图层的东西。




执行了之后就结束了,我试着调用其他命令,调用不了

xj6019 发表于 2020-9-19 13:09:53

zj20190405 发表于 2020-9-19 12:46
大佬请问下,我执行你的代码,选择锁定图层了,但是我想再执行拉伸,如何做呢,(c:sss)

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=181607&highlight=%C0%AD%C9%EC

拉伸参照这个链接的拉伸代码,非常好

xj6019 发表于 2020-9-19 13:11:42

zj20190405 发表于 2020-9-19 12:49
执行了之后就结束了,我试着调用其他命令,调用不了

应该不会呀,不影响什么的,重新加载你的代码再试试
页: [1] 2
查看完整版本: (求助)源码 如何把以下框选解锁的图层改成固定图层解锁其它锁定