在*.SCR脚本程序中使用-Layer命令的问题。
问题比较长,感谢有耐心看完的朋友,更感谢帮忙的朋友。目标,要编写一段Autolisp程序自动生成并执行一个*.SCR程序,一一打开一系列的AutoCAD图纸,关闭某些图层。
注:DWGLIST和OffLayerList由主程序生成,测试没有问题。
问题出在-Layer这个命令上。该命令执行完一次图层操作之后就自动重复。即使我在命令末尾加入一个空格也无效。
如果我在(command "-layer" "off" "图层名“ ” ”)之后再加一个空格则自动重复之前的命令。
如果我在(command "-layer" "off" "图层名“ ” ”)之后加入一个(command)则完全跳出Script。
求高人指点该怎么写这段程序。
万分感谢!!!
(defun MAKE_SCRIPT (DWGLIST OffLayerList
/ DWGNAME
FP
OffLayerName
)
(setq FP (open "C:\\×××.SCR" "w"))
(write-line ".ZOOM" FP)
(write-line "E" FP)
(foreach DWGNAME DWGLIST
(write-line ".OPEN" FP)
(write-line DWGNAME FP)
(write-line ".ZOOM" FP)
(write-line "E" FP)
(Foreach OffLayerName OffLayerList
(write-line (strcat "(command \"-Layer\" \"off\" \"" OffLayerName "\" \" \")") FP)
);;end Foreach
(write-line ".CLOSE" FP)
(write-line "Y" FP)
)
(write-line ".DEL" FP)
(write-line "C:\\×××.SCR" FP)
(close FP)
);;end MAKE_SCRIPT
Script 内 直接用 Layer 命令取代 Call Command
另 楼主使用的 CAD version? 感谢回复
我试试layer
AutoCAD2014
其他版本有不同设置吗? maeofasu 发表于 2013-9-6 10:55 static/image/common/back.gif
感谢回复
我试试layer
如果用这个(write-line (strcat "Layer off " OffLayerName " ") FP)语句,.SCR完全不执行layer命令。
如果用这个(write-line (strcat "Layer off " OffLayerName "") FP)语句,多一个空格,也不行。 尚未启用 2014 的版本 ...
SCR
...
Layer off
OffLayerName ;<===Write-line
... 上留空白列 (= enter 键)
请自行调试 Andyhon 发表于 2013-9-6 11:42 static/image/common/back.gif
尚未启用 2014 的版本 ...
SCR
不能用
OffLayerName后面如果留一个空格就不执行,两个空格就重复前面的layer命令了
各种方法都是这样的结果。
请问有没有其他的方式终结layer命令的循环? 可否上传 ×××.SCR 献丑了。
附上粗制滥造的程序,麻烦解答一下。
目前输入界面工作正常。
是否有一种可能...
关闭现用图层(Clayer)...
另 Layer接受
"1,2,A,C*" 的万用字元格式
(详情请查 WcMatch 函数)
(又 请参考 Expert 这个系统变量) 不太理解关闭现用图层的目的?
layer命令接受万用字元格式,但是执行完一次之后仍然是处在layer命令中,还是跳不出来啊。。。
Expert变量应该是屏蔽一些确认性的输入吧。layer命令是重复执行,应该跟expert无关吧。不过我可以试试。
整个程序就是要在输入界面读入一串带有+XXXX格式的代码,然后把每个加号及加号后面的字符分离出来作为一个图层的名字,然后逐一打开一系列图纸,把所有带加号的图层关闭,再把之前代码读入的+XXXX图层打开。
现在的问题是执行完一串layer命令后跳不出来。一旦跳出就直接退出script,需要用resume命令继续执行。这样太难看了。。。
页:
[1]
2