Modelagem Automatizada Nativa SolidWorks 2023 (Orientada a Receitas · Comprovada na Prática)
Transforme "descrever objeto → receita JSON de modelagem → SolidWorks desenhar diretamente" em um único comando, com verificação geométrica programática.
Estrutura do Repositório
| Caminho | Descrição |
|---|---|
sw_bridge.py | Ponte principal: orientada a receitas, um comando para modelar → salvar → exportar → verificar |
stl_slicer.py | Verificação de fatiamento STL ASCII (confirma contornos/furos/rasgos de forma programática, sem depender de leitura visual) |
recipes/ | Exemplos de receitas prontas (inclui auto-teste completo recipe_best_practices_test.json) |
dfm_check.py + rules/ | Verificador DFM de estrutura de produto: injecção (16 regras) / impressão 3D (14 regras) com regras quantitativas duais, exame de tabela de parâmetros de projeto + lint de receita |
skills/sw-dfm-injection/ | Skill derivado: DFM de injeção (DVT/produção em massa, regras quantitativas de espessura de parede/ângulo de saída/encaixes/bossas/nervuras/rebaixos) |
skills/sw-dfm-proto/ | Skill derivado: DFM de prototipagem 3D (EVT, regras quantitativas de recurso mínimo/saliência/folga/orifícios de drenagem) |
references/api-pitfalls.md | Todas as lições aprendidas: armadilhas COM/assinatura/VARIANT/EquationMgr/ROT, leitura obrigatória antes de criar novas capacidades |
references/recipe-cookbook.md | Sintaxe detalhada de receitas + modelos + uso de múltiplas especificações/verificações |
references/industry-best-practices.md | Síntese de pesquisa de melhores práticas da indústria + lista de melhorias futuras |
docs/case_mcp1085_box.md | Caso de entrega real: caixa de teste de tubo de água de duas camadas |
config.example.json | Modelo de configuração específico da máquina (caminhos de modelo/ProgID/diretório de saída) |
Pré-requisitos de Ambiente (Indispensáveis)
- Windows + SolidWorks 2023 original em execução. O COM só pode anexar a uma sessão interativa (
GetObject), não funcionando sem cabeça (headless) nem sendo iniciado por script (instâncias iniciadas por COM não se registram no ROT, veja api-pitfalls §13). - Python 3.10+,
pip install -r requirements.txt(pywin32 / trimesh / manifold3d / numpy / pillow). - Caminhos de modelo padrão chinês GB já incorporados como padrão; para modelos em inglês ou personalizados, copie
config.example.jsonparaconfig.jsone modifique.
Auto-verificação Rápida
python sw_bridge.py --demo block # Criar bloco + exportar + verificação geométrica completa
python sw_bridge.py --demo vase # Superfície de revolução com spline
python stl_slicer.py --stl demo_output/demo_block.STL --level 5 # Fatiar e ver seção transversal
Fluxo de Trabalho Padrão
- Escrever receita JSON (sintaxe e modelos em
references/recipe-cookbook.md) - Executar:
python sw_bridge.py --recipe-file recipes/xxx.json - Verificar: asserções
verifyincorporadas na receita (estanqueidade/volume/caixa envolvente/IoU golden), falha leva a falha total; usarstl_slicer.pypara ver seções transversais - Renderizar: múltiplas ops
viewpara exportar imagens PNG de vários ângulos;fmt: steppara downstream - Revisão estrutural (peças de produto):
python dfm_check.py --design tabela_parametros.json --process both— exame DFM dual injeção/impressão 3D, FAIL bloqueia o gate; skills derivados emskills/
Visão Geral das Operações (Operações) da Receita (parâmetros completos no cookbook)
| op | Descrição |
|---|---|
new_part / new_assembly / open | Operações de documento |
sketch / sketch_end / centerline / spline / line / rect / circle / arc | Esboço (mm) |
extrude / revolve / cut / fillet / chamfer | Recursos (falha gera repetição automática com degradação) |
set_global_variable / add_equation | Variáveis globais/equações → múltiplas especificações do mesmo modelo via variação GV |
view / save / export / add_component / import_mesh | Visualização/salvar/exportar stl·png·step·iges/montagem/importação de malha |
verify | Camada de asserção trimesh (estanqueidade/volume/caixa envolvente/IoU golden) |
Durante a execução, o refresh gráfico/árvore de recursos é automaticamente congelado (empacotamento de desempenho), finalizando com ForceRebuild3+ForceRebuildAll unificados.
Regras Rígidas Resumidas (versão completa em references/api-pitfalls.md)
- A unidade de comprimento da API é sempre metro; na receita escreva em mm (a ponte converte automaticamente).
FeatureRevolve2tem 20 parâmetros; as versões de 4/5/7 parâmetros geradas pela biblioteca de tipos estão todas erradas.- Em ligação tardia (late binding), Callout/ExportData devem usar
VARIANT(VT_DISPATCH, None); o array de pontos doCreateSpline2deve serVT_ARRAY|VT_R8. - Para entrar/sair do esboço, use
InsertSketch(True)(Toggle). - Nomes localizados em chinês: Plano frontal/Esboço1/*Isométrica (config pode alternar para ambiente inglês como candidato).
- Recursos complexos (>12 parâmetros) falham → solução definitiva: gravar macro no SW → reproduzir com
RunMacro2. GetEquationMgré apenas propget, deve ser PROPERTYGET forçado via dispid (veja api-pitfalls §12).- Para assinaturas de API complexas, consulte primeiro a biblioteca de tipos instalada do SW (makepy) ou grave uma macro, não adivinhe de memória.
Nota de Compatibilidade de Versões
Este pacote foi testado e comprovado no SW2023 edição padrão chinesa GB (incluindo dispid 66286, ProgID .31, FeatureRevolve2 com 20 parâmetros e outros detalhes específicos da versão).
Outras versões do SW têm fluxo central compatível, mas constantes específicas de versão precisam ser verificadas novamente pelo método descrito em api-pitfalls §12 (makepy na biblioteca de tipos/gravar macro).
Limites Testados / Não Testados
- ✅ Extrusão, revolução, spline, retângulo/círculo/arco, corte, filete, chanfro, adição de componente em montagem, GV/equações, exportação STL/STEP/IGS/PNG, importação de malha, asserções geométricas
- ❌ Varredura (sweep), loft (loft), padrão (pattern), encaixe (mate) não testados (teoricamente mesmo método, verificar assinatura na biblioteca de tipos ou gravar macro)