Biblioteca Python de código abierto para formatos de archivo CAD 3D
Biblioteca gratuita de Python CAD para crear modelos CAD 3D paramétricos. Crea formatos CAD de alta calidad como STEP, AMF y 3MF además de STL tradicional
La biblioteca Python de código abierto CadQuery es una biblioteca Python fácil de usar para crear modelos CAD 3D paramétricos. La biblioteca es muy poderosa y al escribir scripts cortos puede producir modelos CAD de alta calidad dentro de las aplicaciones de Python. También es posible personalizar el script y hacer muchos objetos diferentes usando un solo script. Los scripts de CadQuery son muy rápidos y pueden generar STL, STEP, AMF y 3MF más rápido que otras bibliotecas disponibles.
La biblioteca ofrece capacidades de modelado avanzadas, como empalmes, extrusiones curvilíneas, curvas paramétricas y recubrimientos. Es una biblioteca basada en secuencias de comandos que puede crear un modelo paramétrico que los usuarios finales pueden personalizar fácilmente. Crea modelos 3D con guiones que son lo más parecidos posible a cómo describiría el objeto a un ser humano. CadQuery tiene licencia según los términos de la Licencia pública de Apache, versión 2.0.
Esa biblioteca CadQuery está diseñada deliberadamente para que no tenga GUI, de modo que pueda usarse dentro de aplicaciones científicas y de ingeniería para crear modelos 3D mediante programación. Si necesita usar una GUI, puede considerar el editor CQ de GUI basado en Qt o la extensión Jupyter jupyter-cadquery. También es posible utilizar la biblioteca junto con otras bibliotecas de Python.
Primeros pasos con CadQuery
La forma más fácil de instalar la versión estable de CadQuery es usando pip. Utilice el siguiente comando para una instalación sin problemas.
Instalar CadQuery a través de pip
pip install cadquery
Puede descargar la biblioteca compartida compilada desde el repositorio Github.
Trabaje con Polygon a través de la biblioteca 3D de Python
Un polígono es una forma bidimensional con lados rectos. El modelado poligonal es un enfoque para modelar objetos al representar o aproximar sus superficies mediante mallas poligonales. La biblioteca Python de código abierto CadQuery permite a los desarrolladores de software crear polígonos para cada punto de pila con solo un par de líneas de código Python. Es muy beneficioso en impresoras 3d cuyo firmware no corrige agujeros pequeños.
Cree planos de trabajo en caras a través de la biblioteca 3D de Python
La biblioteca de código abierto de Python, CadQuery, ha brindado soporte completo para crear planos de trabajo en caras dentro de las aplicaciones de Python. el uso de planos de trabajo de esta manera es una característica clave de CadQuery. Libera a los usuarios de buscar la posición de varias características en las variables y permite que el modelo elimine las dimensiones redundantes. Los usuarios pueden seleccionar las caras del sólido resultante llamando al método Workplane.faces (). Recuerde que, de forma predeterminada, el origen de un nuevo plano de trabajo se calcula haciendo un plano a partir de la cara seleccionada y proyectando el origen anterior en ese plano.
Creación de planos de trabajo en caras a través de Python
result = cq.Workplane("front").box(2, 3, 0.5) # make a basic prism
result = result.faces(">Z").workplane().hole(0.5) # find the top-most face and make a hole
Trabajando con ladrillos LEGO 3D a través de Python
La biblioteca CadQuery ha brindado soporte completo para crear animaciones 3D que representan los ladrillos Lego en diferentes tamaños usando comandos de Python. También es posible recrear ladrillos uniendo varios cubos y cilindros. Podemos crear un objeto compuesto para unir estas formas 3D en un solo objeto (ladrillo). El siguiente ejemplo demuestra cómo generar ladrillos Lego(TM) rectangulares regulares de cualquier tamaño. Solo es complicado debido a la lógica con respecto a la parte inferior del ladrillo.
Crea ladrillos LEGO en 3D a través de Python
#####
# Inputs
######
lbumps = 6 # number of bumps long
wbumps = 2 # number of bumps wide
thin = True # True for thin, False for thick
#
# Lego Brick Constants-- these make a lego brick a lego :)
#
pitch = 8.0
clearance = 0.1
bumpDiam = 4.8
bumpHeight = 1.8
if thin:
height = 3.2
else:
height = 9.6
t = (pitch - (2 * clearance) - bumpDiam) / 2.0
postDiam = pitch - t # works out to 6.5
total_length = lbumps*pitch - 2.0*clearance
total_width = wbumps*pitch - 2.0*clearance
# make the base
s = cq.Workplane("XY").box(total_length, total_width, height)
# shell inwards not outwards
s = s.faces("Z").workplane(). \
rarray(pitch, pitch, lbumps, wbumps, True).circle(bumpDiam / 2.0) \
.extrude(bumpHeight)
# add posts on the bottom. posts are different diameter depending on geometry
# solid studs for 1 bump, tubes for multiple, none for 1x1
tmp = s.faces(" 1 and wbumps > 1:
tmp = tmp.rarray(pitch, pitch, lbumps - 1, wbumps - 1, center=True). \
circle(postDiam / 2.0).circle(bumpDiam / 2.0).extrude(height - t)
elif lbumps > 1:
tmp = tmp.rarray(pitch, pitch, lbumps - 1, 1, center=True). \
circle(t).extrude(height - t)
elif wbumps > 1:
tmp = tmp.rarray(pitch, pitch, 1, wbumps - 1, center=True). \
circle(t).extrude(height - t)
else:
tmp = s
# Render the solid
build_object(tmp)