Struttura composta Rhino-Grasshopper (intersezione superficie/linea)

Buongiorno a tutti, mi presento essendo nuovo, mi chiamo Leonardo.
Mi sto approcciando all’uso di Rhinoceros usando Grasshopper da poco e principalmente guardando tutorial, anche se ho trovato un problema all’esempio che sto realizzando: si tratta di un ponte a struttura mista acciaio calcestruzzo idealizzato da una soletta superficiale in cemento armato e delle travi saldate sottostanti. Il problema è che non riesco a solidarizzare gli elementi in modo che la superficie sia “unita” alla trave lungo la loro linea di intersezione, garantendone così gli stessi spostamenti lungo l’asse Z. Come posso fare? Ho provato a creare più punti lungo la linea della trave e vincolarli ma genera un insieme di superfici che passano per quel punto e non una deformata della singola.
Chiedo scusa per la domanda forse stupida, ma non sono riuscito a trovare risposta da solo purtroppo.
Allego un file esempio realizzato con Grasshopper e Karamba in cui la superficie si deforma indipendentemente dalle travi, quando io invece vorrei che fossero solidarizzate.
Grazie a tutti in anticipo!
Travi piastra parametriche.gh (47,3 KB)

Prima di tutto Benvenuto Leonardo!
Il problema è il seguente: non ho Karamba e la versione che hai usato non si installa su GH di Rhino6.
Siccome siamo lontano dal problema strutturale, mi apre che tu debba prima fare delle trasformazioni, sarebbe utile vedere il file senza la parte Karamba.
In generale: “solidarizzare” lo puoi fare unendo curve che condividano estremi, superfici che condividano bordi o parte di essi, Oggetti che si intersecano (srf e polisrf) con booleane o trim + unione.
Se applichi lo stesso vettore di traslazione a più elementi avrai gli stessi spostamenti. Due geometrie che producono una data intersezione se le muovi lungo uno stesso vettore continuano a produrre la stessa intersezione…

