Una comparativa tra vari CAD 3D OpenSource

pironman

Utente Junior
Professione: Progettista
Software: Creo Direct Modeling
Regione: veneto
Buongiorno a tutti.
Negli ultimi mesi ho testato le varie alternative open-source per quanto riguarda la modellazione 3D, sia per avere un cad utilizzabile a casa per progetti personali, sia per verificare se esistono alternative open-source da utilizzare in ambito professionale.
Ho deciso di condividere qui quanto penso sia per dare dei "consigli" a chi voglia utilizzare uno di questi software, sia (e sopratutto) per avere dei pareri da chi li ha usati e magari ha argomentazioni diverse dalle mie.
Ricapitolando quanto serve a me:

- Verifica geometrica del componente in termini di masse e inerzie;
- Verifica di eventuali interferenze tra i componenti;
- Visualizzazione del componente prima di produrlo, per avere un idea più chiara di come sarà e trovare così in anteprima soluzioni a eventuali problemi;
- Creazione di disegni tecnici 2D per poter realizzare il componente progettato;
- Verifica FEM

Faccio una breve rassegna dei pro/contro da me trovati:

BRL-CAD
Pro:
- Raytracing accurato e velocissimo;
- Materiali e geometrie realistiche, quindi interferenze, masse e inerzie accurate;
- Estrema velocità sia a caricare che a maneggiare assiemi di grandi dimensioni;
- Importazione - esportazione con vari formati standard (in particolare IGES e DXF);
- Accetta linguaggi di scripting, il che significa che qualunque parte o assieme, se scritto sotto forma di scripting, può essere parametrizzato in maniera molto efficiente;
Contro:
- L'interfaccia a riga di comando richiede un certo periodo di training;
- Visualizzazione solo wireframe, necessità di raytracing ogni volta che si voglia avere una visualizzazione realistica;
- Mancanza della funzione raccordi-smussi, devono essere creati con comandi booleani;

OpenSCAD
Pro:
- Linguaggio di scripting facile da imparare e molto potente;
Contro:
- Salva il file solo con formati "triangolati", niente NURBS o CSG: pesanti e poco accurati;

SolveSpace
Pro:
- Interfaccia estremamente intuitiva;
- Ottima gestione degli accoppiamenti negli assiemi;
- Possibilità di esportazione di viste e sezioni 2D (utilissimo per la messa in tavola);
Contro:
- Prestazioni davvero scadenti con assiemi nemmeno troppo grandi;
- Mancanza di pattern per inserimento ripetuto di componenti (per esempio viti);

