【发布时间】:2013-07-03 13:14:05
【问题描述】:
我目前正在将一些旧的 AutoCAD 插件从 VBA 重写为 VB.NET。事实证明,所述插件的一个(相当大的)部分是在 LISP 中实现的,我被告知不要这样做。所以问题变成了在 .NET 的 AutoCAD 中运行 LISP 代码。现在,网上有一些资源解释了这样做的必要过程(如this one),但他们都认为lisp 文件/函数已经加载是理所当然的。我目前正在挠头试图弄清楚如何转换的 VBA 函数是 "(LOAD ""<file>"")",并且脚本的构建方式是在加载时自动执行(它是一个简单的脚本,不注册功能,只是从头到尾运行并做到这一点)。
所以我的问题是。如何从 .NET 插件加载(并因此执行)AutoCAD 中的 lisp 文件?
【问题讨论】:
-
试试
Autodesk.AutoCAD.Internal.AcadTaskDialogs.AutoLISPLoadSettings和Autodesk.AutoCAD.Internal.Utils.RegisterLispCommand(string, string) -
关于您的问题,我确实有些不明白。您的 VBA 代码是否调用 lisp 文件???如果是这样,lisp 文件是否已经加载?如果是这样,它们也将已经加载了 .NET。如果没有,VBA 是否加载 lisp 文件???如果是这样,请发布这样做的 VBA 行。
-
如果我能理解你的旧插件中加载了什么内容会更容易。
-
@Daniel 我确实发布了它(至少或多或少)。 VBA 脚本通过发出
ThisDrawing.SendCommand("(LOAD ""<lisp-file>"")")来加载(并执行)lisp 脚本。 -
好的...现在,当您说脚本“自动执行”时,您的意思是,当 autocad 打开时?或者当文档打开时?还是您的意思是当 vba 调用 load 时 lisp 脚本会自行执行?
标签: vb.net autocad autocad-plugin autolisp