Factory MBOM
Schema-Referenz
Das scalarcut.factory_bom.v1.1-Dokument Feld für Feld: Header, Teile, Schnitttypen, Rezepte, Packungsrundung, Verbrauchsmaterial, Summen und stabile IDs.
Das Factory-MBOM-Dokument wird über eine schema-Zeichenkette auf oberster Ebene versioniert. Die aktuelle Version ist scalarcut.factory_bom.v1.1. Behandeln Sie das schema-Feld als Vertrag: Ändert sich eine Konstante oder Feldbedeutung, wird die Version erhöht.
Diese Schema beschreibt echte Projekt-MBOMs — das Dokument, das von der Factory MBOM-Schaltfläche des Planers heruntergeladen und von der API für die eigenen Projekte eines Unternehmens zurückgegeben wird. Die öffentliche Garage-Probe in der Dokumentation und im Try MBOM API-Panel entspricht derselben Version scalarcut.factory_bom.v1.1.
Zwei Einheiten, eine Wahrheit
Das interne Raster des Planers ist in Metern, das exportierte Dokument aber in Millimetern:
- Schnittgrößen und Exportfelder sind ganze Millimeter (
round(m × 1000)). - Das Dokument gibt
unit_system: "metric"undlattice_unit: "mm"an. - Kanonische Teilegrößen sind immer
w_mm/h_mm. - Die Zoll-/Fuß-Anzeige im Planer konvertiert aus dem Millimeter-Raster und wird nie in die Schnittschlüssel zurückgeschrieben. Dieser Export enthält keine Zollspalten.
Dokument-Header
| Feld | Bedeutung |
|---|---|
schema |
scalarcut.factory_bom.v1.1 |
scene_id |
Planer-Szenen-ID oder null, wenn nicht gespeichert |
project_id |
In dieser Runde identisch mit scene_id (eine Fliesenszene = ein ERP-Schlüssel) |
title |
Anzeigebeschriftung der Szene |
unit_system / lattice_unit / unit_policy |
metric / mm / Richtlinien-String |
rates |
Eingefrorene Verbrauchskonstanten (unten) |
totals |
Raumübersicht über alle Flächen |
surfaces / pieces / recipes |
Stückliste je Fläche, Zuschnittliste und CRE-Rezepte |
Teile
Ein Teil beschreibt eine Schnittgruppe — eine Größe, die qty-fach wiederholt wird. Wichtige Felder:
| Feld | Bedeutung |
|---|---|
surface_id |
wall-a … wall-d oder floor |
letter |
Legendenbuchstabe passend zur PDF-Zuschnittliste (A, B, …) |
group_id |
Stabile Gruppen-ID aus Position + Größe |
sku |
Katalog-SKU oder leer im Erstanbieter-Planer |
w_mm / h_mm |
Kanonische Millimeter-Größe |
cut_type |
Die Schnittklasse für dieses Teil |
qty |
Anzahl identischer Teile |
fragile |
True, wenn der Schnitt unter der 50-mm-Bruchschwelle liegt |
cre_recycled |
True, wenn das Teil von der Cut Recycling Engine verwertet wird |
cre_parent |
Schlüssel der Ausgangsplattengröße (tileW×tileH mm) bei Verwertung, sonst leer |
is_l_cut |
True für L-förmige Schnitte |
Schnitttypen
cut_type klassifiziert, wie das Teil gefertigt wird. Ein Integrator kann das Verhalten des Zuschnitttisches daran koppeln. Bruchgefährdete Teile werden separat markiert, damit sie zur Sonderbehandlung geleitet werden, statt auf eine Maschine zu fallen, die sie zerbricht.
L-Schnitte
L-förmige Teile sind mit is_l_cut markiert und tragen ihre Schenkelmaße in der Teilgeometrie. Die CRE-Nestung behandelt jedes Teil weiterhin als sein w_mm × h_mm-Begrenzungsrechteck.
Optionales Reststück-Polygon (geometry)
Ein Teil kann ein additives geometry-Objekt enthalten:
"geometry": {
"frame": "tile_local_mm",
"vertices_mm": [[0, 0], [180, 0], [180, 600], [0, 600]]
}
framesind wandausgerichtete Millimeter, so verschoben, dass das AABB-Minimum der nominalen, unbeschnittenen Fliese bei(0, 0)liegt.- Vorhanden, wenn das Reststück ein einzelner konvexer/einfacher Ring ist (ein 45°-Diagonal- oder Fischgrätfragment oder ein achsenparalleles rechteckiges Reststück).
- Weggelassen bei L-Schnitten, mehrteiligen Reststücken und Mengengruppen, deren Mitglieder nicht denselben Ring teilen.
- Es ist kein CNC-Werkzeugweg und führt keine beliebigen Klingenwinkel ein — CRE nestet weiterhin
w_mm × h_mm-Rechtecke. - Unbekannte Felder sind additiv: Ein ERP, das
geometryignoriert, behältw_mm/h_mm/cut_type/is_l_cut.
Karton- und Packungsrundung
Wenn die Gesamtteilezahl (totalPieces) bekannt ist:
orderPieces = ceil(totalPieces × (1 + wastage) − 1e-12)- Bei einer Packungsmenge (
pack_qty, Fliesen pro Karton) von 1 oder mehr:fullBoxes = floor(orderPieces / pack_qty)looseTiles = orderPieces % pack_qtyboxes_to_order = fullBoxes— übrige Fliesen werden nicht in einen zusätzlichen Karton gerundet.pack_mode = "full_boxes_plus_loose"
- Ohne Packungsmenge:
pack_mode = "pack_unset",boxes_to_order = null; die Fliesenzeile bleibtorderPieces.
Wenn totalPieces unbekannt ist: pack_mode = "area_ceil_boxes", boxes_to_order = ceil(grossTileAreaSqm / sqmPerBox − 1e-12).
Packungsfelder der Fläche: pack_qty, pack_mode, order_pieces, full_boxes, loose_tiles, boxes_to_order und der veraltete Alias boxes (gleich boxes_to_order).
Verbrauchsmaterial (eingefrorene Raten)
Verbrauchsmaterial wird als rates-Formelversion sowie als kg/L je Fläche und in totals ausgegeben. Diese Konstanten sind mit dem Schema eingefroren; ändern sie sich zwischen Builds, hat sich der Vertrag geändert und das Schema wird erhöht.
| Konstante | Wert | Verwendung |
|---|---|---|
adhesive_kg_per_sqm |
4.5 |
adhesiveKg = grossTileAreaSqm × 4.5 |
adhesive_bag_kg |
25 |
adhesiveBags = ceil(adhesiveKg / 25 − 1e-12) |
primer_l_per_sqm |
0.2 |
primerL = grossTileAreaSqm × 0.2 |
grout_density_kg_m3 |
1200 |
CAD-Fugenmasse |
grout_compaction_factor |
1.05 |
CAD-Fugenmasse |
Die Fugenmasse wird aus der Mustergeometrie mit Dichte × Verdichtung berechnet. Die Anzeigerundung (0.1-Schritte) gilt nur für die menschenlesbaren Blätter; das Fabrik-JSON speichert den Motorwert vor der Anzeigerundung.
Summen-Übersicht
totals summiert die Stücklistenfelder der Flächen, plus:
cut_qty— Summe der Teil-qty(muss bei Prüfung mit dem Kopf der Blueprint-Zuschnittliste übereinstimmen).boxes_to_order(und veraltetesboxes) — Summe der Kartonzahlen je Fläche, wo gesetzt.
Stabile IDs
- Flächen:
wall-a,wall-b,wall-c,wall-d,floor. - Schnittgruppen:
group_idaus Positionsschlüssel + Größe (w×hmm oder L-Schenkel-Schlüssel). - Legendenbuchstaben: A, B, … in der Reihenfolge des Gruppen-Arrays, identisch zur PDF-Zuschnittliste.
Dasselbe Raster liefert beim erneuten Export immer dieselben group_id und Buchstaben.
SKU
- Eine leere
skuist im Erstanbieter-Planer erlaubt (Demo, kein Katalog). - Ein Katalog-/Widget-Embed muss
skufür einen Live-Fabrikfeed befüllen. - Eine leere SKU blockiert den Export nicht.
CSV-Teileliste
Die CSV ist nur die Teileliste (dieselben Spalten wie v1). Packung, IDs, Raten, Summen und die optionale geometry leben im JSON.
Spalten: surface_id, letter, group_id, sku, w_mm, h_mm, cut_type, qty, fragile, cre_recycled, cre_parent, is_l_cut.