问题
在 CAD 二次开发中,特别是 AutoCAD 的二次开发中,通常使用 .NET 程序集(DLL)来扩展其功能。每次启动 AutoCAD 时,手动加载这些 DLL 可能会很麻烦。为了自动加载这些 DLL,可以使用多种方法。这些方法包括使用 AutoCAD 的启动脚本、注册表设置或 AutoCAD 的.NET API。
方法1:使用 AutoCAD 的启动脚本(acad.lsp 或 acaddoc.lsp)
AutoCAD 启动时,会自动执行 acad.lsp 和 acaddoc.lsp 文件中的代码。你可以在这些文件中添加代码来自动加载你的 DLL。
(command “netload” “C:/path/to/your/assembly.dll”)
将上述代码添加到 acad.lsp 或 acaddoc.lsp 文件中。这样,每次启动 AutoCAD 时,它都会自动加载你的 DLL。
方法2:使用 AutoCAD 的启动组(Startup Suite)
AutoCAD 提供了一个“启动组”(Startup Suite),你可以将你的 DLL 添加到这个启动组中,使其在每次启动时自动加载。
打开 AutoCAD。
输入 APPLOAD 命令并按 Enter 键。
在弹出的“加载/卸载应用程序”对话框中,点击“内容…”按钮。
在“启动组”对话框中,点击“添加…”按钮,选择你的 DLL 文件并添加到启动组中。
点击“关闭”按钮保存设置。
方法3:使用 AutoCAD 的注册表项
你可以在 Windows 注册表中添加一个键,使 AutoCAD 在启动时自动加载你的 DLL。
打开注册表编辑器(regedit)。
导航到以下路径(根据你的 AutoCAD 版本可能有所不同):
HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\Rxx.x\ACAD-xxxx:xxx\Applications
右键点击 Applications,选择“新建” -> “项”,并命名为你的应用程序名称。
在新建的项中,添加以下字符串值:
DESCRIPTION:描述你的应用程序。
LOADCTRLS:设置为 2(表示在启动时加载)。
LOADER:设置为你的 DLL 文件的完整路径。
MANAGED:设置为 1(表示这是一个托管程序集)。
例如:
[HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\Rxx.x\ACAD-xxxx:xxx\Applications\MyApp]
“DESCRIPTION”=“My AutoCAD Application”
“LOADCTRLS”=“2”
“LOADER”=“C:\path\to\your\assembly.dll”
“MANAGED”=“1”
方法4:使用 AutoCAD 的.NET API
如果你有一个主 DLL,可以使用 AutoCAD 的.NET API 在启动时加载其他 DLL。你可以在主 DLL 的初始化代码中加载其他 DLL。
// An highlighted block
using Autodesk.AutoCAD.Runtime;
public class MyApp : IExtensionApplication
{
public void Initialize()
{
// 在这里加载其他 DLL
string pathToOtherDll = @"C:\path\to\other\assembly.dll";
System.Reflection.Assembly.LoadFrom(pathToOtherDll);
}
public void Terminate()
{
// 清理代码
}
}
总结
通过上述方法,你可以确保你的 DLL 在每次启动 AutoCAD 时自动加载,从而避免手动加载的麻烦。根据你的具体需求和环境,选择最适合的方法。