buongiorno a tutti.
mi trovo a dover valutare l’angolo compreso tra due facce di una mesh attigue che stanno in prossimità di una linea. La mesh è stata importata (non è perciò nativa da GH) e mi sembra sensato applicare anche il componente Disjoint mesh per “spezzettarla”. L’operazione di calcolo dell’angolo dovrà essere fatta molte, molte volte.
Pensavo di agire valutando la distanza tra il punto medio della linea e il centroide delle facce della mesh così da potermi creare un filtro in base alla distanza, ma poi non so come chiedere a GH di misurare l’angolo proprio tra quelle due facce che risulteranno dal filtro.
In alternativa ho creato delle facce, perpendicolari alle linee e in corrispondenza del loro punto medio, che intersecano le due facce di cui vorrei misurare il reciproco angolo. Mi domando se esiste qualche componente che vede questa intersezione e riesce ad elaborarne la geometria…
Il fine è quello di determinare l’angolo tra le due facce ed associarlo alla linea di riferimento
Ringrazio anticipatamente per le Vs eventuali risposte
Proverei con utilizzare le normali alle facce e misurare l’angolo dei due vettori risultanti.
angolo.gh (9,1 KB)
@leopoldomonzani , grazie ma questo so già come farlo. Inoltre non ho due mesh archiviate differentemente bensì una sola importata da un grosso file.
Il mio problema è far riconoscere le due facce più prossime alla linea numero “x” e di conseguenza misurarne poi l’angolo esistente proprio con il metodo da te illustrato.
Ok.
Ho postato questa definizione perché la tua richiesta era “non so come chiedere a GH di misurare l’angolo proprio tra quelle due facce che risulteranno dal filtro”.
Ora io non so com’è il tuo progetto ma l’uso del componente Closest Point potrebbe essere utile per filtrare le mesh che interessano.
Alternativa a Disjoint che nella mia definizione non funziona.
Grazie per lo spunto Leopoldo,
sto litigando con il componente Mesh Topology dato che credo sia la strada giusta, ma la mia scarsa esperienza in GH mi fa sbattere la testa contro un muro.
Nello specifico non riesco ad operare con l’output EF che dovrebbe restituirmi per ciascun bordo gli indici delle facce adiacenti. Sarebbe ciò che mi serve in modo che io possa poi procedere a misurare l’angolo che c’è tra ogni coppia di facce, ma come vedi il risultato ottenuto non mi sembra sensato. Da qualche parte sbaglierò sicuro.
Tu che hai l’occhio esperto riesci a darmi una dritta?
Beh, non caricarmi troppo di responsabilità, e poi non sono così esperto.
Non so se hai visto la definizione postata da Riccardo.(Lui sì che è bravo.)
Se ho capito bene, mi sembra risolva il problema con uno script in C#.
https://it.discourse.mcneel.com/uploads/short-url/cyfxbMQ2iOjswFkg5kShSHwY5yi.gh
Grazie Leopoldo questo componente è fantastico. Ho potuto capire che uno dei problemi principali era il fatto che la mesh importata fosse tutta già disgiunta e così una volta unificata il componente mi sta restituendo per ogni edge il numero della facce attigue.
Adesso ho la lista dei bordi e delle facce che posso tranquillamente esportare in excel per poi re-inputarli in GH facendogli trovare la bisettrice…
Devo sforzarmi a trovare il modo per far valutare direttamente a GH la normale di ciascuna coppia di valori che si vedono ad esempio nella lista 5, 6 o 7