ESC
开源 3 分钟阅读

CADCraft:用纯 Rust 编写的开源净室版 AutoCAD 风格 CAD 应用

ArtCraft 团队发布 CADCraft,一个以纯 Rust 编写的开源净室重实现版 AutoCAD 风格 CAD 应用。它复刻了命令行、对象捕捉、图层、标注、填充、图块等经典工作流,原生读写 DXF/DWG,支持 macOS、Windows、Linux、FreeBSD 及浏览器(WebAssembly),采用 MIT/Apache-2.0 双许可,并内置 MCP 接口可由 AI 智能体驱动。

来源:GitHub

CADCraft

计算机辅助设计与绘图(CAD);一个开源、净室重实现的 Autodesk AutoCAD,用纯 Rust 重建。

对 AutoCAD 工作流的快速开源演绎:你早已熟悉的命令行、对象捕捉、图层、标注、填充、图块和 DXF 图纸。原生运行于 macOS、Windows、Linux 和 FreeBSD,并通过 WebAssembly 在浏览器中运行。

由 ArtCraft 团队打造。

技术徽章:用 Rust 编写;支持 macOS · Windows · Linux · BSD · Web;许可:MIT / Apache-2.0;可通过 MCP 由智能体驱动;状态:早期开发。

截图

  • 布局:图纸空间布局,带视口、页面设置和 PLOT 输出 PDF。双击视口可透过它在模型空间中工作。
  • 安装支架:两视图零件图,含中心线、隐藏线、ANSI31 剖面填充和标题栏。
  • 公寓平面图(examples/apartment.dxf):带拾取点填充的墙体、TrueType MTEXT 房间标签、TABLE、多重引线和建筑标注——完全由 CADCraft 命令绘制而成。

[!NOTE] ArtCraft 是一个由各行各业艺术家组成的社区。 画家、摄影师、电影人、插画师、设计师、动画师、爱好者,以及上周才拿起铅笔的人。只要你创作,你就是我们的一员。来 Discord 上打个招呼。

为什么选择 CADCraft

  • 你熟悉的工作流。 输入 L,点击两个点,输入 @5<45,按回车。命令行、带可点击 [关键词] 的提示、自动补全、对象捕捉、极轴追踪、正交、直接距离输入、窗口与交叉选择、夹点编辑、右键重复命令——一切都符合几十年绘图习惯养成的预期。
  • 开放的文件格式。 原生读写 DXF(ASCII 与二进制,R12 至 2018),并通过开源 acadrust 库打开和保存 DWG 文件(R13 至 2018)。目前已支持导出 SVG 和 PNG。
  • 快速且原生。 纯 Rust 与 egui,不用 Electron,不用 web view。macOS(通用二进制)、Windows、Linux 和 FreeBSD 各只需一个二进制文件,另有面向浏览器的 WebAssembly 版本。
  • 为智能体而建。 每个菜单项、工具和提示都是一条命令。智能体可以像人一样在命令行输入,用 JSON 调用任意命令,检查图纸以验证自己的工作,并渲染它——通过 MCP、JSON 控制通道或 CLI。
  • 免费。 MIT OR Apache-2.0 许可,无需账户,无需订阅。

当前已实现的功能

CADCraft 处于早期的快速开发中。如实的状态说明(对等进度数据见 ROADMAP.md):

