lisp - AutoCAD 将文件另存为另一个路径中的同名副本 : "Object reference not set to an instance of an object"

标签 lisp autocad autolisp

我正在执行以下基于 Lisp 的例程。

原始绘图是在 pathA/drawing.dwg 上通过 lisp 进行一半的处理,然后代码执行另存为并将名称复制到另一个路径中,例如 pathB/drawing.dwg。

其余代码在新路径 pathB/drawing.dwg 中针对文件运行,因为发生和应用了几件事,这使得它与 pathA/drawing.dwg 大不相同。

如果我返回打开 pathA/drawing.dwg,我会收到“对象引用未设置为对象的实例”错误。

一半的代码就差不多了

(setq pathBFileName (strcat "///pathb//" thisDrawingName ".dwg"))
(command "._saveas" "" pathBFileName (if (findfile pathBFileName) "y"))

我猜这与 AutoCAD 注册使用了 PathB/drawing.dwg,然后当您使用 PathA/drawing.dwg 时它会感到困惑有关,但我不知道如何避免或传递此错误。

最佳答案

我找到了避免这种情况的方法。只需在打开的图纸上工作到最后。并使用 (command ".save"pathBFileName (if (findfile pathBFileName) "y"))

因此,无论何时您想要保存,只需确保保存到正确的文件即可。在这种情况下,AutoCAD 将永远不会打开实际的 PathB/drawing.dwg,因此我不必再次看到该引用问题。

关于lisp - AutoCAD 将文件另存为另一个路径中的同名副本 : "Object reference not set to an instance of an object",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40140932/

相关文章:

scheme - 使用 eval、R5RS 从列表中评估我自己的函数

clojure - 如何检索位于 HashMap 值列表的第一个位置的字符串

autocad - 如何处理dwg文件

autocad - Java 库以编程方式将 AutoCAD .dwg 文件转换为 PDF 或图像?

lisp - 使用 Lisp(或 AutoLisp),关联列表的性能有多好?

lambda - LISP 宏失败,崩溃史莱姆

javascript - 如何使用 Python 或 Lisp 删除无用的 JavaScript 代码

c# - 有没有办法使用 C# 获取 autocad (.dwg) 中的所有多段线?

lisp - AutoLISP:删除列表中的连续重复项

lisp - 文本实体的导出坐标