Buongiorno e grazie per la risposta! Ho estrapolato da un file una situazione simile, anche se con gli input totalmente dversi da quelli che avrò nel file originale, dove ho posizionato una Mesh costruita da più punti e da questi stessi ho creato delle linee di connessione al fine da creare un grigliato (quelle che saranno le mie travi).
Ora, io vorrei che, una volta applicati i carichi sia alla mesh che alle travi stesse ed in corrispondenza punti di intersezione degli elementi dei vincoli che impediscano la traslazione lungo Z, le restanti porzioni si abbassino secondo una univoca deformata e non separatamente elemento per elemento (fatto peraltro in cui ho difficoltà perché ho notato che una volta in cui utilizzo karamba, questo mi separa i carichi che devo applicare alle travi e alla soletta, e quindi me le fa vedere sostanzialmente come se fossero indipendenti una dall’altra e non provocate da una stessa azione: in parole brevi, se applico un carico ad una trave si abbassa solo questa e non la soletta e viceversa.
C’è qualche operazione che devo fare a monte di Karamba per poter solidarizzare questi elementi? Ti ringrazio nuovamente.

Esempio.gh (8,8 KB)

OK scusami ma devo ricostruire la tua frase così mi dirai se interpreto bene:

"una volta applicati i carichi sia alla mesh che alle travi stesse:
io vorrei dei vincoli che impediscano la traslazione lungo Z in corrispondenza dei punti di intersezione degli elementi (travi)…"

Se questo non è il tuo pensiero:
definisci il vettore con la direzione del carico e segna i vincoli. Carta e penna più foto andranno benissimo

Se invece ho interpretato giusto, dimentica la statica e torna sulla geometria. Hai delle rette e a meno di modificarle (ci sono vari metodi) in altro tipo di geometria, non puoi deformare nulla.

Allego due tipi di deformazioni ottenute con Kangaroo.
Una ha come vincoli i punti di intersezione di tutti le travi
Una solo i punti perimetrali.

Come vedi la mesh è l’ultima cosa che si crea e dipende dalla deformata dei punti.

Vettore carico direzione -Z

Esempio-gm.gh (24,9 KB)
esempio_gh_gm.3dm (103,5 KB)

Grazie dell’aiuto, confesso che sono un po’ spiazzato dal tutto perché non essendo così pratico del programma, faccio fatica ad immaginare attraverso un flusso ciò che vorrei realizzare. Sostanzialmente il mio caso è quello che hai indicato con i supporti in corrispondenza delle intersezioni di tutte le travi (allego delle foto se possono aiutare).
Ti chiederei solamente (se non è di troppo disturbo), spiegarmi a parole il processo che hai sviluppato, perché non riesco a capire il perché ad esempio tu abbia dovuto creare delle linee diagonali tra i vari campi e il perché la mesh risulti l’ultima cosa creata direttamente sulla deformata (non sarebbe possibile invece creare precedentemente una mesh e poi visualizzarne la deformata?).

Passando a quello che devo effettivamente realizzare:
nel mio caso io dovrei introdurre le travi e la soletta come elementi effettivi costituiti da peso proprio e su cui gravano ulteriori carichi (per capirci, le travi si deformano sia per effetto del peso proprio, sia per effetto del peso della soletta nonché dei carichi che viaggiano sulla stessa): la soletta, che dovrebbe essere rappresentata dalla mesh, come la dovrei introdurre? La mia logica di pensiero era:

  • realizzo le travi;
  • su queste realizzo la soletta;
    -vincolo i punti di intersezione travi/soletta ed applico i carichi;
    -visualizzo l’elemento deformato, chiedendo però che soletta e travi, verificando però che nella deformata il modello si deformi all’unisono essendo travi e soletta elementi solidali. Mentre quello che ottenevo io tramite karamba è: applico il peso alla soletta e questa si deforma in accordo ai vincoli imposti, ma lasciando le travi indeformate (cosa peraltro che penso dipenda dal fatto che karamba prevede di considerare come comandi “line to beam” e contemporaneamente “mesh to shell”, nei quali i carichi vengono singolarmente applicati però, per poi assemblare il modello)

Chiedo scusa per essermi dilungato e grazie del tuo tempo oltretutto! Cerco di informarmi meglio sui problemi possibili relativi a Karamba, ma se mi aiuti intanto con il discorso di sopra mi fai un favore!

Curiosità: i traversi sono in appoggio agli estremi?

Tutto chiaro Leonardo ma ci sono un po’ di cose da rivedere.
La prima è un limite mio: non conosco Karamba. So essere un add-on di GH per analisi strutturale ma qui mi fermo. Cosa voglia e quale metodo utilizi lo ignoro completamente.
In generale modellare con in mente la logica del manufatto finito (soletta legata alle travi) non funziona.
O meglio funziona modellare in base alla logica con cui funziona il plugin FEA.
La mia era lontano dall’essere una simulazione… semplicemente una ipotesi di deformazione fatta con Kangaroo che sfrutta un motore fisico. Mi serviva a capire se ero sulla strada giusta rispetto alla tua definizione di GH iniziale dove vedevo una serie di aste diagonali e immaginavo volessi averle tutte orientate…avevo evidentemente frainteso.

Grazie dell’aiuto anche a te Sergio! Confermo, sia agli estremi che anche alle intersezioni con le travi.

Grazie dell’aiuto anche a te Sergio! Confermo comunque, sia agli estremi che alle intersezione con le varie travi.
Capisco Giuseppe, purtroppo io so quanto te di Karamba, ci sto iniziando appena a prendere la mano, ma so solo che fondamentalmente è un solutore strutturale, cioè evidenzia (secondo un approccio previsto dalle normative tecniche sulle costruzioni NTC/EC) l’eventuale insorgenza di problematiche relative al dimensionamento strutturale degli elementi. Tant’e vero che, la mia idea di progetto è realizzare un processo di ottimizzazione degli elementi strutturali del ponte in funzione dei vari scenari di carico (sia in termini di dimensione delle sezioni, sia di posizione o numero di travi/traversi). Dite che sbaglio come concezione proprio dall’inizio? Cosa mi consigliereste di fare? Ho provato anche a cercare tutorial vari tutorial ma trovo o soluzioni parziali oppure che non trattano specificatamente quello che cerco di fare io purtroppo.

Non sbagli affatto.
…anche perchè SAP2000 è meno “divertente”…:crazy_face:
Detto questo il problema è che essere nuovo di Rhino, di GH e di Karamba allo stesso tempo è davverto tanta roba. Forse troppa.
I tutorial sono fatti per chi già conosce, oppure per dare un’ idea di cosa si può fare. Per apprendere non servono. Anzi.
Te lo dico con il cuore in mano: approcciare Rhino attraverso GH è come quando senti i politici che parlano inglese senza saperlo…

Eh purtroppo hai ragione! :joy: conosco programmi similari anche di progettazione BIM che già ho utilizzato ma non avendo molte altre alternative, da qualche parte devo incominciare purtroppo. Che mi consigli come base proprio per iniziare? Prima solamente rhino+GH? Karamba comunque di per se non è così articolato come può sembrare perché include anche poche voci rispetto ad altri plugin che ho visto ed ho un manuale completo anche con esempi (che però ovviamente non spiegano il caso di studio); L altro giorno invece ho trovato questo estratto che spiega un po’ come è stata fatta la connessione tra beam e shell con Karamba, che sembra proprio al caso mio anche se non capisco benissimo gli step vari iniziali.

Se mi aiutassi a interpretarli sarebbe magnifico! (Soprattutto chi li ha fatti spiega poi che la connessione tra i vari elementi avviene quasi automaticamente in un unico modello, senza però sapere esattamente come).

http://ming3d.com/DAAP/ARCH4002sp2015/?p=471

Ps: concordo pienamente sul SAP! :joy:

Leonardo, penso ti convenga contattare direttamente gli sviluppatori di Karamba. Dall’esempio che vedo si tratta di costruire MESH e linee. Come le due cose debbano relazionarsi per funzionare lo ignoro o quasi.
Questo ti servirà per capire cosa devi fare in Rhino o meglio in Rhino + GH. A quel punto posso esserti utile.

Ti ringrazio molto Giuseppe, gentilissimo! Ho provato a contattarli ma purtroppo non ho avuto risposte ancora, attenderò qualche altro giorno, anche se nel frattempo sono riuscito a cimentarmi abbastanza per quanto riguarda Karamba e sono sostanzialmente riuscito a completare la modellazione con i corretti vincoli e modi di deformarsi degli elementi. Appena ho la possibilità, domani posto qualche foto per cercare magari approvazione da qualcuno che ne capisce più di me ed anzi, ti chiederei qualche consiglio se posso approfittare su come ottimizzare (modificando qualche comando o prevedendo altri tipi di stringhe) eventualmente la parte iniziale di parametrizzazione dello script :slight_smile:

Ciao Leonardo!
Bravissimo!
Chiedi pure quello che vuoi…nei limiti di quello che conosco sono a disposizione.

Buongiorno! Ecco quello che cercavo inizialmente di fare e con un po’ di pazienza sono riuscito a ricavare.
Di fatto Karamba mi è servito solo per convertire la pura geometria lineare in elementi strutturali che poi uniti creano il modello complessivo da cui ricavare gli output o effettuare l’ottimizzazione cercata.
Sto ancora cercando un modo per cercare di connettere il traverso reticolare alla trave longitudinale per quanto riguarda il vincolo inferiore (che di fatto dovrebbe essere connesso alla parte inferiore della trave ma, essendo questa idealizzata da due nodi di estremità ed una linea, risulta impossibile. Penso che opterò pertanto in un semplice collegamento trasversale lineare tra nodi delle travi di modo da approssimare il vincolo relativo al loro allontanamento.

Per quanto riguarda l’aiuto sulla parte iniziale di Grasshopper Giuseppe, ti chiederei se fosse possibile riordinare l’ordine dei punti all’interno di una lista. Mi spiego meglio: dopo una serie di operazioni che avevo fatto, ho ottenuto una serie di punti il cui ordine segue lo sviluppo della trave longitudinale passando dalla prima alla seconda e cosi via; mentre per passaggi successivi avrei preferito che questi fossero ordinati secondo punti successivi sui traversi. Premetto che ho risolto questo intoppo, semplicemente ricreando una nuova serie di punti nell’ordine che mi serviva, ma sarebbe più comodo se potessi sfruttare la prima serie realizzata.
Ti ringrazio molto ancora e buona giornata!

Ciao Leonardo

lascio i quesiti di grasshopper a Giuseppe. Il modello deformato sembra proprio corrispondere allo schizzo fatto a mano postato all’inizio. A questo punto mi chiedo a cosa servono i traversi visto che corrispondono ai punti di appoggio delle travi principali se non per controllare lo svergolamento delle travi principali. Ma questa è una cosa che puoi verificare anche a mano … circa. La cosa può farsi molto più interessante se liberi i traversi “pari” (ovvero il 2°, 4° ecc.) e posizioni i carichi in corrispondenza delle carreggiate del ponte nelle varie combinazioni così da valutare come il carico si ripartisce tra le travi principali in funzione della rigidezza del traverso e da questo ottimizzare (minimizzare) la sezione delle travi principali … ecc. ecc.
Ma forse il tuo fine è un altro :smiley:
Sergio

forse ti potrebbe essere utile questo…?

Ciao Sergio! Grazie del suggerimento :grin: hai azzeccato in pieno perchè è esattamente quello che devo fare! :joy: Sui traversi concordo, li ho inseriti effettivamente reticolari giusto a scopo dimostrativo, ma di fatto come dicevo, quel punto inferiore non connesso alla trave a poco serve. Sulla questione traversi infatti cercherò di ottimizzare sia in termini di sezione (e quindi di rigidezza) sia in funzione del loro numero e loro posizione, sapendo che in mezzeria sono meno necessari: cercherò infatti di far in modo da averli solo ai quarti della luce e alle estremità di testata, facendo l’ottimizzazione come hai anticipato tu. Secondo te, è consigliabile ottimizzare un solo parametro per volta oppure meglio fare per passi, prima ottimizzare ad esempio le luci, poi le sezioni, ecc…? (anche per tempistiche di ottimizzazione, pur avendo visto che è possibile limitare il numero di iterazioni per convergere alla soluzione anche in termini di tempo oltre che di passaggi)

Adesso ci do un’occhiata, grazie mille :grin:

Ciao Leonardo

non è facile dare una risposta perché dipende dal grado di automatismo che vuoi ottenere.
Comunque è un bel esercizio. :smiley:

Sergio