Es una aplicación libre de diseño asistido por
computadora en tres dimensiones, ingeniería asistida por computadora,
para la asistencia en ingeniería mecánica y el diseño de elementos
mecánicos. Está basado en Open CASCADE y programado en los lenguajes C++
y Python. Es software CAD de código abierto que permite la simulación y
modelado paramétrico, útil en el diseño mecánico.
Libertad para construir lo que quieras
FreeCAD es un modelador 3D paramétrico de código abierto hecho principalmente para
diseñar objetos de la vida real de cualquier tamaño. El modelado paramétrico le permite,
modificar fácilmente su diseño volviendo atràs en el historial del modelo
y cambiando sus parámetros.
Crea 3D desde 2D y viceversa
FreeCAD te permite dibujar formas 2D con restricciones de
geometría y usarlas como base para construir otros objetos. Contiene
muchos componentes para ajustar las dimensiones o extraer detalles de
diseño de modelos 3D para crear dibujos listos para producción de alta
calidad.
For professional design needs...
FreeCAD is a powerful and evolving open-source parametric
3D modeler, well-suited for many professional and technical tasks. With
the release of version 1.0, it marks a new milestone in stability and
usability. FreeCAD puts you in control - no licensing fees, no vendor
lock-in. It's not just cost-effective - it’s yours to adapt and build
upon.
Diseñado para sus necesidades
FreeCAD está diseñado para adaptarse a una amplia gama de
usos, incluyendo el diseño de productos, la ingeniería mecánica y la
arquitectura. Tanto si eres uno o una aficionada, un programador, un
usuario experimentado de CAD, un estudiante o profesor, te sentirás
como en casa con FreeCAD. novedades.
Y muchas más características geniales
FreeCAD cuenta con todas las herramientas adecuadas para tus necesidades. Obtienes
herramientas modernas de análisis de elementos finitos (FEA), CFD experimental, BIM,
entornos de trabajo de geodatos y de mecanizado, un módulo de simulación de robot que
te permite estudiar movimientos de robot y muchas más características. FreeCAD
es realmente una navaja suiza de herramientas de ingeniería de uso general
.
¿Quieres contribuir a FreeCAD?
FreeCAD es un proyecto real de código abierto y si desea ayudar
a corregir errores, implementar nuevas características interesantes o trabajar en la documentación,
te invitamos a unirte a nosotros y crear un software que beneficie a toda la comunidad
.
El poder de Python y Fusion 360 para la impresión 3D
Le
mostraré cómo crear múltiples versiones de un modelo Fusion 360 CAD y
exportarlos como archivos STL para la impresión 3D, utilizando un script
de Python.
Titular de la tapa de lente impresa en 3D, de Twothingies
Automatizar fácilmente las variaciones de archivo CAD utilizando la API de Fusion 360
¡Hola a todos!
Hoy
quiero compartir cómo utilicé un script de Python para automatizar el
proceso de crear múltiples variaciones de un archivo para la impresión
3D. Escribí un script que usa la API Autodesk Fusion 360 para cambiar
las dimensiones de un modelo CAD, y luego exporta cada variación como un
archivo STL que puede cortar para la impresión 3D.
Me
sorprendió lo simple que era hacer esto, así que quería compartirlo
contigo. Desglosaremos el código y explicando cada sección, para que
pueda comprender cómo funciona y cómo puede usarlo para sus propios
proyectos.
Si tiene
alguna idea de producto físico que requeriría hacer cambios en su
geometría basada en una serie de parámetros, ciertamente puede
beneficiarse de hacer algo como esto. Este caso es realmente simple, ya
que incluye solo dos parámetros, y puede ser útil para comprender lo que
se necesita.
Ya
sea que sea un fabricante joven que recién comienza con la impresión 3D o
un diseñador experimentado que busca llevar sus habilidades al
siguiente nivel a través de la automatización, esta publicación es para
usted.
Generación de múltiples archivos STL de Fusion 360 utilizando un script de Python
¿Por qué exportar archivos STL automáticamente?
Como sabrán, Twothingies es un proyecto que comencé con URI el
año pasado, y hemos estado compartiendo todo tipo de archivos útiles
para la impresión 3D en línea. En este caso, fue un diseño para un
titular de tapa de lente, que compartimos en imprimable.com , y recientemente incluidos en la tienda en el mercado de Vulkaza .
Desde
que publicamos los archivos en línea el año pasado, regularmente hemos
recibido solicitudes de personas que preguntaron muy bien si podíamos
hacer una variación de diseño para adaptarse a un tamaño diferente de
lente o correa de cámara.
Inicialmente, haría las
modificaciones y exportaría los archivos manualmente, ya que el diseño
se realizó en Fusion 360, y solo había dos parámetros para modificar
para obtener una versión ajustada. Pero pronto comenzó a ser tedioso, y
quería encontrar una manera de automatizar hacer varias versiones del
modelo y exportarlas, ver que podríamos publicar todos los tamaños
posibles a la vez.
Eso
se hizo más importante cuando decidimos abrir nuestra tienda en Vulkaza
e incluir al titular de la tapa del lente como uno de los diseños
enumerados. Idealmente, cualquiera podría ir a la tienda y pedir un
titular de tapa de lente de cualquier tamaño.
Hacer un modelo CAD paramétrico en Fusion 360
Cuando
creé el archivo CAD para este diseño, sabía que habría un punto en el
futuro cuando necesitaríamos hacer variaciones de él.
Así
que lo diseñé, incluidos algunos parámetros y relaciones que podrían
usarse para hacer cambios, primero modificando manualmente sus valores y
más adelante a través de algún tipo de automatización.
El modelo Fusion 360 del titular de la tapa del lente.
En este caso, los dos
parámetros que usaría para cambiar el tamaño del modelo eran el diámetro
de la lente (lensdiam) y el ancho de la correa de la cámara
(stapwidth). También hice un tercer parámetro, para el grosor de la
correa, que terminé no usando.
Puede
ver en la imagen debajo de los parámetros y algunas de las fórmulas que
se hacen referencia a ellos dentro del boceto principal.
Parámetros y fórmulas utilizadas en el boceto principal para impulsar los cambios en la geometría del modelo
Al hacer algunas pruebas con
el modelo y probar diferentes combinaciones de parámetros, tuve que
recordarme la regla más importante para hacer modelos CAD paramétricos: no deje bocetos sin restricciones en su diseño .
Cuando
cambia los valores de los parámetros, todo puede romperse con
resultados feos si hay elementos de boceto (una línea, un punto, un
arco) sin restricciones. Eso significa que cada entidad de boceto debe
tener una dimensión asociada con ella o una relación (coincidente,
paralela, perpendicular, etc.) a otra entidad de boceto.
La regla general corta, pero muy efectiva, es: no debe haber líneas azules en su boceto .
En Fusion 360, las líneas azules representan elementos sin
restricciones, que puede arrastrar con el mouse, ya que no están
vinculados a nada, o al menos no están adecuadamente vinculados en todos
los grados de libertad.
La regla más importante para hacer modelos CAD paramétricos: no deje bocetos sin restricciones en su diseño .
En este caso particular, todo
está vinculado al diámetro de la lente y al ancho de la correa, que son
las dimensiones que impulsarán los cambios a la geometría.
Los
diferentes diámetros del soporte se definen proporcionalmente a
Lensdiam, excepto por algunas compensaciones constantes que serán los
mismos sin importar el tamaño de la lente, pero su diámetro se define de
todos modos como un desplazamiento del diámetro de la lente.
Además,
la longitud total del soporte cambiará según el diámetro, para evitar
tener puntas demasiado cortas o largas para insertar la correa de la
cámara. El ancho de los lados, en cambio, se calcula a partir del ancho
de la correa.
Desbloqueo de la potencia de la automatización: usando la API Fusion 360
Sabía
que había una API Fusion 360 que permitía hacer scripts de Python para
este tipo de tareas, y esta fue la oportunidad perfecta para probarlo.
Sin saber por dónde empezar, mi primera suposición obvia fue investigar la documentación oficial .
Eso me permitió comprender los conceptos básicos, especialmente sobre
cómo comenzar a crear un nuevo script y comenzar a escribir algún código
que Fusion 360 reconociera.
Un recurso especialmente útil fue la documentación del modelo de objeto API Fusion 360 . Incluye un gráfico útil que muestra cómo están relacionados los diferentes tipos de objetos utilizados por la API.
Cómo comenzar a crear un nuevo script de Python para Fusion 360
Los pasos para comenzar un nuevo script son en realidad muy simples:
Haga clic en la Utilidades en la cinta superior de Fusion 360.
Haga clic en complementos . Los scripts y la ventana de complementos aparecerán. Haga clic en el botón Crear.
Se
mostrará el nuevo script o la ventana complementaria. Podrá elegir su
lenguaje de programación preferido (Python o C ++), agregar un nombre y
una descripción para su script, nombre del autor, sistema operativo de
destino y la carpeta donde se guardará.
Una
vez que llene esa información, puede hacer clic en Crear. Su nuevo
script (por ahora, vacío) se agregará a la lista en la ventana de
scripts y complementos.
Ahora
puede seleccionarlo y hacer clic en Editar y se abrirá una nueva
instancia de Visual Studio Code, con un archivo precargado que contiene
una plantilla para que comience a escribir su nuevo script. Le
preguntará si confía en los autores de los archivos antes de poder
acceder a ellos. Haga clic en Sí, y estará listo para comenzar.
Los pasos para crear un nuevo script de Python para Autodesk Fusion 360
Escribir un script de Python para actualizar los parámetros del modelo CAD
Esto es cuando comienza la parte divertida.
Código de plantilla proporcionado al crear un nuevo script de Python para usar la API de Fusion 360
Como puede ver, el script de
plantilla ya le indica algunas bibliotecas que necesitará: 'adsk.core',
'adsk.fusion' y 'adsk.cam'. Estos módulos proporcionan acceso a la API
Fusion 360 y permiten que el script interactúe con el diseño activo. El
resto se trata solo de usar las clases de objetos correctas y los
métodos correctos para interactuar con Fusion 360, para cada pequeña
tarea que debe hacer para completar una tarea más grande.
En
mi caso, necesitaba tener acceso a los parámetros definidos por el
usuario, modificarlos, esperar a que se actualice el diseño y exportarlo
como un archivo STL. Tendría que hacer esto de manera recursiva, para
diferentes combinaciones de Lensdiam y Strapwidth.
Solo necesitaba modificarlo ligeramente, y se me ocurrió el siguiente:
#Luis Medina -# Update the diameter of Lens Cap Holder and save each version as STLimport adsk.core, adsk.fusion, adsk.cam, traceback
defrun(context):
ui =Nonetry:
app = adsk.core.Application.get()
ui = app.userInterface
design = adsk.fusion.Design.cast(app.activeProduct)
defaultInputMinDiam ='35'
minLensDiam_Input = ui.inputBox('Input diameter in mm: ','Define minimum diameter', defaultInputMinDiam)
defaultInputMaxDiam ='80'
maxLensDiam_Input = ui.inputBox('Input diameter in mm: ','Define maximum diameter', defaultInputMaxDiam)
defaultInputWidth ='35'
StrapWidth_Input = ui.inputBox('Input width in mm: ','Define strap width', defaultInputWidth)
ui.messageBox(f'Input is = {StrapWidth_Input[0]}')
defaultInputFolder =r'C:\\\\'
folderInput = ui.inputBox('Input path to save folder: ','Define Save Folder', defaultInputFolder)
folder = folderInput[0]
diameters =list(range(int(minLensDiam_Input[0])-1,int(maxLensDiam_Input[0])+1,1))# Get the root component of the active design
rootComp = design.rootComponent
# Get the parameters named "Length" and "Width" to change.
LensDiam_par = design.allParameters.itemByName('LensDiam')
StrapWidth_par = design.allParameters.itemByName('StrapWidth')for dim in diameters:
Diam_set = dim
Width_set = StrapWidth_Input[0]
LensDiam_par.expression =str(Diam_set)
StrapWidth_par.expression =str(Width_set)# Let the view have a chance to paint just so you can watch the progress.
adsk.doEvents()# Construct the output filename.
filename =f'{folder}\\LensCapHolder_D{Diam_set}mm_Strap_{Width_set}mm.stl'# Save the file as STL.
exportMgr = adsk.fusion.ExportManager.cast(design.exportManager)
stlOptions = exportMgr.createSTLExportOptions(rootComp)
stlOptions.meshRefinement = adsk.fusion.MeshRefinementSettings.MeshRefinementMedium
stlOptions.filename = filename
exportMgr.execute(stlOptions)
ui.messageBox('Finished.')except:if ui:
ui.messageBox('Failed:\\n{}'.format(traceback.format_exc()))
El script de Python que creé para automatizar las variaciones del modelo CAD y exportar a archivos STL
Vamos a desglosar en lo que está haciendo cada sección del código.
El código de Python, explicó
El script comienza importando los módulos necesarios para acceder a la API Fusion 360, así como a la itertools Módulo, que utilizaremos más tarde para generar una lista de combinaciones de diámetro.
Entonces, definimos un run
función, que se ejecutará cuando se ejecute el script. La función
comienza inicializando la API Fusion 360 y obteniendo una referencia al
diseño activo.
A continuación, el script
solicita al usuario que ingrese el diámetro mínimo y máximo del soporte
de tapa de la lente, y el ancho de la correa, utilizando el inputBox
Método de la interfaz de usuario. Esto se utiliza para hacer todos los
valores posibles entre el diámetro mínimo y el máximo, con la abertura
para el ancho de correa de la cámara proporcionado.
Quería
tener esta posibilidad, para evitar codificar todas las reglas para
evitar resultados incorrectos debido a combinaciones incompatibles de
diámetros de lente y ancho de correa. El modelo CAD solo funciona para
anchos de correa iguales o más grandes que el diámetro de la lente, pero
no codifiqué errores y excepciones para dar cuenta de eso. Tal vez más
tarde.
defaultInputMinDiam ='35'
minLensDiam_Input = ui.inputBox('Input diameter in mm: ','Define minimum diameter', defaultInputMinDiam)
defaultInputMaxDiam ='80'
maxLensDiam_Input = ui.inputBox('Input diameter in mm: ','Define maximum diameter', defaultInputMaxDiam)
defaultInputWidth ='35'
StrapWidth_Input = ui.inputBox('Input width in mm: ','Define strap width', defaultInputWidth)
El script también solicita al usuario que ingrese la ruta a la carpeta donde se guardarán los archivos STL.
defaultInputFolder =r'C:\\\\'
folderInput = ui.inputBox('Input path to save folder: ','Define Save Folder', defaultInputFolder)
folder = folderInput[0]
Luego, creamos una lista de
diámetros para iterar, en función de los valores mínimos y máximos
proporcionados por el usuario. Yo usé rangey dio un desplazamiento de 1 mm a los valores, para incluir la lista de diámetros.
A continuación, obtenemos una
referencia al componente raíz del diseño activo y los parámetros que
queremos cambiar, en este caso, el diámetro de la lente y el ancho de la
correa.
Finalmente, podemos iterar sobre la lista de diámetros para cambiar los parámetros y exportar la geometría como archivos STL:
for dim in diameters:
Diam_set = dim
Width_set = StrapWidth_Input[0]
LensDiam_par.expression =str(Diam_set)
StrapWidth_par.expression =str(Width_set)# Let the view have a chance to paint just so you can watch the progress.
adsk.doEvents()# Construct the output filename.
filename =f'{folder}\\LensCapHolder_D{Diam_set}mm_Strap_{Width_set}mm.stl'# Save the file as STL.
exportMgr = adsk.fusion.ExportManager.cast(design.exportManager)
stlOptions = exportMgr.createSTLExportOptions(rootComp)
stlOptions.meshRefinement = adsk.fusion.MeshRefinementSettings.MeshRefinementMedium
stlOptions.filename = filename
exportMgr.execute(stlOptions)
Ejecuté el guión varias veces,
para anchos de correa de cámara de 35, 38, 40, 45 y 50 mm. Cada vez que
el diámetro mínimo era igual o más grande que el ancho de la correa.
Así es como obtuve los 200 archivos que publicamos en imprimable.com .
Conclusión
En
conclusión, utilizando la API Fusion 360, podemos realizar scripts
relativamente simples para automatizar la creación de diferentes
versiones de un archivo y exportar cada uno en formato STL, listo para
cortar y imprimir 3D.
Al
usar este tipo de scripts, puede ahorrar tiempo y esfuerzo generando un
lote de modelos similares con diferentes dimensiones, todo a la vez,
por supuesto, primero debe hacer que un modelo CAD paramétrico sea
compatible con este tipo de automatización.
Espero
que esta publicación haya sido útil para explicar cómo funciona el
guión que hice y cómo puede usarla para automatizar sus propios
proyectos de impresión 3D. El script y el archivo Fusion 360 están disponibles en mi github , y puede bifurcarlos y usarlos para crear sus propios proyectos.
Uri
y yo también trabajaremos en una versión del soporte de tapa de lente
que permitirá ajustar dos diámetros diferentes en lugar de uno, así que
estén atentos para eso, lo publicaremos, como de costumbre en la cuenta de Instagram de Twothingies .
Como
un recordatorio amistoso, ¡siempre verifique las dimensiones de las
tapas y la correa de su cámara para garantizar la compatibilidad antes
de imprimir 3D cualquiera de los archivos que compartimos!
La
ingeniería mecánica es un dominio donde la precisión, la eficiencia y
la innovación se cruzan. A medida que crece la complejidad del diseño y
el análisis, también lo hace la necesidad de herramientas que puedan
simplificar los flujos de trabajo, mejorar la productividad y disminuir
el agotamiento de la rutina diaria. Python, con su sintaxis fácil de
usar y bibliotecas extensas para análisis numéricos y cálculos
científicos, se convirtió en una opción muy popular en ciencia e
ingeniería. Permite a los ingenieros desarrollar algoritmos de cálculo,
automatizar tareas, analizar datos, ejecutar simulaciones complejas,
crear modelos 3D paramétricos y realizar optimizaciones de diseño, todas
con un esfuerzo reducido (en comparación con otros lenguajes de
programación). En este artículo, exploraremos algunas de las bibliotecas
de Python para ingenieros mecánicos, y analizaremos herramientas como
Cadquery, Streamlit y SplineCloud, con una referencia a algunos de los
proyectos de demostración discutidos en artículos anteriores.
¿Por qué Python en ingeniería mecánica?
El
surgimiento de Python en aplicaciones de ingeniería mecánica no es
accidente. Su combinación de simplicidad, flexibilidad y una rica
variedad de bibliotecas especializadas lo hace ideal para resolver
desafíos de ingeniería. A diferencia de los idiomas específicos del
dominio (Lisp, Fortran, C ++ y otros) que a menudo vienen con curvas de
aprendizaje empinadas, estructuras de alto costo y rígidas, Python
ofrece un enfoque más abierto y personalizable, lo que permite a los
ingenieros desarrollar soluciones más avanzadas, reutilizar las mejores
prácticas y aplicar sus talentos para ir más allá de los patrones de
ingeniería redefinidos.
Algunas razones detrás de la popularidad de Python para ingenieros mecánicos:
Facilidad de aprendizaje y uso: la
sintaxis legible de Python lo convierte en la mejor opción para los
ingenieros sin profundos fondos de programación, lo que les permite
centrarse en el problema, pero no en las peculiaridades del lenguaje y
su interacción con el hardware.
Bibliotecas extensas: bibliotecas
como SciPy, Numpy y Matplotlib proporcionan capacidades potentes para
la visualización numérica de cálculo y datos, y herramientas como
Jupyter Notebook convierten su configuración de Python en un reemplazo
perfecto para un software propietario como Maple, Mathematica y Matlab.
Capacidades de integración: la
popularidad de Python se refleja en las numerosas API que lo respaldan
en diversas aplicaciones, incluidas las soluciones CAD/CAE (Pynastran,
Pycatia, Pyautocad, Onpy, etc.)
Aplicaciones de Python para ingeniería mecánica
Las
aplicaciones de ingeniería mecánica de Python incluyen, entre otros,
modelado matemático, automatización del diseño, simulaciones múltiples
de física, análisis numérico, resultados experimentales posteriores al
procesamiento. Echemos un vistazo más de cerca a los proyectos de Python
para ingenieros mecánicos por el tipo de aplicación.
Modelado matemático
Python
En comparación con el software patentado para matemáticas informáticas
como Matlab, Maple o Mathematica, ofrece capacidades similares de forma
gratuita.
Con bibliotecas como Numpy o Scipy, Python maneja eficientemente la computación numérica y las operaciones matemáticas complejas.
pandas y polarssimplifican el flujo de trabajo con datos tabulares hasta un punto más allá de lo que otros sistemas pueden proporcionar.
Bibliotecas como Matplotlib, Seborn, Bokeh y Altair proporcionan una interfaz poderosa para la visualización de datos, lo que facilita la creación de gráficos y gráficos.
Sympyes
una alternativa a las cajas de herramientas simbólicas y permite a los
ingenieros realizar manipulaciones algebraicas y resolver ecuaciones
simbólicamente.
Jupyter Notebook (Jupyter Lab) proporciona
una GUI interactiva, perfecta para combinar código, visualizaciones y
documentación dentro de un solo documento que se puede compartir.
CAD programable
Freecades
un software CAD de código abierto que también proporciona API de
Python. Esta API permite la automatización de tareas de diseño, la
manipulación de la geometría y la creación de ensamblajes complejos
programáticamente.
Cadqueryes
una biblioteca basada en Python que construye modelos paramétricos 3D
CAD utilizando scripts simples y legibles. A diferencia del software CAD
tradicional, CadQuery permite a los ingenieros escribir lógica de
diseño reutilizable y generar variaciones de modelo programáticamente.
Al
combinar Numpy y SciPy para el cálculo numérico con cadquería para el
modelado 3D paramétrico, los ingenieros pueden crear geometrías
programáticamente basadas en lógica compleja, inalcanzable para el
enfoque de modelado paramétrico tradicional. El uso de Cadquery del
núcleo OpenCascade proporciona acceso directo a las propiedades de masa,
volumen e inercia de los modelos generados, lo que permite bucles de
optimización precisos. Estos son los principales beneficios de este
enfoque:
Reutilización: permite que los scripts de automatización de diseño se reutilicen o se adapten para diferentes escenarios.
Eficiencia: proporciona
la capacidad de crear un diseño iterativo integrando la creación
geométrica, el análisis y la optimización en un solo flujo de trabajo.
Precisión: utiliza el núcleo CAD para evaluar los cálculos de masa e inercia directamente de los modelos 3D.
Optimización de diseño multidisciplinario
OpenMDAOes
un marco poderoso desarrollado por la NASA que admite la optimización
multidisciplinaria del diseño, lo que permite a los ingenieros integrar
diversas herramientas de análisis y realizar la optimización en
diferentes parámetros de diseño.
OpenAerostructes
una biblioteca de Python de código abierto diseñada para la
optimización aeroestructural. Proporciona un poderoso conjunto de
herramientas para resolver problemas relacionados con la aerodinámica y
el análisis estructural, por lo que es muy valioso para los ingenieros
que trabajan en el diseño de aeronaves u otras aplicaciones
aeroespaciales.
Análisis numérico y simulación
FEniCSy Pynastranproporcionan
herramientas para crear y analizar modelos de análisis de elementos
finitos (FEA) y pueden ayudar con las tareas de solución relacionadas
con el análisis de estrés y deformación.
OpenFOAMse integra con Python a través de enlaces de terceros como Pyfoam o
scripts personalizados para controlar simulaciones y resultados
posteriores al procesamiento de la dinámica de fluidos computacional
(CFD).
Pyaeroofrece
funcionalidad especializada para el análisis y visualización
aerodinámica, lo que lo hace particularmente útil para diseñar y
optimizar formas de perfil aerodinámico.
Meshio y Pygalmeshse utilizan para la generación de malla para simulaciones.
Datos experimentales posteriores al procesamiento
de SplineCloud La herramienta de ajuste de curva en línea y su biblioteca de clientes para Python proporcionan
capacidades avanzadas de ajuste de curva interactiva, lo que permite la
reutilización de modelos construidos en código como funciones
regulares. Mediante el uso del enfoque de SplineCloud, se vuelve
significativamente más fácil y más rápido desarrollar algoritmos de
optimización basados en datos personalizados, desarrollar modelos
matemáticos para aplicaciones de ingeniería de sistemas y mantener los
datos subyacentes comprensibles, accesibles y reutilizables, ya sea un
datos de simulaciones, experimentos o datos sobre el rendimiento de los
componentes extraídos de las hojas de datos.
La digitalización de la trama es otro problema que se puede lograr con la herramienta Digitizer Plot , que permite convertir gráficos en tablas o funciones y reutilizar en el código de Python personalizado.
Visualización de diseño
Los
modelos de cadquería se pueden obtener previamente a través de
múltiples interfaces que mejoran la visualización e interactividad:
Pyvista proporciona
potentes capacidades de representación 3D, lo que lo hace ideal para la
visualización de geometría de malla y BEP (representación de Spline) en
tiempo real (representación de B-Spline).
Streamlitofrece
un enfoque flexible para convertir los scripts de Python en
aplicaciones web totalmente interactivas. Esto permite a los ingenieros
construir sistemas expertos completamente en Python, proporciona control
de parámetros de entrada fuera del cuadro y admite varias bibliotecas
de visualización en una sola interfaz. Esta flexibilidad acelera la
creación de prototipos y elimina la necesidad de marcos adicionales de
frontend o backend y conocimiento de otros lenguajes de programación.
Automatización de diseño y visualización de datos en proyectos de Python del mundo real
Diseño de engranajes con cadquery y racionalización
La creación de modelos de engranajes personalizables se vuelve eficiente debido a las herramientas correctas utilizadas:
Cadqueryes
una biblioteca basada en Python que construye modelos paramétricos 3D
CAD utilizando scripts simples y legibles. A diferencia del software CAD
tradicional, CadQuery permite a los ingenieros escribir lógica de
diseño reutilizable y generar variaciones de modelo programáticamente.
Mi artículo anterior se dedicó al uso de esta biblioteca para definir
los parámetros del engranaje como el módulo, el número de dientes y el
ángulo de presión en un código.
Streamlitconvierte
el script de diseño en una aplicación web interactiva, donde los
usuarios pueden ajustar los parámetros y visualizar los resultados en
tiempo real. También permite al usuario descargar el modelo 3D final
para su uso posterior (para el ensamblaje de software CAD, impresión 3D,
etc.)
El
enfoque de la integración de cadquería y optimista para construir
sistemas expertos no solo acelera el proceso de diseño iterativo
(mediante la reutilización de principios de diseño codificados en
modelos generativos) sino que también mejora la colaboración, ya que los
ingenieros pueden interactuar con el modelo directamente desde un
navegador. Para obtener una mejor comprensión del modelado paramétrico
con cadquery, consulte mi artículo anterior llamado: Creación de modelos de engranajes paramétricos con Strewlit y Cadquery ,
donde describo cómo crear perfiles/dimensiones de engranajes
personalizables controlados por las entradas de los usuarios a través de
una interfaz web
Análisis de transferencia de calor con SplineCloud y Aprisly
El modelado numérico para sistemas térmicos es otra aplicación práctica de Python:
Usando
la herramienta de ajuste de la curva de SplineCloud y su API para
resolver ecuaciones de calor, puede simular la conducción de calor no
estable a través de placas de múltiples capas. Las dimensiones de las
placas, el esquema de aplicación de calor, la temperatura y el tiempo
también están sujetos a la entrada del usuario a través de la interfaz
web a simpatículo. Esta implementación se puede encontrar en mi artículo
anterior: conductividad de calor no estable a través de placas de dos capas ,
que muestra cómo Python puede manejar problemas complejos y
transitorios de transferencia de calor transitorio de manera bastante
rápida y fácil.
Pensamientos finales sobre la ingeniería mecánica de Python
En
la ingeniería mecánica, Python se ha convertido en un "cuchillo suizo",
que ofrece una flexibilidad perfecta, una poderosa pila científica e
integración con herramientas y servicios de software de terceros. Utilizando
las herramientas de ingeniería mecánica de Python, los ingenieros
pueden automatizar procesos de diseño, optimizar simulaciones y mejorar
la productividad con soluciones de código abierto. Bibliotecas
como CadQuery y Strewlit Unding la brecha entre la programación y la
interacción del usuario, lo que hace que el modelado paramétrico
complejo sea accesible y dinámico. SplineCloud proporciona interfaces
interactivas a los procesos comunes en la preparación de datos, lo que
permite lograr la separación de datos del código y mejorar la
legibilidad y el rendimiento de cualquier modelo basado en datos. A
medida que Python continúa evolucionando, sus aplicaciones en ingeniería
mecánica solo crecerán, impulsando la innovación y transformando la
forma en que los ingenieros diseñan, analizan y optimizarán las
soluciones. Cuanto más pronto sea su maestro Python y su ecosistema de
herramientas y servicios, más se moverá en la automatización de
operaciones de rutina y encontrando soluciones avanzadas para problemas
de diseño e ingeniería no triviales.
Para la versión de Solid Edge 9 SEV9, existía un complemento para el diseño mecánico con el cual se podían diseñar varios de los elementos mecánicos mas utilizados para la transmisión de movimiento.
En este link pueden encontrar el folleto en ingles de este gran complemento: