wyl219 发表于 2019-10-23 11:24:10

664571221 发表于 2019-10-23 11:11
你好大神,能否加一个功能,就是能够返回恢复原来全部图层打开的状态

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

BUBUBA918 发表于 2019-10-23 11:43:06

如果有多个关键字,如何设定

dakui 发表于 2019-10-23 12:15:19

BUBUBA918 发表于 2019-10-23 11:43
如果有多个关键字,如何设定

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

664571221 发表于 2019-10-23 14:13:41

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

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

wyl219 发表于 2019-10-23 16:06:49

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_savenil 5)       
                                (layerstate-delete name_save 255 nil);删除该图层状态,如果不需要删除把这行注释掉
                        )
                (alert (strcat "\n不存在" name_save "图层状态,无法恢复."))
        )
        (princ)
)

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

BUBUBA918 发表于 2019-10-24 10:22:55

(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

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

664571221 发表于 2019-10-24 10:52:40

BUBUBA918 发表于 2019-10-24 10:22
(setq UserWord "dsptext_beam,dsptext_col,dsptext_wallcol,dsptext_planname")
(setq t0 (* 86400 (getv ...

你这个是什么????

664571221 发表于 2019-10-24 10:53:08

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


大神你好,能否直接改到程序里,因为小弟不懂程序,所有麻烦了
页: 1 [2]
查看完整版本: 打开含有关键字的图层,对块不好用