AutoCAD .NET API 必须在 ObjectARX 宿主环境中运行,不能直接在控制台或 WinForms 中调用;需通过 netload 加载强签名 DLL,以 CommandMethod 标记命令入口,Attach 到 acad.exe 调试,并严格匹配 AutoCAD 版本与 SDK。AutoCAD .NET API 必须用 ObjectARX 宿主环境运行直接在普通控制台或 WinForms 项目里调用 Autodesk.AutoCAD.ApplicationServices.Core.Application 会抛出 System.NullReferenceException 或 Autodesk.AutoCAD.Runtime.Exception: eNotApplicable ------ 因为这些类不是独立库,而是 AutoCAD 进程内托管扩展的入口门面。必须通过 AutoCAD 加载 DLL:把程序集放在支持路径(如 Acad.exe 同级的 Support 文件夹,或注册到 acad.lsp 的 (netload) 路径)入口点只能是标记 CommandMethod 的静态方法,不能靠 Main() 启动调试必须 Attach 到正在运行的 acad.exe 进程,不能直接 F5 运行目标框架严格匹配 AutoCAD 版本:2021--2024 对应 .NET 5/6/8,但需用对应版本的 AutoCAD.NET SDK NuGet 包(如 AutoCAD.NET.2024),混用会报 Could not load file or assemblyCommandMethod 参数决定命令可见性与执行上下文CommandMethod 不只是"让函数变命令",它的字符串参数控制命令是否出现在命令行、是否支持透明调用、是否允许在块编辑器中运行。CommandMethod("MyCmd"):命令行输入 MyCmd 可触发,但不支持透明(如不能在画线中途输入)CommandMethod("MyCmd", CommandFlags.Transparent):支持透明调用,但此时 Application.DocumentManager.MdiActiveDocument 可能为 null,需先检查CommandMethod("MyCmd", CommandFlags.UsePickSet):自动继承当前选择集,避免重复调用 Editor.SelectAll()多个同名命令会冲突;不同组别可用 CommandMethod("Group1", "MyCmd") 隔离,命令行仍输 MyCmdDocument.Transaction 和 Editor.GetSelection 的坑最多事务(Transaction)不是数据库事务,它和 Editor 实例强绑定于当前文档上下文。常见错误是跨文档操作或在事务外读取实体属性。 Adobe Image Background Remover Adobe推出的图片背景移除工具
相关推荐
sycmancia10 分钟前
Qt——多线程中的信号与槽(二)Database_Cool_11 分钟前
时序数据库选型:阿里云 Lindorm 时序引擎 vs InfluxDB 全维度对比其实防守也摸鱼16 分钟前
渗透--损坏的对象级别鉴权漏洞(Broken Object Level Authorization, BOLA)hehelm27 分钟前
IO 多路复用 — Reactor2501_9419820530 分钟前
企业微信二次开发:如何用 Python 搭建通用的 Webhook 实时消息接收在世修行30 分钟前
第24篇:PyInstaller打包实战 — 从Python脚本到Windows EXE农村小镇哥34 分钟前
如何限定IP访问Oracle数据库华研前沿标杆游学1 小时前
2026年制造企业标杆参访实操指南:3步选对适配参访路线cfm_29141 小时前
SpringBoot 数据库全栈整合是上好佳佳佳呀1 小时前
MySQL 基础:从数据库概念到表结构管理DDL