AI & GDL

AI archicad GDL

 

Oh, meravigliosa intelligenza artificiale, mostrati in tutta la tua potenza!

Dopo aver visto un impressionante video, in cui si mostrava un’intelligenza artificiale cinese che con pochi prompt creava una app sbalorditiva, ho deciso di mettere alla prova quelle che ormai tutti abbiamo nei nostri browser, per scrivere un semplice oggetto GDL.

Ho quindi aperto Chrome e ho fatto questa domanda a Gemini:

Sono un programmatore e uso il linguaggio GDL di ArchiCAD. Voglio realizzare un oggetto parametrico, puoi aiutarmi a scrivere il codice?

Risposta:

Certamente! Sarò lieto di aiutarti a scrivere il codice GDL per un oggetto parametrico in ArchiCAD.

Per iniziare, avrei bisogno di maggiori informazioni sull'oggetto che desideri creare. Potresti fornirmi una descrizione dettagliata dell'oggetto, delle sue dimensioni, delle sue caratteristiche e di eventuali parametri che desideri controllare?

Ad esempio, se volessi creare un semplice parallelepipedo, potremmo iniziare con questo codice di base:

Snippet di codice


DEFINE PARAMETERS
    Lunghezza = 1.0
    Larghezza = 1.0
    Altezza = 1.0
END DEFINE
BODY
    BLOCK Lunghezza, Larghezza, Altezza
END BODY


Questo codice crea un parallelepipedo con dimensioni predefinite (1 metro per 1 metro per 1 metro). I parametri Lunghezza, Larghezza e Altezza possono essere modificati dall'utente per personalizzare le dimensioni dell'oggetto.

Naturalmente, questo è solo un esempio molto semplice. Per oggetti più complessi, il codice GDL può diventare più elaborato. Potremmo aggiungere ulteriori parametri per controllare altri aspetti dell'oggetto, come il materiale, il colore, la rotazione, ecc.

Inoltre, il GDL offre una vasta gamma di funzioni e comandi che consentono di creare oggetti parametrici altamente personalizzati. Ad esempio, possiamo utilizzare cicli FOR per creare array di oggetti, funzioni matematiche per definire relazioni tra parametri, e comandi grafici per disegnare forme complesse.

Se mi fornisci una descrizione più dettagliata dell'oggetto che vuoi creare, sarò in grado di fornirti un codice GDL più specifico e completo.

Inoltre, se hai già scritto del codice GDL, ma hai bisogno di aiuto per risolvere un problema o aggiungere una funzionalità, non esitare a condividerlo con me. Sarò felice di esaminarlo e offrirti il mio supporto.

Spero di esserti d'aiuto!

 

La forma discorsiva è abbastanza piacevole, e sembra di chattare con qualcuno che sa cosa dice ed è pronto ad aiutarti.

Non dice, ma in effetti io non l’ho chiesto esplicitamente, come fare in pratica per “usare” questo codice. Va bene lo stesso, ci penso io. Apro ArchiCAD e dal menu Archivio>Librerie e Oggetti scelgo il comando NUOVO OGGETTO.

Proviamo a mettere il codice nel TESTO MASTER di un nuovo oggetto e vediamo che cosa succede premendo il pulsante CONTROLLA SCRIPT.

ERRORE alla riga 1

1 Immagine 2025 02 09 095314

In effetti non ho mai saputo dell’esistenza di un comando chiamato DEFINE PARAMETERS, anche se devo precisare che uso una versione obsoleta di ArchiCAD (la 22) e ormai anche io sono piuttosto arrugginito. Vabbè, metto un punto esclamativo davanti al comando (che in GDL vuol dire “Ignora il testo che segue, su questa riga”) e riprovo. Altri 3 errori (e altrettanti punti esclamativi) dopo, lo script di esempio finalmente funziona in tutto il suo splendore.

2 Immagine 2025 02 09 100721

Andiamo a dire a Gemini che cosa vogliamo fare ora. 

Voglio creare una libreria. In pratica uno scaffale formato da due fianchi verticali e una serie di mensole. Lo scaffale è alto 2,40 metri, largo 1,50 e profondo 45 cm. Voglio che le misure siano parametriche e anche il numero di ripiani, variabile da 3 a 10.

Risposta:

Ottimo! Creare una libreria parametrica per uno scaffale è un progetto interessante. Ecco un codice GDL di base per iniziare, con alcune spiegazioni e suggerimenti per personalizzarlo ulteriormente:

Snippet di codice