领域状态
绘图区模型空间,自适应网格、坐标轴、平移/缩放(滚轮、中键拖动、捏合)、带拾取框的十字光标、UCS 图标、ViewCube、视口标签
命令行带关键词的提示、历史记录、自动补全、别名、@dx,dy、@d<a、#x,y、直接距离输入、回车/空格/右键重复命令、透明命令、.scr 风格脚本
绘图LINE、PLINE(圆弧、宽度)、CIRCLE(圆心/半径/直径、2P、3P)、ARC、RECTANG(圆角/倒角)、POLYGON、ELLIPSE(+圆弧)、SPLINE、POINT、XLINE、RAY、DONUT、TEXT、MTEXT
修改ERASE、MOVE、COPY、ROTATE、SCALE、MIRROR、STRETCH、OFFSET、TRIM、EXTEND、FILLET、CHAMFER、BREAK、JOIN、EXPLODE、矩形/环形 ARRAY、绘图顺序、OVERKILL
精确绘图对象捕捉(端点、中点、圆心、几何中心、节点、象限点、交点、插入点、垂足、切点、最近点)、极轴追踪、正交、栅格捕捉
图层与特性图层面板与图层特性管理器(开/关、冻结、锁定、打印、颜色、线型)、图层工具(隔离、冻结、关闭、锁定、图层匹配、上一个)、特性面板支持逐对象编辑、线型、线宽、颜色索引与真彩色
注释全部 DIM* 命令,完整的 DIMSTYLE 变量、替代与所有箭头样式、随几何图形联动的关联标注、MLEADER、TABLE、TrueType 字体、MTEXT 格式代码(字体、字高、颜色、堆叠分数)、自研单线制图字体
填充与图块拾取点填充边界(含孤岛)、来自自有图案库的图案、实体与渐变填充、BLOCK/INSERT、属性与嵌套图块
文件DXF 读写(R12–2018,含标注样式、关联性、表与约束)、DWG 读写(R13–2018,经由 acadrust 库)、PDF 打印、SVG 与 PNG 导出
布局与打印图纸空间布局、视口(比例、锁定、按视口冻结图层)、通过视口的 MSPACE/PSPACE、页面设置、PLOT 与 EXPORTPDF
参数化几何约束与标注约束、AUTOCONSTRAIN、带表达式的 PARAMETERS、冲突检测;每次编辑后约束都会重新求解
夹点热夹点,按空格键循环切换拉伸、移动、旋转、缩放与镜像
自动化MCP 服务器、JSON 控制通道、cadcraft-cli(info、convert、run、commands、mcp)

快速开始

git clone https://github.com/storytold/cadcraft
cd cadcraft
cargo run --release -p cadcraft -- --sample       # 打开示例图纸

然后在命令行试着输入:

line 0,0 @10,0 @0,5 c          一个闭合三角形
circle 5,2 1                    一个圆
offset 0.25                     然后拾取圆和一条边
zoom e                          缩放至图形范围

Web 版构建:cd apps/cadcraft-web && trunk serve(需要 trunk)。

用智能体、MCP 和 CLI 驱动它

# stdio 上的 MCP 服务器,无头模式:
cadcraft-cli mcp
# ……或桥接到正在运行的应用(用 --control 7979 启动它):
cadcraft-cli mcp --connect 127.0.0.1:7979

# 一次性无头运行:
cadcraft-cli run --sample --script 'CIRCLE 22,3 1\n' --save out.dxf --export out.png
cadcraft-cli info drawing.dxf
cadcraft-cli convert drawing.dxf drawing.svg

MCP 工具包括 command_line(在提示符处输入)、execute(用 JSON 执行任意命令)、inspect_drawing、query_entities、render(返回 PNG),连接到应用时还有 screenshot 和 ui_click。桌面应用的 JSON 控制通道文档见 docs/control-protocol.md。

架构

geom ─┐                       f64 几何:圆弧、凸度、样条、交点、偏移
dxf   │  (standalone)         DXF 标签读取器/写入器
color ┤                       颜色索引、真彩色
doc   ┤                       图纸数据库、写时复制实体存储(低开销撤销)
fonts ┤ render               单线字体 + TEXT/MTEXT 排版 │ 显示列表、线型、填充、标注、CPU 光栅化
io    ┤                       DXF 映射、SVG/PNG 导出
engine┤                       会话、命令、命令行 + 提示、捕捉、选择、撤销
ui-egui · mcp                 可替换的 egui 前端 · MCP 服务器
apps: cadcraft · cadcraft-cli · cadcraft-web

ui-egui 之下的任何代码都不感知 egui,因此前端可以替换。cargo xtask ci 会检查格式化、clippy、测试、资源署名、crate 分层与 wasm 构建。

路线图

里程碑、实测对等进度与剩余工作量估计见 ROADMAP.md。

下载

从 GitHub 下载 CADCraft:最新版本列出了下述所有构建,所有版本则包含更早版本及其说明。文件名中的 <ver> 为版本号,SHA256SUMS.txt 列出了每个文件的校验和。

