明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4679|回复: 9

用LISP程序如何打开一个DWG文件?

  [复制链接]
发表于 2007-6-11 21:23:00 | 显示全部楼层 |阅读模式
比如我想用LISP程序打开D:\123\123.dwg
用如下语句为何打不开呢?
(command "open" "d:\\123\\123.dwg")
请高手点解?
发表于 2007-6-11 23:05:00 | 显示全部楼层
可以用"._open"试试
 楼主| 发表于 2007-6-11 23:16:00 | 显示全部楼层

试了

不行啊!!

发表于 2007-6-11 23:35:00 | 显示全部楼层
说说现象
发表于 2007-6-12 08:31:00 | 显示全部楼层

试试下面的程序。

(setq FILE (open "c:\\open.scr" "w"))
(write-line "OPEN" FILE)
(write-line "d:\\123\\123.dwg" FILE)
(close FILE)
(command "script" "c:\\open.scr")

发表于 2007-6-12 09:32:00 | 显示全部楼层
  1. http://www.xdcad.net/forum/showthread.php?s=&threadid=189
复制代码
  1. 首先,在ACAD2000以上版本,当系统变量SDI=1的时候,用法和R14.01是一样的,调用命令OPEN即可。
  2. 但是,当系统变量SDI=0时候(使用多文档),VLISP不能调用OPEN,NEW命令,原因是:当执行OPEN命令时候,ACAD内部创建一个新的文档,LISP在执行一个表达式,但这个执行的表达式是在旧的文档,而不是新的文档上。
  3. 要解决这个问题,可以使用AUTOCAD的ActiveX接口,下面的代码OPEN一个新文档(它工作在新的文档上,但是当图形一加载后,AUTOCAD会转换到以前的旧文档上,
  4. (vl-load-com)
  5. (defun c:vlopen ()
  6. (setq acadApp (vlax-get-acad-object)
  7. acadDocs (vla-get-documents acadApp)
  8. )
  9. (vla-open acadDocs "e:/dwg/drawing.dwg")
  10. )  
发表于 2007-6-12 23:34:00 | 显示全部楼层
可以用VB编个程序打开一个新图形文件,并加载一个LISP文件进那个打开的图形中。这个程序可以在CAD下调用。呵……有点麻烦。
发表于 2007-6-14 11:00:00 | 显示全部楼层

sdi=1时(command "open"...)

sdi-0时(vla-open ...)

发表于 2011-11-9 14:32:32 | 显示全部楼层
总算找个解决方案,虽然open命令不这么完美
发表于 2016-1-1 15:55:23 | 显示全部楼层
tcsl9621 发表于 2007-6-12 23:34
可以用VB编个程序打开一个新图形文件,并加载一个LISP文件进那个打开的图形中。这个程序可以在CAD下调用。呵 ...

求qq,有个问题想请教下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-16 14:43 , Processed in 0.198796 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表