用LISP程序如何打开一个DWG文件?
比如我想用LISP程序打开D:\123\123.dwg<br/>用如下语句为何打不开呢?<br/>(command "open" "d:\\123\\123.dwg")<br/>请高手点解? 可以用"._open"试试 <p>试了</p><p>不行啊!!</p> 说说现象 <p>试试下面的程序。</p><p>(setq FILE (open "c:\\open.scr" "w"))<br/>(write-line "OPEN" FILE)<br/>(write-line "d:\\123\\123.dwg" FILE)<br/>(close FILE)<br/>(command "script" "c:\\open.scr")</p> http://www.xdcad.net/forum/showthread.php?s=&threadid=189首先,在ACAD2000以上版本,当系统变量SDI=1的时候,用法和R14.01是一样的,调用命令OPEN即可。但是,当系统变量SDI=0时候(使用多文档),VLISP不能调用OPEN,NEW命令,原因是:当执行OPEN命令时候,ACAD内部创建一个新的文档,LISP在执行一个表达式,但这个执行的表达式是在旧的文档,而不是新的文档上。
要解决这个问题,可以使用AUTOCAD的ActiveX接口,下面的代码OPEN一个新文档(它工作在新的文档上,但是当图形一加载后,AUTOCAD会转换到以前的旧文档上,
(vl-load-com)
(defun c:vlopen ()
(setq acadApp (vlax-get-acad-object)
acadDocs (vla-get-documents acadApp)
)
(vla-open acadDocs "e:/dwg/drawing.dwg")
)
可以用VB编个程序打开一个新图形文件,并加载一个LISP文件进那个打开的图形中。这个程序可以在CAD下调用。呵……有点麻烦。 <p>sdi=1时(command "open"...)</p><p>sdi-0时(vla-open ...)</p> 总算找个解决方案,虽然open命令不这么完美 tcsl9621 发表于 2007-6-12 23:34 static/image/common/back.gif
可以用VB编个程序打开一个新图形文件,并加载一个LISP文件进那个打开的图形中。这个程序可以在CAD下调用。呵 ...
求qq,有个问题想请教下
页:
[1]
2