【AutoCad 2025】【C#】零基础教程(一)——Rider 构建 HELLO 插件

文章目录

  • 相关教程
  • 相关文献
  • [🆕 AutoCAD 2025 是首个支持 .NET 8 的版本!](#🆕 AutoCAD 2025 是首个支持 .NET 8 的版本!)
  • [✅ 环境配置](#✅ 环境配置)
  • [📌 创建 Rider 项目](#📌 创建 Rider 项目)
    • [📁 项目结构](#📁 项目结构)
    • [📄 `MyAutoCAD2025Plugin.csproj`](#📄 MyAutoCAD2025Plugin.csproj)
    • [📄 `Commands.cs`](#📄 Commands.cs)
  • [构建 Rider 项目](#构建 Rider 项目)
  • [加载到 AutoCAD 2025](#加载到 AutoCAD 2025)
  • [🛠️ DEBUG 配置(Rider)](#🛠️ DEBUG 配置(Rider))

作者:小猪快跑

基础数学&计算数学,从事优化领域8年+,主要研究方向:MIP求解器、整数规划、随机规划、智能优化算法

笔者也是从零开始学习并使用 c# & Python 二次开发 AutoCad 2025。本系列教程会从最基础的项目构建开始,到最终完成复杂插件开发。

如有错误,欢迎指正。如有更好的算法,也欢迎交流!!!------@小猪快跑

相关教程

  • x

相关文献

🆕 AutoCAD 2025 是首个支持 .NET 8 的版本!

这是 Autodesk 在 2024--2025 年做出的重要技术升级。以往所有 AutoCAD 版本(2024 及更早)仅支持 .NET Framework 4.8 ,而 AutoCAD 2025 开始正式支持 .NET 8(作为替代选项或未来方向)。

🔔 注意:这并不意味着 AutoCAD 2025 "运行在 .NET 8 上",而是指 你可以用 .NET 8 编写插件,并被 AutoCAD 2025 加载执行

✅ 环境配置

  • 已安装 AutoCAD 2025
  • 已安装 .NET 8 SDK(LTS 版本)
  • 已从 AutoCAD 2025 安装目录或 ObjectARX SDK 获取 .NET 8 兼容的托管引用程序集

📌 关键路径(通常):

cmd 复制代码
C:\Program Files\Autodesk\AutoCAD 2025\

其中应包含:

  • AcMgd.dll
  • AcDbMgd.dll
  • AcCoreMgd.dll

这些 DLL 在 AutoCAD 2025 中已重新编译为 .NET 8 兼容版本(与旧版 .NET Framework 的同名 DLL 不同!)

📌 创建 Rider 项目


📁 项目结构

cmd 复制代码
MyAutoCAD2025Plugin/
├── MyAutoCAD2025Plugin.csproj
└── Commands.cs

📄 MyAutoCAD2025Plugin.csproj

xml 复制代码
<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <TargetFramework>net8.0-windows</TargetFramework>
        <PlatformTarget>x64</PlatformTarget>
        <LangVersion>latest</LangVersion>
        <Nullable>enable</Nullable>
        <ImplicitUsings>enable</ImplicitUsings>
        <!-- 必须设置为 false,避免复制到输出目录 -->
        <CopyLocalLockFileAssemblies>false</CopyLocalLockFileAssemblies>
    </PropertyGroup>

    <ItemGroup>
        <!-- 引用 AutoCAD 2025 提供的 .NET 8 托管程序集 -->
        <Reference Include="AcMgd">
            <HintPath>C:\Program Files\Autodesk\AutoCAD 2025\AcMgd.dll</HintPath>
            <Private>false</Private>
        </Reference>
        <Reference Include="AcDbMgd">
            <HintPath>C:\Program Files\Autodesk\AutoCAD 2025\AcDbMgd.dll</HintPath>
            <Private>false</Private>
        </Reference>
        <Reference Include="AcCoreMgd">
            <HintPath>C:\Program Files\Autodesk\AutoCAD 2025\AcCoreMgd.dll</HintPath>
            <Private>false</Private>
        </Reference>
    </ItemGroup>

</Project>

🔧 注意

  • 路径 C:\Program Files\Autodesk\AutoCAD 2025\ 必须存在且包含 .NET 8 版本的 DLL。
  • 如果你使用的是英文版 AutoCAD,路径相同。
  • 设置 <Private>false</Private> 确保不会将 AutoCAD DLL 复制到输出目录(AutoCAD 会自行加载)。

📄 Commands.cs

csharp 复制代码
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;

// 注册命令类
[assembly: CommandClass(typeof(MyAutoCAD2025Plugin.Commands))]

namespace MyAutoCAD2025Plugin
{
    public class Commands
    {
        /// <summary>
        /// 定义一个名为 "HELLO2025" 的 AutoCAD 命令
        /// </summary>
        [CommandMethod("HELLO2025")]
        public void HelloAutoCAD2025()
        {
            var editor = Application.DocumentManager.MdiActiveDocument?.Editor;
            if (editor != null)
            {
                editor.WriteMessage("\n✅ Hello from .NET 8 in AutoCAD 2025!");
            }
        }
    }
}

构建 Rider 项目

  • 在 Rider:Build > Build Solution Ctrl+F9
  • 输出 DLL 位于 bin\Debug\net8.0-windows\MyAutoCAD2025Plugin.dll

加载到 AutoCAD 2025

  1. 启动 AutoCAD 2025

  2. 命令行输入:

    复制代码
    NETLOAD
  3. 选择你生成的 MyAutoCAD2025Plugin.dll

  4. 输入命令:

    复制代码
    HELLO2025
  5. 应看到输出:

    复制代码
    ✅ Hello from .NET 8 in AutoCAD 2025!

🛠️ DEBUG 配置(Rider)

  • 在 Rider:Run > Attach to Process...Ctrl+Alt +F5
  • 搜索框🔍输入:acad.exe,点击 Attach with .NET Debugger
相关推荐
Cult Of3 小时前
Alicea Wind的个人网站开发日志(2)
开发语言·python·vue
我找到地球的支点啦3 小时前
通信扩展——扩频技术(超级详细,附带Matlab代码)
开发语言·matlab
微小冷3 小时前
Rust异步编程详解
开发语言·rust·async·await·异步编程·tokio
A9better3 小时前
C++——不一样的I/O工具与名称空间
开发语言·c++·学习
清水白石0083 小时前
《为什么说 deque 是 Python 滑动窗口的“隐藏神器”?深入解析双端队列的高效之道》
开发语言·python
杜子不疼.4 小时前
Ascend_C自定义算子开发
c语言·开发语言
WooaiJava4 小时前
流式TTS音频播放项目 - 面试问答(后端)
java·开发语言
新缸中之脑4 小时前
开发AI代理必备的8个Python 库
开发语言·人工智能·python
暴走十八步4 小时前
PHP+vscode开启调试debug
开发语言·vscode·php
郝学胜-神的一滴4 小时前
Python 列表 vs 数组:深入解析与最佳选择指南
开发语言·python·程序人生