DEFINE PARAMETERS
    Lunghezza = 1.50 ' Lunghezza scaffale (metri)
    Profondita = 0.45 ' Profondità scaffale (metri)
    Altezza = 2.40 ' Altezza scaffale (metri)
    SpessoreFianchi = 0.03 ' Spessore fianchi (metri)
    SpessoreMensole = 0.02 ' Spessore mensole (metri)
    NumeroRipiani = 5 ' Numero ripiani (da 3 a 10)
END DEFINE
' Calcolo automatico della distanza tra i ripiani
DistanzaRipiani = (Altezza - SpessoreMensole * NumeroRipiani) / (NumeroRipiani + 1)
BODY
    ' Fianco sinistro
    BLOCK SpessoreFianchi, Profondita, Altezza
    ' Fianco destro (traslato in larghezza)
    ADD Lunghezza - SpessoreFianchi, 0, 0
    BLOCK SpessoreFianchi, Profondita, Altezza
    ' Mensole
    FOR i = 1 TO NumeroRipiani
        ' Posiziona la mensola in altezza
        AltezzaMensola = i * (DistanzaRipiani + SpessoreMensole)
        ADD 0, 0, AltezzaMensola
        BLOCK Lunghezza, Profondita, SpessoreMensole
    NEXT i
END BODY


Spiegazione del codice

DEFINE PARAMETERS: Definisce i parametri personalizzabili dall'utente, come dimensioni, spessori e numero di ripiani.

Calcolo DistanzaRipiani: Calcola automaticamente la distanza tra i ripiani in base all'altezza totale, al numero di ripiani e allo spessore delle mensole.

BODY: Contiene la descrizione geometrica dell'oggetto.

Fianchi: Crea due blocchi verticali per i fianchi, uno a sinistra e uno a destra (traslato in larghezza).

Mensole: Utilizza un ciclo FOR per creare le mensole. Per ogni mensola:

Calcola l'altezza della mensola in base alla sua posizione.

Posiziona la mensola all'altezza calcolata.

Crea un blocco per la mensola.

Suggerimenti e personalizzazioni

Materiali: Aggiungi parametri per definire i materiali di fianchi e mensole, utilizzando il comando MATERIAL.

Posizionamento: Puoi controllare il posizionamento dell'oggetto nel modello utilizzando le coordinate x, y, z.

Rotazione: Aggiungi parametri per controllare la rotazione dell'oggetto attorno agli assi x, y, z utilizzando il comando ROTATE.

Ulteriori dettagli: Aggiungi dettagli come zoccoli, cornici o altri elementi decorativi.

Condizioni: Utilizza istruzioni IF per definire comportamenti diversi in base ai parametri (ad esempio, se il numero di ripiani è pari o dispari).

Come utilizzare il codice

Apri l'editor GDL in ArchiCAD.

Copia e incolla il codice nell'editor.

Modifica i parametri secondo le tue esigenze.

Salva l'oggetto GDL.

Inserisci l'oggetto nel tuo progetto ArchiCAD.

Spero che questo codice ti sia utile per iniziare a creare la tua libreria parametrica. Se hai domande o bisogno di aiuto per personalizzare ulteriormente il codice, non esitare a chiedere!

 

Io non gli ho fatto notare gli errori quindi, come mi aspettavo, ha rimesso DEFINE PARAMETERS, END DEFINE, BODY, END BODY (a cui antepongo subito il punto esclamativo, come fatto in precedenza).

Per il resto, buona la spiegazione di quello che ha fatto, ottima la presenza di suggerimenti ulteriori, e benino anche la sezione “come utilizzare il codice”. Molto chiara anche la formattazione di tutto l’output (che qui non ho rispettato del tutto)

Noto subito che ha inserito anche una serie di commenti (sempre utilissimi) all’interno dello script. Purtroppo come carattere separatore, ha usato l’apostrofo (che si usa in altri linguaggi) al posto del punto esclamativo che usa il GDL.

Provvedo a usare il comando “Trova e sostituisci” per cambiare tutti gli apostrofi con altrettanti punti esclamativi.

3 Immagine 2025 02 09 104752

Ottimo. Ora il controllo sintattico mi dice che non ci sono errori e lo script può essere interpretato.

4 Immagine 2025 02 09 105201

Purtroppo, l’intelligenza artificiale ha dimenticato di usare l’istruzione DEL per annullare gli spostamenti quindi la posizione di ogni singolo elemento è relativa all’elemento precedente, anziché riferirsi a un’origine comune.

