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.
| Aus | Importe aus | Importieren von Dateien |
|---|---|---|
| nockengenerator | cam-Kernel | 2 |
| nockengenerator | geschichte | 1 |
| nockengenerator | netz | 2 |
| nockengenerator | skizzieren | 1 |
| cam-Kernel | nockengenerator | 4 |
| cam-Kernel | netz | 1 |
| zeichnung | brep | 1 |
| zeichnung | geschichte | 4 |
| zeichnung | netz | 7 |
| merkmale | netz | 5 |
| geschichte | brep | 1 |
| geschichte | merkmale | 5 |
| geschichte | netz | 2 |
| geschichte | skizzieren | 2 |
| netz | toleranz | 1 |
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
| Seite | Was es abdeckt | Quelle |
|---|---|---|
| Skizzenlöser | Levenberg-Marquardt über Restriktionsreste, Ranganalyse für Freiheitsgrade, freie Punkte und Konflikte. | packages/core/src/cad/sketch.ts |
| Mesh und CSG | Geschlossene Dreiecksnetze, BSP-Boolesche Werte mit konvexem Schnellpfad, Suppenbereinigung und Topologie. | packages/core/src/cad/csg.ts, solid.ts, mesh-clean.ts |
| Exakte B-Rep | Analytische und NURBS-Flächen, exakte Boolesche Werte, Verrundungen, Locherkennung, Masseneigenschaften, STEP. | packages/core/src/cad/brep/ |
| Funktionsgeneratoren | Evolventenräder, ISO-Gewinde, Spiralen und Bleche mit flachen Mustern. | packages/core/src/cad/gear.ts, thread.ts, helix.ts, sheet-metal.ts |
| Toleranz und Tessellation | Eine Akkordtoleranz für Segmentanzahl, Dezimalzahlen und Objekt-Tessellation. | packages/core/src/cad/tolerance.ts, tessellate.ts |
| CAM-Bearbeitungskernel | Planung, 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
RangeErroroder 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.