跳到内容
CADCAMFUN
文档

文档

快速入门

从工作区依赖项到由真正的本地 sidecar 支持的桌面窗口。

从英文自动翻译。 查看英文原文

要求

安装程序和源结帐是不同的

已发布的桌面版本位于 下载页面。本指南安装存储库并运行 desktop:dev。读 安装 当您想要发布工件时。

工作区声明Bun 1.4.4 作为它的包管理器。使用存储库锁定文件进行依赖项安装。本机桌面开发还需要 Rust 工具链、平台的 Tauri 构建依赖项以及已安装的系统 Webview。 Tauri CLI 已经成为桌面开发依赖项。

  • 苹果系统: 用于 Rust/本机链接和打包的 Xcode 命令行工具。
  • 视窗: mSVC 工具链和 WebView2 运行时/构建先决条件。
  • Linux: WebKitGTK 4.1、应用程序指示器、librsvg、OpenSSL 和捆绑器工具。 CI 工作流程记录了 Ubuntu 上使用的包。
  • iOS 伴侣: macOS、Xcode、CocoaPods 和包含本地固定模块的本机 Expo 版本。

浏览器预览需要 Bun 和工作区依赖项,但不编译 Rust shell。发布安装程序还需要签名配置;这与本地 UI 开发是分开的。

安装依赖项

从存储库根目录
bun install
bun run --filter @cadcamfun/desktop typecheck
bun test packages/core

在工作区根目录安装一次,以便本地安装 workspace:* 依赖关系一起解决。 CI 使用 bun install --frozen-lockfile 拒绝锁文件漂移。使用包脚本选择存储库的配置编译器,而不是假设每个包都使用相同的 TypeScript 可执行文件。

上面的目标命令提供了快速的源检查。完整的工作区检查是 bun run typecheck 和 bun run test;它们涵盖更多模块并且可能需要更长的时间。单个传递包并不能证明所有运行时集成都已配置。

数据库设置

真正的桌面不需要单独的 CLI 迁移命令。它的启动器提供应用程序数据目录和分阶段迁移到 sidecar;打开数据库应用挂起的迁移。 bun run desktop:dev 作为准备 sidecar 的一部分,暂存迁移资源。

数据库命令行工具是单独的。 bun run db:migrate 委托给数据库包,默认为 ./data/cadcamfun.db 通常相对于该包的进程目录 packages/db/data/cadcamfun.db 通过根脚本调用时。设置绝对值 DATABASE_URL 当您需要定位特定数据库时。

仅当更改数据库架构时
bun run db:generate
bun run db:migrate

一代阅读 packages/db/src/schema.ts 并将迁移写入 packages/db/drizzle。应用迁移会更新选定的 CLI 数据库,而不是每个应用程序数据库。本机桌面数据位于 Tauri 应用程序数据目录中;手动启动的 sidecar 使用 CADCAMFUN_DATA_DIR.

慎重选择数据库

成功的 CLI 迁移不会更改桌面打开的数据库。在调查丢失的项目或应用手动数据操作之前,找到 sidecar 数据目录。

打开桌面

从存储库根目录
bun run desktop:dev

这会编译真正的 Bun sidecar 并进行迁移,然后运行 Tauri。 Tauri 开始 Vite 的时间为 http://localhost:1420 并打开网络视图。 Rust shell 等待 sidecar 准备好握手; webview 在显示路由屏幕之前会检查运行状况。

保持启动终端打开。 shell 拥有 sidecar 生命周期并提供其启动令牌和路径。如果启动失败,请检查启动原因和应用日志。 Web 视图重试端点发现最多 150 秒; shell 允许 sidecar 自动重启。

仅浏览器 UI 预览
bun run --filter @cadcamfun/desktop dev

打开 http://localhost:1420。没有 VITE_SIDECAR_URL,这使用了内存中的伪造 API。它支持请求的子集,并且不提供持久项目、提供程序会话或本机对话框。通过设置 Vite sidecar URL 和令牌流程变量来连接到实时 sidecar。

桌面包的 tauri:dev 当二进制文件丢失时,脚本会创建一个存根 sidecar。存根支持外壳隔离。更喜欢根 desktop:dev 行使应用服务时的命令。

bun run desktop:dev 第一次运行 build:sidecar,它编译边车并阶段迁移(管道步骤 compile 和 resources)。然后开始 tauri dev 在桌面包中。

验证第一个会话

  1. 等待应用程序离开启动屏幕并确认其已连接到预期的 API。
  2. 创建或打开项目并输入 CAD 或 CAM。
  3. 保存工作并通过项目/资源 UI 重新打开它以验证持久性。
  4. 如果使用助手,请在开始对话之前在桌面设置中配置支持的模型提供程序。
  5. 如果使用 iOS 配套,请启用其网关并在桌面上创建设备配对。

测试可见路径并不能验证加工安全性。在将 NC 输出传输到机器之前,检查库存、刀具、机器限制、后期输出和实际操作的验证结果。

运行文档站点
bun run --cwd packages/web start
bun run --cwd packages/web check
bun run --cwd packages/web build

网络 start 命令运行 Astro。 Use its printed local address.网络 dev 脚本另外启动Studio API,它可以打开选定的本地数据库;在使用 Studio 而不是单独使用静态文档时使用它。

