aardio 文档

兼容 CAD 与升级说明

com.cad 是唯一基础封装,CAD 技能与普通范例使用同一增强 Application。主目标是 AutoCAD;中望、浩辰仅提供低成本的兼容能力,不保证全部 API 或所有历史版本一致。

连接

import com.cad;
var cad,err=com.cad(false); // 只连接已有候选实例
if(!cad) return {error=err};
return cad.Inspect();

基本接口

常见 Documents、ModelSpace、图层、实体读写仍使用原生 COM 对象模型。增强方法 Inspect / IsQuiescent / Selection / Summary / Preview / RunLisp 共用一份实现,不要求 Autos。

状态接口的小差异由 cad.IsQuiescent() 集中处理:优先 GetAcadState,中望 GetZcadState。未知接口报明确错误,不把失败当空闲。

LISP 默认传输

创建任务的增强实例 默认命令通道 默认回执编码
AutoCAD PostCommand UTF-8
GStarCAD PostCommand 系统 ANSI
ZWCAD SendCommand 系统 ANSI

这些是创建任务时按 ProgId 选定的保守默认值。可用 method、resultEncoding、codepage 显式覆盖;提交异常后绝不自动换方法重发。低层 com.cad.task.create 只给 doc、没有增强实例时不猜产品,仍为 post/utf8。

ANSI 受 CAD 输出代码页限制;中文Windows实测不等于任意Unicode均无损。数据重要时先做文字往返,不能靠修改安全设置解决编码差异。SendCommand 可能同步阻塞,wait 的 timeout 无法中断调用。

C# 边界

cad.CompileCSharp(source,options) 按增强实例的实际 ProgId 选择引用:

产品 核心引用 用户源码命名空间
AutoCAD AcCoreMgd / AcDbMgd / AcMgd Autodesk.AutoCAD
GStarCAD GcCoreMgd / GcDbMgd / GcMgd Gssoft.Gscad
ZWCAD ZwDatabaseMgd / ZwManaged ZwSoft.ZwCAD

运行时先读该产品的 runtimeconfig;中望/浩辰缺少现代配置时仅在实际 exe.config 声明 CLR v4 后使用已有 Framework 编译器。不按产品年份猜框架,不为未知兼容产品安装最新SDK。所有宿主DLL不复制到输出目录。

库不自动翻译用户C#源码。不同厂商业务代码应分别保存;如需将来支持厂商专属宿主,使用独立资源文件,不把补丁混入 AutoCAD 宿主。

RunCSharp 短脚本宿主目前仅支持 .NET 8+ AutoCAD。 中望/浩辰可用 DLL 编译、COM 和 LISP;没有额外的 Framework/ALC 桥、第三方注册器或另一份 com.cad。

直接使用 com.cad

CAD 技能只提供任务提示与按需帮助,不另设 CAD 操作入口。旧技能 getApp/inspect/selection/summary/run/resume/preview 已移除;统一使用增强实例:

import com.cad;
var cad,err=com.cad(false); // 仅连接,不启动 CAD
if(!cad) return {error=err};

if(!cad.Documents.Count) return {error="请先打开图纸"};
var doc=cad.ActiveDocument;
return cad.RunLisp("(+ 7 5)",null,doc);

Markdown 格式