pie*_*rce 1 python autocad autolisp
我想在多个 CAD 文件(例如文件夹中的所有文件)上运行 autoLISP。基本上,打开文件(DWG),运行 LISP(包括保存文件)并关闭。我是 LISP 的新手,但对 Python 不太陌生。
是否可以使用 Python 运行批处理?我知道如何用 Python 程序打开文件,但不知道如何运行 LISP。或者,有人知道如何使用 LISP 运行批处理吗?
到目前为止,我发现的解决方案涉及第三方软件和 C#。另外,我正在运行 AutoCAD-MEP 2018 和 Python 3.5。
根据我的经验,批处理多个文件的最佳方法是使用 AutoCAD 脚本文件 ( .scr)。
该脚本仅用于打开每个图形,加载并运行适当的 AutoLISP 程序,然后保存并关闭图形,然后再移至下一个图形文件。
由于 AutoLISP 在 Document 命名空间中运行,因此当另一个图形变为活动时,计算就会停止;但是,AutoCAD 脚本文件将继续运行,直到脚本中的所有命令都已发出或脚本已中止。
这种脚本的基本结构是:
_.open C:\Drawing1.dwg (load "MyProgram.lsp" nil) (c:MyCommand) _.qsave _.close
_.open C:\Drawing2.dwg (load "MyProgram.lsp" nil) (c:MyCommand) _.qsave _.close
_.open C:\Drawing3.dwg (load "MyProgram.lsp" nil) (c:MyCommand) _.qsave _.close
...
Run Code Online (Sandbox Code Playgroud)
可以MyScript.scr使用 AutoCADSCRIPT命令将上述内容另存为并在空白的新图形中运行。
当然,也可以加入额外的错误检查,例如在评估之前检查 AutoLISP 程序是否已成功加载等。
有关 AutoCAD 脚本文件的更多信息,我整理了这个围绕 AutoCAD 脚本的基本教程。
考虑到上述情况,下一步是自动构建脚本文件本身(而不是手动编写几乎相同的行)。
为此,有几个现有的应用程序: ScriptPro 是众所周知的,我前段时间也创建了自己的Script Writer应用程序,它提供了一个基本的界面,允许用户键入 Script 文件的第一行和程序构建其余部分。
为了提供一个现有示例,我的Batch Attribute Editor应用程序也基于这种使用 AutoLISP 应用程序构建 AutoCAD 脚本文件的技术,然后使用该文件来评估多个选定图形上的 AutoLISP 功能。
简而言之,尽管您特别说明了使用 Python 来执行此任务,但我认为在这种情况下没有必要这样做,因为一个非常简单的脚本文件 ( .scr) 就足够了。