Nel suo articolo sulla scala con le Mesh (nel numero 27 di M/A Relais a pag. 4) Fabrizio Diodati accenna alla possibilità di usare il comando bprism_ per creare un parapetto che si sviluppa con pianta circolare incrementando la sua altezza. Poiché l'articolo è dedicato a sviscerare le potenzialità dello strumento Mesh, Fabrizio tralascia di approfondire le opportunità offerte dal comando bprism_: cercherò di farlo io in queste due pagine. Questo comando è facile da usare e ricco di risultati possibili. Da quando uso ArchiCAD mi sono formato la convinzione che la sua logica di costruzione è molto vicina a quella di chi fa un plastico: prima preparo l'elemento con le sue caratteristiche e poi lo metto al suo posto. Il comando bprism_ non si sottrae a questa regola. Estensione del più semplice prism_ (estrusione in direzione z di un poligono chiuso disegnato sul piano xy) il comando bprism_ riproduce, in analogia con il plastico, l'operazione di tagliare un cartoncino nella forma richiesta (prism_) per poi curvarlo (in inglese il verbo è to bend da cui il prefisso b davanti a prism: il bprism_ è un prism piegato, curvato).
Vediamo nel manuale i dati richiesti: bprism_ topmat, botmat, sidemat, n, h, radius, x1,y1,mask1,...,xn,yn,maskn.
Nella prima riga devono essere indicati i materiali delle facce del prism_. nella seconda riga troviamo: n=numero dei nodi del bprism_; h=spessore di estrusione; radius=raggio di curvatura. Nella terza riga sono specificate le coordinate dei nodi ognuna delle quali è seguita dal proprio codice di mask per il quale vi rimando all'esauriente articolo di Avelino De Sabbata nel numero 11 di M/A Relais. Prendendo ispirazione dal tema di partenza dei parapetti circolari con altezza crescente vediamo di costruire un bprism_ parametrico che possa servire a quello scopo; vedremo poi che può essere utile anche per altri utilizzi.
Il prospetto, sviluppato linearmente, di un parapetto curvo potrebbe avere una forma generica del tipo rappresentato qui sopra. Il disegno corrisponde sostanzialmente ad un muro che cresce in altezza a mano a mano che si sviluppa con andamento circolare. Alle coordinate dei nodi assegnamo dei valori esprimendoli già in forma parametrica:
X1,Y1=0,0
assegnamo valore zero sia alla x che alla y in modo che l'oggetto parta comunque dall'origine;
X2,Y2=l,afi
dove la variabile "l" esprime la lunghezza dello sviluppo lineare dell'oggetto, e la variabile "afi" (altezza finale inferiore) ci consente di spostare verticalmente quel punto e modificare quindi la forma del parapetto; nel disegno di partenza la variabile afi avrà valore zero;
X3,Y3=l,zzyzx
della variabile "l" abbiamo già detto; l'ordinata Y3 corrisponderà, nel risultato finale, all'altezza globale dell'oggetto e le assegnamo quindi il nome "zzyzx" (a questo proposito si veda l'appunto " per chi non lo sapesse" in fondo a questo tutorial);
X4,Y4=0,ais
la variabile "ais" (altezza iniziale superiore) ci consente di indicare un'altezza iniziale di parapetto diversa da zero. Se vogliamo avere un parapetto di sezione costante in altezza assegneremo alla variabile afi il valore dell'altezza globale meno il valore dell'altezza iniziale superiore.
Chiamiamo mi, me, ms, i materiali relativi alle facce interna, esterna e di spessore del bprism_, s lo spessore e r il raggio. Con queste impostazioni il testo che andremo a riprodurre nella finestra Testo GDL 3D dell'oggetto sarà il seguente:
bprism_ mi,me,ms,
4,s,r,
0,0,15,
l,afi,15,
l,zzyzx,15,
0,ais,15
Nella Finestra di dialogo principale di creazione dell'oggetto avremo opportunamente inserito le variabili ed i nomi, ad esempio come nella figura qui sopra. Se richiamiamo una vista 3D noteremo che esso si presenta come "coricato": l'oggetto infatti nasce sul piano xy e ruota attorno ad un asse che è parallelo all'asse y e distante r da esso. Chi frequenta, anche poco, il GDL sa che è sufficiente inserire l'istruzione rotx 90 prima del testo sopra scritto per rimettere in piedi l'elemento. Possiamo aggiungere anche un parametro relativo alla risoluzione: chiameremo la variabile ri nel testo e scriveremo Risoluzione (per le specifiche di utilizzo della direttiva RESOL si rimanda alla pagina 143 del Manuale GDL della versione 6.0) nel campo destinato al Nome nella Finestra di dialogo principale dell'oggetto.
Il testo sarà quindi:
resol ri
rotx 90
bprism_ mi,me,ms,
4,s,r,
0,0,15,
l,afi,15,
l,zzyzx,15,
0,ais,15
Apriamo ora la finestra Testo GDL 2D e scriviamo:
project2 3,270,1
hotspot2 0,0
hotspot2 0,r
assegnando, ad esempio, i valori della finestra di dialogo rappresentata qui sopra otteniamo un 3D come questo qui sotto.
Se poi modifichiamo il valore della Lunghezza da 3 a 12 metri vediamo come l'oggetto sia in grado di attorciliarsi in spirale senza limiti; se modifichiamo ora anche i valori delle altezze (Iniziale Superiore e Finale Inferiore) potremo ottenere qualcosa che assomiglia ad una molla.
Oppure potremmo cercare di riprodurre un disegno analogo a quello dell'ispirazione di partenza, semplicemente intervenendo sull'Altezza Finale Inferiore alla quale assegneremo valore zero ottenendo un modello come questo.
Oppure ancora, intervenendo sullo spessore e sulle altezze ottenere qualcosa che ci potrebbe tornare utile per fare una rampa di un garage, per esempio.
Tutto ciò con sole 8, diconsi otto, righe di testo GDL, tra parentesi. Ovviamente si possono ottenere buoni risultati anche usando un metodo misto grafico+GDL soprattutto se abbiamo a che fare con prospetti di sviluppi lineari di forma più articolata, come, per esempio, quello qui sotto.
La mancanza di spazio mi impedisce di approfondire la modalità mista (grafica+GDL) per l'ottenimento della figura, ma se vi interessa che venga spesa qualche altra parola sull'argomento fatemelo sapere, lo farò con piacere.
Per chi non lo sapesse...
Definire la variabile relativa all'altezza globale dell'elemento "zzyzx" produce la creazione di un campo ulteriore nella finestra di utilizzo dell'oggetto, campo relativo ovviamente proprio all'altezza dell'oggetto.