FreeCAD
Pro:
- Mira ad essere il più simile alle proposte commerciali;
- Facile ed intuitivo da usare;
Contro:
- Ancora in fase alpha;
- Mancanza di una soluzione valida per gli assiemi (ma non ho provato l'ultimo aggiornamento);
- Secondo me, troppa dispersione (spiego meglio più avanti);

Fatto questo breve riassunto, entro un pò più nel dettaglio:

BRL-CAD: se la geometria viene creata utilizzando i suoi comandi di modellazione, ogni componente va posizionato imponendo delle coordinate. Non permette quindi la creazione di vincoli tra i componenti stessi, e nel caso in cui vado a modificarne uno, per esempio la lunghezza di una biella, poi dovrò manualmente spostare tutti i componenti collegati. Questo però è vero anche per il software che utilizzo a lavoro (Creo Direct), con la differenza che su BRL-CAD non necessariamente devo creare la geometria utilizzando il suo editor, posso creare un file di scripting! A quel punto, posso fare qualunque cosa voglio, anche assegnare la dimensione di alcuni componenti in funzione di altri, assegnare ogni tipo di vincolo, raggruppare le variabili... una volta imparato a utilizzarlo, le possibilità sono infinite.
Di contro questo richiede un maggiore lavoro iniziale, sia per imparare il linguaggio di scripting, sia per applicarlo ogni volta. Inoltre, se possiedo già un file creato usando mged (l'editor geometrico di BRL-CAD), non lo posso trasformare automaticamente in scripting: qualunque modifica su tale file va eseguita manualmente.
Devo dire comunque che, una volta imparato a utilizzarlo, la creazione di una geometria è molto più veloce di quanto mi aspettavo all'inizio. Inoltre, trovo davvero intuitivo il motore CSG (con logica booleana), perchè per modellare il componente devo ragionare allo stesso modo che se avessi il blocco pieno e lo dovessi lavorare alla macchina utensile.

OpenSCAD: Appena installato, mi è piaciuto subito. C'è da dire che a me la programmazione piace, nel tempo libero programmo con python, e questo cad in sostanza è un linguaggio di programmazione! Stessi vantaggi della creazione del file di script con BRL-CAD, ma implementazione più semplice.
Di contro, ho scoperto presto che le possibilità sono abbastanza limitate, inoltre i formati di file con cui salva non hanno nessuna applicazione ingegneristica pratica: si può solo stampare in 3D, ma per me l'utilità è quasi nulla, dal momento che tutti i componenti che disegno si ricavano per macchina utensile o carpenteria. Per questo motivo ho smesso presto di usarlo.

SolveSpace: L'interfaccia è la cosa più intuitiva che abbia mai visto, non serve leggere nessun manuale ma si può iniziare subito a modellare. Ogni componente viene salvato su file separati, che possono essere ricaricati per andare a formare l'assieme. Alla modifica di uno dei componenti, automaticamente l'assieme si aggiorna: lavora allo stesso modo dei cad parametrici professionali. Inoltre ha l'utilissima possibilità di salvare viste 2D in formato DXF, che possono così essere caricate in un qualunque cad 2D per realizzarne i disegni costruttivi.
Putroppo l'entusiasmo iniziale si è spento presto quando mi sono accorto che basta veramente poco per rallentarlo a livelli tali da renderlo quasi inutilizzabile: non ha multithreading, e un semplice assieme da 400 kb su un asus rog è sufficiente a bloccarlo, peccato! Inoltre, vedendo la sua pagina GitHub, mi ha dato l'impressione che lo sviluppatore sia molto poco attivo su questo programma, il che non mi fa ben pensare al suo futuro.

FreeCAD: Appena aperto, l'impressione è quella di utilizzare un sistema cad professionale. L'inizio è davvero promettente, ci sono praticamente tutte le funzioni presenti in un qualunque cad professionale e anche la facilità di utilizzo è esemplare (non al livello di solvespace, che ritengo il migliore da questo punto di vista, ma ci va molto vicino). Putroppo dopo poco sopraggiunge l'amarezza. Prima di tutto, possono essere create solo parti singole, e non assiemi: anche una penna Bic è un assieme composto da 6 parti! un cad che non permette di creare assiemi è, a mio modo di vedere, inutile. So che esiste un modulo assiemi ancora in via di sviluppo, ho visto dei video e sembra funzionare bene, ma il fatto che non sia ancora rilasciato ufficialmente mi fa pensare che abbia dei problemi. Comunque, non l'ho provato per cui non lo posso valutare.
Mi è capitato più volte che l'interfaccia cambiasse mentre lo utilizzavo, al punto da renderlo inutilizzabile, visto che sparivano finestre essenziali per la creazione di schizzi o componenti. Niente di irrisolvibile, ripristinando il file di configurazione tornava come prima, ma comunque fastidioso.
E' l'unico della comparativa ad avere un modulo per la messa in tavola dei componenti, anche se l'ho trovato davvero limitante, è lontano anni luce dall'essere un modulo utilizzabile a livello professionale.
Di fatto si tratta di un cad promettente, ma ancora decisamente poco maturo, per via dell'instabilità e di funzioni che ritengo essenziali non ancora implementate.
Trovo inoltre assurdo che, dopo 19 anni di sviluppo, sia ancora in fase alpha: forse sarebbe stato meglio sviluppare completamente un modulo prima di passare al successivo, invece ci si ritrova con un software che fa tantissime cose, ma le fa tutte male (o in maniera non ottimale).


Ho volutamente lasciato fuori da questa comparativa SALOME. Si tratta infatti di un software CAE, più che CAD, pensato per le analisi FEM e devo dire che fa egregiamente il suo lavoro. Lo utilizzo anche professionalmente in azienda, dove ha sostituito al 100% il Creo Simulate che utilizzavo precedentemente. Di fatto ad essere potente è il solutore Code_Aster, ma l'interfaccia di Salome si comporta egregiamente.
Se qualcuno cerca un software FEM affidabile, quindi, non posso che consigliare questo. Richiede un po' più di tempo per essere imparato, rispetto a calculix (implementato come modulo di freecad), ma ne vale assolutamente la pena viste le enormi possibilità che offre.

Per quanto riguarda la messa in tavola, non esistendo ad oggi un cad 3D con integrato un modulo 2D decente, utilizzo libreCAD. Molto simile ad autocad, mancano alcune funzioni presenti in quest'ultimo, ma quello che c'è è più che sufficiente e funziona egregiamente bene. Questo cad mi ha dato qualche problema di stabilità in passato, ma l'ultima revisione è davvero "a punto".


RICAPITOLANDO: a mio parere, il cad può maturo, stabile e utilizzabile è BRL-CAD. Probabilmente perché ha avuto 20 anni di sviluppo all'interno dei laboratori dell'esercito statunitense, prima di essere rilasciato come software open source (ad oggi, conta 36 anni di sviluppo attivo!). Tutti gli altri, anche se più intuitivi o facili da usare, per un motivo o per l'altro li ho trovati limitanti.

Il mio sogno, forse irrealizzabile, è questo: BRL-CAD, così com'è oggi, ma con aggiunta la possibilità di utilizzare l'interfaccia di SolveSpace, e l'implementazione del 2D LibreCAD con collegamento diretto al 3D.