明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: dakui

[提问] 打开含有关键字的图层,对块不好用

[复制链接]
发表于 2019-10-23 11:24 | 显示全部楼层
664571221 发表于 2019-10-23 11:11
你好大神,能否加一个功能,就是能够返回恢复原来全部图层打开的状态

用layerstate-save函数在运行前保存当前图层状态,之后在恰当的时候用layerstate-restore函数恢复图层状态.也可以直接由用户通过图层状态管理器手动恢复.
layerstate-save不能覆盖以有图层状态,需要先把同名图层状态删除.
回复

使用道具 举报

发表于 2019-10-23 11:43 | 显示全部楼层
如果有多个关键字,如何设定
回复

使用道具 举报

 楼主| 发表于 2019-10-23 12:15 | 显示全部楼层
BUBUBA918 发表于 2019-10-23 11:43
如果有多个关键字,如何设定

(setq UserWord "*ANA*") 可以任意修改  (setq UserWord "*ANA*,*CCC*,*DDD*") 用逗号隔开
回复

使用道具 举报

发表于 2019-10-23 14:13 | 显示全部楼层
wyl219 发表于 2019-10-23 11:24
用layerstate-save函数在运行前保存当前图层状态,之后在恰当的时候用layerstate-restore函数恢复图层状态 ...

大神我不太懂函数,你可以弄一个吗谢谢大神了
回复

使用道具 举报

发表于 2019-10-23 16:06 | 显示全部楼层
664571221 发表于 2019-10-23 14:13
大神我不太懂函数,你可以弄一个吗谢谢大神了

;|
说明:保存现在的图层状态,如果当前已有该图层状态时,覆盖.
参数:lst_name:图层状态名,str
返回值:无
|;
(defun wyl:layerstate_save ( name_save / )
                        (if (layerstate-has name_save );如果存在这个图层状态
                                (layerstate-delete name_save 255 nil));删除该图层状态
                        (layerstate-save name_save 255 nil);save不能覆盖
        (princ)
)

;|
说明:恢复并删除某个现在的图层状态,如果当前没有某个图层状态时,弹窗提示.
参数:name_save:str
返回值:无
|;
(defun wyl:layerstate_restore( name_save / )
       
        (if (layerstate-has name_save );如果存在这个图层状态
                (progn
                (layerstate-restore name_save  nil 5)       
                                (layerstate-delete name_save 255 nil);删除该图层状态,如果不需要删除把这行注释掉
                        )
                (alert (strcat "\n不存在" name_save "图层状态,无法恢复."))
        )
        (princ)
)

需要保存图层状态的时候用wyl:layerstate_save函数,需要恢复的时候用wyl:layerstate_restore函数.
没有对传入参数进行判断,使用的时候注意参数是否正确
回复

使用道具 举报

发表于 2019-10-24 10:22 | 显示全部楼层
(setq UserWord "dsptext_beam,dsptext_col,dsptext_wallcol,dsptext_planname")
(setq t0 (* 86400 (getvar "tdusrtimer")))
  (vlax-for vlay LayersObj
    (if (wcmatch (vla-get-Name vlay) UserWord)
      (vla-put-layeron vlay :vlax-false)
      (vla-put-layeron vlay :vlax-true)
    )
  );end vlax-for

能否做到循环开关指定图层?
回复

使用道具 举报

发表于 2019-10-24 10:52 | 显示全部楼层
BUBUBA918 发表于 2019-10-24 10:22
(setq UserWord "dsptext_beam,dsptext_col,dsptext_wallcol,dsptext_planname")
(setq t0 (* 86400 (getv ...

你这个是什么????
回复

使用道具 举报

发表于 2019-10-24 10:53 | 显示全部楼层
wyl219 发表于 2019-10-23 16:06
;|
说明:保存现在的图层状态,如果当前已有该图层状态时,覆盖.
参数:lst_name:图层状态名,str

大神你好,能否直接改到程序里,因为小弟不懂程序,所有麻烦了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-21 15:17 , Processed in 0.209258 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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