Zum Inhalt springen
CADCAMFUN
Doku

Dokumentation

Schnellstart

Von Arbeitsbereichsabhängigkeiten bis hin zu einem Desktop-Fenster, das durch den echten lokalen Sidecar unterstützt wird.

Automatisch aus dem Englischen übersetzt. Englisches Original ansehen

Anforderungen

Installationsprogramme und ein Quell-Checkout sind unterschiedlich

Ein veröffentlichter Desktop-Build befindet sich auf der download-Seite. Diese Anleitung installiert das Repository und führt es aus desktop:dev. Lesen Installieren wenn Sie stattdessen die Release-Artefakte benötigen.

Der Arbeitsbereich deklariert Bun 1.4.4 als Paketmanager. Verwenden Sie die Repository-Sperrdatei für die Abhängigkeitsinstallation. Für die native Desktop-Entwicklung sind außerdem eine Rust-Toolchain, die Tauri-Build-Abhängigkeiten der Plattform und eine installierte System-Webansicht erforderlich. Die Tauri-CLI ist bereits eine Desktop-Entwicklungsabhängigkeit.

  • macOS: Xcode-Befehlszeilentools für Rust/native Verknüpfung und Paketierung.
  • Windows: die MSVC-Toolchain und WebView2-Laufzeit-/Build-Voraussetzungen.
  • Linux: WebKitGTK 4.1, Anwendungsindikator, librsvg, OpenSSL und Bundler-Tools. Der CI-Workflow erfasst die unter Ubuntu verwendeten Pakete.
  • iOS-Begleiter: macOS, Xcode, CocoaPods und ein nativer Expo-Build, der das lokale Pinning-Modul enthält.

Eine Browservorschau erfordert Bun- und Workspace-Abhängigkeiten, kompiliert jedoch nicht die Rust-Shell. Ein Release-Installationsprogramm erfordert zusätzlich eine Signaturkonfiguration. das ist von der lokalen UI-Entwicklung getrennt.

Abhängigkeiten installieren

Aus dem Repository-Stammverzeichnis
bun install
bun run --filter @cadcamfun/desktop typecheck
bun test packages/core

Einmal im Arbeitsbereich-Stammverzeichnis installieren, also lokal workspace:* abhängigkeiten lösen sich gemeinsam auf. CI verwendet bun install --frozen-lockfile sperrdateidrift ablehnen. Verwenden Sie die Paketskripts, um den konfigurierten Compiler des Repositorys auszuwählen, anstatt davon auszugehen, dass jedes Paket dieselbe ausführbare TypeScript-Datei verwendet.

Die oben genannten gezielten Befehle ermöglichen eine schnelle Quellenprüfung. Die vollständigen Arbeitsbereichsprüfungen sind bun run typecheck und bun run test; sie decken mehr Module ab und können länger dauern. Ein einzelnes übergebenes Paket beweist nicht, dass alle Laufzeitintegrationen konfiguriert sind.

Datenbank-Setup

Für den echten Desktop ist kein separater CLI-Migrationsbefehl erforderlich. Sein Launcher stellt das Anwendungsdatenverzeichnis und inszenierte Migrationen zum Sidecar bereit; Das Öffnen der Datenbank gilt für ausstehende Migrationen. bun run desktop:dev stellt die Migrationsressource als Teil der Vorbereitung des Sidecars bereit.

Das Datenbank-Befehlszeilentool ist separat. bun run db:migrate delegiert an das Datenbankpaket und verwendet standardmäßig ./data/cadcamfun.db normalerweise relativ zum Prozessverzeichnis dieses Pakets packages/db/data/cadcamfun.db wenn es über das Root-Skript aufgerufen wird. Setzen Sie ein Absolutes DATABASE_URL wenn Sie auf eine bestimmte Datenbank abzielen müssen.

Nur bei Änderung des Datenbankschemas
bun run db:generate
bun run db:migrate

Generation liest packages/db/src/schema.ts und schreibt Migrationen unter packages/db/drizzle. Durch das Anwenden von Migrationen wird die ausgewählte CLI-Datenbank aktualisiert, nicht jede Anwendungsdatenbank. Native Desktop-Daten befinden sich im Tauri-Anwendungsdatenverzeichnis. ein manuell gestarteter Sidecar verwendet CADCAMFUN_DATA_DIR.

Wählen Sie die Datenbank bewusst aus

Eine erfolgreiche CLI-Migration ändert nichts daran, welche Datenbank der Desktop öffnet. Suchen Sie das Sidecar-Datenverzeichnis, bevor Sie fehlende Projekte untersuchen oder einen manuellen Datenvorgang anwenden.

Öffnen Sie den Desktop

Aus dem Repository-Stammverzeichnis
bun run desktop:dev