Provo a farglielo notare, anzi a suggerirgli direttamente la correzione…

Va abbastanza bene, ma gli elementi non hanno la posizione corretta. Considera la possibilità di usare il comando DEL per riportare l'origine al punto di partenza, dopo aver usato il comando ADD

Risposta:

Hai ragione! L'uso del comando ADD sposta l'origine del sistema di coordinate, quindi le mensole non vengono posizionate correttamente. Per risolvere questo problema, possiamo utilizzare il comando DEL per riportare l'origine al punto di partenza dopo aver disegnato ciascun elemento.

Ecco il codice corretto:

Snippet di codice


DEFINE PARAMETERS
    Lunghezza = 1.50 ' Lunghezza scaffale (metri)
    Profondita = 0.45 ' Profondità scaffale (metri)
    Altezza = 2.40 ' Altezza scaffale (metri)
    SpessoreFianchi = 0.03 ' Spessore fianchi (metri)
    SpessoreMensole = 0.02 ' Spessore mensole (metri)
    NumeroRipiani = 5 ' Numero ripiani (da 3 a 10)
END DEFINE
' Calcolo automatico della distanza tra i ripiani
DistanzaRipiani = (Altezza - SpessoreMensole * NumeroRipiani) / (NumeroRipiani + 1)
BODY
    ' Fianco sinistro
    BLOCK SpessoreFianchi, Profondita, Altezza
    ' Fianco destro
    ADD Lunghezza - SpessoreFianchi, 0, 0
    BLOCK SpessoreFianchi, Profondita, Altezza
    DEL Lunghezza - SpessoreFianchi, 0, 0 ' Riporta l'origine al punto di partenza
    ' Mensole
    FOR i = 1 TO NumeroRipiani
        ' Posiziona la mensola in altezza
        AltezzaMensola = i * (DistanzaRipiani + SpessoreMensole)
        ADD 0, 0, AltezzaMensola
        BLOCK Lunghezza, Profondita, SpessoreMensole
        DEL 0, 0, AltezzaMensola ' Riporta l'origine al punto di partenza
    NEXT i
END BODY


Spiegazione delle modifiche

DEL: Dopo aver disegnato il fianco destro e ogni mensola, ho aggiunto il comando DEL per riportare l'origine del sistema di coordinate al punto di partenza. In questo modo, il prossimo elemento verrà disegnato nella posizione corretta.

Con questa correzione, le mensole dovrebbero essere posizionate correttamente all'interno dello scaffale.

Spero che questo codice funzioni correttamente per te. Se hai ancora problemi o domande, non esitare a chiedere!

 

Bene, ma non benissimo. Quella usata non è la sintassi giusta del comando DEL, che richiede un numero (quante operazioni di spostamento annullare) o la parola chiave TOP, per annullare tutti gli spostamenti in una volta sola. In questo caso (oltre alle modifiche fatte in precedenza) provvedo a sostituire le istruzioni che ha aggiunto, con un più corretto DEL 1.

5 Immagine 2025 02 09 111105

Ci siamo! L’intelligenza artificiale e quella naturale, lavorando insieme, sono riuscite a fare un oggetto che funziona. Togliendo da questo script i parametri, e mettendoli nella lista Parametri, otteniamo effettivamente un oggetto parametrico che funziona, anche se, a dirla tutta, i ripiani si conficcano nei fianchi in modo poco elegante…

6 Immagine 2025 02 09 112229

 

Bene. Adesso vediamo come va, se faccio esattamente la stessa richiesta a Copilot, l’AI di Microsoft che troviamo in Edge.

Sono un programmatore e uso il linguaggio GDL di ArchiCAD. Voglio realizzare un oggetto parametrico, puoi aiutarmi a scrivere il codice?

Risposta:

Certo, posso aiutarti a scrivere il codice per un oggetto parametrico in GDL per ArchiCAD. Potresti dirmi quale tipo di oggetto vuoi creare e quali parametri desideri che siano personalizzabili? Questo mi aiuterà a capire meglio le tue esigenze e a fornirti un codice più appropriato. 

 Molto più stringato, rispetto a Gemini, ma tutto sommato va bene, visto che ancora non gli ho detto cosa voglio.

Voglio creare una libreria. In pratica uno scaffale formato da due fianchi verticali e una serie di mensole. Lo scaffale è alto 2,40 metri, largo 1,50 e profondo 45 cm. Voglio che le misure siano parametriche e anche il numero di ripiani, variabile da 3 a 10.

Risposta:

