Lee Mac 发表于 2022-7-6 15:17:57

您可以制作自己的LISP来调用子函数,并根据需要调用它:
 

(defun frzlay (lay / doc lyr)
(vlax-for doc (vla-get-Documents
               (vlax-get-acad-object))
   (and (setq lyr (vla-item (vla-get-layers doc) lay))
      (vla-put-freeze lyr :vlax-true)))
(princ))

(defun c:whatever ()
(frzlay "UTILITY BASE/C-ELEC-LIN")
(princ))

CadTechJGC184 发表于 2022-7-6 15:20:29

哦,那我把“frzlay”保存成什么??

CadTechJGC184 发表于 2022-7-6 15:24:18

(定义c:frzlay(lay/doc lyr)
(vlax表示文档(vla get Documents
(vlax get acad对象)
(和(setq lyr(vla item(vla get layers doc)lay))
(vla put freeze lyr:vlax true)))
(普林斯)
 
(defun c:随便()
(frzlay“公用事业基础/C-ELEC-LIN”)
(普林斯)
 
 
这是正确的吗?我有点迷路了。

Lee Mac 发表于 2022-7-6 15:29:37

frzlay是一个子函数(没有“c:”),需要从主函数(可以随意命名,但与子函数不同)用一个参数(层字符串)调用。
 
保存LISPs时,文件名可以是您喜欢的任何名称,而不必是语法名称。
 
我一直在与RonJonp交谈,他提供了一种更好的方法来应对不存在的层次:
 
另存为文件名。lsp,打开所有图形并用“test”调用

CadTechJGC184 发表于 2022-7-6 15:31:19

我打开3只是为了测试,我输入了frzlay,因为我把它命名为c:frzlay而不是c:test,层仍然解冻。

ronjonp 发表于 2022-7-6 15:34:00

提供的层名称无效:UTILITY BASE/C-ELEC-LIN

Lee Mac 发表于 2022-7-6 15:39:19

 
此外,不要将其命名为与子函数相同的名称

Lee Mac 发表于 2022-7-6 15:41:19

 
 
没有注意到那一个,罗恩,很好
页: 1 [2]
查看完整版本: 如何关闭一层I