【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
相关推荐
用户298698530142 小时前
程序员效率工具:Spire.Doc如何助你一键搞定Word表格排版
后端·c#·.net
mudtools1 天前
搭建一套.net下能落地的飞书考勤系统
后端·c#·.net
玩泥巴的2 天前
搭建一套.net下能落地的飞书考勤系统
c#·.net·二次开发·飞书
唐宋元明清21882 天前
.NET 本地Db数据库-技术方案选型
windows·c#
郑州光合科技余经理2 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
lindexi2 天前
dotnet DirectX 通过可等待交换链降低输入渲染延迟
c#·directx·d2d·direct2d·vortice
feifeigo1232 天前
matlab画图工具
开发语言·matlab
dustcell.2 天前
haproxy七层代理
java·开发语言·前端
norlan_jame2 天前
C-PHY与D-PHY差异
c语言·开发语言
多恩Stone2 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc