【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
相关推荐
lbb 小魔仙8 分钟前
【Java】Spring Data JPA 详解:ORM 映射、查询方法与复杂 SQL 处理
java·开发语言·sql·spring cloud
Fighting_p30 分钟前
【预览word文档】使用插件 docx-preview 预览线上 word 文档
开发语言·c#·word
superman超哥39 分钟前
Rust 发布 Crate 到 Crates.io:从本地到生态的完整旅程
开发语言·后端·rust·crate·crates.io
浪客川39 分钟前
【百例RUST - 002】流程控制 基础语法练习题
开发语言·rust
一路往蓝-Anbo43 分钟前
C语言从句柄到对象 (二) —— 极致的封装:不透明指针与 SDK 级设计
c语言·开发语言·数据结构·stm32·单片机·嵌入式硬件
上天_去_做颗惺星 EVE_BLUE1 小时前
C++学习:学生成绩管理系统
c语言·开发语言·数据结构·c++·学习
雪域迷影1 小时前
使用Python库获取网页时报HTTP 403错误(禁止访问)的解决办法
开发语言·python·http·beautifulsoup·urllib
chao1898441 小时前
基于Qt的SSH/FTP远程文件管理与命令执行实现方案
开发语言·qt·ssh
凯子坚持 c1 小时前
Qt常用控件指南(1)
开发语言·数据库·qt
Flash.kkl1 小时前
Python基础语法
开发语言·python