Perfetto, posso aiutarti a creare il codice GDL per una libreria parametrica. Ecco un esempio di come potrebbe essere il codice:

GDL


! Definizione delle variabili parametriche
DEFINE LIB_Version "ArchiCAD 24"
MASTER_SCRIPT
DIM _ripiani_count
PARAMETERS A=1.5, B=2.4, C=0.45, _ripiani_count=5
! Main script
MAIN
_shelf_height = B / (_ripiani_count + 1)
! Creazione dei fianchi verticali
BLOCK C, A, B
! Creazione delle mensole
FOR i=1 TO _ripiani_count
ADDz i * _shelf_height
BLOCK C, A, 0.02
DEL 1
NEXT i
END


In questo script:

A, B e C sono i parametri per la larghezza, l'altezza e la profondità della libreria rispettivamente.

_ripiani_count è il parametro per il numero di ripiani, variabile da 3 a 10.

Il ciclo FOR crea i ripiani alla distanza corretta l'uno dall'altro.

Puoi copiare questo codice in ArchiCAD e modificarlo secondo le tue esigenze specifiche. Fammi sapere se hai bisogno di ulteriori personalizzazioni o se ci sono altri aspetti che desideri esplorare!

Anche in questo caso nella risposta c’è una formattazione che aiuta a distinguere i riferimenti al codice, anche se le spiegazioni sono ridotte all’osso.

Creo un nuovo oggetto in ArchiCAD e copio lo script nel Testo Master.

Questa volta ci sono i commenti correttamente preceduti da punto esclamativo, ma comunque il primo errore è già lì alla riga 2.

7 Immagine 2025 02 09 114050

Mai sentito un comando DEFINE LIB_version. Certo, potrebbero averlo introdotto in versioni più recenti rispetto alla mia, ma non trovo nessun riferimento neanche cercando online. Poi c’è “MASTER_SCRIPT” che magari è un’indicazione su dove inserire il codice… in ogni caso non è un’istruzione valida.

Anche l’istruzione MAIN non esiste nel GDL, e l’istruzione DIM ha qualcosa che non va. Dovrebbe servire per creare una matrice, cioè una serie di valori correlati (es. la quota di ogni ripiano). Analizzando tutto lo script noto che non viene utilizzata, o almeno non come matrice, quindi decido di eliminarla insieme alle precedenti istruzioni “inventate”.

Usando ancora la funzione “Controlla script” mi segnala un errore alla riga 9, dicendo che la variabile _shelf_Height non è definita. Certo, l’istruzione PARAMETERS con cui assegna un valore alle variabili funziona solo se quei parametri sono presenti nella lista Parametri dell’oggetto.

Allora, per adesso mettiamoli scritti in forma esplicita in questo script.

8 Immagine 2025 02 09 120230

Finalmente il testo è privo di errori. O almeno di errori di sintassi, visto che l’anteprima dell’oggetto mostra solo un blocco solido. In effetti analizzando il codice, dove dice “Creazione dei fianchi verticali” vedo che c’è un “fianco” solo e per di più grande quanto l’intera libreria… a questo punto vado a dirglielo!

Nel tuo codice non vengono generati due fianchi, ma solo uno, largo quanto l'intera libreria. puoi correggere questo errore, creando due fianchi distinti, dello spessore di 3 cm?

Risposta:

Hai ragione, grazie per averlo segnalato. Ecco il codice aggiornato che crea due fianchi distinti dello spessore di 3 cm:

GDL


! Definizione delle variabili parametriche
DEFINE LIB_Version "ArchiCAD 24"
MASTER_SCRIPT
DIM _ripiani_count
PARAMETERS A=1.5, B=2.4, C=0.45, _ripiani_count=5, _spessore_fianchi=0.03
! Main script
MAIN
_shelf_height = B / (_ripiani_count + 1)
! Creazione dei fianchi verticali
ADDx _spessore_fianchi / 2
BLOCK C, _spessore_fianchi, B
DEL 1
ADDx (A - _spessore_fianchi)
BLOCK C, _spessore_fianchi, B
DEL 1
! Creazione delle mensole
FOR i=1 TO _ripiani_count
ADDz i * _shelf_height
ADDx _spessore_fianchi
BLOCK C, (A - 2 * _spessore_fianchi), 0.02
DEL 2
NEXT i
END


In questo aggiornamento:

_spessore_fianchi è il parametro per lo spessore dei fianchi, impostato a 3 cm (0.03 metri).

Sono stati aggiunti due BLOCK per creare i fianchi a sinistra e a destra della libreria.

