storytold/cadcraft · 上手攻略

  • 仓库:storytold/cadcraft
  • 链接:https://github.com/storytold/cadcraft
  • 分类:生产力工具 · CAD / 工程制图 / Rust
  • 作者:Tom
  • 更新:2026-10-11

§0 自检

  • GitHub URL fetched ✅
  • 顶会/年份:无(工具类,无学术论文归属)✅
  • README 子模块 anchor:why-cadcraft / what-works-today / quick-start / agents-mcp-cli / architecture / roadmap ✅
  • ⚠️ 版本号:README 内未标注显式版本号,下载文件名含版本占位符(需从 release 页确认最新版本)

是什么

CADCraft 是一款开源、清洁室(clean-room)实现的 AutoCAD 替代品,用纯 Rust 从零重写,不依赖任何 AutoCAD 组件。兼容 AutoCAD 的命令行操作方式、图层系统、对象捕捉、标注、填充、块(Block)和 DXF 文件格式。

说得直白一点:用 Rust 重新实现了一套 AutoCAD 的核心功能,兼容 DXF/DWG,可以跑在 macOS、Windows、Linux、FreeBSD,甚至浏览器里(WebAssembly)。

关键特色: - 命令行驱动:像 AutoCAD 一样敲命令,L 画线,C 画圆,OFFSET 偏移,TRIM 裁剪 - 纯 Rust:性能好,跨平台,内存安全 - DXF 原生读写:R12~2018 的 ASCII 和二进制 DXF 都支持,输出 R2000 格式 - DWG 读(通过 acadrust 库):可打开既有 DWG 文件 - Agent / MCP / CLI:可以通过 MCP 协议或 JSON 控制通道让 AI Agent 驱动它画图 - 双许可证:MIT 或 Apache-2.0,可以闭源使用


解决什么问题

  • 想用开源工具替代 AutoCAD,不需要商业许可
  • 需要让 AI Agent 直接驱动 CAD 画图(MCP 协议支持)
  • 跨平台需要 CAD:Windows / macOS / Linux / FreeBSD 都能跑
  • 不想装厚重臃肿的商业 CAD 软件,只画 DXF 图
  • 想在浏览器里直接打开 CAD 图(WebAssembly 版本)
  • 对 DXF/DWG 有定制化需求,Rust 生态可扩展

⚠️ 注意:CADCraft 处于早期活跃开发阶段(honest status),不是所有 AutoCAD 功能都已实现,具体 parity 数字见 ROADMAP.md。


快速安装

方式一:下载预编译包(推荐)

访问 https://getartcraft.com/apps/cadcraft 或 GitHub release 页,根据平台选包:

macOS(Apple Silicon / Intel)

下载 cadcraft--macos-arm64.dmg 或 cadcraft--macos-x86_64.dmg
双击打开,将 CADCraft.app 拖入 Application

Windows(x64)

下载 cadcraft--windows-x86_64.msi 或 cadcraft--windows-x86_64.zip(便携)
MSI 双击安装

Linux(x64)

下载 cadcraft--linux-x86_64.tar.gz
tar -xzf cadcraft--linux-x86_64.tar.gz
./cadcraft  # 或通过显示管理器启动

FreeBSD(x64)

下载 cadcraft--freebsd-x86_64.tar.gz
解压后运行 cadcraft

浏览器(WebAssembly)

下载 cadcraft-web-.zip(静态文件)
任意静态服务器托管即可,例如:
python3 -m http.server 8080
然后浏览器访问 http://localhost:8080

方式二:从源码编译

依赖:Rust 1.95+(桌面版),Rust 1.90+(核心工作区)

# 克隆仓库
git clone https://github.com/storytold/cadcraft
cd cadcraft

# 编译并运行(带示例图纸)
cargo run --release -p cadcraft -- --sample

# WebAssembly 版(需 trunk)
cd apps/cadcraft-web
cargo install trunk   # 如果没有 trunk
trunk serve
# 浏览器打开 http://localhost:8080

⚠️ CADCraft 不捆绑字体,使用系统已安装的 TrueType/OpenType 字体(.ttf/.otf/.ttc)。中文字体支持依赖系统安装的 CJK 字体(Noto Sans CJK、微软雅黑等)。


核心用法

基本绘图命令(对照 AutoCAD)

# 画线:L → 输入起点 → 输入终点
line 0,0 @10,0 @0,5 c a
# L: LINE 命令
# 0,0: 起点
# @10,0: 相对坐标(往右 10)
# @0,5: 相对坐标(往上 5)
# c: close,闭合图形
# a: 输入下一个点的角度(极轴模式)

# 画圆:C → 圆心 → 半径
circle 5,2 1

# 偏移:OFFSET → 偏移距离 → 选择对象 → 选侧
offset 0.25
# 选择要偏移的圆
# 点击偏移侧

