banner

Blog

Jun 07, 2024

CadQuery diventa maggiorenne

Ora, sappiamo cosa diranno alcuni di voi: "Oh cavolo, non un altro strumento CAD programmatico, cosa c'è che non va in OpenSCAD?" - e potresti avere ragione, ma forse aspetta un attimo e dai un'occhiata a questo, perché pensiamo che ora sia davvero fantastico! OpenSCAD è fantastico, lo usiamo sempre da queste parti, ma è un po' strano in alcuni punti. Poi arriva CadQuery e lo fa saltare fuori dall'acqua in termini di facilità d'uso e funzionalità. Ora, abbiamo visto alcuni riferimenti a CadQuery nel corso degli anni, e alla fine è diventato un set di strumenti completo a sé stante, completo di un frontend/editor grafico, CQ-editor. Nessuna strana dipendenza da FreeCAD visibile! Detto questo, anche installare FreeCAD non è una brutta cosa.

L'obiettivo è che lo script CadQuery che produce questo oggetto sia il più vicino possibile alla frase inglese che un essere umano utilizzerebbe.

Per coloro che non l'hanno mai visto prima, CadQuery è una libreria Python che ti consente di creare modelli 3D ed esportarli come STL e STEP, quindi anche creare modelli per il tuo progetto KiCAD è un'opzione. A differenza di OpenSCAD, tuttavia, CadQuery è molto più focalizzato sull'intento progettuale. L'idea è di far sì che lo script Python assomigli più a una descrizione umana della forma di un oggetto, invece che a un gruppo di algoritmi che costruiscono un oggetto da semplici operazioni booleane, tutte relative al sistema di coordinate globale. CadQuery utilizza un modello di associazione relativa, in cui le cose sono definite rispetto ad altre cose. Dai documenti:

CadQuery è diverso: puoi individuare le funzionalità rispetto ad altre in modo relativo, preservando l'intento progettuale proprio come farebbe un essere umano quando crea un disegno o costruisce un oggetto.

altezza = 60,0 larghezza = 80,0 spessore = 10,0 diametro = 22,0 imbottitura = 12,0

# crea il risultato base = cq.Workplane("XY").box(altezza, larghezza, spessore)\.faces(">Z").workplane().hole(diametro)\.faces(">Z"). workplane() \.rect(altezza - imbottitura,larghezza - imbottitura,forConstruction=True)\.vertices()\.cboreHole(2.4, 4.4, 2.1)\.edges("|Z").fillet(2.0)

# Renderizza solidshow_object(risultato)

# Exportcq.exporters.export(risultato,'risultato.stl')cq.exporters.export(risultato,'risultato.step')

Non stiamo dicendo che OpenSCAD sia pessimo, tutt'altro, è solo diverso e per alcune persone CadQuery sarà molto più semplice per ottenere ciò di cui hai bisogno. Hai bisogno di un involucro completamente parametrizzato per la stampa 3D? Che ne dici di uno fatto in sole 47 righe di codice Python? Man mano che cresce la complessità dell'oggetto, aumentano anche i vantaggi dell'approccio CadQuery. Ci sono alcuni concetti da apprendere con lo strumento, poiché è piuttosto potente e offre molti modi per risolvere i problemi, ma riteniamo che ne varrà la pena. Se non ti piace l'editor QC, non c'è problema, poiché CadQuery può essere utilizzato in modo autonomo con qualunque editor tu voglia, funziona anche con il notebook Jupyter! Anche installarlo non dovrebbe essere un problema, con le build predefinite disponibili, ma detto questo, è un'installazione enorme, quindi speriamo che tu abbia un giga di spazio libero su disco!

Se sei un pensatore più visivo e tutta questa codifica ti lascia indifferente, allora potresti voler dare un'occhiata a questa guida alla modellazione parametrica in FreeCAD, una guida simile per fusion360, o se sei dannatamente bravo a restare con OpenSCAD, grazie -moltissimo, allora perché non rispolverare le competenze di OpenSCAD.

Grazie [JohnU] per il suggerimento!

CONDIVIDERE