Dadurch wird der echte Bun-Sidecar kompiliert, Migrationen durchgeführt und dann Tauri ausgeführt. Tauri startet Vite um http://localhost:1420 und öffnet die Webansicht. Die Rust-Shell wartet auf den „Ready Handshake“ des Sidecars; Die Webansicht prüft den Zustand, bevor geroutete Bildschirme angezeigt werden.

Halten Sie das Startterminal geöffnet. Die Shell ist Eigentümer des Sidecar-Lebenszyklus und stellt ihr Starttoken und ihre Pfade bereit. Wenn der Start fehlschlägt, überprüfen Sie den Startgrund und die Anwendungsprotokolle. Die Webansicht wiederholt die Endpunkterkennung für bis zu 150 Sekunden; Die Shell ermöglicht einen automatischen Sidecar-Neustart.

Nur-Browser-UI-Vorschau
bun run --filter @cadcamfun/desktop dev

Offen http://localhost:1420. Mit nein VITE_SIDECAR_URL, hierbei wird die In-Memory-Fake-API verwendet. Es unterstützt eine Teilmenge von Anforderungen und stellt keine dauerhaften Projekte, Anbietersitzungen oder nativen Dialoge bereit. Stellen Sie eine Verbindung zu einem Live-Sidecar her, indem Sie sowohl die Vite-Sidecar-URL als auch die Token-Prozessvariablen festlegen.

Das Desktop-Paket tauri:dev das Skript erstellt einen Stub-Sidecar, wenn die Binärdatei fehlt. Der Stub unterstützt die Shell-Isolation. Bevorzugen Sie die Wurzel desktop:dev befehl beim Ausführen von Anwendungsdiensten.

bun run desktop:dev erste Läufe build:sidecar, das den Sidecar kompiliert und Migrationen (Pipelineschritte) inszeniert compile und resources). Dann geht es los tauri dev im Desktop-Paket.

Überprüfen Sie die erste Sitzung

  1. Warten Sie, bis die Anwendung den Startbildschirm verlässt, und bestätigen Sie, dass sie mit der vorgesehenen API verbunden ist.
  2. Erstellen oder öffnen Sie ein Projekt und geben Sie CAD oder CAM ein.
  3. Speichern Sie die Arbeit und öffnen Sie sie erneut über die Projekt-/Ressourcen-Benutzeroberfläche, um die Persistenz zu überprüfen.
  4. Wenn Sie den Assistenten verwenden, konfigurieren Sie einen unterstützten Modellanbieter in den Desktop-Einstellungen, bevor Sie ein Gespräch beginnen.
  5. Wenn Sie den iOS-Begleiter verwenden, aktivieren Sie dessen Gateway und erstellen Sie eine Gerätekopplung auf dem Desktop.

Das Testen eines sichtbaren Pfades validiert nicht die Bearbeitungssicherheit. Überprüfen Sie Lagerbestände, Werkzeuge, Maschinengrenzen, Postausgabe und Verifizierungsergebnisse für den tatsächlichen Vorgang, bevor Sie die NC-Ausgabe an eine Maschine übertragen.

Führen Sie die Dokumentationsseite aus
bun run --cwd packages/web start
bun run --cwd packages/web check
bun run --cwd packages/web build

Das Web start befehl führt Astro aus. Verwenden Sie die aufgedruckte lokale Adresse. Das Web dev skript startet zusätzlich die Studio-API, die die ausgewählte lokale Datenbank öffnen kann; Verwenden Sie es, wenn Sie an Studio arbeiten, und nicht nur an der statischen Dokumentation.

Nächste Befehle

ZielBefehl
Nur Sidecar kompilieren und Migrationen durchführenbun run build:sidecar
Erstellen Sie ein Frontend ohne Installationsprogrammebun run build:desktop
Überprüfen Sie den nativen Build-Planbun scripts/build.ts --dry-run
API-Clients neu generierenbun run generate
Überprüfen Sie die generierten Clientsbun run generate:check
Führen Sie Begleittransporttests durchbun run --cwd apps/mobile test

Verifizieren Sie eine echte API ohne Modell

Starten Sie den im lokalen Entwicklungsleitfaden beschriebenen manuellen Sidecar oder verwenden Sie den Endpunkt/Token eines von Ihnen kontrollierten Entwicklungsprozesses. Das folgende Rezept erstellt ein Einwegprojekt und listet es auf. Es braucht Locken; Die optionale Identifikatorextraktion verwendet Bun. Ersetzen Sie den Beispielport und das Token durch die Ihres isolierten Sidecars.

