defun c:DoLayers(/MkLay LtLoad cm)
(vl load com)
(setq-cm(getvar-CMDECHO”))
(setvar“CMDECHO”0)
(vl cmdf“-purge”“\u LA”“*”“\u N”)
(setq*doc*(vla get ActiveDocument(vlax get acad object)))
(定义MkLay(Nme Col lTyp lWgt Plt/lay)
(setq lay(vla add(vla get layers*doc*)Nme))
(和Col(vla put Color lay Col))
(和lTyp(lTload lTyp)(vla put线型lay lTyp))
(和lWgt(vla put线宽铺设(eval(读取(strcat“acLnWt”lWgt)))
(和(非Plt)(vla put PLOTABLE lay:vlax false)))
(defun lTload(lTyp)
(或(tblsearch“LTYPE”lTyp)
(vla负载(vla get Linetypes*doc*)lTyp“acad.lin”))t)
(mapcar’MkLay)
“(CEN”“DIMS”“HAT”“HID”“LOGO”“OBJ”“PAPER”“PHAN”“TITLE”“TXT”);名称
'( 6 1 3 4 176 2 5 6 176 7); 颜色
'(“CENTER”nil nil“HIDDEN”nil nil“PHANTOM”“PHANTOM”nil nil);线型
'(“018”“018”“018”“015”“009”“040”nil“018”nil nil);线宽0.18=“018”
'(T T T nil T T T));可绘图(T或nil)
(setvar“CMDECHO”cm)
(普林斯) 在我看来,你错过了第一个括号。。。 嗨,李,我们非常感谢你的善意回应,
感谢上帝,图层现在可以工作了,但如果有一个选项可以在批处理图形中工作,那就太好了。无论如何非常感谢你,不要累了来帮我!!
没问题
你可以用脚本来调用它-
类似于:
open "C:/Users/Lee Mac/Documents/Drawing1.dwg" (c:DoLayers) save close
open ...
Otil,研究一个称为多批次的程序:http://www.multi-batch.com/
使autocad文件的批处理变得简单。 我试图这样做,但错误似乎是无效的文件名
我更新了上面的帖子,我认为我使用双反斜杠是错误的。 打开“C:/Users/Lee Mac/My Documents/SC-27-A3J-0-00211-0002.dwg”(C:DoLayers)保存关闭
打开
我再次尝试测试这个scr到一个图形(见上面的脚本)错误消息:
“找不到指定的图形文件。
请验证文件名是否存在“
那剧本有什么问题。
P
好吧,看看你正在使用的文件路径,你告诉我:wink: 我通过创建一个包含所有所需图层的模板dwg文件来解决这个问题。然后,我打开/关闭我想要作为图层状态最终查看的图层,并将其导出到文件中。然后,我运行多批处理软件,调用ootb的“插入层状态”例程。效果很好。该例程插入了最初不在我的文件中的图层,并在每个图形中打开/关闭它们。
页:
1
[2]