背景
程序员都清楚,传统的 .NET Framework 和现代化的 .NET 是完全不同的运行时环境。
具体而言,.NET Framework 及其以下版本与 .NET6、.NET7、 .NET8、.NET9属于两套不同的运行时框架。
从 AutoCAD 版本开始,引入了跨平台的 .NET 架构,正式支持 .NET 。
初步测试,AutoCAD 可以加载通过 .NET 开发的 DLL 插件,同时也能加载通过 .NET 到 开发的 DLL 插件。
但通过 .NET 开发的 DLL 插件无法在低版本的 AutoCAD 中加载运行。
如何通过一套代码,用 .NET 完成多个AutoCAD版本的兼容?
实现方法
该应用程序实现了一个名为 ellipsejig 的命令。
它实现从头开始创建椭圆。首先要求用户输入椭圆长轴,然后输入椭圆短轴。
以下代码通过 ellipsejig 的命令交互式命令方式实现了在 AutoCAD 中创建椭圆的功能,允许用户通过交互式操作定义椭圆的主轴和短轴。
1、下载objectarx-sdk。
访问:https://aps.autodesk.com/developer/overview/autocad-objectarx-sdk-downloads
2、下载代码
链接: https://pan.baidu.com/s/1GWGdi73hINeMBaPd-QICmg?pwd=4vuf 提取码: 4vuf
代码其实就是刚才sdk解压后,包含的示例,只是做了兼容性修改。
3、修改Ellipsejig.csproj文件。
在尝试构建此项目之前,请从 ObjectARX SDK 目录中添加引用 acdbmgd.dll 、 accoremgd.dll 和 acmgd.dll 进行相应配置。
项目结构可容纳多个框架。
JigSample
Library
JigSample
net8.0-windows
False
x64
ACAD2022;ACAD2025
bin
net8.0-windows
C:\Autodesk\objectarx-for-autocad-\inc\;$(AssemblySearchPaths)
net48
C:\Autodesk\objectarx-for-autocad-\inc\;$(AssemblySearchPaths)
False
False
False
4、编译源码
- ? 构建 AutoCAD 插件
- dotnet build Ellipsejig.csproj -c ACAD2022 -a x64
- ? 构建 AutoCAD 插件
- dotnet build Ellipsejig.csproj -c ACAD2025 -a x64
或者,也可以通过 Visual Studio UI 进行构建。
在 Visual Studio 中打开 EllipseJig 项目,将 ACAD2022 或 ACAD2025 配置设为默认,以构建各自版本的项目。
5、运行体验
使用 JigSample.dll:
1、启动 AutoCAD 并打开一个新图形。
2、输入netload 并从 AutoCAD 的 \bin\x64\ACAD2024 子文件夹中选择 JigSample.dll 或者 \bin\x64\ACAD2025
3、执行 JigSample.dll 定义的 ellipsejig 命令。
可以看到生成了2个版本的编译文件