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" und lattice_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]]
}
  • frame sind 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 geometry ignoriert, behält w_mm / h_mm / cut_type / is_l_cut.

Karton- und Packungsrundung

Wenn die Gesamtteilezahl (totalPieces) bekannt ist:

  1. orderPieces = ceil(totalPieces × (1 + wastage) − 1e-12)
  2. Bei einer Packungsmenge (pack_qty, Fliesen pro Karton) von 1 oder mehr:
    • fullBoxes = floor(orderPieces / pack_qty)
    • looseTiles = orderPieces % pack_qty
    • boxes_to_order = fullBoxes — übrige Fliesen werden nicht in einen zusätzlichen Karton gerundet.
    • pack_mode = "full_boxes_plus_loose"
  3. Ohne Packungsmenge: pack_mode = "pack_unset", boxes_to_order = null; die Fliesenzeile bleibt orderPieces.

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 veraltetes boxes) — Summe der Kartonzahlen je Fläche, wo gesetzt.

Stabile IDs

  • Flächen: wall-a, wall-b, wall-c, wall-d, floor.
  • Schnittgruppen: group_id aus Positionsschlüssel + Größe (w×h mm 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 sku ist im Erstanbieter-Planer erlaubt (Demo, kein Katalog).
  • Ein Katalog-/Widget-Embed muss sku fü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.