SolidWorks 2023 Modelado Automático Nativo (Impulsado por Recetas · Probado en la Práctica)
Convierte "describir objeto → receta JSON de modelado → SolidWorks lo dibuja directamente" en un solo comando, con verificación geométrica programática.
Estructura del Repositorio
| Ruta | Descripción |
|---|---|
sw_bridge.py | Puente principal: impulsado por recetas, un solo comando hace modelado → guardar → exportar → aserción |
stl_slicer.py | Verificación de cortes STL ASCII (confirmación programática de contornos/agujeros/ranuras, sin depender de imágenes) |
recipes/ | Ejemplos de recetas listas para usar (incluye autocomprobación de ciclo completo recipe_best_practices_test.json) |
dfm_check.py + rules/ | Analizador de diseño para fabricación (DFM) de producto: reglas cuantitativas dobles para inyección (16 reglas) y 3D (14 reglas), revisión de tabla de parámetros de diseño + lint de recetas |
skills/sw-dfm-injection/ | Skill derivado: DFM de inyección (DVT/producción en masa, reglas cuantitativas de espesor de pared/ángulo de desmoldeo/cierre/Boss/nervio/socavación) |
skills/sw-dfm-proto/ | Skill derivado: DFM de prototipado 3D (EVT, reglas cuantitativas de características mínimas/salientes/holguras/agujeros de drenaje) |
references/api-pitfalls.md | Lecciones completas de errores: COM/firmas/VARIANT/EquationMgr/ROT, lectura obligatoria antes de desarrollar nuevas capacidades |
references/recipe-cookbook.md | Sintaxis detallada de recetas + plantillas + uso de múltiples variantes/aserciones |
references/industry-best-practices.md | Resumen de investigación de paradigmas de la industria + lista de mejoras futuras |
docs/case_mcp1085_box.md | Caso de entrega práctico: caja de detección de tubería de dos capas |
config.example.json | Plantilla de configuración específica de la máquina (rutas de plantillas/ProgID/directorio de salida) |
Requisitos del Entorno (Imprescindibles)
- Windows + SolidWorks 2023 original en ejecución. COM solo se puede adjuntar a una sesión interactiva (
GetObject); no puede ejecutarse sin cabeza ni ser iniciado por script (las instancias iniciadas por COM no se registran en ROT, ver api-pitfalls §13). - Python 3.10+,
pip install -r requirements.txt(pywin32 / trimesh / manifold3d / numpy / pillow). - Las rutas de plantillas para la versión china estándar ya están integradas como valores predeterminados; para la versión inglesa o plantillas personalizadas, copie
config.example.jsoncomoconfig.jsony modifíquelo.
Autocomprobación Rápida
python sw_bridge.py --demo block # Crea un cubo + exporta + aserción geométrica todo en uno
python sw_bridge.py --demo vase # Superficie rotacional con spline
python stl_slicer.py --stl demo_output/demo_block.STL --level 5 # Corta para ver la sección transversal
Flujo de Trabajo Estándar
- Escribir la receta JSON (sintaxis y plantillas en
references/recipe-cookbook.md) - Ejecutar:
python sw_bridge.py --recipe-file recipes/xxx.json - Verificar: La receta incorpora aserciones
verify(estanqueidad/volumen/caja envolvente/IoU golden), si falla, toda la receta falla; luego usarstl_slicer.pypara ver la sección transversal - Generar imágenes: Múltiples operaciones
viewexportan PNG desde varios ángulos;fmt: steppara aguas abajo - Revisión estructural (para piezas de producto):
python dfm_check.py --design tabla_de_parametros.json --process both— revisión DFM dual (inyección/prototipado 3D), FAIL significa puerta de acceso no superada; skills derivados enskills/
Resumen de Operaciones de Receta (Parámetros Completos en Cookbook)
| op | Descripción |
|---|---|
new_part / new_assembly / open | Operaciones de documento |
sketch / sketch_end / centerline / spline / line / rect / circle / arc | Croquizado (mm) |
extrude / revolve / cut / fillet / chamfer | Características (reintento automático con degradación en caso de fallo) |
set_global_variable / add_equation | Variables globales/ecuaciones → variantes GV para múltiples especificaciones del mismo modelo |
view / save / export / add_component / import_mesh | Vista/guardado/exportación stl·png·step·iges/ensamblaje/importación de malla |
verify | Capa de aserciones trimesh (estanqueidad/volumen/caja envolvente/IoU golden) |
Durante la ejecución, se congela automáticamente la actualización de gráficos/árbol de características (envoltura de rendimiento), y al final se ejecuta ForceRebuild3+ForceRebuildAll.
Reglas Estrictas Rápidas (Versión Completa en references/api-pitfalls.md)
- La unidad de longitud de la API es siempre metro, en la receta se escribe en mm (el puente convierte automáticamente).
FeatureRevolve2tiene 20 parámetros; las versiones generadas por la biblioteca de tipos con 4/5/7 parámetros son todas incorrectas.- En enlace tardío, Callout/ExportData deben pasar
VARIANT(VT_DISPATCH, None); el array de puntos deCreateSpline2debe serVT_ARRAY|VT_R8. - Entrar y salir del croquis siempre con
InsertSketch(True)(Toggle). - Nombres localizados en chino: Plano frontal/Croquis1/Isométrica (configurable para cambiar a entorno inglés si es necesario).
- Si una característica compleja (>12 parámetros) falla → solución definitiva: grabar macro en SW → reproducir con
RunMacro2. GetEquationMgres solo propget, debe forzarse PROPERTYGET por dispid (ver api-pitfalls §12).- Para firmas de API complejas, consulte primero la biblioteca de tipos (makepy) de la instalación de SW o grabe una macro, no adivine de memoria.
Nota de Compatibilidad de Versiones
Este paquete ha sido probado en SW2023 versión china estándar (incluyendo dispid 66286, ProgID .31, 20 parámetros de FeatureRevolve2 y otros detalles específicos de la versión).
Para otras versiones de SW, el flujo principal es compatible, pero las constantes específicas de versión deben verificarse nuevamente siguiendo el método de api-pitfalls §12 (biblioteca de tipos makepy/grabación de macros).
Límites Probados / No Probados
- ✅ Extrusión, revolución, spline, rectángulo/círculo/arco, corte, redondeo, chaflán, adición de componentes en ensamblaje, GV/ecuaciones, exportación STL/STEP/IGS/PNG, importación de malla, aserciones geométricas
- ❌ Barrido/solevación/patrón/relaciones de ensamblaje no probados (teóricamente con el mismo enfoque, firma debe consultarse en la biblioteca de tipos o grabación de macro)