3MF / STL nach Fusion 360 Analytischer Rückentwicklungs-Skill
Wenn Sie aufgefordert werden, eine .3mf- oder .stl-Datei in Autodesk Fusion 360 zu kopieren, rückzuentwickeln oder neu zu erstellen, befolgen Sie diese deterministische analytische Pipeline.
DAS CAD-RÜCKENTWICKLUNGS-MANDAT
[!IMPORTANT] STRENG VERBOTEN: Verwenden Sie niemals die integrierte Funktion "Mesh in Volumenkörper konvertieren" (
MeshToBREPoderbRepBodies.addByMesh) von Fusion 360.Das direkte Konvertieren von Mesh-Facetten in BRep erzeugt Zehntausende von planaren Dreiecksflächen, die die Ansicht einfrieren, nicht abgerundet oder angefast werden können, nachgelagerte CAM/Zeichnungen beschädigen und die gesamte parametrische Konstruktionsabsicht zerstören.
VERPFLICHTEND: Zerlegen Sie das Mesh mathematisch ("Slice and Dice"), extrahieren Sie seine 2D-Querschnitte und geometrischen Primitive (Schlitze, umschriebene Löcher, Senkbohrungen, Drehprofile, rechteckige Muster) und konstruieren Sie 100 % native parametrische Volumenkörper in der Fusion 360-Timeline unter Verwendung von Skizzen, treibenden Benutzerparametern, Extrusionen, Rotationen und Muster-Features.
Phase 0: Pre-Flight Sicherheitsprüfung (Pflicht)
Bevor Dateien verarbeitet werden, überprüfen Sie, ob Autodesk Fusion 360 und sein MCP-Server aktiv sind:
-
Kanarienvogel-Sonde: Rufen Sie das
fusion-mcp-Toolexecute_api_scriptauf:def run(context): import adsk.core, adsk.fusion app = adsk.core.Application.get() if not app: raise RuntimeError("Autodesk Fusion 360-Anwendungsinstanz nicht gefunden.") design = adsk.fusion.Design.cast(app.activeProduct) if not design: raise RuntimeError("Kein aktives Fusion 360-Konstruktionsdokument geöffnet.") print("FUSION_MCP_READY") -
Fail-Fast-Abbruchregel:
- Wenn der Aufruf fehlschlägt oder eine Zeitüberschreitung auftritt, STOPPEN Sie sofort.
- Führen Sie KEINE Extraktionsskripte oder CAD-Befehle aus.
- Weisen Sie den Benutzer an, Fusion 360 zu öffnen, sicherzustellen, dass das Add-In gestartet ist, und ein aktives Dokument zu öffnen.
Phase 1: Slice, Dice & Klassifizieren (Messtechnik-Engine)
[!IMPORTANT] Workspace-Isolationsregel: Geben Sie Extraktionsdateien niemals in das Hauptrepository-Root aus (z. B.
./extracted_cadist verboten). Stellen Sie immer sicher, dass ein dedizierter Modellordner untermodels/<NN>_<Model_Name>/existiert (mitscaffold_text_model.py "<Model_Name>"erstellen, falls neu) und leiten Sie alle Slice/Dice-Ausgaben inmodels/<NN>_<Model_Name>/workspace/extracted_cadum.
-
Führen Sie die Deep-Messtechnik-Engine im isolierten Workspace des Modells aus:
python3 <path_to_skills>/3mf-to-fusion/scripts/inspect_3mf.py <path_to_file.3mf_or_stl> --out-dir models/<NN>_<Model_Name>/workspace/extracted_cad -
Lesen Sie
models/<NN>_<Model_Name>/workspace/extracted_cad/manifest.json. -
Überprüfen Sie den
archetypeund die erkannten Merkmale für jedes Teil:- Typ A: Prismatisch / Abgesetzt CAD: Planare Basisextrusion + Tascheausschnitte + Lochmuster.
- Typ T: Gedreht / Achsensymmetrisch: Kollineare kreisförmige Schnitte entlang der Z-Achse. Modelliert unter Verwendung einer einzigen Halbprofil-Skizze + 360°
RevolveFeature. - Typ B: Mehrstufiges Gehäuse / Schale: Gestufte Konstruktionsebenen + Dünnwand-Extrusionen + Schale.
- Typ C: Organische Freiform-Skulptur: Hohe nicht-planare Krümmung ($> 15$ Stufen). Informieren Sie den Benutzer sofort:
"Dieses Teil ist eine durchgehende organische Skulptur ohne diskrete planare Flächen oder prismatische Skizzen. Die Rekonstruktion mit planaren Skizzen erzeugt eine gestufte Treppennäherung anstelle einer glatten organischen Form."
-
Präsentieren Sie dem Benutzer eine Zusammenfassungstabelle:
Teil-ID Archetyp Begrenzungsrahmen ($X \times Y \times Z\text{ mm}$) Stufen Erkannte Primitive / Muster
Phase 2: Messtechnik-Mathematik & Regeln
- Einheitenumrechnung (
cm = mm / 10.0):- Fusion 360s interne Datenbank (
adsk.core.ValueInput.createByReal()) verwendet strikt Zentimeter (cm). - Definieren Sie am Anfang jedes Skripts:
def mm(val): return adsk.core.ValueInput.createByReal(float(val) / 10.0)
- Fusion 360s interne Datenbank (
- Umschriebener Kreisausgleich (Sehnenfehler):
- STL-Tesselationen approximieren Kreislöcher mit einbeschriebenen Polygonen, deren Kanten entlang der Sehnen nach innen schneiden.
- Verwenden Sie niemals den inneren minimalen Durchmesser. Verwenden Sie immer
radius_mmausmanifest.json["primitives"]["circles"](95. Perzentil des umschriebenen Radius), gerundet auf den nächsten $0.05\text{ mm}$.
- Schlitz-/Langlocherkennung:
- Wenn Schleifen zwei parallele gerade Linien und zwei halbkreisförmige Enden haben, modellieren Sie sie als einen Grundschlitz (
sketchLines+sketchArcs), nicht als ein mehrsegmentiges Polygon.
- Wenn Schleifen zwei parallele gerade Linien und zwei halbkreisförmige Enden haben, modellieren Sie sie als einen Grundschlitz (
- Mustererkennung (Gitter / Polar):
- Wenn
manifest.json["patterns"]eine regelmäßige Teilung ($\Delta X, \Delta Y$) erkennt, modellieren Sie einen Master-Samenausschnitt und duplizieren Sie ihn mitcomp.features.rectangularPatternFeatures. Zeichnen Sie keine sich wiederholende identische Geometrie von Hand.
- Wenn
Phase 3: Reine Parametrische Fusion 360 Rekonstruktion
Führen Sie die CAD-Generierung über execute_api_script durch. Rekonstruieren Sie jedes Teil mit sauberen Timeline-Features:
Schritt 1: Vorkommen & Benutzerparameter
transform = adsk.core.Matrix3D.create()
occ = root.occurrences.addNewComponent(transform)
comp = occ.component
comp.name = part_name
# Treibende Parameter hinzufügen
params = design.userParameters
params.add(f"{part_name}_width", mm(width_mm), "mm", "Grundbreite")
params.add(f"{part_name}_length", mm(length_mm), "mm", "Grundlänge")
params.add(f"{part_name}_height", mm(height_mm), "mm", "Grundhöhe")
Schritt 2: Primäre Volumengeometrie
- Wenn Typ T (Gedreht): Skizzieren Sie das Halbprofil auf
comp.xZConstructionPlaneund rufen Siecomp.features.revolveFeatures.add(prof, comp.zConstructionAxis, adsk.fusion.FeatureOperations.NewBodyFeatureOperation)auf. - Wenn Typ A/B (Prismatisch): Skizzieren Sie die Basiskontur auf
comp.xYConstructionPlane(zentriert am Ursprung) und extrudieren Sie den Grundkörper.
Schritt 3: Sekundäre Ausschnitte & Muster
- Zeichnen Sie den Master-Samenausschnitt (Schlitz, Senkbohrung oder Tasche).
- Wenden Sie
comp.features.extrudeFeatures.addmitadsk.fusion.FeatureOperations.CutFeatureOperationan. - Wenden Sie
comp.features.rectangularPatternFeatures.addentlang dercomp.xConstructionAxisundcomp.yConstructionAxisan.
Schritt 4: Letzte Handgriffe
- Wenden Sie Eckverrundungen (
comp.features.filletFeatures) und Fasen (comp.features.chamferFeatures) an.
Phase 4: Referenz-Geister-Überlagerung & In-CAD-Inspektion
Um die mathematische und dimensionale Ausrichtung zu überprüfen, ohne das endgültige Modell zu verschmutzen:
- Geister-Referenzmesh (Optional):
Wenn eine detaillierte visuelle Ausrichtung erforderlich ist, importieren Sie das Rohmesh in ein separates temporäres Referenzvorkommen:
# Mesh als Referenzhintergrund importieren ref_occ = root.occurrences.addNewComponent(transform) ref_occ.component.name = "Reference_Mesh_Ghost" # Transparenten visuellen Stil setzen - Visuelle & Interferenzprüfung:
- Überprüfen Sie, ob der parametrische Volumenkörper die Mesh-Hüllkurve vollständig umschließt und mit ihr ausgerichtet ist.
- Sobald dies überprüft wurde, blenden Sie
ref_occaus oder entfernen Sie es.
Phase 5: Timeline-Gesundheit & Visuelles Selbstverifikations-Gate
- Timeline-Feature-Verifikation:
Stellen Sie sicher, dass im rekonstruierten Teil keine Mesh-Körper vorhanden sind:
assert comp.bRepBodies.count > 0, "Keine Volumenkörper erzeugt!" assert comp.meshBodies.count == 0, "Verbotener MeshBody in Komponente erkannt!" assert comp.sketches.count > 0, "Keine Skizzen in der Timeline gefunden!" - Visuelle Inspektion:
Rufen Sie
get_screenshot(view="iso-top-right", width=1024, height=1024)auf, um das saubere parametrische Volumenkörpermodell und den sauberen Timeline-Baum visuell zu überprüfen.