Libreria Python open source per formati di file CAD 3D
Libreria CAD Python gratuita per creare modelli CAD 3D parametrici. Crea formati CAD di alta qualità come STEP, AMF e 3MF oltre al tradizionale STL
La libreria Python open source CadQuery è una libreria Python di facile utilizzo per la creazione di modelli CAD 3D parametrici. La libreria è molto potente e scrivendo brevi script può produrre modelli CAD di alta qualità all'interno di applicazioni Python. È anche possibile personalizzare lo script e realizzare molti oggetti diversi utilizzando un unico script. Gli script CadQuery sono molto veloci e possono creare STL, STEP, AMF e 3MF più velocemente di altre librerie disponibili.
La libreria offre capacità di modellazione avanzate come raccordi, estrusioni curvilinee, curve parametriche e loft. È una libreria basata su script in grado di creare un modello parametrico che può essere facilmente personalizzato dagli utenti finali. Crea modelli 3D con script che sono il più vicino possibile a come descriveresti l'oggetto a un essere umano. CadQuery è concesso in licenza secondo i termini della Apache Public License, versione 2.0.
Quella libreria CadQuery è deliberatamente progettata per essere priva di GUI, in modo che possa essere utilizzata all'interno di applicazioni ingegneristiche e scientifiche per la creazione programmatica di modelli 3D. Se è necessario utilizzare una GUI, è possibile prendere in considerazione l'editor CQ GUI basato su Qt o l'estensione Jupyter jupyter-cadquery. È anche possibile utilizzare la libreria insieme ad altre librerie Python.
Introduzione a CadQuery
Il modo più semplice per installare la versione stabile di CadQuery è usare pip. Si prega di utilizzare il seguente comando per un'installazione senza problemi.
Installa CadQuery tramite pip
pip install cadquery
Puoi scaricare la libreria condivisa compilata dal repository Github.
Lavora con Polygon tramite Python 3D Library
Un poligono è una forma bidimensionale con i lati diritti. La modellazione poligonale è un approccio per modellare oggetti rappresentando o approssimando le loro superfici utilizzando mesh poligonali. La libreria Python open source CadQuery consente agli sviluppatori di software di creare poligoni per ogni punto dello stack con solo un paio di righe di codice Python. È molto vantaggioso nelle stampanti 3D il cui firmware non corregge le dimensioni dei fori piccoli.
Crea piani di lavoro su facce tramite la libreria 3D di Python
La libreria Python open source CadQuery ha fornito un supporto completo per la creazione di piani di lavoro su facce all'interno di applicazioni Python. l'uso dei piani di lavoro in questo modo è una caratteristica chiave di CadQuery. Libera gli utenti dalla ricerca della posizione di vari elementi nelle variabili e consente al modello di eliminare le dimensioni ridondanti. Gli utenti possono selezionare le facce del solido risultante chiamando il metodo Workplane.faces(). Ricordare che per impostazione predefinita l'origine di un nuovo piano di lavoro viene calcolata creando un piano dalla faccia selezionata e proiettando l'origine precedente su quel piano.
Creazione di piani di lavoro su facce tramite 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
Lavorare con i mattoncini LEGO 3D tramite Python
La libreria CadQuery ha fornito un supporto completo per la creazione di animazioni 3D che rappresentano i mattoncini Lego in diverse dimensioni utilizzando i comandi Python. È anche possibile ricreare i mattoncini unendo più cubi e cilindri insieme. Possiamo creare un oggetto composto per unire queste forme 3D insieme in un singolo oggetto (mattone). L'esempio seguente mostra come generare mattoncini Lego(TM) rettangolari regolari di qualsiasi dimensione. È complicato solo a causa della logica relativa alla parte inferiore del mattone.
Crea mattoncini LEGO 3D tramite 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)