CommunityCodierung & Entwicklunggithub.com

3mf-to-fusion

Fortschrittlicher CAD-Rückentwicklungs-Engine für 3MF- und STL-Dateien. Schneidet, zerlegt und analysiert Rohmeshes mathematisch (Querschnitte, echte umschriebene Kreisradien, Langlöcher, Sechskanttaschen, Drehprofile und Musteranordnungen) und erzeugt 100 % native, editierbare parametrische BRep-Volumenkörper in Autodesk Fusion 360 über den Fusion 360 MCP-Server.

Was ist 3mf-to-fusion?

Diese Skill befähigt KI-Agenten (z. B. Claude Code, Cursor, Codex), 3MF- und STL-Meshdateien analytisch in vollständig editierbare, parametrische Volumenkörper in Autodesk Fusion 360 rückzuentwickeln. Anstatt grobe Mesh-Konvertierungen zu verwenden, die Tausende von Dreiecksflächen erzeugen, extrahiert die Skill über ein Metrologie-Skript (`inspect_3mf.py`) geometrische Primitive (umgeschriebene Kreisradien, Langlöcher, Sechskanttaschen, Drehprofile, rechteckige Muster). Sie klassifiziert das Bauteil in eine von vier Architekturen (prismatisch, gedreht, mehrstufig, organisch) und erstellt dann mit der Fusion 360 MCP Server API native parametrische Feature (Skizzen, Extrusionen, Rotationen, Muster, Verrundungen). Die Skill erzwingt strenge Qualitätsprüfungen: keine Mesh-zu-BRep-Konvertierung, saubere Timeline mit benutzerdefinierten Parametern, Visualisierungs-Screenshots und automatische Fehlerprüfung. Dadurch bleiben die Konstruktionshistorie, Bearbeitbarkeit und Kompatibilität mit CAM/Zeichnungen erhalten.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Kamish76/To-Fusion-Skill-Sets/tree/HEAD/skills/3mf-to-fusion

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

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" (MeshToBREP oder bRepBodies.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:

  1. Kanarienvogel-Sonde: Rufen Sie das fusion-mcp-Tool execute_api_script auf:

    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")
    
  2. 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_cad ist verboten). Stellen Sie immer sicher, dass ein dedizierter Modellordner unter models/<NN>_<Model_Name>/ existiert (mit scaffold_text_model.py "<Model_Name>" erstellen, falls neu) und leiten Sie alle Slice/Dice-Ausgaben in models/<NN>_<Model_Name>/workspace/extracted_cad um.

  1. 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
    
  2. Lesen Sie models/<NN>_<Model_Name>/workspace/extracted_cad/manifest.json.

  3. Überprüfen Sie den archetype und 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."

  4. Präsentieren Sie dem Benutzer eine Zusammenfassungstabelle:

    Teil-IDArchetypBegrenzungsrahmen ($X \times Y \times Z\text{ mm}$)StufenErkannte Primitive / Muster

Phase 2: Messtechnik-Mathematik & Regeln

  1. 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)
      
  2. 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_mm aus manifest.json["primitives"]["circles"] (95. Perzentil des umschriebenen Radius), gerundet auf den nächsten $0.05\text{ mm}$.
  3. 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.
  4. 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 mit comp.features.rectangularPatternFeatures. Zeichnen Sie keine sich wiederholende identische Geometrie von Hand.

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.xZConstructionPlane und rufen Sie comp.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.add mit adsk.fusion.FeatureOperations.CutFeatureOperation an.
  • Wenden Sie comp.features.rectangularPatternFeatures.add entlang der comp.xConstructionAxis und comp.yConstructionAxis an.

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:

  1. 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
    
  2. 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_occ aus oder entfernen Sie es.

Phase 5: Timeline-Gesundheit & Visuelles Selbstverifikations-Gate

  1. 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!"
    
  2. 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.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Verwandte Skills