Le mensole sono state modificate per adattarsi alla larghezza tra i fianchi.

Prova a inserire questo codice in ArchiCAD e fammi sapere se ci sono altre modifiche o miglioramenti necessari!

 

La “reazione” è molto umana… sembra di sentirlo dire “caspiterina, che sciocco sono stato!”.

Anche la descrizione delle modifiche la giudico positivamente, con una modifica non richiesta esplicitamente, ma necessaria, alla larghezza dei ripiani.

Bene, rifaccio le solite modifiche e mi accingo a testare l’oggetto.

9 Immagine 2025 02 09 163137

Buone le intenzioni, ma con il risultato non ci siamo. I fianchi si allineano lungo l’asse X, mentre le mensole vanno in direzione Y.

10 Immagine 2025 02 09 163538

La posizione del primo fianco è spostata in direzione X di mezzo spessore (perché?). Le mensole  sono scostate correttamente di uno spessore intero, ma nella direzione sbagliata.

Mosso a compassione (o stressato a sufficienza) decido di sostituire tutti gli ADDx con altrettanti ADDy. Scelgo comunque di non correggere lo spostamento del fianco sinistro.

Alla fine funziona, ma che fatica!

Da notare, e forse è un caso, ma chissà!, che entrambi i miei assistenti hanno deciso, da soli, di fare i ripiani di due centimetri di spessore, e di metterne 5. Io avevo detto “fra 3 e 10” e mi sarei aspettato un numero più centrale, 6 o 7.

Infine ho provato a sovrapporre i due oggetti, per vedere se c’erano differenze cha a prima vista sfuggivano, e in effetti qualcosa c’è.

11 Immagine 2025 02 09 170450

A parte il fianco spostato di 1,5 cm, i due programmi utilizzano calcoli diversi per determinare la posizione delle mensole. Nessuno dei due ha un metodo corretto per ottenere spazi tutti uguali, non solo fra i singoli ripiani, ma anche fra il primo ripiano e il pavimento, ma Copilot (verde) ci prova prendendo in considerazione lo spessore dei ripiani, mentre Gemini (rosso) lo trascura.

La differenza diventa evidente esagerando lo spessore dei ripiani. Nel caso di Gemini c’è anche il parametro apposito, mentre con Copilot si deve intervenire sul numero (0.02) scritto direttamente nell’istruzione BLOCK.

12 Immagine 2025 02 09 172443

Conclusioni? Certamente è solo un esempio ed è un po’ poco per trarre conclusioni degne di essere prese in considerazione, ma l’impressione è che sia ancora presto per utilizzare questi strumenti nella scrittura di oggetti parametrici per ArchiCAD. Io ho una discreta conoscenza del linguaggio GDL, e sono stato in grado di individuare e correggere diversi errori, cosa non semplice per un principiante.

Consideriamo inoltre che l'oggetto creato così, senza altre aggiunte, è del tutto privo di un simbolo in pianta. Quindi assolutamente invisibile e non selezionabile... poco male. Diciamo che si può risolvere aggiungendo una riga con il comando PROJECT2 3,270,2 alla fine dello script, prima dell'istruzione END, se presente (è opzionale).

Vista la relativa semplicità del compito richiesto, e l'esiguo numero di istruzioni (tolta la definizione dei parametri e i commenti, ci sono solo una quindicina di comandi), il numero di errori riscontrati è decisamente troppo alto. E' vero che ci sono intelligenze artificiali specifiche, dedicate alla programmazione ("ovviamente" in altri linguaggi), ma io ho voluto provare appositamente ad usare quelle che un po' tutti abbiamo a portata di mano, per verificare se un "utente medio" di ArchiCAD potesse utilizzarle per crearsi così, al volo, un oggetto di cui potrebbe avere bisogno. In questa ottica, la risposta è NO.

Lo sviluppo delle AI è però così veloce che queste valutazioni valgono solo per il “qui e adesso” in cui sono state scritte.

-- Roberto Corona -- 

Scontornando - Oggetti sagomati con texture

In questo breve articolo vedremo come sia possibile realizzare un oggetto sagomato al quale applicare con precisione una determinata texture. Per intenderci, si tratta di elementi simili ai classici "Alberi Bruno" presenti da diverse versioni nella libreria italiana, ed analoghi a quelli ottenibili in modo semiautomatico anche con alcuni Add-on Cigraph, come ArchiPaint e ArchiFaçade. 
I passi necessari per costruire tali oggetti sono pochi e piuttosto semplici.

