ForYang 发表于 2019-9-12 15:37:46

在指定图形文件创建图层

请教大佬如何利用autolisp在指定的图形文件创建图层,如在drawing.dwg中创建图层test?

669423907 发表于 2019-9-12 15:37:47

(if (wcmatch (getvar'dwgname) "Drawing*") ;判断当前文档名字
(progn
;这里写要执行的代码
)
)

Andyhon 发表于 2019-9-12 16:48:53

...在指定的图形文件创建图层...

该文件是已开启?未开启?
非现用图形文件缘何需创建图层!?

ForYang 发表于 2019-9-12 17:29:19

Andyhon 发表于 2019-9-12 16:48
...在指定的图形文件创建图层...

该文件是已开启?未开启?


是这样的,我需要新建一个图形文件,然后在这个图形文件里面创建图层,并绘图。整个过程就是利用autolisp命令创建图形文件,再在这个图形文件里面画图,并保存。

Andyhon 发表于 2019-9-12 18:57:59

您不妨探讨古老的脚本(Script)用法...

但为何不是直接开图然后调用程序!?
有特殊需求?

ForYang 发表于 2019-9-13 15:41:22

Andyhon 发表于 2019-9-12 18:57
您不妨探讨古老的脚本(Script)用法...

但为何不是直接开图然后调用程序!?


是的,我是在已有图形文件中处理数据然后画图,直接把图画在原图形文件中比较凌乱,虽然也可以新建图层,但是整体比较混乱,所以尝试将结果图绘制在新的图形文件中。

caoyin 发表于 2019-9-15 00:40:39

(defun DWG-addLayer (/ DwgName LayName LayObj)
(setq dwgname "d:\\桌面\\Drawing1.dwg" LayName "TEST");;文件名自己修改
(setq DBXDoc (Vlax-Get-Or-Create-Object
               (strcat "ObjectDBX.AxDbDocument." (substr (getvar "AcadVer") 1 2))
             )
)
(vla-open DBXDoc DwgName)
(setq LayObj (vla-add (vla-get-layers DBXDoc) LayName))
(vla-put-color LayObj 1)
(vla-saveas DBXDoc DwgName)
(vlax-release-object DBXDoc)
(vlax-release-object Layobj)
)

ForYang 发表于 2019-9-15 10:57:40

caoyin 发表于 2019-9-15 00:40
(defun DWG-addLayer (/ DwgName LayName LayObj)
(setq dwgname "d:\\桌面\\Drawing1.dwg" LayName "TEST ...

谢谢你的回复
页: [1]
查看完整版本: 在指定图形文件创建图层