Windows

构建安装程序便携版
x64(64 位 Intel/AMD)cadcraft-<ver>-windows-x64.msicadcraft-<ver>-windows-x64-portable.zip
arm64(Snapdragon 及其他 ARM 电脑)cadcraft-<ver>-windows-arm64.msicadcraft-<ver>-windows-arm64-portable.zip
x86(32 位)cadcraft-<ver>-windows-x86.msicadcraft-<ver>-windows-x86-portable.zip

安装程序与可执行文件均经过代码签名。

macOS

构建文件说明
应用,universal(Apple 芯片 + Intel)cadcraft-<ver>-macos-universal.dmg已签名并公证
命令行工具,universalcadcraft-cli-<ver>-macos-universal.zip已签名并公证

Linux

格式x86_64aarch64(ARM64)说明
AppImagecadcraft-<ver>-linux-x86_64.AppImagecadcraft-<ver>-linux-aarch64.AppImage到处可运行;通过 AppImageUpdate 自更新(.zsync 文件)
Flatpakcadcraft-<ver>-linux-x86_64.flatpakcadcraft-<ver>-linux-aarch64.flatpak沙盒化;flatpak install --user <文件>
Debian/Ubuntucadcraft-<ver>-linux-x86_64.debcadcraft-<ver>-linux-aarch64.deb
Fedora/RHEL/openSUSEcadcraft-<ver>-linux-x86_64.rpmcadcraft-<ver>-linux-aarch64.rpm
Tarballcadcraft-<ver>-linux-x86_64.tar.gzcadcraft-<ver>-linux-aarch64.tar.gz解压即用

FreeBSD

构建文件
x86_64cadcraft-<ver>-freebsd-x86_64.tar.gz

Web(WebAssembly)

构建文件说明
静态站点cadcraft-web-<ver>.zip在现代浏览器中运行;可托管于任意静态服务器

Crafting 应用家族

CADCraft 是 Crafting Apps 之一:来自 ArtCraft 团队的免费开源创作工具,每一款都以 Rust 从零编写,且都能独立运行。

应用用途代码了解更多
PhotoCraft图像编辑:图层、蒙版、文字与真正的 PSD 文件GitHub网站
VectorCraft矢量插画GitHub网站
FilmCraft视频剪辑、调色与声音GitHub网站
LightCraft照片库与 RAW 显影GitHub网站
PdfCraft阅读、整理与保护 PDFGitHub网站
EffectCraft动态图形与视觉特效GitHub网站
DesignCraft页面排版与出版GitHub网站
CADCraft计算机辅助设计与绘图 · 你在这里GitHub网站

此外还有 ArtCraft 本身:为想要真正掌控力的艺术家打造的 AI 图像与视频工作室。

我们的 Discord 是各类艺术家聚集的地方:画画的、摄影的、绘画的、剪片的、排字的,以及还在摸索自己想做什么的人。在这里分享你的作品、寻求帮助、报告问题,或告诉我们你希望这些工具能做什么。无论你用什么媒介、入行多久,都欢迎你。

许可与致谢

CADCraft 在 MIT 或 Apache-2.0 下双重许可,任选其一。版权所有 (c) 2026 ArtCraft 团队及 CADCraft 贡献者。必需声明见 NOTICE。

捆绑的字体、图标、图像及其他资源保留各自的开源许可;每一项的作者、来源和许可均列于 ATTRIBUTION.md。

CADCraft 的图标、单线制图字体、填充图案和线型均为原创,通过手绘或代码定义。示例图纸同样由代码生成。

ArtCraft 名称、字标及 docs/brand/ 中的徽标是 ArtCraft 团队的商标,不在本许可覆盖范围内。它们只能以未修改的形式、且仅作为本仓库及 CADCraft 的一部分,依据 docs/brand/LICENSE-brand.txt 使用。分支与修改版本必须移除它们。

Autodesk、AutoCAD 和 DWG 是 Autodesk, Inc. 在美国和/或其他国家/地区的商标或注册商标。CADCraft 是一个独立的开源项目,与 Autodesk, Inc. 无关联,也未获得其赞助或认可;这些名称仅用于描述其所兼容的工作流和文件格式。