# 缩放视图
zoom e   # zoom to extents,缩放到充满窗口
zoom w   # zoom window,缩放到窗口范围

精度工具(对象捕捉)

常用对象捕捉(Object Snap)快捷键:

捕捉类型 关键词
端点 end
中点 mid
圆心 cen
交点 int
垂足 per
切点 tan
最近点 nea

输入 OSNAP 或在设置里打开「运行对象捕捉」,持续生效。

图层管理

# 新建图层
layer new mylayer
# 设置颜色
layer set mylayer color red
# 冻结图层
layer freeze mylayer
# 锁定图层
layer lock mylayer

文件操作

# 打开 DXF 文件
open drawing.dxf

# 保存
save mydrawing.dxf

# 导出其他格式
export pdf mydrawing.pdf
export svg mydrawing.svg
export png mydrawing.png

Agent / MCP / CLI 驱动

MCP 服务器(stdio 模式,无头):

cadcraft-cli mcp
# 输出 JSON-RPC 格式,可被 AI Agent 连接

MCP 服务器(桥接到运行中的 GUI):

# 先启动 GUI,加 --control 7979
cadcraft --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

# 导出局部窗口
cadcraft-cli convert drawing.dwg detail.png \
  --window 0,0,20000,15000

环境变量:

变量 作用
CADCRAFT_CONFIG_DIR 指定配置目录(默认平台标准位置)
RUST_LOG 日志级别,如 RUST_LOG=debug,cadcraft_io=trace
CADCRAFT_FONTALT 字体找不到时的替代字体
CADCRAFT_FONTFALLBACK 字体缺字时的回退字体列表

典型适用场景

场景 推荐方式
日常工程制图(DXF 为主) GUI 版,直接拖拽
让 AI Agent 画 CAD 图 MCP 模式,Claude/GPT 通过 MCP 连接
批量转换 DWG/DXF 文件 cadcraft-cli convert 脚本化
浏览器里快速查看图纸 WebAssembly 版,零安装
自动化出图报告 CLI 脚本 + PDF 导出
参与 CADCraft 开发 源码编译,RUST_LOG=debug 看详细日志

坑与注意

  1. 不是所有 AutoCAD 命令都有:目前实现约 70%+ 常用命令,详见 ROADMAP.md。复杂 AutoCAD 脚本可能无法直接移植。
  2. 字体兼容性:CADCraft 不捆绑字体。如果 DXF 文件用了 SHX 字体(含大字体如 chineset.shx),CADCraft 会用自带的笔画字体替代,可能会与原始显示不同。
  3. DWG 写入有限制:DWG 读取通过 acadrust 库支持,但写入只支持 R2000 格式;更新的 DWG 版本写入可能丢数据。
  4. 中文字体依赖系统:CJK 字符显示依赖系统安装的 Noto Sans CJK、微软雅黑等字体,否则会回退到笔画字体。
  5. 早期版本 API 可能变:MCP 协议和 CLI 接口仍在活跃开发,版本间可能有 Breaking Change。
  6. 日志文件增长限制 16 MiB:日志文件达到 16 MiB 后停止写入,崩溃诊断请在 16 MiB 到达前抓取日志。
  7. WebAssembly 版性能有限:复杂图纸在浏览器里运行可能有性能瓶颈,不适合大图纸。
  8. 平板/触控支持弱:主要针对键鼠操作设计,触控板支持一般。

与同类对比

工具 语言 许可证 DXF DWG 平台 Agent/MCP
CADCraft Rust MIT/Apache-2.0 ✅ R12~2018 读写 ✅ 仅读(R2000) 全平台 + WASM ✅ MCP + CLI
FreeCAD C++/Python LGPL ✅ ⚠️ 有限 全平台 ⚠️ 有限
LibreCAD C++ GPL ✅ ❌ 全平台 ❌
QCAD C++ GPL/商业 ✅ ❌ 全平台 ❌
OpenSCAD C++ GPL ❌(.scad) ❌ 全平台 ❌
BricsCAD C++ 商业 ✅ ✅ 全平台 ⚠️ LISP API

CADCraft 的独特优势: - 纯 Rust 实现,性能和内存安全兼得 - 原生 MCP 协议支持,AI Agent 驱动画图开箱即用 - AutoCAD 命令行操作习惯完全对齐(别名、透明命令、@dx,dy 等) - 双许可证(MIT/Apache-2.0),可闭源商业使用 - 浏览器可直接打开(WebAssembly)


一句话结论

CADCraft 是目前最值得关注的开源 AutoCAD 替代品:Rust 写的、性能好、原生支持 AI Agent 通过 MCP 驱动——既适合个人工程师日常画 DXF,也适合拿来让 AI 直接帮你画图,推荐配合 MCP 使用。


三证 checklist:GitHub URL ✅ | 顶会/年份:无(工具类)✅ | README 子模块:why-cadcraft / quick-start / agents-mcp-cli ✅