明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2241|回复: 12

[提问] 求助大神 大型图纸解锁锁定某一图层速度太慢,如何加快

[复制链接]
发表于 2019-1-8 09:06:16 | 显示全部楼层 |阅读模式
本帖最后由 fs_lzh1988 于 2019-1-9 16:08 编辑

请教各位大神们,因为工作需要我要经常锁定和重新解锁0层了,因此编了以下程序,但是图纸很大的时候经常会卡一秒再反应过了,感觉很影响效率了,请问有什么方法解决呢,用val可以加快吗,请教方法了。

;;说明:解锁定0层
(defun c:f1()
        (setq cmd (getvar "cmdecho"))
        (setvar "cmdecho" 0)
        (command "-layer" "u" "0" "")
        (setvar "cmdecho" cmd)
        (princ)
)
--------------------
;;说明:锁定0层
(defun c:f2()
        (setq cmd (getvar "cmdecho"))
        (setvar "cmdecho" 0)
        (command "-layer" "lo" "0" "")
        (setvar "cmdecho" cmd)
        (princ)
)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2019-1-10 00:16:51 | 显示全部楼层
我觉得一两秒钟对来来说也没这么大的影响吧

试一下这个
(defun c:f3( / Doc Lays Lay)
  (setq Doc (vla-get-activedocument (vlax-get-acad-object)))
  (setq Lays (vla-get-layers Doc))
  (setq Lay (vla-item Lays "0"))
  (vla-put-lock Lay :vlax-true)
  )

(defun c:f4( / Doc Lays Lay)
  (setq Doc (vla-get-activedocument (vlax-get-acad-object)))
  (setq Lays (vla-get-layers Doc))
  (setq Lay (vla-item Lays "0"))
  (vla-put-lock Lay :vlax-false)
  )
回复 支持 1 反对 0

使用道具 举报

发表于 2024-4-28 17:01:18 | 显示全部楼层
fs_lzh1988 发表于 2019-1-11 10:25
guohq大神,再请教个问题,如果我想锁定或解锁多个图层,我查了vla-item后面是字符串,然后试了(setq Lay ...

        (command "-layer" "lo" "图层1" "")
        (command "-layer" "lo" "图层2" "")
..........无限加
发表于 2019-1-8 23:22:40 | 显示全部楼层
什么叫大型图纸?我测试没有卡顿的感觉。最好把你的图纸上传一下。
 楼主| 发表于 2019-1-9 16:09:49 | 显示全部楼层
guohq 发表于 2019-1-8 23:22
什么叫大型图纸?我测试没有卡顿的感觉。最好把你的图纸上传一下。

也不是很大的图纸,但就是不明白为什么输入命令后会停顿一下再反应了,麻烦大神看看能否解决哈
 楼主| 发表于 2019-1-10 10:20:12 | 显示全部楼层
guohq 发表于 2019-1-10 00:16
我觉得一两秒钟对来来说也没这么大的影响吧

试一下这个

研究了很久都不太懂vla,这个函数太实用了,太感谢你了,对我来说可以提高很多效率哈
发表于 2019-1-10 10:40:22 | 显示全部楼层
发表于 2019-1-10 14:31:15 | 显示全部楼层
vla类函数跟VBA是一样的,下载一个这个 http://bbs.mjtd.com/thread-67639-1-1.html
 楼主| 发表于 2019-1-10 20:00:39 | 显示全部楼层
Andyhon 发表于 2019-1-10 10:40
Ref Link:
https://www.afralisp.net/visual-lisp/tutorials/visual-lisp-and-layers.php

说得很详细很形象哈,可惜是英文,看得太费劲了
 楼主| 发表于 2019-1-10 22:32:59 | 显示全部楼层
guohq 发表于 2019-1-10 14:31
vla类函数跟VBA是一样的,下载一个这个 http://bbs.mjtd.com/thread-67639-1-1.html

我下载看看,谢谢了
 楼主| 发表于 2019-1-11 10:25:19 | 显示全部楼层
guohq 发表于 2019-1-10 14:31
vla类函数跟VBA是一样的,下载一个这个 http://bbs.mjtd.com/thread-67639-1-1.html

guohq大神,再请教个问题,如果我想锁定或解锁多个图层,我查了vla-item后面是字符串,然后试了(setq Lay (vla-item Lays (strcat "图层1" "图层2" "图层3"))),结果运行不成功,应该怎么处理呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 17:49 , Processed in 0.168749 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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