Nuovo problemino per rhinoceristi

ciao a tutti,
ho un quesito da sottoporre al forum e a tutti quelli che vogliono partecipare:
immaginiamo di avere delle aree costituite da superfici piane giacenti sullo stesso livello Z e quindi anche sovrapposte; queste superfici planari hanno profili variegati e spesso irregolari (curve e linee) e si sovrappongono qua e là tipo macchie da leopardo, alcune sono inscritte totalmente in un altra, altre si intersecano in più aree con quelle presenti…
Ora arriva il dato importante: immaginiamo che ad ogni superficie si possa attribuire un valore (peso per metro quadrato) diverso da superfice a superfice e che voglia estrapolare tutte le aree che in tutto l’insieme delle superfici date superino un prestabilito valore di peso per metro quadrato dato dalla somma delle singole superfici che via via si sovrappongono nelle varie aree della composizione finale.
Come procedereste tenendo conto che magari si tratterebbe anche di 50 o più superfici differenti?

Grasshopperizzati… mi pare una di quelle robe che la cavalletta dovrebbe masticare allegramente.

ciao Lucio, hai ragione
mi servirebbe davvero saper adoperare grasshoper per certe funzioni da automatizzare ma non ho ancora trovato il tempo e il modo di farlo…
come script è invece al limite dell’impossibile vero?

Non è che con lo script sia impossibile… diciamo che, da come hai descritto il lavoro da fare, grasshopper ha molte funzioni pronte che possono tornare utili e, sopratutto, ha un’interattività che allo script manca (effetti grafici, colori, slider per impostare i parametri…).
Con lo script dovresti prendere superficie per superficie, identificare le intersezioni con le altre, creare una lista di intersezioni comuni, moltiplicare il numero di intersezioni per il coefficiente “peso” e restituire i vari valori…
Al limite si potrebbe anche fare l’intersezione di tutto e poi fare un seldup per vedere quante aree sono duplicate e sovrapposte… da quello si calcolano i pesi…

allego un file puramente di prova per far capire cosa intendo dire,
per il momento ho attribuito ad ogni superficie un colore di materiale con trasparenza al 90%
così in rendered mode almeno a livello visivo “affiorano” le aree più dense e con dei provini che tengo a lato posso cercare quelle che oltrepassano il valore targhet (nell’esempio con tre superfici sovrapposte)

però è un metodo che non aiuta la vista :slight_smile:
sarebbe troppo bello se dato questo stadio rhino potesse tracciare i perimetri delle aree il cui livello di trasparenza additivo (dato dalla sovrapposizione e quindi somma delle trasparenze/opacità dei materiali delle superfici) oltrepassa quello targhet.
aree sovrapposizione.3dm (133,5 KB)

Facciamo che ogni area sia di un tessuto a diversa grammatura. Vuoi sapere quali aree singole o sovrapposte abbiano un peso superiore a…?

Ecco un tentativo molto rustico. Ci sono cose che terrei e altre migliorabili.
In pratica:
Divido le srf con layer corrispondenti alla grammatura.
le muovo in verticale con vettori diversi per ogni grammatura.
Nel BoundingBox dell’ insieme lancio un tot di rette verticali.
Calcolo dove le intersezioni sono in numero massimo (3 nel mio caso)
Filtro i punti corrispondenti alle massime intersezioni
Per definire le aree ci faccio dei metaball intorno.
Se muovo le srf in Rhino vedi che le aree di massimo spessore (e peso) si aggiornano.
max-overlap.3dm (49,3 KB) max-overlap.gh (12,6 KB)

GH e’ sempre bello da vedere (utilizzato da chi e’ capace, voglio dire …) :grinning:

(Spero prima o poi di mettermici …)

Dicevo … alcuni dubbi da profano …

Scusa Giuspa, perche’ filtri su 3 intersezioni (se ho capito bene) ?
Non dovremmo filtrare sulla somma delle grammature intersecate ?

E il filtro su Z 0.5 a cosa serve, per le metaball (che ovviamente non so cosa siano :blush: ) ?

Grazie, ciao !

EDIT:

Scusa, altro dubbio: a cosa serve spostare in Z le superfici ?

SE ti ci dedichi in una settimana o meno hai tutto sotto controllo.

Ho spostato in Z perchè mi erano più chiare le intersezioni. Magari è pure inutile…

Filtro su tre perchè ipotizzando tre “strati” (srf) la zona a maggior peso dovrebbe essere dove più sovrapposizione c’è: 3 appunto.

Filtro a Z 0.5: le intersezioni sono su tre piani. Uguali in termini di X e Y ma con Z diverse. Mi basta avere i punti che sono sul piano e pertanto filtro con Z < 0.5

Metapalle: sono dei “blob” nati da circonferenze che si fondono. La prima cosa che i è venuta in mente per definire grossolanamente delle aree separate.

Eh … servirebbe un po’ di cassa integrazione … :wink:
Ma per fortuna sembra che la ditta dove lavoro non abbia problemi. :slight_smile:

Tanto se imparo qualcosa ma poi smetto di usarlo, dimentico di nuovo molto in fretta (demenza senile o chiamala come vuoi) …

Mi sono convinto (dopo averlo letto per anni … eh, sono un po’ ‘duro’ :smile: ) che GH va considerato un linguaggio di programmazione.
Certo dedicato a un suo ambito ben preciso (forse li chiamano Domain Languages … boh :confused: )

Il fatto che sia bello da vedere (merito di David) puo’ ingannare e indurre a considerarlo piu’ semplice di quello che e’.

… Almeno, a me ha dato queste impressioni … magari sono solo mie paturnie mentali … :smile:

Grazie per le risposte !

ciao Giuseppe,
scusa il ritardo della risposta ma ho provato solo ora il tuo file di esempio, grazie infinite per lo sforzo e l’aiuto.
purtroppo credo non vada bene per risolvere il caso, aumentando il range di “sensibilità” dello slide delle metabals il profilo inddividuato al termine del processo di gh è comunque non preciso come mi occorrerebbe (l’esatto profilo delle curve di partenza)

tornando all’esempio postato all’inizio ecco cosa ottengo (moooolto pazientemente procedendo passo a passo)aree sovrapposizione.3dm (310,0 KB)