Zweites Terminal: Gesundheit, Erstellen, Auflisten, Lesen
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 gibt ein Status-/Zeitstempelobjekt zurück. Die Projekterstellung gibt HTTP 201 und eine Projektzeile mit ihrer Kennung zurück. Die Auflistung gibt eine Reihe von Projekten mit Eigentümer-/Organisationsbeziehungen und -anzahlen zurück. Das Lesen nach Kennung gibt ein solches verwandtes Projekt zurück. Das Beispiel ruft kein Modell auf und generiert keine Maschinenausgabe.

Schließen Sie den manuellen Sidecar sauber, starten Sie ihn mit demselben Datenverzeichnis neu, aktualisieren Sie die kurzlebige URL und listen Sie die Projekte erneut auf, um die Persistenz zu überprüfen. Bei einem neuen Start wird möglicherweise ein anderer Port ausgewählt. Wenn dieses Projekt nicht vorhanden ist, vergleichen Sie zunächst das Datenverzeichnis, den Client-Endpunkt und den Autorisierungskontext.

Die Bereinigung ist für dieses einmalige Projekt optional und destruktiv: Senden DELETE /api/projects/<id> erst nach Bestätigung der zurückgegebenen Kennung. Erstellen/Listen/Lesen Sie die Anwendungspersistenz, ohne dass eine erfolgreiche Bereinigung erforderlich ist.

Interpretieren Sie Fehler bei der ersten Ausführung

VersagenWahrscheinliche GrenzeNächste Aktion
Die Abhängigkeitsinstallation kann ein lokales Paket nicht auflösenArbeitsbereichsinstallationVom Repository-Stammverzeichnis mit der deklarierten Bun-Version und Sperrdatei ausführen.
Native Verknüpfung oder WebKit-FehlerTauri-VoraussetzungenInstallieren Sie die Toolchain-/Plattformbibliotheken, die vom passenden CI-Ziel verwendet werden.
Kein fertiges EreignisSidecar-Konfiguration, Migration oder StartÜberprüfen Sie stderr und das strukturierte Fehlerereignis. Halten Sie stdin offen.
Gesundheit funktioniert, Projektaufruf geht zurück 401GenehmigungGesundheit ist öffentlich; Geschützte API-Aufrufe benötigen weiterhin das aktuelle Prozesstoken.
Retouren erstellen 400Validierung/Geschäftsvalidierung anfordernSenden Sie JSON mit einem nicht leeren Namen und überprüfen Sie die zurückgegebene Nachricht.
Erstellen Sie Retouren 403 mit OrganisationsdatenMitgliedschaft in einer OrganisationVerwenden Sie eine zugängliche Organisation oder lassen Sie das Organisationsfeld für eine lokale Prüfung weg.
Der native Begleiter meldet, dass das Anheften nicht möglich istFehlendes lokales Expo-ModulVerwenden Sie einen benutzerdefinierten iOS-Build, nicht Expo Go.

Halten Sie die erste Überprüfung klein: Gesundheit, ein Projekt, eine persistente Zeichnung/ein Programm, dann optionale Integrationen. Bei einem erfolgreichen Start der Basisanwendung werden Stripe, KI-Anbieter, ein Remote-GitHub-Repository oder mobiles Routing nicht automatisch konfiguriert.

Anforderungsdetails

WerkzeugVersionBenötigt für
Bun1.4.4 (das Repository packageManager)Alles: Installation, Tests, Sidecar, Skripte
Rust-Toolchain + Tauri-Voraussetzungenstabil; Plattform-Webview-Bibliotheken unter LinuxDie Desktop-Shell (desktop:dev, baut)
SQLite-CLIbeliebigOptional: schreibgeschützte Datenbankinspektion
Xcode—Nur für den iOS-Begleiter

Deine erste Stunde, Schritt für Schritt

Vom Klon zum laufenden Desktop
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. Wenn das Fenster geöffnet wird, wechselt der Sidecar-Status innerhalb von Sekunden in den Status „Bereit“; Beim ersten Start wird ein neues Datenverzeichnis migriert.
  2. Erstellen Sie ein Projekt, fügen Sie eine Zeichnung hinzu, zeichnen Sie ein Rechteck und extrudieren Sie es.
  3. Öffnen Sie CAM, wählen Sie den Körper aus und generieren Sie ihn. Überprüfen Sie den Freigabestand und die Ansprüche, bevor Sie NC exportieren.
  4. Öffnen Sie das Verlaufsfenster und führen Sie einen Commit durch: Das Projekt hat jetzt seine erste Version.

Kein Modellschlüssel erforderlich

Alles oben Genannte funktioniert ohne einen KI-Anbieter. Fügen Sie später in den Assistenteneinstellungen einen Schlüssel hinzu.

In 3D

Der Schnellstart für die Teile beginnt Zum Orbit ziehen · zum Zoomen scrollen · zum Schwenken mit der rechten Maustaste ziehen
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.