HOME OGGETTI 3D LIBRI CORSI TUTORIAL FORUM SHOP CONTATTI   LOGIN









Autore Topic: GROUP ripetuto  (Letto 1839 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

marcomasetti

  • Newbie
    ...sono qui da poco, il mio miglior amico è il pulsante RICERCA
  • *
  • Post: 183
GROUP ripetuto
« il: 07 Agosto 2012, 00:40 »
Non è possibile fare riferimento allo stesso insieme (group) in uno stesso script.
Tuttavia se si inserisce un oggetto con booleane in un loop il problema non sussiste e l'oggetto può essere ripetuto.

Riporto la traduzione della parte della guida che riguarda l'algebra di Boole applicata al GDL:

•GROUP "nome"
Inizio gruppo (insieme).  Tutti gli oggetti fino al prossimo ENDGROUP faranno parte dell’insieme  “nome”.
 GROUP "nome" e ENDGROUP vanno dunque intesi come le parentesi che definiscono l’insieme "nome".
Gli insiemi definiti, per essere visualizzati, devono essere chiamati con il comando :
PLACEGROUP "nome",  che esegue i calcoli  per inserire nella memoria i dati relativi alla struttura 3D.
Un solido GDL può essere composto di uno o più oggetti scatolari (lumps=zollette), che possono apparire anche come corpi separati nel modello. Un oggetto scatolare possiede una superficie o  guscio o involucro esterno (shell) e può contenere vuoti  (i vuoti (voids) possono essere intesi come involucri “negativi” interni, compresi entro la struttura scatolare) .  Ad esempio due cubi separati, uno dei quali risulta cavo, è composto di due "lumps" e di un "void".
Corpi GDL come BLOCK, SPHERE, etc., appaiono come gusci esterni nei gruppi. Un gruppo può essere composto di diversi involucri.

I comandi GROUP non possono essere nidificati ( cioè usati all’interno gli uni degli altri come sottoinsiemi), ma possono essere richiamati in un GROUP macro calls contenenti comandi GROUP e PLACEGROUP.

Il nome assegnato a un  GROUP non può essere utilizzato per un altro GROUP  nel corrente script.

E’ possibile però ripetere in un loop lo stesso oggetto costruito con operazioni booleane.
(questa è una mia osservazione)

Spostamenti, CUT (operazioni di taglio) interni a un GROUP non hanno effetti al di fuori del gruppo  (cioè vengono azzerati come se si fosse utilizzato DEL TOP o i CUTEND). Le definizioni GROUP sono trasparenti agli attributi DEFINE e SET (pens, materials, fills): gli attributi DEFINE e  SET scritti prima della definizione GROUP e quelli interni ad essa sono tutti effettivi.

Tuttavia cambiare nome penna o tipo di materiale in insiemi che vanno uniti, disturba poi l'unione
(questa è una mia osservazione)

• ADDGROUP (g_expr1, g_expr2)   
UNIONE

• SUBGROUP (g_expr1, g_expr2)   
 DIFFERENZA

• ISECTGROUP (g_expr1, g_expr2)   
INTERSEZIONE

• ISECTLINES (g_expr1, g_expr2)   
calcola le LINEE DI INTERSEZIONE tra due solidi.

Nota: g_expr1 che è il nome del gruppo deve essere posto tra virgolette, se è stato scritto così dopo GROUP per dargli un nome, se invece rappresenta il risultato di una operazione booleana non devono essere utilizzate virgolette (né nel definirlo come risultato, né nel richiamarlo).

Le suddette operazioni corrispondono a: ADDITION, SUBSTRACTION, INTERSECTION, INTERSECTION LINES.
Il risultato è un nuovo gruppo che può essere visualizzato con il comando PLACEGROUP, o che può essere inserito in memoria come variabile od essere utilizzato come parametro in un’altra operazione tra gruppi.
Es.    r_1= ADDGROUP (“a”, “b”)    definisce il nuovo gruppo ottenuto dall’unione di  GROUP "a" con
GROUP "b".
r_2= ADDGROUP (r_1, “c”)    definisce il nuovo gruppo ottenuto dal gruppo risultato dell’operazione booleana precedente, denotato con r_1,  con GROUP "c".

Le operazioni booleane possono essere eseguite tra gruppi definiti in precedenza  (quelli nominati dopo GROUP con stringa (string expression)  tra virgolette) o tra gruppi risultato di un’ operazione booleana (nominati senza virgolette da carattere alfa-numerico (variable), cioè parametro).

•KILLGROUP g_expr
Toglie dalla memoria i corpi appartenenti al gruppo specificato, svuotando il gruppo, per migliorare le prestazioni del calcolatore, se non più necessari.  Pertanto se vengono definiti gruppi tipo  GROUP “nome” dopo una etichetta (label) ,  scrivere KILLGROUP “nome” impedirà la corretta lettura del contenuto della label nel caso di un richiamo con GOSUB della label stessa dopo RETURN. In un caso siffatto è però possibile utilizzare KILLGROUP per svuotare dalla memoria i risultati delle operazioni (quelli non tra virgolette), che verranno rifatti al richiamo della label.
•SWEEPGROUP (g_expr, x, y, z)
Fornisce un nuovo gruppo realizzato dallo scorrimento del gruppo nominato lungo la direzione del vettore dato.  I modelli utilizzati devono essere solidi.

Come esempi allego un semplice oggetto GDL ricavato da un esercizio nell'istituto d'arte Venturi: per realizzare le visioni PO e PL ho effettuato una rotazione in 3D (si poteva usare anche un diverso indice in project2, ma se non si utilizzano rotazioni e duplicazioni in 3D non è possibile inserire tutte le viste).  Per farlo ho dovuto ripetere lo script dell'oggetto cambiando i nomi ai gruppi.

Se però avessi utilizzato il loop si poteva, probabilmente, non riscrivere l'oggetto. Lascio ai visitatori la sperimentazione.

Riporto invece sempre lo stesso oggetto del post precedente dove ho applicato il loop.

Il terzo oggetto è un altro esercizio di disegno geometrico.

Voglio infine sottolineare il fatto che i programmi 3D rovesciano la metodologia del disegno tradizionale:
infatti si parte dal modello 3D per arrivare alle rappresentazioni 2D. In effetti i "disegni" li costruisce il computer sulla base dei dati 3D. Da un punto di vista didattico ciò è errato: occorre saper interpretare le rappresentazioni 2D per intuire la forma 3D. Naturalmente per un progettista che ha già una visione dello spazio è più comodo ragionare subito sul 3D.
« Ultima modifica: 07 Agosto 2012, 23:41 da marcomasetti »

marcomasetti

  • Newbie
    ...sono qui da poco, il mio miglior amico è il pulsante RICERCA
  • *
  • Post: 183
Re:GROUP ripetuto
« Risposta #1 il: 08 Agosto 2012, 16:36 »
Rispondo a me stesso, inviando lo stesso oggetto a cui ho applicato il concetto: lo script diventa più semplice.
Occorre però togliere i comandi killgroup, altrimenti l'oggetto compare una volta sola.

oneby

  • Newbie
    ...sono qui da poco, il mio miglior amico è il pulsante RICERCA
  • *
  • Post: 177
Re:GROUP ripetuto
« Risposta #2 il: 08 Agosto 2012, 22:59 »
ciao... ma non è piu facile imparare 3d studio max????? e usare 3d studio in???    :wondering:

claudio-aster

  • MODERATOR
    ...non tutti i supereroi indossano il mantello
  • *
  • Post: 880
Re:GROUP ripetuto
« Risposta #3 il: 09 Agosto 2012, 08:10 »
@ oneby



brevemente che dovremmo essere in spiaggia a fare castelli di sabbia...

si credo sia senza dubbio più facile "imparare" il programma che citi, ma devo anche dire che la tua domanda, a mio parere, non è pertinente al topic e probabilmente neppure al forum, che ci azzecca con il GDL il fatto che imparare ad usare questo linguaggio sia più facile o più difficile della acquisizione delle capacità di uso di un programma di modellazione?
Non ti pare che siano "piani" diversi e non congruenti quelli che vorresti paragonare?
Non ti pare che, pure se "inutile", la volontà di verificare alcuni elementi fondamentali di geometria con la possibilità della loro traduzione entro il gdl e di conseguenza entro entro Archicad sia argomento difficilmente reperibile in giro e quindi di grande originalità ed interesse?
ovviamente non è un obbligo seguire le considerazioni ed i suggerimenti di marcomasetti ma questo non toglie che marco habbia il diritto di esprimerli nella sezione appropriata del forum come sta facendo…
Il tuo intervento, oltretutto ripetuto su due topic, lo trovo invece assolutamente fuori luogo e inutile
Claster




oneby

  • Newbie
    ...sono qui da poco, il mio miglior amico è il pulsante RICERCA
  • *
  • Post: 177
Re:GROUP ripetuto
« Risposta #4 il: 09 Agosto 2012, 09:11 »
si certo. hai ragione. è che il gdl......
pero' devo dire cmq complimenti a chi si applica cosi tanto e cerca di migliorare.