La prima cosa da fare è importare l'immagine in Pianta utilizzando lo strumento Figura. Utilizzate i campi Dimensione Figura per assegnare all'elemento rappresentato le sue misure reali. Prendete nota del nome del file e delle dimensioni X e Y dell'immagine, perché questi elementi verranno utilizzati anche nella creazione dell'oggetto GDL. Posizionatela in Pianta, con l'angolo inferiore sinistro sull'origine.

 

 

 

Con lo strumento Solaio ripassate i contorni del soggetto. È consigliabile, anche se non indispensabile, assegnare al solaio uno spessore minimo (non zero). Potete realizzare anche lati curvi, che comunque verranno automaticamente segmentati con una risoluzione standard (36).

 
 
 
In Modello/Settaggi Proiezione 3D scegliete una vista assonometrica di tipo "Fronte" impostando l'azimuth a 90°.
 
 

Con la finestra 3D in primo piano, scegliete il comando Registra come, dal menu Archivio, e registrate l'elemento in formato Oggetto ArchiCAD (*.gsm).

Nel dialogo successivo, accertatevi di selezionare l'opzione Testo GDL editabile

 
 
 
Aprite l'oggetto, con il comando Archivio/Librerie e Oggetti/Apri Oggetto.
 
 
 

 

Nella finestra principale troverete i tre parametri AB e ZZYZX, che riportano i valori dimensionali dell'elemento.

Passate al Testo GDL 3D ed inserite all'inizio dello script le due righe seguenti:

DEFINE TEXTURE  "radar" "tigra_blu", a, zzyzx, 1, 0
DEFINE MATERIAL "radar" 22, 0.5, 0.5, 0.5, 0, 10, IND(TEXTURE, "radar")

