IFox.CAD.GCAD2026
1.0.5
dotnet add package IFox.CAD.GCAD2026 --version 1.0.5
NuGet\Install-Package IFox.CAD.GCAD2026 -Version 1.0.5
<PackageReference Include="IFox.CAD.GCAD2026" Version="1.0.5" />
<PackageVersion Include="IFox.CAD.GCAD2026" Version="1.0.5" />
<PackageReference Include="IFox.CAD.GCAD2026" />
paket add IFox.CAD.GCAD2026 --version 1.0.5
#r "nuget: IFox.CAD.GCAD2026, 1.0.5"
#:package IFox.CAD.GCAD2026@1.0.5
#addin nuget:?package=IFox.CAD.GCAD2026&version=1.0.5
#tool nuget:?package=IFox.CAD.GCAD2026&version=1.0.5
Fs.Fox.CAD
Fs.Fox.CAD 是面向 Windows x64 的 .NET CAD 二次开发基础类库。它在 AutoCAD 和 ZWCAD 托管 API 之上提供轻量的事务封装、符号表访问、结果数据模型、选择过滤器及常用扩展方法,用于减少插件项目中的重复代码。
项目源于 IFoxCAD,由 Fs 团队独立维护。NuGet 包 ID 为兼容既有使用方式继续保留 IFox.CAD.*,公共命名空间为 Fs.Fox.Cad。
设计定位
- 以
DBTrans为事务入口,集中访问当前文档、数据库、编辑器、符号表和命名字典。 - 通过扩展方法补充实体、几何、选择集、块、图层、扩展数据和 XRecord 等常用操作。
- 共享一套
CADShared源码,并由不同平台项目绑定 Autodesk 或 ZwSoft 的托管程序集。 - 保留宿主原生对象模型和类型语义,不试图用一套自定义类型替代厂商 SDK。
Fs.Fox.CAD 不是 CAD SDK 的替代品,也不是可同时加载到所有宿主的单一二进制文件。插件项目仍需选择与目标宿主/API 代际匹配的包,并引用对应厂商命名空间。
支持矩阵
当前解决方案和发布工作流构建以下四个 NuGet 包:
| NuGet 包 | 目标宿主/API 代际 | 目标框架 | 输出程序集 |
|---|---|---|---|
IFox.CAD.ACAD2019 |
AutoCAD 2019 | .NET Framework 4.8 | Fs.Fox.AutoCad.dll |
IFox.CAD.ACAD2025 |
AutoCAD 2025 | net8.0-windows7.0 |
Fs.Fox.AutoCad.dll |
IFox.CAD.ZCAD2022 |
ZWCAD 2021-2024 | .NET Framework 4.8 | Fs.Fox.ZwCad.dll |
IFox.CAD.ZCAD2025 |
ZWCAD 2025-2026 | .NET Framework 4.8 | Fs.Fox.ZwCad.dll |
以上目标均按 x64 构建。表中的 ZWCAD 范围表示厂商文档给出的二进制兼容代际;自动构建成功不等同于每个 CAD 宿主版本都已完成运行时验收。ZWCAD 2026 复用 2025 产物,依据、限制和待完成的宿主检查见 ZWCAD 版本兼容性与迁移说明。
仓库还包含 Fs.Fox.AutoCad2021 和 Fs.Fox.AutoCad2027 项目,但它们未纳入当前 IFoxCAD.sln 和 NuGet 发布工作流,不应据此推断为公开发布目标。AutoCAD 2027 当前的内部兼容策略见 AC_2027 .NET 8 兼容策略记录。
选择和安装
一个插件项目只应引用一个目标平台包。需要支持多个宿主或 API 代际时,应建立独立的宿主项目并共享业务源码,避免在同一项目中同时引用多个 IFox.CAD.* 包。
例如,面向 AutoCAD 2025:
dotnet add .\YourPlugin.csproj package IFox.CAD.ACAD2025
面向 ZWCAD 2025 或 2026:
dotnet add .\YourPlugin.csproj package IFox.CAD.ZCAD2025
如需安装预发布版本,请在命令后增加 --prerelease,或在项目文件中明确指定版本。其他包名见上方支持矩阵。
快速开始
以下 AutoCAD 示例使用 DBTrans 和 AddEntity 扩展方法在当前空间创建一条直线:
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Runtime;
using Fs.Fox.Cad;
public sealed class FoxCommands
{
[CommandMethod("FOX_LINE")]
public static void CreateLine()
{
using DBTrans tr = new();
var line = new Line(
new Point3d(0, 0, 0),
new Point3d(100, 100, 0));
tr.CurrentSpace.AddEntity(line);
}
}
DBTrans 默认在释放时提交事务。需要放弃修改时,应显式调用 Abort(),或在创建事务时传入 commit: false。
ZWCAD 项目使用相同的 Fs.Fox.Cad API;将示例中的 Autodesk 命名空间替换为对应的 ZwSoft.ZwCAD 命名空间即可。编译插件后,在目标 CAD 中使用 NETLOAD 加载插件程序集,而不是直接加载 NuGet 包。
项目结构
src/
CADShared/ 跨平台共享实现
IFoxCAD.AutoCad/ AutoCAD 平台 using、别名和构建辅助文件
IFoxCAD.ZwCad/ ZWCAD 平台 using 和别名
Fs.Fox.AutoCad20xx/ AutoCAD 各 API 代际项目
Fs.Fox.ZwCad20xx/ ZWCAD 各 API 代际项目
tests/
TestShared/ 共享的 CAD 命令与宿主测试代码
TestAcad20xx/ AutoCAD 测试入口
TestZcad20xx/ ZWCAD 测试入口
平台项目导入相同的 CADShared.projitems,因此公共功能尽量保持一致;底层对象仍分别来自 Autodesk 和 ZwSoft 程序集。更详细的设计说明见 Fs.Fox.CAD 架构说明。
构建与验证
本地开发和 CI 的目标、工具链、条件编译符号及输出目录见 构建说明。当前四个发布目标的产物统一输出到 Build\<平台>_<版本>_<配置>\。
测试项目主要用于编译覆盖和 CAD 宿主内的命令验证。构建通过只能证明源码与编译期引用兼容;发布前仍需在目标 CAD 中验证程序集解析、NETLOAD、命令注册、数据库操作和实际使用的界面入口。
文档
- 文档索引与阅读顺序
- 文档与代码协同治理方案
- 构建与项目结构
- 架构与核心抽象
- DBTrans 生命周期与释放契约
- ZWCAD 版本兼容性与迁移说明
- AutoCAD 2027 .NET 8 兼容策略
- CAD 界面文字规范
- 上游 IFoxCAD 与本项目的关系
- NuGet 发布工作流
问题和改进建议请提交到 GitHub Issues。
许可证
本项目采用 MIT License。原项目作者及贡献者信息见 上游说明。
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0-windows7.0 is compatible. net9.0-windows was computed. net10.0-windows was computed. |
-
net8.0-windows7.0
- GStarCad.Net (>= 20.26.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.5 | 121 | 8/3/2026 |
新增浩辰CAD 2026支持