banner

Blog

Jun 07, 2024

CadQuery alcanza la mayoría de edad

Ahora sabemos lo que algunos de ustedes dirán: "Oh, hombre, otra herramienta CAD programática no, ¿qué tiene de malo OpenSCAD?" — y puede que tengas razón, pero quizá esperes un poco y le eches un vistazo a este, ¡porque creemos que ahora es bastante impresionante! OpenSCAD es genial, lo usamos todo el tiempo en estas partes, pero es un poco extraño en algunos lugares. Luego viene CadQuery y lo saca del agua en cuanto a facilidad de uso y funcionalidad. Ahora, hemos visto algunas menciones de CadQuery a lo largo de los años, y finalmente se ha convertido en un conjunto de herramientas completo por derecho propio, completo con una interfaz gráfica/editor, CQ-editor. ¡No se ven dependencias extrañas en FreeCAD! Dicho esto, instalar FreeCAD tampoco es malo.

El objetivo es que el script CadQuery que produce este objeto sea lo más parecido posible a la frase en inglés que usaría un humano.

Para aquellos que no lo han visto antes, CadQuery es una biblioteca de Python que les permite crear modelos 3D y exportarlos como STL y STEP, por lo que crear modelos para su proyecto KiCAD también es una opción. Sin embargo, a diferencia de OpenSCAD, CadQuery se centra mucho más en la intención del diseño. La idea es hacer que el script de Python se parezca más a una descripción humana de la forma de un objeto, en lugar de un conjunto de algoritmos que construyen un objeto a partir de operaciones booleanas directas, todas relativas al sistema de coordenadas global. CadQuery utiliza un modelo de asociación relativa, donde las cosas se definen en relación con otras. De los documentos:

CadQuery es diferente: puede ubicar características en relación con otras de manera relativa, preservando la intención del diseño tal como lo haría un humano al crear un dibujo o construir un objeto.

alto = 60,0 ancho = 80,0 espesor = 10,0 diámetro = 22,0 relleno = 12,0

# crear el resultado base = cq.Workplane("XY").box(alto, ancho, espesor)\.faces(">Z").workplane().hole(diameter)\.faces(">Z"). plano de trabajo() \.rect(alto - relleno,ancho - relleno,forConstruction=True)\.vertices()\.cboreHole(2.4, 4.4, 2.1)\.edges("|Z").filet(2.0)

# Renderiza solidshow_object(resultado)

# Exportcq.exporters.export(resultado,'resultado.stl')cq.exporters.export(resultado,'resultado.paso')

No estamos diciendo que OpenSCAD sea malo, ni mucho menos, simplemente es diferente, y para algunas personas, CadQuery será mucho más fácil de hacer lo que necesitan. ¿Necesita una carcasa totalmente parametrizada para imprimir en 3D? ¿Qué tal uno hecho en solo 47 líneas de código Python? A medida que crece la complejidad del objeto, también crece el beneficio del enfoque CadQuery. Hay bastantes conceptos que aprender con la herramienta, ya que es bastante poderosa y ofrece muchas formas de resolver problemas, pero creemos que el esfuerzo valdrá la pena. Si no te gusta el editor QC, no hay problema, ya que CadQuery se puede usar de forma independiente con cualquier editor que desees, ¡incluso funciona con el cuaderno Jupyter! Instalarlo tampoco debería ser un problema, con compilaciones predefinidas disponibles, pero dicho esto, es una instalación enorme, ¡así que esperamos que tengas algo de espacio libre en el disco!

Si eres un pensador más visual y toda esta codificación te deja frío, entonces quizás quieras consultar esta guía de modelado paramétrico en FreeCAD, una guía similar para fusion360, o si prefieres seguir con OpenSCAD, gracias. -Mucho, entonces ¿por qué no repasar esas habilidades de OpenSCAD?

¡Gracias [JohnU] por el consejo!

COMPARTIR