HOME OGGETTI 3D LIBRI CORSI TUTORIAL FORUM SHOP CONTATTI   LOGIN









Autore Topic: Simulazione crescita di un volume (solaio)  (Letto 8689 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

federico

  • Newbie
    ...sono qui da poco, il mio miglior amico è il pulsante RICERCA
  • *
  • Post: 15
Simulazione crescita di un volume (solaio)
« il: 15 Marzo 2012, 00:12 »
Salve a tutti, desideravo porre il seguente quesito. Devo simulare l'allagamento dello scafo di una nave. Ho costruito il modello della nave attraverso curve di livello e l'acqua all'interno contenuta attraverso una operazione booleana per sottrazione. Desideravo sapere come impostare il vola attraverso con l'opzione ricostruisci il modello per ogni fotogramma associato al volume dell'acqua, se questa è la giusta procedura, e se ciò è possibile con archicad. Esiste un tutorial in merito? Altrimenti, potrei farlo con artlantis? Vi ringrazio anticipatamente per il vostro aiuto. Saluti

ZioBob

  • Che pacchia un forum senza spocchia!
  • ADMIN
    ...ho creato questo spazio e lo amo
  • *
  • Post: 5.099
Re:Simulazione crescita di un volume (solaio)
« Risposta #1 il: 15 Marzo 2012, 08:18 »
Non è possibile assegnare valori variabili ai parametri degli elementi di ArchiCAD, ma solo a quelli degli Oggetti GDL.
Per questo motivo non si può "animare" un Solaio, ma è possibile farlo con un oggetto di libreria.
Ti consiglio per prima cosa di leggere il tutorial "Animare gli oggetti di ArchiCAD" che mostra un esempio molto simile a ciò che serve a te: un blocco che aumenta di altezza in base ai fotogrammi dell'animazione.
Ti dovrebbe bastare usare l'oggetto (opportunamente modificato) al posto del solaio.

-Roberto Corona-
archiradar  Staff



federico

  • Newbie
    ...sono qui da poco, il mio miglior amico è il pulsante RICERCA
  • *
  • Post: 15
Re:Simulazione crescita di un volume (solaio)
« Risposta #2 il: 16 Marzo 2012, 01:15 »
Grazie per la solerte risposta Roberto Corona, perdona la mia distrazione per non essere andato direttamente nella sezione sui tutorial. Mi metterò a studiare attentamente la procedura per eseguire il mio lavoro. Vorrei chiedere un ulteriore informazione: E' possibile anche ruotare un oggetto su un asse durante un animazione? Poniamo che un oggetto sia posto perpendicolarmente al terreno, nel nostro caso un solaio registrato come oggetto di libreria: Vorrei prima ruotarlo secondo la sua ordinata, e poi riposizionarlo perpendicolarmente al terreno. E' possibile farlo assegnando una variabile globale, in modo simile alla risposta precedente al mio quesito, nella finestra dei parametri? Ringraziando anticipatamente, cordiali saluti.

ZioBob

  • Che pacchia un forum senza spocchia!
  • ADMIN
    ...ho creato questo spazio e lo amo
  • *
  • Post: 5.099
Re:Simulazione crescita di un volume (solaio)
« Risposta #3 il: 16 Marzo 2012, 08:33 »
Certo.
Se non sbaglio nel tutorial c'è anche un esempio di rotazione (apertura/chiusura delle ante di un armadio).
-Roberto Corona-
archiradar  Staff



federico

  • Newbie
    ...sono qui da poco, il mio miglior amico è il pulsante RICERCA
  • *
  • Post: 15
Re:Simulazione crescita di un volume (solaio)
« Risposta #4 il: 04 Aprile 2012, 13:06 »

Sono riuscito ad animare un volume, ma adesso vorrei approfondire un altro argomento.Specifico ulteriormente il quesito: Per quanto riguarda la rotazione di un oggetto nello spazio attorno a una cerniera. Assodato che deve essere un oggetto di libreria, poniamo che debba far "dondolare" una nave in mezzo al mare, durante un'animazione: devo considerarla alla stessa stregua della cerniera di un armadio? cioè come faccio ad assegnare una variabile gdl del tipo door_ang a un oggetto creato da me senza il gdl, (se questa è la procedura corretta)? In questo caso, quello di una nave, la rotazione avviene non sull'asse delle ascisse come nell'armadio, ma delle ordinate... Credo che ciò sia possibile perchè anni fa scaricai da internet un oggetto di libreria, in movimento, di una nave che dondolava sulla superficie increspata del mare quindi ritengo che fosse un oggetto non creato col gdl ma registrato come oggetto dall'alto. Purtroppo era creato in archicad 8.0 e oggi non mi è più possibile aprirlo per vedere lo script. I need a AC guru.

ZioBob

  • Che pacchia un forum senza spocchia!
  • ADMIN
    ...ho creato questo spazio e lo amo
  • *
  • Post: 5.099
Re:Simulazione crescita di un volume (solaio)
« Risposta #5 il: 04 Aprile 2012, 14:18 »
Per far ruotare un oggetto occorre  inserire nello script 3D una o più istruzioni di rotazione:
ROTx [valore] per ruotare attorno all'asse X
ROTy [valore] per ruotare attorno all'asse Y
ROTz [valore] per ruotare attorno all'asse Z

al posto di [valore] ovviamente metterai una variabile legata al numero di fotogramma

-Roberto Corona-
archiradar  Staff



federico

  • Newbie
    ...sono qui da poco, il mio miglior amico è il pulsante RICERCA
  • *
  • Post: 15
Re:Simulazione crescita di un volume (solaio)
« Risposta #6 il: 04 Aprile 2012, 15:53 »
grazie per la solerte risposta, ci provo subito. Analogamente alla crescita in altezza desideravo anche sapere se sia possibile, nella medesima animazione fare l'operazione inversa cioè la decrescita dopo un certo numero di fotogrammi, e per quanto riguarda la rotazione, la stessa cosa, una volta che ruota su un asse, se sia possibile farlo ruotare in senso inverso, o vanno fatte due animazioni separate?
Nel libro sono trattati tali argomenti ?

ZioBob

  • Che pacchia un forum senza spocchia!
  • ADMIN
    ...ho creato questo spazio e lo amo
  • *
  • Post: 5.099
Re:Simulazione crescita di un volume (solaio)
« Risposta #7 il: 05 Aprile 2012, 08:33 »
certo, è possibile imporre movimenti più complessi, scrivendo apposite formule. Per esempio

h = 1
incremento = 0.1
IF GLOB_FRAME_NR >20 THEN incremento = -0.1
BLOCK 1, 1, h - incremento * 20 + incremento * GLOB_FRAME_NR

questo crea un blocco che cresce, per i primi 20 fotogrammi, poi inizia a diminuire. Occorre scrivere formule più sofisticate per avere movimenti armonici, e anche per evitare errori. In questa che ti ho messo come esempio, ad un certo punto l'altezza diventerà inferiore a zero...
Nel nostro libro ci sono una ventina di pagine dedicate in modo specifico al linguaggio GDL, ma non si parla di animazioni, che è un argomento che richiede approfondimenti maggiori rispetto alle esigenze del'utente "comune".
Ma l'importante (secondo me) non è tanto avere le istruzioni quanto il quadro generale. Se uno impara ad usare il linguaggio di programmazione, ne capisce i meccanismi e le tecniche, poi va avanti da solo.
Se l'argomento ti interessa e ti coinvolge, scarica la nostra guida, da sempre unico libro in italiano sul GDL. E sempre gratis.
-Roberto Corona-
archiradar  Staff



federico

  • Newbie
    ...sono qui da poco, il mio miglior amico è il pulsante RICERCA
  • *
  • Post: 15
Re:Simulazione crescita di un volume (solaio)
« Risposta #8 il: 12 Aprile 2012, 20:51 »
Sono riuscito solo a ruotare un oggetto nello spazio in modo statico, non dinamico, assegnando le variabili girax giray e giraz all'interno dei parametri.
Ciò mi è stato possibile solo in ArchiCAD 11 con la localizzazione italiana utilizzando le variabili girax, giray e giraz.
Non mi è stato possibile farlo in ac 13 nonostante innumerevoli tentativi, e la sintassi corretta.
E' stato possibile farlo anche con ac15 in versione inglese, utilizzando le variabili gs_rot e gs_rot_hor.
Indipendentemente dalla versione utilizzata, chiaramente preferisco ac15 in inglese, noto che la rotazione avviene solo su cerniere/hotspot prefissati, per esempio se la rotazione avviene sull'asse verticale o orizzontale, per default le cerniere su cui l'oggetto ruota non sono al centro ma all'estremità.
Vorrei poter ruotare l'oggetto esattamente come la macchina (Auto 02 13, in ac13, o car 02 15, in ac 15, la golf rossa tanto per capirci) contenuta nelle librerie cioè sull'hotspot centrale e non alle estremità. Ho aperto tale oggetto (l'auto) per studiare lo script 3d e noto ulteriori istruzioni del tipo Addx, add -x e addz: ho provato a inserirle nello script 3d del mio oggetto ma non ho ottenuto nessun risultato significativo, e l'oggetto ruota sempre sugli stessi hotspot. qui riporto la sintassi (ho cancellato alcuni spazi)

!!Car 02.gsm
if gs_detlevel_3D=`Off` then end
IF gs_shadow=0 THEN SHADOW OFF

ADDx 1.336
ROTy gs_rot
ROTx gs_rot_hor
ADDx -1.336

addz 1.1
ROTX   90
BINARY 1,1

DEL top


Inoltre ho modificato anche i parametri esattamente come nell'auto per far si che la rotazione avvenga entro certi limiti ad es la rotazione verticale compresa fra un range di 45° e quella orizzontale di 30°, con successo.

Sostanzialmente vorrei imporre le rotazioni al centro dell'oggetto non alle estremità.
Dove sto sbagliando?
« Ultima modifica: 12 Aprile 2012, 21:03 da federico »

ZioBob

  • Che pacchia un forum senza spocchia!
  • ADMIN
    ...ho creato questo spazio e lo amo
  • *
  • Post: 5.099
Re:Simulazione crescita di un volume (solaio)
« Risposta #9 il: 13 Aprile 2012, 08:24 »
non è possibile dire se alcune istruzioni, estratte da un oggetto, siano adeguate o no...
Ogni rotazione assume, come centro, la posizione attuale dell'origine locale (quella corrente del sistema di riferimento dell'oggetto). Io ti consiglio di non prendere valori a caso da altri oggetti, ma di fare delle prove procedendo per gradi.

Prima di tutto metti un'istruzione ADD prima delle istruzioni ROT, e aggiungi anche una istruzione SPHERE, per avere un riscontro visivo della posizione in cui ti trovi (cioè si trova l'origine locale, dato che la sfera è sempre centrata sull'origine corrente). Quindi:

ADD 0, 0, 0
SPHERE .5
ROTy gs_rot
ROTx gs_rot_hor
[...resto dello script...]

Regola la dimensione del raggio della sfera in modo che sia ben visibile senza essere eccessivamente invasiva. Se non si trova nel punto desiderato per la rotazione, modifica il primo zero dopo ADD, mettendo per esempio 1, e vedi come si sposta lungo l'asse X... poi regola il secondo valore che corrisponde all'asse Y ed eventualmente anche il terzo. Quando la sfera è al centro, elimina l'istruzione SPHERE.
« Ultima modifica: 13 Aprile 2012, 10:07 da ZioBob »
-Roberto Corona-
archiradar  Staff



federico

  • Newbie
    ...sono qui da poco, il mio miglior amico è il pulsante RICERCA
  • *
  • Post: 15
Re:Simulazione crescita di un volume (solaio)
« Risposta #10 il: 13 Aprile 2012, 09:34 »
Grazie per la risposta, ho aggiunto questa istruzione alll'oggetto da me creato, ma la sfera si muove insieme all'oggetto quando cambio i valori della x, y o z, mentre vorrei che si spostasse l'origine locale al centro.
Posto le immagini: la prima lasciando l'istruzione ADD 0, 0, 0, la seconda modificata in 5, 0, 0. La sfera si muove insieme all'oggetto di 5 m lungo l'asse x, mentre vorrei che si spostasse solo la sfera, cioè l'origine corrente.
La terza è un assonometria non ruotata.
Analogamente le rotazioni avvengono al centro della sfera... come spostarla al centro ?
« Ultima modifica: 13 Aprile 2012, 09:36 da federico »

ZioBob

  • Che pacchia un forum senza spocchia!
  • ADMIN
    ...ho creato questo spazio e lo amo
  • *
  • Post: 5.099
Re:Simulazione crescita di un volume (solaio)
« Risposta #11 il: 13 Aprile 2012, 10:13 »
prova così... cambia i valori delle variabili "delta", che poi vengono usate, con valori negativi, per riportare l'origine indietro... nel frattempo però gli assi non hanno lo stesso orientamento, quindi non tornerà proprio nello stesso punto.


deltax = 0
deltay = 0
deltaz = 0

ADD deltax, deltay, deltaz
SPHERE .5
ROTy gs_rot
ROTx gs_rot_hor
ADD -deltax, -deltay, -deltaz
...
-Roberto Corona-
archiradar  Staff



federico

  • Newbie
    ...sono qui da poco, il mio miglior amico è il pulsante RICERCA
  • *
  • Post: 15
Re:Simulazione crescita di un volume (solaio)
« Risposta #12 il: 13 Aprile 2012, 17:51 »

Grazie Roberto, ci sono riuscito e posto le immagini.  :si:
Se adesso volessi aggiungere le istruzioni di rotazione legate ai fotogrammi, che mi hai dato nella risposta #5 ? In quale parte dello script devo inserirle?
Ho provato a inserirle dopo l'istruzione che mi hai dato, e anche all'inizio, senza successo e ac mi dice che c'è un'errore di sintassi. posto l'immagine
A intuito, non dovrei inserire qualcosa nei parametri? (scusa la mia ignoranza).
In ogni caso sono contento dei progressi che ho fatto grazie al tuo aiuto, come sempre.

ZioBob

  • Che pacchia un forum senza spocchia!
  • ADMIN
    ...ho creato questo spazio e lo amo
  • *
  • Post: 5.099
Re:Simulazione crescita di un volume (solaio)
« Risposta #13 il: 14 Aprile 2012, 15:57 »
ac mi dice che c'è un'errore di sintassi. posto l'immagine
ovvio... le parentesi quadre non devi metterle.
Ma perché inserisci due serie di istruzioni ROT ? le prime per imporre un'inclinazione "fissa" legata a parametri dell'oggetto e le seconde (da completare) per inclinarlo in funzione del numero di fotogramma?

Per quanto riguarda la formula più idonea da utilizzare per creare un'oscillazione... questo è un altro discorso. Avevo fatto delle prove con un risultato accettabile anche se da migliorare. A questo punto però non parla più di GDL, ma piuttosto di matematica. Trasformare una serie numerica regolare (1, 2, 3, 4...) in una serie differente


-Roberto Corona-
archiradar  Staff



federico

  • Newbie
    ...sono qui da poco, il mio miglior amico è il pulsante RICERCA
  • *
  • Post: 15
Re:Simulazione crescita di un volume (solaio)
« Risposta #14 il: 20 Aprile 2012, 19:13 »

Grazie per tutte le "lezioni" roberto.
Sono riuscito ad impostare le "cerniere" ai miei oggetti nell'origine desiderata in base al numero dei fotogrammi.
Non sono riuscito a ruotare gli oggetti in base al numero dei fotogrammi, con ROTx e ROTy inseriti nello script 3d, pur avendo fatto diversi tentativi: forse manca qualche variabile nei parametri?
Cito quanto hai scritto nella risposta 5:

certo, è possibile imporre movimenti più complessi, scrivendo apposite formule. Per esempio

h = 1
incremento = 0.1
IF GLOB_FRAME_NR >20 THEN incremento = -0.1
BLOCK 1, 1, h - incremento * 20 + incremento * GLOB_FRAME_NR

questo crea un blocco che cresce, per i primi 20 fotogrammi, poi inizia a diminuire. Occorre scrivere formule più sofisticate per avere movimenti armonici, e anche per evitare errori. In questa che ti ho messo come esempio, ad un certo punto l'altezza diventerà inferiore a zero...
Nel nostro libro ci sono una ventina di pagine dedicate in modo specifico al linguaggio GDL, ma non si parla di animazioni, che è un argomento che richiede approfondimenti maggiori rispetto alle esigenze del'utente "comune".
Ma l'importante (secondo me) non è tanto avere le istruzioni quanto il quadro generale. Se uno impara ad usare il linguaggio di programmazione, ne capisce i meccanismi e le tecniche, poi va avanti da solo.
Se l'argomento ti interessa e ti coinvolge, scarica la nostra guida, da sempre unico libro in italiano sul GDL. E sempre gratis.


Ecco, se riuscissi a fare decrescere il volume avrei già raggiunto molti dei miei obiettivi:
Quando inserisco tale sintassi nello script 3d mi dice ok, ma quando creo il fly through non sale ne scende di altezza, mentre con lo script 3d del rettangolo si, (posto le immagini)


Posto le immagini con il volume che cresce in altezza (il rettangolo) e quelle con il volume che non cresce/decresce (il cubo)
N.B. nel primo oggetto sono inserite anche le variabili di rotazione, nel secondo no, (ma ciò non è necessario).
Creare un animazione con oggetti che ruotano e contemporaneamente crescono, o decrescono in altezza, è sufficientemente complesso (parli di matrici o oscillazione) perciò ho deciso di registare ogni singolo fotogramma e ricomporre il tutto in quicktime. (ho dato un occhiata al gdl cookbook, ma l'unico esempio riportato è quello della bandiera al vento, oppure quello di far girare un elica su un asse... trovato su un altro forum)
L'ultimo step è quello di far decrescere di altezza un volume da una certa quota e farlo arrivare a 0 oppure di aggiungere questa istruzione all'oggetto già creato (il primo)...mi chiedo se sia anche possibile farlo crescere lungo l'asse x o y  oltre che sull'asse z...

ZioBob

  • Che pacchia un forum senza spocchia!
  • ADMIN
    ...ho creato questo spazio e lo amo
  • *
  • Post: 5.099
Re:Simulazione crescita di un volume (solaio)
« Risposta #15 il: 21 Aprile 2012, 12:15 »
nell'ultima espressione hai messo il segno < (minore di) al posto di - (meno).
 
-Roberto Corona-
archiradar  Staff



ZioBob

  • Che pacchia un forum senza spocchia!
  • ADMIN
    ...ho creato questo spazio e lo amo
  • *
  • Post: 5.099
Re:Simulazione crescita di un volume (solaio)
« Risposta #16 il: 22 Aprile 2012, 14:52 »
ho fatto una prova per vedere come fosse possibile imporre un'oscillazione ad un oggetto:
<a href="http://www.youtube.com/watch?v=ljYCK9HXirc" target="_blank">http://www.youtube.com/watch?v=ljYCK9HXirc</a>
Nel filmato sono animate sia le boe che l'imbarcazione. La boa è un oggetto fatto al volo, privo di parametri, mentre la barca è presa direttamente dalla libreria standard di ArchiCAD. Tutti gli oggetti vengono chiamati da un apposito oggetto, che per ora ho chiamato "oscillatore", che si occupa di impostare il movimento oscillatorio e, opzionalmente, anche una traslazione lungo i tre assi X, Y, Z. Per il mare ho usato l'accessorio Specchio d'acqua, della libreria ArchiSuite (ex libreria Cigraph).
-Roberto Corona-
archiradar  Staff



federico

  • Newbie
    ...sono qui da poco, il mio miglior amico è il pulsante RICERCA
  • *
  • Post: 15
Re:Simulazione crescita di un volume (solaio)
« Risposta #17 il: 23 Aprile 2012, 09:19 »
Non ho parole..  :no:  funziona alla perfezione questo oggetto, è proprio ciò che cercavo, ed ha anche il movimento lungo i tre assi!
Ho dovuto solo reimpostare l'origine degli oggetti creati in precedenza nei parametri e nello script 3d da gs_rot in ang_rot, spulciando nello script della barca a vela, ed è anche più semplice trovare l'origine perchè è la semisomma dei suoi lati.
Non so come ringraziarti per il tempo che ho guadagnato non dovendo registrare ogni singolo fotogramma.
Ho risolto parzialmente anche il problema della decrescita dei volumi, perchè l'ho semplicemente ruotato sulla sua origine di 180°, perchè la sintassi con il segno < l'avevo cambiata di proposito in quanto con il segno - non funziona.
Grazie per la tua disponibilità. Posterò a breve un video con il risultato.

ZioBob

  • Che pacchia un forum senza spocchia!
  • ADMIN
    ...ho creato questo spazio e lo amo
  • *
  • Post: 5.099
Re:Simulazione crescita di un volume (solaio)
« Risposta #18 il: 24 Aprile 2012, 08:10 »
Ho risolto parzialmente anche il problema della decrescita dei volumi, perchè l'ho semplicemente ruotato sulla sua origine di 180°, perchè la sintassi con il segno < l'avevo cambiata di proposito in quanto con il segno - non funziona.
prova a usare questa sintassi:
 BLOCK 1, 1, MAX( 0.001, h - incremento * 20 + incremento * GLOB_FRAME_NR)
che evita limita a 1mm l'altezza minima del blocco così si svita il messaggio di errore che viene generato con altezza zero o negativa. In pratica fra i due valori (1mm e il risultato della formula) viene usato quello maggiore (MAX).
Citazione
Grazie per la tua disponibilità. Posterò a breve un video con il risultato.
:ok: lo aspettiamo!
-Roberto Corona-
archiradar  Staff



federico

  • Newbie
    ...sono qui da poco, il mio miglior amico è il pulsante RICERCA
  • *
  • Post: 15
Re:Simulazione crescita di un volume (solaio)
« Risposta #19 il: 03 Maggio 2012, 17:44 »
La simulazione è leggermente diversa perché è in trasparenza e mostra cosa accade ai fluidi contenuti al suo interno dopo l'urto accidentale con uno scoglio. Gli oggetti subiscono una doppia oscillazione (x e y) e due traslazioni (-z +z).


<a href="http://www.youtube.com/watch?v=NfVdZMxJab8" target="_blank">http://www.youtube.com/watch?v=NfVdZMxJab8</a>
« Ultima modifica: 03 Maggio 2012, 23:21 da ZioBob »