3mf-to-fusion

Mecanismo avançado de engenharia reversa CAD para arquivos 3MF e STL. Fatia, divide e inspeciona matematicamente malhas brutas (seções transversais, raios reais de círculos circunscritos, rasgos obround, cavidades hexagonais, perfis torneados e matrizes padrão) e sintetiza corpos sólidos BRep paramétricos 100% nativos e editáveis no Autodesk Fusion 360 através do servidor MCP Fusion 360.

O que é 3mf-to-fusion?

O skill 3mf-to-fusion é um motor analítico de engenharia reversa projetado para transformar malhas brutas 3MF e STL em modelos CAD paramétricos nativos no Autodesk Fusion 360. Ele opera em um pipeline determinístico de cinco fases, começando com uma verificação de segurança do Fusion 360 e seu servidor MCP, seguido por um motor de metrologia que 'fatia' a malha geometricamente para extrair primitivas como círculos circunscritos, rasgos obround e cavidades poligonais, classificando a peça em arquétipos (prismático, torneado, invólucro ou orgânico). O skill proíbe estritamente o uso da conversão mesh-para-BRep integrada do Fusion, pois isso degrada a qualidade CAD e quebra intenção paramétrica. Em vez disso, ele reconstrói cada peça usando operações limpas da linha do tempo: esboços 2D, extrusões, operações de revolução e padrões paramétricos, garantindo que as peças finais sejam totalmente editáveis e adequadas para CAM, desenhos e filés. O skill é suportado exclusivamente no Autodesk Fusion 360 via seu servidor MCP e requer acesso ao Python (scripts `inspect_3mf.py` e chamadas `execute_api_script`).

Funciona com~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 Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Skill de Engenharia Reversa Analítica de 3MF / STL para Fusion 360

Quando solicitado a copiar, fazer engenharia reversa ou recriar um arquivo .3mf ou .stl no Autodesk Fusion 360, siga este pipeline analítico determinístico.

O MANDATO DE ENGENHARIA REVERSA CAD

[!IMPORTANT] ESTRITAMENTE PROIBIDO: Nunca usar a ferramenta "Converter Malha em Sólido" (MeshToBREP ou bRepBodies.addByMesh) do Fusion 360.

Converter facetas de malha diretamente em BRep cria dezenas de milhares de faces triangulares planas que congelam a janela de visualização, não podem ser filetadas ou chanfradas, quebram CAM/desenhos downstream e destroem toda a intenção paramétrica do design.

OBRIGATÓRIO: Dissecar a malha matematicamente ("fatie e divida"), extrair suas seções transversais 2D e primitivas geométricas (rasgos, furos circunscritos, contra-furos, perfis torneados, padrões retangulares) e construir corpos sólidos paramétricos 100% nativos na linha do tempo do Fusion 360 usando esboços, parâmetros de direção, extrusões, operações de revolução e padrões.


Fase 0: Portão de Segurança Pré-Voo (Obrigatório)

Antes de processar arquivos, verifique se o Autodesk Fusion 360 e seu servidor MCP estão ativos:

  1. Sonda Canário: Chame a ferramenta fusion-mcp execute_api_script:

    def run(context):
        import adsk.core, adsk.fusion
        app = adsk.core.Application.get()
        if not app:
            raise RuntimeError("Instância do aplicativo Autodesk Fusion 360 não encontrada.")
        design = adsk.fusion.Design.cast(app.activeProduct)
        if not design:
            raise RuntimeError("Nenhum documento de design ativo no Fusion 360.")
        print("FUSION_MCP_READY")
    
  2. Regra de Aborto Rápido:

    • Se a chamada falhar ou exceder o tempo limite, PARE imediatamente.
    • Não execute scripts de extração ou comandos CAD.
    • Instrua o usuário a abrir o Fusion 360, garantir que o complemento esteja iniciado e abrir um documento ativo.

Fase 1: Fatie, Divida e Classifique (Motor de Metrologia)

[!IMPORTANT] Regra de Isolamento do Espaço de Trabalho: Nunca emita arquivos de extração na raiz principal do repositório (por exemplo, ./extracted_cad é proibido). Sempre garanta que uma pasta de modelo dedicada exista em models/<NN>_<Nome_do_Modelo>/ (scaffold com scaffold_text_model.py "<Nome_do_Modelo>" se for novo) e roteie todas as saídas de fatias/divisões para models/<NN>_<Nome_do_Modelo>/workspace/extracted_cad.

  1. Execute o motor de metrologia profundo no espaço de trabalho isolado do modelo:

    python3 <caminho_para_skills>/3mf-to-fusion/scripts/inspect_3mf.py <caminho_para_arquivo.3mf_ou_stl> --out-dir models/<NN>_<Nome_do_Modelo>/workspace/extracted_cad
    
  2. Leia models/<NN>_<Nome_do_Modelo>/workspace/extracted_cad/manifest.json.

  3. Verifique o archetype e as características detectadas para cada peça:

    • Tipo A: CAD Prismático / Escalonado: Extrusão de base planar + cortes de cavidade + matrizes de furos.
    • Tipo T: Torneado / Axissimétrico: Fatias circulares colineares ao longo do eixo Z. Modelado usando um único esboço de meio perfil + RevolveFeature de 360°.
    • Tipo B: Invólucro / Casca Multinível: Planos de construção escalonados + extrusões de parede fina + casca.
    • Tipo C: Escultura Orgânica de Forma Livre: Alta curvatura não planar ($> 15$ níveis). Alerte imediatamente o usuário:

      "Esta peça é uma escultura orgânica contínua sem faces planas discretas ou esboços prismáticos. Reconstruí-la usando esboços planos gerará uma aproximação em escada, em vez de uma escultura orgânica suave."

  4. Apresente uma tabela de resumo ao usuário:

    ID da PeçaArquétipoCaixa Envolvente ($X \times Y \times Z\text{ mm}$)NíveisPrimitivas / Padrões Chave Detectados

