明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3456|回复: 7

如何解决在AutoCAD2008中(vla-Close DwgDoc)无法关闭文件的问题

[复制链接]
发表于 2012-3-12 16:27 | 显示全部楼层 |阅读模式
问题一:
;下面的为什么错误?; 错误: 语法错误
(mapcar 'setq '(a b) (1 2))

问题二:
下面的代码在AutoCAD2008中打开DwgDoc后,用(vla-Close DwgDoc)无法关闭,提示“Automation 错误。 图形忙。”,
而在AutoCAD2010中却可以关闭。如何解决在AutoCAD2008中无法关闭文件的问题?
(setq DwgDoc (vla-Open (vla-get-Documents (vlax-get-acad-object)) (getfiled "请选择要要去除教育版打印戳记的文件" "" "dwg" 4)))
(vla-Close DwgDoc)

如果判断(vla-Close DwgDoc)是否成功关闭文件呢?

我用调用vba的关闭功能可能关闭文件,但2010以上有的机器没安装vba,这样不通用,能不能利用系统ActiveX 和脚本技术的功能关闭文件呢?



该贴已经同步到 namezg的微博
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-3-12 19:25 | 显示全部楼层
路过。。。
发表于 2012-3-12 19:25 | 显示全部楼层
(mapcar 'set '(a b) '(1 25))
发表于 2012-3-12 19:47 | 显示全部楼层
如果DwgDoc是活动文档,那么在当前文档中关闭当前文档,就会出现你这样的错误:图形忙
至于2010能关闭,我就不清楚了,没用过
 楼主| 发表于 2012-3-12 20:45 | 显示全部楼层

(mapcar 'set '(a b) '(1 25))这个可以我也知道,可为什么set换成setq就不行了呢这就不明白了。


DwgDoc是不是活动文档出现的上面的情况
发表于 2012-3-13 07:40 | 显示全部楼层
当在文档Doc1中加载lsp,调用vla-open方法打开文档Doc2以后,Doc2文档就成了活动文档,而Doc1不是活动文档,lsp文件中,(vla-open ...)后面的表达式都暂停运行,直到Doc1重新成为活动文档,才会继续执行剩下的表达式。
发表于 2012-3-13 08:42 | 显示全部楼层
经过测试
(setq DwgDoc (vla-Open (vla-get-Documents (vlax-get-acad-object)) (getfiled "请选择要要去除教育版打印戳记的文件" "" "dwg" 4)))
(vla-Close DwgDoc)
cad2004 2006 2008 都测试通过.没有问题啊.
 楼主| 发表于 2012-3-13 21:05 | 显示全部楼层
怪了,在我这边就不行,我都试了好多回了,lisp调用vba就可以关闭。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-17 18:38 , Processed in 0.311689 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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