下一个命令

目标命令
仅编译 sidecar 并进行迁移bun run build:sidecar
无需安装程序即可构建前端bun run build:desktop
审查本机构建计划bun scripts/build.ts --dry-run
重新生成 API 客户端bun run generate
检查生成的客户端bun run generate:check
运行同伴传输测试bun run --cwd apps/mobile test

无需模型即可验证真实的 API

启动本地开发指南中描述的手动 sidecar,或使用您控制的开发流程的端点/令牌。以下配方创建一个一次性项目并列出它。它需要卷曲;可选的标识符提取使用 Bun。将示例端口和令牌替换为隔离 sidecar 的端口和令牌。

第二终端:健康、创建、列出、阅读
CADCAM_URL=http://127.0.0.1:43111
CADCAM_TOKEN=local-development-token

curl --fail-with-body "$CADCAM_URL/api/health"

curl --fail-with-body -X POST "$CADCAM_URL/api/projects"   -H "Authorization: Bearer $CADCAM_TOKEN"   -H 'Content-Type: application/json'   -d '{"name":"Documentation smoke","description":"Disposable local check","isPublic":false}'   -o /tmp/cadcamfun-project-smoke.json

curl --fail-with-body "$CADCAM_URL/api/projects"   -H "Authorization: Bearer $CADCAM_TOKEN"

CADCAM_PROJECT_ID=$(bun --no-env-file -e   'const row = await Bun.file("/tmp/cadcamfun-project-smoke.json").json(); console.write(row.id)')
curl --fail-with-body "$CADCAM_URL/api/projects/$CADCAM_PROJECT_ID"   -H "Authorization: Bearer $CADCAM_TOKEN"

Health 返回一个状态/时间戳对象。项目创建返回 HTTP 201 和项目行及其标识符。列表返回具有所有者/组织关系和计数的项目数组;按标识符读取会返回一个此类相关项目。该示例不调用模型或生成机器输出。

彻底关闭手动 sidecar,使用相同的数据目录重新启动它,更新临时 URL,然后再次列出项目以检查持久性。新的发布可能会选择不同的端口。如果该项目不存在,请首先比较数据目录、客户端端点和授权上下文。

对于这个一次性项目来说,清理是可选的且具有破坏性:发送 DELETE /api/projects/<id> 仅在确认返回的标识符后。创建/列表/读取练习应用程序持久性,无需清理即可成功。

解释首次运行失败

失败可能的边界下一步行动
依赖安装无法解析本地包工作区安装使用声明的 Bun 版本和锁定文件从存储库根运行。
本机链接或 WebKit 错误金牛座先决条件安装匹配 CI 目标使用的工具链/平台库。
没有准备好的事件Sidecar 配置、迁移或启动检查 stderr 和结构化错误事件。保持标准输入打开。
运行状况正常,项目调用返回 401授权健康是公共的;受保护的 API 调用仍然需要当前进程令牌。
创建退货 400请求验证/业务验证使用非空名称发送 JSON 并检查返回的消息。
使用组织数据创建退货 403组织成员资格使用可访问的组织或省略组织字段进行本地检查。
本地同伴说固定不可用缺少本地 Expo 模块使用自定义 iOS 版本,而不是 Expo Go。

保持第一次验证较小:健康状况、一个项目、一个持久的绘图/程序,然后是可选的集成。成功的基础应用程序启动不会自动配置 Stripe、AI 提供程序、远程 GitHub 存储库或移动路由。

需求详情

工具版本需要用于
Bun1.4.4(存储库的 packageManager)一切:安装、测试、sidecar、脚本
Rust 工具链 + Tauri 先决条件稳定的; Linux 上的平台 webview 库桌面外壳(desktop:dev,构建)
SQLite CLI任何可选:只读数据库检查
Xcode—仅适用于 iOS 伴侣

你的第一个小时,一步一步

从克隆到运行桌面
git clone https://github.com/nikomatt69/cadcamfun.git
cd cadcamfun
bun install --frozen-lockfile
bun run typecheck                 # all workspaces
bun run test                      # bun test packages apps scripts
bun run desktop:dev               # builds the sidecar + migrations, then tauri dev
  1. 当窗口打开时,Sidecar 状态会在几秒钟内变为就绪状态;首次启动时会迁移新的数据目录。
  2. 创建一个项目,添加一个绘图,绘制一个矩形并拉伸它。
  3. 打开 CAM,选取实体并生成。导出 NC 之前检查发布级别和声明。
  4. 打开历史记录面板并提交:该项目现在有了第一个版本。

无需型号密钥

上述一切都可以在没有人工智能提供商的情况下运行。稍后在助手设置中添加一个键。

在 3D

片段快速入门开始 拖动进行轨道旋转·滚动进行缩放·右键拖动进行平移
Processes at run time. The Tauri shell spawns the sidecar and waits for its {”event”:”ready”,”port”:N} line on stdout (sidecar.rs); the webview then talks HTTP to 127.0.0.1 on that port with the bearer token. The sidecar owns the SQLite database, the embedded nikcli AI host (CADCAMFUN_AI_HOST=nikcli, the default) and plugins; the mobile app reaches it through companion pairing.