Ovviamente al posto di "tigra_blu" dovrete usare il nome del documento con la vostra immagine (non occorre indicare l'estensione del file). Come per tutte le textures, è indispensabile che il file si trovi all'interno delle librerie caricate, altrimenti ArchiCAD non sarà in grado di utilizzarlo. 
I parametri a e zzyzx, nella prima istruzione, possono essere utilizzati solo se l'ingombro del soggetto corrisponde alla dimensione dell'immagine. Se l'immagine è più lunga o più alta dell'oggetto scontornato, occorrerà usare le misure immesse nei campi Dimensione del dialogo Settaggi Figura

 

Se volete definire un colore diverso dal grigio, modificate i tre valori 0.5 dell'istruzione
 

 

DEFINE MATERIAL "radar" 22, 0.5, 0.5, 0.5, 0, 10, IND(TEXTURE, "radar")

 

Questi rappresentano le componenti cromatiche rgb (rosso, verde e blu) del materiale. Per fare un esempio, i valori 100, generano un materiale rosso (100% di rosso, 0% di verde, 0% di blu).

 

L'oggetto normalmente apparirà specchiato, o meglio "visto da dietro". È possibile evitarlo, inserendo un segno meno davanti al parametro A dell'istruzione "MULx" che trovate all'inizio dello script:

 

MULX    -A/ 3.92

 

e cancellando l'istruzione "ADDx" che si trova poco oltre.
In alternativa potete iniziare direttamente con un'immagine specchiata, barrando l'apposita casella nel dialogo Settaggi Figura.

 

Per completare l'elemento potete tornare in Pianta, selezionare l'immagine e usare il comando Copia. Aprite poi la finestra Anteprima dell'Oggetto e incollate la figura.

 

Utilizzando questa tecnica potrete facilmente creare una serie di elementi di ambientazione, traendoli da fotografie dell'ambiente reale, per rendere più efficaci i vostri rendering: potrete inserire rapidamente gli alberi, gli edifici, i monumenti circostanti, e realizzare delle viste 3D sufficientemente credibili senza dover modellare più del necessario, o avventurarvi in complessi fotomontaggi.

 

Scorrete il testo fino in fondo e, prima dell'ultima istruzione BODY -1 inserite le seguenti 5 righe:

 

VERT 0, 0, 0
VERT 1, 0, 0
VERT 0, 1, 0
VERT 0, 0, 1
COOR 257, -1,-2,-3,-4

 

Ora non resta che trovare l'istruzione cPRISM_ e sostituire il materiale originale con "radar". La riga corrispondente dovrà cioè essere come la seguente:

 

cPRISM_ "radar", "radar", "radar",

 

A questo punto l'oggetto è terminato, ed è possibile registrarlo. Nelle viste 3D in modalità Ombreggia, con motore interno, si vedrà solo una sagoma di colore grigio, mentre con l'OpenGL e nel FotoRendering si otterrà la texture contenuta nell'immagine.

 

 

 

Rotazione di un oggetto 3d nello spazio

Uno dei tanti pregi di ArchiCAD è quello di poter assemblare, con i suoi strumenti base, degli oggetti  del tutto nuovi ed unici da poter salvare ed utilizzare proprio come normalissimi oggetti gsm. Ma se volessimo ruotare il nostro nuovo oggetto secondo uno dei tre assi? O, magari, inclinarlo parzialmente?  Basterà “sfiorare” il linguaggio gdl inserendo solo un paio di comandi.

Supponiamo di dover realizzare un logo da inserire nell’insegna della ditta che ci ha commissionato il lavoro.  Apriamo il file costituito da sole linee che rappresenta la forma e le parole del logo da realizzare.

 

Selezioniamo lo strumento “Solaio” e gli diamo lo spessore che vogliamo abbia il nostro logo-insegna

 

poi con “Spazio + click”, cliccando all’interno della figura, realizziamo il nostro oggetto

 

Usando lo strumento solaio otterremo un solaio ….ed il nostro oggetto è bello che sdraiato a terra.

Ma noi vogliamo ottenere un’insegna non un tappeto, quindi dobbiamo mettere in piedi il nostro logo.  Andiamo nei “Settaggi proiezione 3D” dal menu “Modello” (basta anche “Crtl + 1”); scegliamo “Settaggi Proiezioni Parallele” e poi la vista frontale con “Azimuth” a 270°

 

 

….ottenendo, così, una vista parallela che ci farà vedere solo lo spessore del nostro oggetto.

 

Adesso andiamo direttamente sul menu “Archivio – Oggetti GDL – Salva Modello 3D come…” e lo salviamo come oggetto con “Testo GDL editabile”

 

Andiamo sul menu “Archivio – Oggetti GDL – Apri oggetto…” ed apriamo l’oggetto appena salvato.

 

Ci apparirà così questa finestra:

 

Clicchiamo per due volte sul tasto “Nuovo” facendo apparire due nuovi comandi.

 

Nella colonna “Tipo” di entrambi i comandi andiamo a scegliere l’icona “Angolo”.

 

Nella colonna “Variabile” inseriamo nella prima riga “girax” e nella seconda “giraz” mentre nella colonna “Nome” il nome che vogliamo dare ai nostri comandi; logicamente sarebbe giusto scrivere “Rotazione X” e “Rotazione Z” ma si poò scrivere qualsiasi cosa.

 

Adesso clicchiamo sulla finestra bianca accanto il tasto“Testo GDL 3D”  che ci farà apparire la finestra con le righe di comando.

 

Inseriamo, all’inizio del testo, 2 nuove righe di comando: “ROTX girax” e “ROTZ giraz”

NB:    E’ IMPORTANTE CHE RISPETTIATE LE MAIUSCOLE E GLI SPAZI VUOTI

 

 

Chiudiamo la finestra e del “Testo GDL 3D” e clicchiamo sulla finestra bianca accanto il tasto “Testo GDL 2D” e scriviamo all’interno della finestra bianca il seguente comando: “PROJECT2 3,270,2”

Questo ci permetterà si allineare perfettamente gli Hotspots all’oggetto che abbiamo creato.

 
 
 

Adesso possiamo finalmente chiudere la nostra finestra salvando l’oggetto modificato.

Il nostro nuovo oggetto sarà immediatamente disponibile nelle librerie caricate di ArchiCAD e presenterà solo due comandi nella lista dei parametri: le due rotazioni che abbiamo inserito.

Adesso possiamo inserire i valori delle rotazioni che vogliamo rispetto ai nostri angoli di rotazione.

 

 

Buon lavoro e buon divertimento a tutti!

 

Questo muro farà strada ...

Sfruttare le caratteristiche di ArchiCAD 8 o 9 per realizzare un tracciato stradale che si sviluppa su un terreno. Ecco la premessa per questo piccolo esercizio, che si può riasssumere in pochi semplici passi.

1. Realizzato il terreno, utilizzando lo Strumento Mesh

 

 

2. Tracciate l'asse stradale con le linee. Potrete usare lo strumento Polilinea, che permette di creare segmenti lineari e curvi senza cambiare strumento, oppure semplici linee da accorciare, anche tutte insieme, con il comando Arrotonda.

 

3. Impostate un muro di larghezza adeguata. Scegliete il metodo con linea di costruzione al centro. La base del muro deve trovarsi ad una quota inferiore rispetto al punto più basso del terreno, mentre la sua sommità deve essere a quota superiore rispetto al punto più alto del terreno.

 

4. Usate la Bacchetta Magica per costruire il muro lungo l'intero tracciato stradale. Potrete poi selezionare tutti i muri e raggrupparli, così in seguito sarà più facile selezionarli tutti insieme.

 

5. Per fare in modo che il tracciato stradale termini esattamente sul bordo del terreno, potete aggiungere un segmento di muro lungo il confine. Questo muro dovrà essere posto su un lucido che renderete poi invisibile. ArchiCAD 8 (e 9) mantiene la legatura anche con elementi non visibili, purchè il numero di priorità di intersezione dei relativi lucidi sia uguale.

 
 
 

6.Selezionate il terreno e createne una copia, ad una quota leggermente superiore. Il sistema più semplice può essere l'utilizzo del comando Moltiplica, scegliendo l'opzione Eleva (ad esempio di 30 cm). Per distinguere le due Mesh, che planimetricamente coincidono, potete spostare un nodo della copia in un punto che non influisce sul tracciato stradale.

 
 
 
7.Selezionate la copia e ponetela su un lucido separato. Questo lucido può essere impostato in modalità Filo di Ferro.
 
 
8. È il momento di utilizzare le Operazioni con gli Elementi Solidi (Booleane). Impostate i muri come Obiettivo e il terreno duplicato (quello a quota più elevata) come Operatore, poi eseguite una Operazione di Intersezione. Per poter essere usate nelle operazioni booleane, le Mesh devono essere di tipo "solido". Resterà visibilie, nel 3D, solola parte di muro che si trova all'interno di questa Mesh.
 
 
 

9.Ancora una Operazione con gli Elementi Solidi: impostate sempre i muri come Obiettivo e il terreno (questa volta l'originale e non la copia) come Operatore. L'operazione da eseguire è una sottrazione con estrusione inferiore. La parte inferiore dei muri verrà eliminata, con un andamento parallelo al corrispondente taglio superiore.

 
 
 
 
10.Potete nascondere il lucido contenente la copia del terreno ed osservare il risultato. Tutto qui.
 
 
 
 

Resta da dire che, ovviamente, si tratta solo di elementi che aiutano a rappresentare il progetto, non si tratta di una vera strada. I nostri muri seguono semplicemente l'andamento del terreno, mentre una strada dovrebbe avere, come minimo, una sezione trasversale sempre orizzontale ... ma per gli usi normali, può essere sufficiente. Altrimenti sarà meglio procurarsi un idoneo Add-on, ad esempio ArchiTerra 2 (vedi sezione add-on di questo sito) Possiamo ancora dire che l'aspetto grafico del 2D può essere migliorato, realizzando un muro composto di tipo adeguato (Opzioni/Strutture composte). In questo modo si può avere la divisione in carreggiate ed eventualmente in corsie, marciapiedi, ecc. L'utilizzo del muro, per creare la strada, permette di ottenere in modo molto semplice un elemento di larghezza costante. La legatura automatica dei muri facilita inoltre la realizzazione di intersezioni stradali, mentre eventuali raccordi, piazzole, o altre situazioni speciali possono essere risolte con il Muro Poligonale. In quest'ultimo caso, però, non si potrà usare la struttura composta, e sarà necessario ritoccare l'aspetto grafico utilizzando linee e retini.

... E se volessimo avere una differenziazione delle corsie anche nel 3D?

 

 

Ovviamente ci vuole un po' di lavoro in più, ma non c'è niente di difficile. Occorre ripartire dal 2D, dopo aver eseguito i passi da 1 a 7. Realizzate la strada con un muro composto, usando il numero di strati desiderato (es. 5: una linea bianca centrale, due corsie nere, due linee bianche laterali). Selezionate tutti i Muri e scegliete il comando Esplodi. In questo modo i muri vengono scomposti in linee e retini. Quindi, usando la Bacchetta Magica, utilizzate le nuove linee, generate dall'esplosione, per creare altrettanti muri (con linea di costruzione laterale, questa volta), ai quali assegnare i materiali idonei per ottenere le viste 3D a colori. Questi nuovi muri, ovviamente, dovranno essere tutti sottoposti alle operazioni booleane, come visto ai punti 8 e 9.

 

Who's Online

We have 682 guests and no members online

Utenti iscritti al sito

90361