☰
SolidCraft 源码构建完整指南:桌面端、浏览器 WASM 与 CLI 三条路线
2026/11/5 17:58:43 网站建设 项目流程

SolidCraft 源码构建完整指南:桌面端、浏览器 WASM 与 CLI 三条路线

【免费下载链接】solidcraftSolidCraft: an open-source parametric 3D CAD application built in pure Rust. Desktop, web, and automation through MCP.项目地址: https://gitcode.com/gh_mirrors/so/solidcraft

SolidCraft 是一个纯 Rust 编写的开源参数化 3D CAD 应用,支持草图约束、特征时间线与参数化重建。本文覆盖它的三条源码构建路线:桌面端、浏览器 WASM 版与无界面 CLI,外加交叉编译、Nix 构建与 CI 自检。按主路径走一遍,10 分钟内可以拿到一个能跑的桌面程序。

🧰 环境要求与一键自检:Rust 版本、WASM 目标与前端工具

SolidCraft 要求stable Rust 1.95+(由 egui/eframe 0.36 决定)。先把工具链升到最新:

rustup update stable

下面三项中,WASM 目标与 trunk 只在你要编译浏览器版时需要:

依赖用途安装命令
Rust 1.95+(stable)全部构建形态rustup update stable
wasm32-unknown-unknown 目标浏览器 WASM 版rustup target add wasm32-unknown-unknown
trunk前端构建工具cargo install trunk

更完整的环境说明见 CONTRIBUTING.md 与快速上手文档 docs/book/src/guide/getting-started.md。

🖥️ 主路径:从克隆仓库到首次运行桌面端

  1. 克隆源码并进入仓库根目录,得到整个 Cargo workspace(几何内核 crates/kernel、约束求解器 crates/sketch、文档模型 crates/doc 等,布局见 Cargo.toml):
git clone https://gitcode.com/gh_mirrors/so/solidcraft cd solidcraft
  1. cargo build --release -p solidcraft编译桌面端可执行文件,产物落在target/release/solidcraft:
cargo build --release -p solidcraft
  1. cargo run --release -p solidcraft -- --sample直接以示例零件启动应用;编译成功后会打开窗口并加载 Sample Plate 零件:
cargo run --release -p solidcraft -- --sample

首次编译约需几分钟(Rust release 构建的常规耗时),之后增量编译很快。

拿到target/release/solidcraft之后,它也可以把 CAD 文件直接作为设计打开:

solidcraft part.step solidcraft design.solidcraft

💡 Linux 桌面端依赖 Vulkan 显卡驱动。如果系统缺少图形库(NixOS 上常见),可以用仓库自带的 Nix flake 进入封装好的 Wayland/EGL/Vulkan 环境:nix develop。详见 docs/nix.md。

🧩 一套内核,两副壳:浏览器 WASM 版与无界面 CLI

桌面、Web、CLI 三个应用目标共用同一套内核(workspace 里是 apps/solidcraft、apps/solidcraft-web、apps/solidcraft-cli),只是外壳不同。

浏览器 WASM 版的本地开发与生产构建

Web 版前端在 apps/solidcraft-web/,用trunk构建(配置见 apps/solidcraft-web/Trunk.toml)。

本地开发模式带热更新,监听 127.0.0.1:8781,浏览器访问打印出的地址即可;附加参数?sample打开示例零件,?webgl在无 WebGPU 的环境强制使用 WebGL2:

cd apps/solidcraft-web trunk serve --release

生产构建把产物输出到dist/web,可部署到任意静态服务器:

cd apps/solidcraft-web trunk build --release --public-url ./

⚠️ 浏览器端保存/打开文件基于 Origin Private File System,必须在HTTPS 或 localhost环境下才能正常工作。

无界面命令行的编译与自动化用法

solidcraft-cli执行与图形界面完全相同的命令(源码在 apps/solidcraft-cli/src/),面向自动化、批量导出和 AI 代理(MCP)场景:

cargo build --release -p solidcraft-cli

常用子命令以仓库自带示例 examples/bracket.json 为基准——一条脚本就是一组 JSON 命令,与界面里的操作一一对应:

solidcraft-cli commands # 输出完整命令注册表 solidcraft-cli run examples/bracket.json --out bracket.step solidcraft-cli eval examples/bracket.json # 测量体积、面积、面数 solidcraft-cli snapshot examples/bracket.json --out bracket.png solidcraft-cli mcp # 启动 MCP 服务器

🧪 给构建做体检:xtask 测试与 CI 检查

仓库自带xtask工具链(实现在 xtask/src/main.rs),两条命令分工不同:

  • cargo xtask test— 单元、引擎与 UI 场景测试
  • cargo xtask ci— fmt + clippy + 测试 + WASM 检查,即 PR 必须通过的完整流水线
cargo xtask test
cargo xtask ci

测试语料可以直接翻:tests/oracle/下有 92 个参考零件,UI 场景脚本在crates/ui-egui/tests/scenarios/。

🗂️ 翻车现场速查:SolidCraft 编译故障排查

现象处置
编译报错说 Rust 版本过旧rustup update stable,要求 1.95+
Linux 下启动时提示缺少 Wayland/Vulkan 相关库nix develop进入封装环境,或自行补装系统图形库
敲trunk提示找不到命令cargo install trunk,装完重开终端
浏览器版里保存文件失败确认页面跑在 localhost 或 HTTPS 下
第一次编译等了很久release 构建本来就慢,属正常现象;后续增量编译会快很多

选读:交叉编译 Windows 与 Nix 构建

按需选读,两条路线都只在你需要对应产物时才执行。

在 Linux 上交叉编译 Windows 版(前置:安装cargo-xwin):

cargo xwin build --release --target x86_64-pc-windows-msvc -p solidcraft

用 Nix flake 构建,环境完全可复现;第一条免安装直接运行,第二条把应用安装为系统命令:

nix run .#solidcraft -- --sample nix profile install .#solidcraft

三条路线收在这里:桌面端一条cargo build出可执行文件,浏览器版由 trunk 产出静态站点,CLI 把同样的命令搬进脚本和 MCP 服务。更多细节看官方文档 docs/book/ 与功能清单 docs/features.md。

【免费下载链接】solidcraftSolidCraft: an open-source parametric 3D CAD application built in pure Rust. Desktop, web, and automation through MCP.项目地址: https://gitcode.com/gh_mirrors/so/solidcraft

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询