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.msi | cadcraft-<ver>-windows-x64-portable.zip |
| arm64(Snapdragon 及其他 ARM 电脑) | cadcraft-<ver>-windows-arm64.msi | cadcraft-<ver>-windows-arm64-portable.zip |
| x86(32 位) | cadcraft-<ver>-windows-x86.msi | cadcraft-<ver>-windows-x86-portable.zip |
安装程序与可执行文件均经过代码签名。
macOS
| 构建 | 文件 | 说明 |
|---|---|---|
| 应用,universal(Apple 芯片 + Intel) | cadcraft-<ver>-macos-universal.dmg | 已签名并公证 |
| 命令行工具,universal | cadcraft-cli-<ver>-macos-universal.zip | 已签名并公证 |
Linux
| 格式 | x86_64 | aarch64(ARM64) | 说明 |
|---|---|---|---|
| AppImage | cadcraft-<ver>-linux-x86_64.AppImage | cadcraft-<ver>-linux-aarch64.AppImage | 到处可运行;通过 AppImageUpdate 自更新(.zsync 文件) |
| Flatpak | cadcraft-<ver>-linux-x86_64.flatpak | cadcraft-<ver>-linux-aarch64.flatpak | 沙盒化;flatpak install --user <文件> |
| Debian/Ubuntu | cadcraft-<ver>-linux-x86_64.deb | cadcraft-<ver>-linux-aarch64.deb | |
| Fedora/RHEL/openSUSE | cadcraft-<ver>-linux-x86_64.rpm | cadcraft-<ver>-linux-aarch64.rpm | |
| Tarball | cadcraft-<ver>-linux-x86_64.tar.gz | cadcraft-<ver>-linux-aarch64.tar.gz | 解压即用 |
FreeBSD
| 构建 | 文件 |
|---|---|
| x86_64 | cadcraft-<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 | 阅读、整理与保护 PDF | GitHub | 网站 |
| 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. 无关联,也未获得其赞助或认可;这些名称仅用于描述其所兼容的工作流和文件格式。