ciao a tutti,
posto un quesito che spero gli utilizzatori di gh più esperti di me sappiano risolvermi senza impazzire…
dati:
_ho una serie di strati con spessori diversi (tipo 0.2mm oppure 0.6mm) che hanno sagome irregolari in vista top ma sono applicati via via uno sopra l’altro all’interno di un riquadro che li delimita;
_alla fine della loro applicazione l’esigenza è quella di individuare nella sola vista top le arre all’interno del riquadro che oltrepassino un valore dato (tipo 0.9mm meglio se modificabile tramite slide) come somma degli spessori applicati degli strati.
allego un file semplificato di esempio dove ho messo le sagome divise per layer a seconda del loro spessore, sempre nello stesso file lascio un layer 3D in cui ci sono le semplici estrusioni in z delle sagome ma che non si vengono a sovrapporre come nella realtà accadrebbe.
Giusto per esasperare il concetto ho scalato di molto le estrusioni così diventa più chiaro la disposizione delle medesime.
Segnalo solo che ci sono estrusioni che possono essere disposte su diversi piani.
giusto Leopoldo,
si può tranquillamente scalare gli spessori anche di un fattore 10, il discorso non cambia…
l’importante è tenere in considerazione il fatto che se ci sono delle arre in pianta dove due sagome si intersecano sovrapponendosi allora anche il loro spessore in quell’area DEVE sommarsi
L’idea sarebbe quella di estrudere ogni singola forma e, tramite una intersezione booleana, ottenere dei solidi di cui misurare l’altezza.
Ma, vedi immagine postata, la cosa non ha senso in quanto la maggiore altezza è definita dal solido che sta più in alto.
Qualcosa mi sfugge.
Qui abbiamo il grande Leopoldo, quindi sei a cavallo.
Giusto per… espongo un approccio (non una soluzione definitiva) che funziona su altro concetto.
Guarda quante volte un punto è contenuto in più curve e somma le volte. In base alla sommatoria individua un colore per il punto campionato. increment-thick-GM.gh (14,7 KB)
Più che a cavallo in questo caso mi sembra di essere più a dorso d’asino.
Questa definizione confronta ogni solido con tutti gli altri e calcola lo spessore complessivo delle intersezioni ottenute, comprendendo, ovviamente, anche il solido di partenza.
Il solido di riferimento è quello colorato in rosso.
Questo è il concetto di base. spessori.gh (103,2 KB)
L’ideale sarebbe quella di ripetere l’operazione con ogni superficie derivata dalle intersezioni delle curve.
E qui casca l’asino, appunto.
Come rilevare tali superfici?
C’è un comando tipo _CurveBoolean in grado di rilevare tutte le singole superfici in modo automatico?
Certo che si può fare anche “a mano”.
esatto Leopoldo,
avevo postato la stessa richiesta qualche anno fa e non si era trovata la soluzione…
tieni conto che il file esempio è molto semplificato e nella realtà le sagome sono molto più irregolari e spesso le loro intersezioni sono poco immediate…
gli strati inoltre sono molto più numerosi e quindi come dici tu ad oggi se si esegue il processo a “mano” diventa molto lento e soprattutto dannoso per gli occhi (credimi )
avere una definizione che in gh automatizzi quello che come dici tu può si essere fatto manualmente sarebbe davvero bello…
Bello !
Ho provato a ‘spegnere’ qualche layer, ma sembra che al Pipeline non interessi … va be’.
In compenso con uno Slider sul numero punti diventa piu’ maneggevole anche su macchine scarse.
Nella definizione overlap si parte da curve chiuse mentre nell’altra si parte dai solidi già presenti.
Ho impostato la tolleranza a 0.001.
Una tolleranza più piccola dava un problema sulla definizione overlap. overlap.gh (25,4 KB) spessori c.gh (106,0 KB)
Ciao Leopoldo, sembra essere perfetta almeno dall’immagine, domani appena posso la proverò
Le due immagini si riferiscono alla definizione overlap credo, se si l’attribuzione dei loro spessori viene data nella definizione tramite layer di appartenenza o come?
Infine se possibile, dal risultato dell’immagine finale sarebbe possibile isolare già le aree che hanno uno spessore al di sopra di un determinato valore?
Ho riunito le due definizioni in modo da poter utilizzare sia le curve che i solidi.
Curve: il nome dei piani (deve essere un numero) determina il peso delle curve in esso contenute.
Ovviamente vanno esclusi i piani non interessati.
Il valore dello scroller serve a determinare quali aree, contrassegnate con una X, superano il peso/altezza richiesti.
Allego anche il 3dm relativo. overlap b.gh (229,2 KB) sovrapposizione.3dm (56,3 KB)
ho provato a caricare la definizione e provarla…
non riesco a capire perchè non riesca a caricare (correttaemnte) il componente di Wombat…
e difatti come vedi nell’immagine mi ritrovo un componente in arancione che credo sia riferito a questo problema…
a parte questo dato non ho ben individuato lo slide per indicare il valore massimo perchè quello che è nominato “minimo” con valore preimpostato da 713.5 nel momento in cui lo vado a modificare mi scombussola tutto il risultato…
Il componente Wombat può essere tranquillamente eliminato in quanto serve solo a colorare i vari solidi.
Lo scroller “minimo” serve a determinare il valore che divide il “sopra” dal “sotto”.
Ho assegnato due colori diversi alle diverse situazioni.
Muovendo lo scroller ovviamente il risultato cambia. overlap c.gh (234,1 KB)