【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
相关推荐
小年糕是糕手3 小时前
【C++】内存管理(上)
java·开发语言·jvm·c++·算法·spring·servlet
shenzhenNBA3 小时前
如何用python生成一定规则的序列号?
开发语言·python·sn·序列号
沐知全栈开发3 小时前
SQL CHECK约束的使用与优势
开发语言
csbysj20203 小时前
Highcharts 散点图
开发语言
程序员三明治3 小时前
【Java基础】序列化到底是什么?有什么用?实现原理?
java·开发语言·后端·java基础·序列化·反序列化
pale_moonlight3 小时前
十、Scala应用实践(下)
linux·开发语言·scala
阿杰同学3 小时前
Java 网络协议面试题答案整理,最新面试题
java·开发语言·网络协议
chao1898443 小时前
基于DWT-MFCC-LPC的MATLAB语音识别系统实现
开发语言·matlab·语音识别
编程大师哥3 小时前
R语言统计计算与数据科学的核心工具
开发语言·r语言