Dokumentation
Generieren Sie ein natives Fertigungsprogramm
Erfassen Sie ein reales Teil, bewerten Sie seine Fertigungsaufgabe, überprüfen Sie die veröffentlichten NC-Beweise und speichern Sie ein Dokument, das erneut überprüft werden kann.
Automatisch aus dem Englischen übersetzt. Englisches Original ansehen
Wissen Sie, welches Ergebnis Sie anfordern
Die native Fertigung ist eine deterministische CAD/CAM-Berechnung, unabhängig von einem Sprachmodell. POST /api/toolpaths/manufacture akzeptiert einen expliziten CAD-Schnappschuss, bereitet Fertigungsressourcen vor, plant oder akzeptiert bestellte Vorgänge, berechnet Schnittdaten, generiert Werkzeugwege, veröffentlicht ein NC-Programm und gibt diesen Text unabhängig wieder. Die Antwort umfasst die Beweise, die den Freigabegrad belegen.
Dieser Endpunkt erstellt keine Zeichnung, speichert keinen Werkzeugweg und aktualisiert den Editor nicht. Eine erfolgreiche Reaktion ist ein Wert, den es zu prüfen und bewusst beizubehalten gilt. Es ist anders als /api/toolpaths/generate, das die Einstellungen des Anwendungsgenerators für die Fräs-/Drehmaschinen-/Druckerausgabe anpasst, und von /api/toolpaths/verify, das ein bereitgestelltes NC/Programm gegen explizit modelliertes Rohteil und ein Werkzeug abspielt.
Benutzen Sie die bearbeitungsendpunkte für Anfrage-/Antwortschemata, CAM-Referenz für die Kerndarstellungen und gespeicherte Programmreferenz für Persistenzverhalten. Der folgende Auftrag ist bewusst klein genug, um ihn zu reproduzieren und zu prüfen, ohne ein bestehendes Projekt zu bearbeiten.
Senden Sie einen vollständigen, validierten Snapshot
Speichern Sie diesen JSON unter native-job.json. Es beschreibt einen 40 × 40 × 10 mm POM-Rohling mit der Mitte bei (20,20,5), umgeben von 2 mm Material auf jeder X/Y-Seite und 1 mm darüber. Die Nutzlast wurde von der Realität entschlüsselt CamKernelRequest schema und vom Kernel ausgewertet; Das Basisergebnis enthält drei geplante Operationen. Überprüfen Sie immer die zurückgegebenen Ansprüche, anstatt eine erwartete Veröffentlichung in einem Client fest zu codieren.
{
"schemaVersion": 1,
"id": "blank-job",
"name": "POM blank",
"material": "POM",
"elements": [{
"id": "blank",
"type": "cube",
"x": 20, "y": 20, "z": 5,
"width": 40, "height": 40, "depth": 10
}],
"stock": { "x": 20, "y": 20, "width": 44, "height": 44, "depth": 11 },
"resolution": 0.5
} curl --fail-with-body \
-H "Authorization: Bearer $CADCAMFUN_TOKEN" \
-H "Content-Type: application/json" \
--data-binary @native-job.json \
"$CADCAMFUN_URL/api/toolpaths/manufacture" > native-result.json Die Shell-Datei erfasst die genaue Antwort zur Überprüfung. Die Bereitstellung derselben erfassten Anforderung führt zu einer deterministischen nativen Ausgabe. Die Verwendung einer neuen Teileposition, eines neuen Fräsers, einer neuen Operation oder einer neuen Qualitätskontrolle ist eine andere Aufgabe. Anforderungsidentitätsbezeichnungen sind für die Nachverfolgung nützlich, aber die Digests des Artefakts binden seine tatsächliche Quelle und den NC-Inhalt.
Lager- und Arbeitskoordinaten auflösen
Snapshot-Material verwendet Mitte X/Y und volle Breite/Höhe/Tiefe. Der Snapshot-Adapter erstellt zunächst die ausgewählte Teilegeometrie, findet den niedrigsten Z-Wert und platziert den Rohteilboden dort. Seine Oberseite ist die Unterseite plus die angegebene Tiefe. Im Beispiel erstreckt sich der Teil von Z0 bis Z10 und der Bestand von Z0 bis Z11. Bestandsgrenzen in X/Y sind −2 bis 42.
Der Adapter verwendet die expliziten Abmessungen für diese Grenzen. Der Anzeigezuschlag des Bestandsdatensatzes und ein Bestand werden nicht erneut hinzugefügt topZ das Feld ersetzt nicht die unterste Teilverankerung in diesem nativen Snapshot-Adapter. Behalten Sie die Unterscheidung zwischen Editor-Metadaten und den Feldern bei, die tatsächlich zum Erstellen eines Fertigungsauftrags verwendet werden.
Der Arbeitsursprung ist standardmäßig auf stock-center: der Rohteilmittelpunkt X/Y an der Spitze Z. stock-corner wählt minimales X/Y am gleichen oberen Rand. Die eingegebene Operationsgeometrie erfolgt in CAD-Weltmillimetern, während resultierende Programmbewegungen/NC in Arbeitskoordinaten vorliegen. Beim konventionellen Schneiden wird die Arbeit Z0 unterschritten. workOffset ist optional; Der Programmstandard ist G54.
Ohne bereitgestelltes Material umschließt die Auftragsvorbereitung auf niedrigerer Ebene die Teilgrenzen mit 2 mm zusätzlich auf jeder X/Y-Seite und 1 mm darüber. Ein Teil außerhalb des expliziten Bestands wird abgelehnt; Eine Erhöhung der erforderlichen Schnitttiefe führt nicht dazu, dass inkompatibles Material das Teil enthält.
Material, Maschine und Fräser auswählen
Material ist eine Suchzeichenfolge, die anhand der Materialbibliothek des Kernels aufgelöst wird, einschließlich unterstützter IDs, Namen und Aliase. Unbekanntes Material gibt ein eingegebenes Vorbereitungsproblem zurück. Die optionale Maschine des HTTP-Snapshots ist eine registrierte voreingestellte ID: vmc-standard, haas-vf2, hsc-mill, desktop-mill oder cnc-router. Wenn Sie es weglassen, wird vmc-standard verwendet. Voreinstellungen beschreiben typische Maschinenklassen und -grenzen, kein qualifiziertes Modell einer einzelnen Installation.
Beim Weglassen von Werkzeugen wird die Standard-Fräserliste verwendet. Die Bereitstellung von Werkzeugen ersetzt diese Krippe und erfordert 1–200 Fräserdatensätze. Ein Fräser identifiziert seine Art, seinen Durchmesser, seine Nutenanzahl, sein Material/Beschichtung, seine Nutenlänge, seinen Schaftdurchmesser und seinen Überstand. Optionale Halterabmessungen, maximale Drehzahl, Taschenanzahl und artspezifische Geometrie verfeinern die Erzeugung und das Spiel. Flöten müssen eine Ganzzahl von 1 bis 24 sein; explizite Taschennummern sind 1–999.
Betriebswerkzeug-IDs müssen Fräser in der bereitgestellten Bibliothek benennen. Doppelte Fräser-IDs, ungültige Abmessungen und nicht erreichbare Strategie-/Werkzeugkombinationen führen eher zu Problemen als zu vermuteten Ersetzungen. Das Schema akzeptiert Flach-, Kugel-, Bull-, Fasen-, Punkt-, Bohrer-, Planfräser-, Gewindefräser- und Gravierfräsertypen.
Die öffentliche Snapshot-Maschinenzeichenfolge akzeptiert keinen benutzerdefinierten Maschinendatensatz. Eine Code-Integration, die die untere Ebene aufruft ManufacturingJob Die API kann Maschinengrenzen, Verfahrwege und Tischgeometrie explizit bereitstellen. Senden Sie diesen Datensatz nicht dort, wo das HTTP-Schema eine voreingestellte Zeichenfolge erwartet.
Automatisch planen oder Bearbeitungsreihenfolge festlegen
Wenn Vorgänge fehlen, leitet der Planer diese vom Teil ab. Ein explizites Operations-Array ist eine maßgebliche Bearbeitungsreihenfolge und keine Liste von Vorschlägen, die stillschweigend neu angeordnet werden können. Jeder Vorgang verfügt über eine eindeutige ID und eine Werkzeugreferenz. Unterstützte Strategiedatensätze umfassen Flächen-, Adaptiv-, Taschen-, Profil-, Bohrungs-, Bohr-, Gewinde-, Gravier-, Fasen- und Oberflächenbearbeitungen mit jeweils passender Geometrie.
Ein Profil verwendet eine Schleife, eine Innen-/Außenseite und eine Weltkoordinate oben/unten. Ein Taschen-/adaptiver Schnitt verwendet eine geschlossene Grenze mit optionalen Inselringen. Beim Bohren werden Punkte plus Ober-/Unterseite verwendet. Ein Gewindefräsdatensatz umfasst Mitte, Durchmesser, Steigung, Innenfahne, Oberseite und Länge. Ein Oberflächendatensatz wählt das Verhalten „Schruppen“, „Parallel“, „Wasserlinie“ oder „Steil-Flach“ aus; eine Restreferenz muss entsprechende frühere Arbeiten kennzeichnen.
Prozessüberschreibungen pro Vorgang können Drehzahl, Vorschub, Eintauchvorschub, Untersetzung, Überstellung, Kühlmittel und Radialeingriff umfassen. Fehlende Werte stammen aus Material-/Fräser-/Maschinenschnittdaten. Zustellung ist ein Prozentsatz von 1 bis 100; Stepdown und Feeds sind positiv. Das Artefakt zeichnet überschriebene Felder getrennt von den berechneten Parametern auf, sodass ein Prüfer sehen kann, woher die Prozessauswahl stammt.
Der native Kernel transportiert provisorische Bestände zwischen den Vorgängen und veröffentlicht einmalig seine kombinierte IR. Im Gegensatz dazu combineCamOperations für gespeicherte generische Operationsabschnitte werden bereits generierte NC-Texte verknüpft; Es wandelt diese Abschnitte nicht in ein integriertes Steuerungsprogramm um. Verwenden Sie das native Artefakt, wenn diese integrierte Generierung und Wiedergabe erforderlich ist.
Legen Sie Qualitätskontrollen fest und verstehen Sie deren Kosten
| Eingang | Bedeutung und Grenzen |
|---|---|
finishAllowance | 0–5 mm Schruppaufmaß; Ausgelassen verwendet die Standardeinstellung des Materials. |
scallop | Positiv, höchstens 1 mm; Standardmäßig 0,01 mm für die native Endbearbeitung. |
tolerance | Positive Pfadtoleranz; nativer Standardwert 0.01 mm. |
resolution | Positive Wiedergabezellengröße; Steuert die räumliche Auflösung des Bestandsnachweises. |
deburr | Positiv, höchstens 5 mm; fordert den Planer auf, unterstützte Fasenarbeiten an der Oberkante hinzuzufügen. |
subprograms | Optionale übersetzte Wiederholungsemission, wenn der Dialekt dies unterstützt, z. B. Fanuc/Haas M98-Unterprogramme. |
Die Anfrage unterstützt 1–2,000 CAD-Elemente und höchstens 500 explizite Vorgänge. Kleinere Toleranzen und Wiedergabezellen erhöhen den Rechenaufwand und beweisen nicht automatisch eine nicht unterstützte Geometrie. Behalten Sie die gemeldete Auflösung mit dem Ergebnis bei. Ein Ansichtsfensternetz und eine heruntergerechnete Bestandsvorschau sind Anzeigeausgaben und keine unabhängige, feinere Simulation.
Durch die native Buchung werden Werkzeugnummern aus den Fräserzuweisungen festgelegt und ein Rückzug vor dem Werkzeugwechsel gefordert. Die Posts formatieren Koordinaten mit festen Dezimalstellen. Überprüfen Sie die tatsächliche NC und den ausgewählten Dialekt. Ein Controller-Name macht die Validierung des Post-Verhaltens der Installation nicht überflüssig.
Interpretieren Sie Status, Ansprüche und Freigabe
Das Ergebnis ist eine Vereinigung: status: "failed" mit Problemen, bzw status: "ok" mit einem Artefakt. Ein gutes Artefakt kann immer noch vorhanden sein release: "blocked". Lesen Sie beide Ebenen. Die Überprüfung des HTTP-Status oder des äußeren Status allein reicht nicht aus.
The artifact retains ordered operation outcomes, cutting data, program IR, used cutters, NC, stock statistics, cycle-time estimates, issues, and identity digests. Ansprüche haben den Status „Bestanden“, „Fehlgeschlagen“, „Nicht unterstützt“ oder „Ungelöst“. They cover cutting data, machine limits, operation completion, rapid/holder clearance, gouging, material removal, independent NC replay, machine travel, and machine/table clearance.
Schwerwiegende Fehler oder leere NC-Block-Freigabe. Ohne schwerwiegenden Fehler erzeugen unvollständige Beweise eine Vorschau, sofern die Freigaberegel nicht erfüllt ist. Die aktuelle Regel erlaubt einen Anspruch auf nicht unterstützte Maschinenfahrten bei gleichzeitiger Rückgabe eines verifizierten Programms; Die integrierten Voreinstellungen bieten nicht alle eine explizite Achsenfahrt. Überprüfen Sie diese Behauptung, wenn Sie entscheiden, ob das Ergebnis eine bestimmte Maschine abdeckt.
Beweise haben eine Modellgrenze
Die native Bestands-/Halterwiedergabe ist eine dreiachsige Höhenfeldprüfung. Der öffentliche native Snapshot hat kein Fixture-Envelope-Feld. Die eigenständige Verifizierung akzeptiert Vorrichtungsumschläge, sie werden jedoch nicht implizit zu nativen Beweisen hinzugefügt. Ein Etikett mit verifiziertem Programm ist ein Beweis für das erfasste Modell und die Tests, keine Maschinenzertifizierung.
Kernel-Ergebnisse identifizieren ihren Erzeuger: Die Algorithmus-ID lautet cadcamfun-cam-kernel@1 und die Vertragsschemaversion ist 1 (packages/core/src/cam/kernel/execute.ts, contracts.ts). Vergleichen Sie beide, wenn Sie entscheiden, ob gespeicherte Beweise aus demselben Kernel stammen.
Erstellen Sie aus dem exakten Ergebnis ein tragbares Dokument
A CamProgramDocument behält NC-, Programm-, Generator-/Druckereinstellungen, Material und Zeichnungsschnappschuss bei. Optionales kernelRequest/kernelArtifact behält native Quellnachweise bei. In diesem Beispiel werden die erfasste Anfrage und das Ergebnis in dieses Dokument konvertiert, ohne es zu speichern. Führen Sie es je nach Kern, API und Effekt in einem Arbeitsbereich aus, z. B. Apps/Sidecar.
import { Schema } from "effect"
import { cam } from "@cadcamfun/core"
import { CamKernelRequest, CamKernelResult, CamProgramDocument } from "@cadcamfun/api"
const request = Schema.decodeUnknownSync(CamKernelRequest)(await Bun.file("native-job.json").json())
const result = Schema.decodeUnknownSync(CamKernelResult)(await Bun.file("native-result.json").json())
if (result.status !== "ok" || result.value.release === "blocked") {
throw new Error("The captured job has no releasable artifact")
}
const document = Schema.decodeUnknownSync(CamProgramDocument)({
format: "cadcamfun-cam", version: 1,
gcode: result.value.nc, program: result.value.program,
settings: cam.generator.DEFAULT_SETTINGS,
printer: cam.generator.DEFAULT_PRINTER_EXTRAS,
stock: request.stock,
drawing: { elements: request.elements, stock: request.stock },
kernelRequest: request, kernelArtifact: result.value
})
await Bun.write("portable-program.json", JSON.stringify(document, null, 2)) Das Beispiel erfordert einen expliziten Bestand, wie dies bei der bereitgestellten Mindestanforderung der Fall ist. Seine generischen Editoreinstellungen öffnen Steuerelemente erneut, während die erfasste Kernel-Anfrage die native Quelle der Wahrheit ist. Behalten Sie alle tatsächlichen Editoreinstellungen bei, wenn Sie aus einem Anwendungsarbeitsbereich erfassen.
Sparen Sie gegen eine echte Zeichnung
Speichern Sie das Dokument separat über POST /api/drawings/:id/toolpaths, mit Name, G-Code und Daten, die das vollständige tragbare Dokument enthalten. Verwenden Sie eine echte Zeichnungs-ID, auf die der Anrufer zugreifen kann. Für tragbare Speicherungen ist ADMIN/MANAGER-Schreibzugriff des Projektbesitzers oder der Organisation erforderlich. Eine erfolgreiche Berechnung allein gewährt keine Persistenzberechtigung.
Der Sidecar dekodiert das Dokument, prüft, ob Zeilen-NC mit Dokument-NC übereinstimmt, und führt eine erfasste Kernel-Anfrage erneut aus, bevor er einem neuen nativen Artefakt vertraut. Es vergleicht das resultierende Artefakt, das Programm und die ursprüngliche NC. Bearbeitete Beweise, eine blockierte Wiederholung oder inkonsistente Bytes werden abgelehnt. Vom Client bereitgestellte Verifizierungs-/SourceRevision-Felder stellen kein Vertrauen her.
Wenn die erfassten ausgewählten Elemente und der Bestand mit der zugehörigen Zeichnung übereinstimmen, leitet der Dienst einen Zeichnungsüberarbeitungsüberblick ab. Bei einem gespeicherten nativen Artefakt kann diese Revision fehlen, wenn die Quelle nicht mit der aktuellen Zeichnung übereinstimmt. Halten Sie diesen Unterschied sichtbar: Eine gültige erfasste Ausgabe ist nicht unbedingt eine neue Ausgabe für das zuletzt gespeicherte Modell.
Sehen werkzeugweg-Persistenz-Endpunkte und genaue CAD-Analyse beim Zusammenstellen eines umfangreicheren Erfassungs-/Speicherablaufs. Vermeiden Sie die Projekt-Toolpath-Variante, es sei denn, ihr eindeutiger Abfrageparametervertrag ist vorgesehen.
Nach Änderungen regenerieren und Ablehnung diagnostizieren
Durch das Ändern von Geometrie, Rohteil, Ursprung, Werkzeugen, Material, Maschine, Arbeitsauftrag oder NC ändert sich die Beweisbeziehung. Neugenerierung aus der aktualisierten erfassten Anforderung. Eine einfache NC-Bearbeitung kann nützlicher gewöhnlicher Text bleiben, darf aber kein früheres natives Artefakt als Beweis für neue Bytes enthalten. Der Speicherdienst entfernt inkompatible native Metadaten oder lehnt ein inkonsistentes neues Dokument ab.
Bei der unbekannten Maschinenvoreinstellung handelt es sich um einen Adaptervalidierungsfehler. Unbekanntes Material/Werkzeug, ungültige Lagerbestände, leere Geometrie und nicht unterstützte Bearbeitung führen zu Vorbereitungs-/Planungsproblemen. Hohlkehle, Rapid-in-Stock, Halter/Tisch-Kollision und Wiedergabe-Diskrepanz zwischen Punkt und erzeugter Bewegung/Beweis. Suchen Sie die Vorgangs-ID, die Phase, die Linie und den Punkt im Problem, bevor Sie die Prozesssteuerung ändern.
Eine Quellnutzlast kann die JSON-Schema-Dekodierung bestehen und trotzdem keinen gültigen Job erzeugen. Umgekehrt kann ein Artefakt mit einer blockierten Freigabe vorhanden sein. Behalten Sie das ursprüngliche Anforderungs-/Ergebnispaar bei, wenn Sie eine der beiden Bedingungen diagnostizieren, anstatt es durch eine spekulative Einstellungsänderung zu überschreiben.
Herkunft der Implementierung: packages/api/src/cam-kernel.ts, cam-program.ts, kern cam/kernel/snapshot.ts, execute.ts, schema.ts, und Sidecar services/cam-program.ts. Fokussierte Evidenztests sind packages/core/src/cam/kernel/kernel.test.ts und apps/sidecar/test/cam-program.test.ts.
Gehen Sie das Beispielergebnis durch
Ohne ein operations in der Anordnung wählte der Planer drei Operationen aus der Standard-Fräsliste aus, jede mit eigenem Werkzeugwechsel. Der NC-Header fasst sie vor jeder Bewegung zusammen:
%
O1000
(PROGRAM: POM BLANK)
(UNITS: MM)
(WORK OFFSET: G54)
(MACHINE: VERTICAL MACHINING CENTRE BT40, 12 000 RPM, 11 KW)
(MATERIAL: ACETAL POM-C DELRIN)
(STOCK: 44.00 X 44.00 X 11.00 MM)
(OP 1: FACE STOCK TOP | T1 [FACEMILL-50] | S1810 | F815-1629)
(OP 2: 3D ADAPTIVE ROUGHING | T2 [FLAT-16] | S7160 | F2848-5696)
(OP 3: 3D STEEP AND SHALLOW FINISHING | T3 [BALL-10] | S12000 | F1642-3283)
G21 G90 G17 G94 G40 G49 G80
G54
(OPERATION: FACE STOCK TOP)
T1 M6
G43 H1
M3 S1810
(OP1 FACE)
(FACE: FACE STOCK TOP)
G0 X-48.000 Y-22.000 Z10.000
Z5.000
Z2.000
Z1.000
G1 Z-1.000 F815
X48.000 F1629
Y0.000
X-48.000
Y22.000
X48.000
G0 Z2.000 Das Programm endet mit G0 Z10.000, M5, M30 und %. Gesamtlänge: 3071 Zeilen. Da keine Maschine angegeben war, wurde die vmc-standard voreinstellung angewendet, wessen Beitrag ist fanuc: daher die %/O1000 rahmen, T1 M6 werkzeugwechsel und G43 H1 längenausgleich.
Lesen Sie die Schnittdaten einer Operation aus
Jede Operation trägt eine cutting aufzeichnung, die zeigt, wie seine Geschwindigkeiten und Vorschübe abgeleitet wurden. Dies sind die Werte für den Schruppvorgang oben:
| Feld | Wert | Bedeutung |
|---|---|---|
rpm | 7160 | Spindelgeschwindigkeit aus Vc und dem effektiven Durchmesser |
vc / vcRecommended | 359.9 / 360 m/min | Erreichte und empfohlene Oberflächengeschwindigkeit |
fz | 0.199 mm | Vorschub pro Zahn nach Spanausdünnungskorrektur |
chipThickness | 0.159 mm | Resultierende durchschnittliche Spandicke |
feed / plungeFeed | 5696 / 2848 mm/min | Schneid- und Tauchvorschub |
ap / ae | 10 / 3.2 mm | Axiale Tiefe und radialer Eingriff (20 % Zustellung) |
rampAngle / helixPitch | 5° / 4.398 mm | Einstiegsgeometrie |
mrr | 182.258 cm³/min | Materialabtragsrate |
powerKw / torqueNm / forceN | 1.862 / 1.986 / 248 | Geschätzte Belastung, überprüft anhand der Maschinengrenzen |
deflectionMm | 0.0157 mm | Geschätzte Werkzeugdurchbiegung |
limitedBy, warnings, exceeded | leer | Welches Limit hat einen Wert begrenzt? hier hat sich nichts getan |
source reads: "Acetal POM-C (Delrin) (ISO N): Vc 360 m/min, fz 0.159 mm at Ø16, kc1.1 300 N/mm² mc 0.2 (handbook starting values)". The reference der Block listet die Materialtabellenzeile, die verwendeten Spalten und jeden Multiplikationsfaktor auf (hier). cutSpeed 1.2, diameterScale 1.326, chipThinning 1.25). Es ist basis gibt an, dass es sich hierbei um manuelle Startwerte und nicht um zertifizierte Daten eines Lieferanten für den Schneider handelt.
Ausgangswerte, keine Garantie
Behandeln Sie die Schnittdaten als einen begründeten ersten Versuch. Vergleichen Sie sie vor der Produktion mit den Daten Ihres Werkzeuglieferanten und der Maschine und überschreiben Sie sie pro Vorgang, wenn Sie es besser wissen: Das Artefakt zeichnet dann das Feld auf overridden.
Artefaktidentität
| Feld | Beispiel | Hash von |
|---|---|---|
identity.job | aa2159be8c7c4228… | Der kanonische Job |
identity.part | 91a5382540991195… | Die Teilegeometrie |
identity.nc | 1614df331826682c… | Der genaue NC-Text |
identity.algorithm | cadcamfun-cam-kernel@1 | Kernelname und -version |
Durch die erneute Ausführung derselben Anfrage werden dieselben Identitäten reproduziert. Wenn der Sidecar ein natives Artefakt speichert, führt er die erfasste Anforderung erneut aus und vergleicht sie. eine bearbeitete NC-Änderung identity.nc und wird als Beweismittel zurückgewiesen.
Rezept: Aus TypeScript generieren und speichern
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
const request = JSON.parse(await Bun.file("native-job.json").text())
const result = await client.toolpathGenerator.manufacture(request)
if (result.status === "failed") throw new Error(result.issues.map((i) => i.message).join("; "))
const artifact = result.value
const failed = artifact.claims.filter((claim) => claim.status === "failed")
console.log(artifact.release, failed.map((claim) => `${claim.id}: ${claim.detail}`))
if (artifact.release === "blocked") process.exit(1)
await Bun.write("program.nc", artifact.nc) Das Speichern als Werkzeugweg erfordert zusätzlich ein tragbares Gerät cadcamfun-cam dokument, das aus diesem Artefakt erstellt wurde program, die erfasste Anfrage und den Zeichnungs-Snapshot, wie oben beschrieben. Die SDK-Methode verwendet dasselbe JSON-Objekt wie der HTTP-Body, typisiert als ToolpathGeneratorManufactureInput.