Zum Inhalt springen
CADCAMFUN
Doku

Dokumentation

Kernel

Die reine Geometrie und die Bearbeitungskerne von Paketen/Kernen, von innen erklärt mit realen Ausgaben und 3D-Beispielen.

Automatisch aus dem Englischen übersetzt. Englisches Original ansehen

Die Kernel und wie sie voneinander abhängen

Der Geometrie- und Bearbeitungscode in packages/core ist eine Reihe reiner Kernel: gleiche Eingabe, gleiche Ausgabe, keine E/A. Auf jeder Seite in diesem Abschnitt wird eine davon von innen erläutert: wozu sie dient, ihre Datenstrukturen und Algorithmen, die eigentliche API, Grenzwerte und Konstanten, die durch ihre Ausführung erfasste Ausgabe und 3D-Ansichten, die aus dieser Ausgabe erstellt werden.

Kernel-Importdiagramm Zum Orbit ziehen · zum Zoomen scrollen · zum Schwenken mit der rechten Maustaste ziehen
Boxes are kernels; each line is a real relative import from one kernel’s source files to another’s (tests excluded), counted from packages/core/src. Lower layers sit at the front: tolerance, mesh, sketch and B-rep; history and features above them; CAM on top.
AusImporte ausImportieren von Dateien
nockengeneratorcam-Kernel2
nockengeneratorgeschichte1
nockengeneratornetz2
nockengeneratorskizzieren1
cam-Kernelnockengenerator4
cam-Kernelnetz1
zeichnungbrep1
zeichnunggeschichte4
zeichnungnetz7
merkmalenetz5
geschichtebrep1
geschichtemerkmale5
geschichtenetz2
geschichteskizzieren2
netztoleranz1

Der eine Zyklus, CAM-Kernel ↔ CAM-Generator, ist bewusst: Der Kernel verwendet die Strategien und das Elementschema des Generators wieder, und der Generator ruft die Schnittdaten und den Planer des Kernels zurück.

Kernel-Seiten

SeiteWas es abdecktQuelle
SkizzenlöserLevenberg-Marquardt über Restriktionsreste, Ranganalyse für Freiheitsgrade, freie Punkte und Konflikte.packages/core/src/cad/sketch.ts
Mesh und CSGGeschlossene Dreiecksnetze, BSP-Boolesche Werte mit konvexem Schnellpfad, Suppenbereinigung und Topologie.packages/core/src/cad/csg.ts, solid.ts, mesh-clean.ts
Exakte B-RepAnalytische und NURBS-Flächen, exakte Boolesche Werte, Verrundungen, Locherkennung, Masseneigenschaften, STEP.packages/core/src/cad/brep/
FunktionsgeneratorenEvolventenräder, ISO-Gewinde, Spiralen und Bleche mit flachen Mustern.packages/core/src/cad/gear.ts, thread.ts, helix.ts, sheet-metal.ts
Toleranz und TessellationEine Akkordtoleranz für Segmentanzahl, Dezimalzahlen und Objekt-Tessellation.packages/core/src/cad/tolerance.ts, tessellate.ts
CAM-BearbeitungskernelPlanung, Fräser, Voxelvorrat mit Restvolumenhalterung, zertifizierte Kollisionsprüfungen.packages/core/src/cam/kernel/

Gemeinsame Regeln

  • Überall Millimeter, bogenmaß im Code (Grad nur dort, wo ein Feld dies angibt, z. B. der Eingriffswinkel eines Zahnrads oder ein Verschmelzungswinkel).
  • Z hoch, äußere Schleifen gegen den Uhrzeigersinn, nach außen gerichtete Dreiecke.
  • Einfache Daten. Meshes sind typisierte Arrays, B-Reps sind Indextabellen, Sketches sind Entity-Listen; Alles wird in JSON serialisiert und unterscheidet sich im Projektverlauf.
  • Fehler sind explizit. Eine ungültige Eingabe löst eine aus RangeError oder eine Kernel-Fehlerklasse (SketchError, BooleanError, BudgetExceeded) mit einer Nachricht, die der Assistent anzeigen kann; Ergebnisse, die falsch wären, werden niemals zurückgegeben.
  • Begrenzte Arbeit. Segment- und Scheitelpunktbudgets im Mesh-Kernel, ein Zeitbudget im exakten Kernel, Turn-Limits in Threads, Unterteilungstiefe bei der Kollisionsprüfung.

Jede Zahl auf diesen Seiten wurde erzeugt, indem der Kernel mit Bun gegen die Quelle in diesem Repository ausgeführt wurde; Führen Sie die Snippets erneut aus, um sie zu reproduzieren.