你好,李,
我希望你原谅我不断地重复这个话题。
关于用save和qsave的重新定义替换“reactor”,这相对于“multi documents”来说有一个缺点,即重新定义对于同一ACAD会话中的后续图形文档仍然有效,但我无法控制我的lisp代码也被加载。因此qsave&save变为“未知命令”
我还没有机会在非英语ACAD上测试这种行为,但我认为这可能也是一个问题。
在我的代码(做其他事情)中实现了带有“save操作”的reactor的代码,因此应该涵盖这一部分。
受我在网上找到的论坛帖子启发,似乎有可能使用“objectDBX.AxDbDocument”的dxfout方法
下面的代码确实保存了一个“空”dxf文件,没有崩溃。(我想dxf为空是有道理的,因为该方法与我的活动文档无关)。在执行Dxfout之前,是否可以将图层0上的图形对象从活动文档传输到AxDbDocument?
-
- (vlax-import-type-library
- :tlb-filename "C:\\Programmer\\Fælles filer\\Autodesk Shared\\axdb17enu.tlb"
- :methods-prefix "acdbm-"
- :properties-prefix "acdbp-"
- :constants-prefix "acdbc-" )
- ; dxfout another try
- (defun dxfout ( / dwgobj dwgoj2)
- (setq dwgobj (vla-get-ActiveDocument (vlax-get-Acad-Object)))
- (setq dwgobj2 (vlax-create-object "objectDBX.AxDbDocument.17" ))
- (vlax-invoke-method dwgobj2 'DxfOut "C:\\Test11-10.dxf")
- )
谢谢
卡斯滕 |