Fase 2: Matemática de Metrologia e Regras

  1. Conversão de Unidades (cm = mm / 10.0):
    • O banco de dados interno do Fusion 360 (adsk.core.ValueInput.createByReal()) usa estritamente centímetros (cm).
    • Defina no topo de cada script:
      def mm(val): return adsk.core.ValueInput.createByReal(float(val) / 10.0)
      
  2. Compensação de Círculo Circunscrito (Erro de Corda):
    • As tesselações STL aproximam furos circulares com polígonos inscritos cujas arestas cortam para dentro ao longo das cordas.
    • Nunca use o diâmetro mínimo interno. Sempre use radius_mm de manifest.json["primitives"]["circles"] (raio circunscrito do percentil 95) arredondado para o $0,05\text{ mm}$ mais próximo.
  3. Reconhecimento de Rasgo / Obround:
    • Quando os loops têm duas linhas retas paralelas e duas extremidades semicirculares, modele-as como um rasgo semente (sketchLines + sketchArcs) em vez de um polígono de vários segmentos.
  4. Reconhecimento de Padrão (Grade / Polar):
    • Quando manifest.json["patterns"] detecta um passo regular ($\Delta X, \Delta Y$), modele um recorte semente mestre e duplique-o usando comp.features.rectangularPatternFeatures. Não desenhe geometria repetitiva idêntica manualmente.

Fase 3: Reconstrução Paramétrica Pura no Fusion 360

Execute a geração CAD via execute_api_script. Reconstrua cada peça usando recursos limpos da linha do tempo:

Passo 1: Ocorrência e Parâmetros do Usuário

transform = adsk.core.Matrix3D.create()
occ = root.occurrences.addNewComponent(transform)
comp = occ.component
comp.name = nome_da_peca

# Adicionar Parâmetros de Direção
params = design.userParameters
params.add(f"{nome_da_peca}_width", mm(largura_mm), "mm", "Largura da base")
params.add(f"{nome_da_peca}_length", mm(comprimento_mm), "mm", "Comprimento da base")
params.add(f"{nome_da_peca}_height", mm(altura_mm), "mm", "Altura da base")

Passo 2: Geometria Sólida Primária

  • Se Tipo T (Torneado): Esboce meio perfil em comp.xZConstructionPlane e chame comp.features.revolveFeatures.add(prof, comp.zConstructionAxis, adsk.fusion.FeatureOperations.NewBodyFeatureOperation).
  • Se Tipo A/B (Prismático): Esboce o contorno da base em comp.xYConstructionPlane (centralizado na origem) e extrude o sólido da base.

Passo 3: Recortes e Padrões Secundários

  • Desenhe o recorte semente mestre (rasgo, contra-furo ou cavidade).
  • Aplique comp.features.extrudeFeatures.add com adsk.fusion.FeatureOperations.CutFeatureOperation.
  • Aplique comp.features.rectangularPatternFeatures.add ao longo de comp.xConstructionAxis e comp.yConstructionAxis.

Passo 4: Toques Finais

  • Aplique filetes de canto (comp.features.filletFeatures) e chanfros (comp.features.chamferFeatures).

Fase 4: Sobreposição Fantasma de Referência e Inspeção no CAD

Para verificar o alinhamento matemático e dimensional sem poluir o modelo final:

  1. Malha de Referência Fantasma (Opcional): Se for necessário alinhamento visual detalhado, importe a malha bruta em uma ocorrência de referência temporária separada:
    # Importar malha como fundo de referência
    ref_occ = root.occurrences.addNewComponent(transform)
    ref_occ.component.name = "Reference_Mesh_Ghost"
    # Definir estilo visual transparente
    
  2. Inspeção Visual e de Interferência:
    • Verifique se o sólido paramétrico envolve completamente e se alinha com o envelope da malha.
    • Uma vez verificado, oculte ou remova ref_occ.

Fase 5: Saúde da Linha do Tempo e Portão de Autoverificação Visual

  1. Verificação de Recursos da Linha do Tempo: Garanta que não existam corpos de malha na peça reconstruída:
    assert comp.bRepBodies.count > 0, "Nenhum corpo sólido produzido!"
    assert comp.meshBodies.count == 0, "MeshBody proibido detectado no componente!"
    assert comp.sketches.count > 0, "Nenhum esboço encontrado na linha do tempo!"
    
  2. Inspeção Visual: Chame get_screenshot(view="iso-top-right", width=1024, height=1024) para verificar visualmente o modelo sólido paramétrico limpo e a árvore da linha do tempo limpa.

Individual skills in this repo

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

Habilidades Relacionadas