明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5129|回复: 15

[求助]LISP调用打开(OPEN)命令的问题(已解决)

  [复制链接]
发表于 2009-5-20 14:31:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2009-5-26 8:56:50 编辑

本人是个新手,今天在用LISP调用内部的OPEN命令时出了个问题,请各位指教!

代码:(defun c:FA () (initdia) (command "OPEN"))

输入FA命令后,CAD没有反应,也没有弹出“打开文件”对话框,请问是什么原因?怎么用LISP运行OPEN命令呢?

PS:答案在14楼,谢谢无敌兄!

发表于 2009-5-20 20:24:00 | 显示全部楼层
(defun c:FA ()
 (setvar "sdi" 1)
 (command "_OPEN")
)
 楼主| 发表于 2009-5-21 08:39:00 | 显示全部楼层
azjmjsj发表于2009-5-20 20:24:00(defun c:FA () (setvar \"sdi\" 1) (command \"_OPEN\"))

谢谢了!楼上的不能弹出对话框,我把命令改了下:

(defun c:FA ()

 (initdia)

 (setvar "sdi" 1)

 (command "_OPEN")

)

 楼主| 发表于 2009-5-21 09:20:00 | 显示全部楼层
wangfq332发表于2009-5-21 8:39:00谢谢了!楼上的不能弹出对话框,我把命令改了下:(defun c:FA () (initdia) (setvar \"sdi\" 1) (command \"_OPEN\"))

试用了下,虽然“选择文件”对话框出来了,但是(1)打开文件是在当前窗口打开,而不是在新的窗口打开(2)无法关闭窗口,在“文件”-“关闭”按钮下提示“命令 CLOSE 不能在 SDI 模式下使用”,故把命令改为:

(defun c:FA ()

 (initdia)

 (setvar "sdi" 1)

 (command "_OPEN")

 (setvar "sdi" 0)

)

可以解决问题(2),但是还是不能解决问题(1),还请继续指教!

 楼主| 发表于 2009-5-23 11:42:00 | 显示全部楼层
没人知道的吗?
发表于 2009-5-24 08:48:00 | 显示全部楼层
由于LISP不能跨文档运行,所以只能在单文档模式下打开文件,也就是能在当前的文档下打开了,如果要运行多文档打开,可能还得用VBA,我试了试在VL下用VL-OPEN,虽然可以打开,但打开后CAD就死了。
发表于 2009-5-24 11:29:00 | 显示全部楼层
(setq newdoc (vla-open (vla-get-documents (vlax-get-acad-object)) filename))
发表于 2009-5-24 15:11:00 | 显示全部楼层

楼上的试过没有,我用vla-open在2004下一打开,cad就死了

发表于 2009-5-24 16:23:00 | 显示全部楼层

我在2006下用过,这是我程序里的一个语句。(批量修改文件。)

发表于 2009-5-24 21:06:00 | 显示全部楼层
那就不知道是怎么回事了,(setq newdoc (vla-open (vla-get-documents (vlax-get-acad-object)) "d:\\ttt.dwg"))这句我在2004和2007下都试了一下(我没有2006),还是不行,提示要输入宏名,一按取消,CAD就不再有反应。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-29 18:19 , Processed in 0.208043 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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