Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin
Captulo 1: Introduccin
Captulo 1: Introduccin
Tambin debera familiarizarse con las dimensiones tpicas y parmetros adicionales de los objetos de biblioteca. Todos ellos pueden modificarse a fin de ajustar los objetos a sus necesidades.
Captulo 1: Introduccin
Bibliotecas Complementarias
Existen diversas bibliotecas para diferentes usos tanto desde Graphisoft (la Coleccin Graphisoft) y distribuidores locales (bibliotecas de personas, letras 3D, mobiliario de diseo, etc).
StairMaker
StairMaker de Graphisoft es una utilidad de ArchiCAD con la que tiene acceso a una sofisticada biblioteca de objetos que le provee de varios modelos de escaleras que podr ajustar a sus necesidades modificando sus parmetros.
Captulo 1: Introduccin
Captulo 1: Introduccin
Tracera de una ventana Gtica modelada con cubiertas y forjados Si guarda elementos del plano de planta como un script GDL, la complejidad del script resultante depende del tipo de elemento que haya usado. Para informacin detallada sobre los objetos de biblioteca derivados desde un plano de planta de ArchiCAD, refirase a los captulos GDL creado desde el plano de planta y Crear objetos en ArchiCAD en el Apndice B.
Escritura en GDL
Si quiere ir ms all de todas las posibilidades anteriores, o si necesita objetos de biblioteca cuya forma pueda ser controlada con
Captulo 1: Introduccin
parmetros definibles por el usuario, su prximo paso ser utilizar GDL y el entorno de escritura ofrecido por ArchiCAD.
Captulo 1: Introduccin
Los parmetros definidos en la seccin de parmetros se usan como defecto en la definicin de objeto al colocarlo en la planta. La imagen previa aparece en el cuadro de dilogo de definicin de objetos al mirar la biblioteca activa. Puede ser llamado con los comandos PICTURE y PICTURE2 desde los scripts 3D y 2D. En la seccin de comentarios puede almacenarse cualquier informacin relacionada con el objeto. ArchiCAD provee un entorno til para escribir scripts GDL, con visualizacin en lnea, y comprobacin de sintaxis y errores.
Representacin de ventanas de diversas complejidades Para evitar obstculos prematuros y seguir un aprendizaje uniforme, comience con objetos de dimensiones definidas y obtenga su forma ms simple pero todava reconocible. Cuando se familiarice con el modelado bsico, podr disminuir la simplificacin y acercarse cada vez ms a la forma ideal. Ideal no significa necesariamente complicado. En funcin de la naturaleza del proyecto arquitectnico, el objeto de biblioteca ideal puede variar desde aproximado a preciso. La ventana de la izquierda de la ilustracin anterior se adapta perfectamente el estilo de visualizacin urbana de diseo. La ventana de la derecha puede
Captulo 1: Introduccin
dar un toque de realismo y detalle que puede usarse en la fase constructiva del proyecto.
Elaboracin
En funcin de su propsito, los objetos paramtricos pueden variar en su elaboracin. Los objetos para uso interno del estudio pueden ser, por supuesto, menos precisos que los hechos para uso general o para la distribucin comercial. Si sus smbolos tienen poca importancia en el plano o los cambios paramtricos no necesitan aparecer en 2D, podr omitir los scripts 2D paramtricos. Incluso si los cambios paramtricos estn destinados a aparecer en 2D, no es absolutamente necesario escribir un paramtrico 2D. Es posible efectuar modificaciones paramtricas en la ventana de Script 3D, usar la vista 3D de planta del objeto modificado como un smbolo nuevo y guardar el objeto bajo un nombre nuevo. Obtendr as un grupo de objetos similares derivados del original mediante cambios paramtricos de sus valores por omisin.
Los objetos de biblioteca ms complejos y sofisticados consisten en descripciones paramtricas 3D con sus correspondientes scripts paramtricos 2D. Cualquier cambio en los parmetros afectar no solamente a la vista 3D del objeto sino tambin a su aspecto en el plano de planta.
Para empezar
Las necesidades de su diseo, sus conocimientos de programacin y de geometra descriptiva influirn probablemente en dnde empezar en GDL. No comience a practicar GDL teniendo en mente objetivos complicados. Aprenda GDL experimentando paso a paso con todos sus aspectos para volverlos a su favor. Siga las recomendaciones del nivel de experto ms adelante.
Manual de Referencia GDL de ArchiCAD
Captulo 1: Introduccin
Si est familiarizado con cualquier lenguaje de programacin como el BASIC, podr ir conociendo el GDL observando scripts existentes. Puede aprender mucho abriendo los objetos de biblioteca servidos con ArchiCAD y dando una mirada a sus scripts GDL 2D y 3D. Tambin puede guardar elementos del plano de planta en formato GDL y ver el script resultante. Si no est familiarizado con el lenguaje BASIC pero ha jugado con bloques de construccin (tipo LEGO), todava puede encontrar su manera de practicar GDL. Le aconsejamos que pruebe con los comandos ms simples ahora mismo y verifique su efecto en la ventana 3D del objeto de biblioteca. Para detalles sobre el entorno de edicin de objetos de biblioteca en ArchiCAD, vea el Manual de Referencia de ArchiCAD .
Formas Simples
Las formas GDL son unidades geomtricas bsicas que se aaden a un objeto de biblioteca complejo. Son las piezas de LEGO del GDL. Se coloca una forma en el espacio escribiendo un comando en el script GDL. Un comando de forma consiste en una palabra clave que define el tipo de forma y algunos valores numricos o parmetros alfabticos que definen sus dimensiones. El nmero de valores vara con cada forma. Al principio, puede evitar el uso de parmetros y trabajar con valores fijos. Puede comenzar con los siguientes comandos de forma: En 3D: BLOCK CYLIND SPHERE PRISM En 2D: LINE2 RECT2 POLY2 CIRCLE2 ARC2 Estos nombres hablan por s mismos (si conoce el ingls).
10
Captulo 1: Introduccin
Transformaciones de Coordenadas
Las transformaciones de coordenadas son como mover su mano a cierto lugar antes de poner una pieza de LEGO. Preparan la posicin, orientacin y escala de la prxima forma.
Z Y Z Y
G
X
1, 1.5 30 1,
0.5, 0.5
0.5, 0.5
La ventana 3D del objeto de biblioteca le mostrar opcionalmente las posiciones original (G = global) y actual (L = local) de la trada de ejes coordenados para cualquier objeto presente. Las transformaciones de coordenadas ms simples son: En 3D: ADDX ADDY ADDZ ROTX ROTY ROTZ En 2D: ADD2 ROT2 Los comandos que empiezan con ADD movern la prxima forma, mientras que los que empiezan con ROT la girarn alrededor de uno de sus ejes.
11
Captulo 1: Introduccin
PLANE SLAB
PLANE_ SLAB_
CSLAB_
POLY2_
TEXT2
FRAGMENT2
Estos comandos requieren habitualmente ms valores para definirlos que los bsicos. Algunos de ellos precisan valores de estado para controlar la visibilidad de aristas y superficies.
Transformaciones de Coordenadas
En 3D: MULX ADD En 2D: MUL2 MULY MUL MULZ ROT
PRISM 4, 1, 3, 3, -3, 0 ADDZ -1 MUL 0.666667, PRISM 4, 1, 3, 3, -3, 0 ADDZ -1 MUL 0.666667, PRISM 4, 1, 3, 3, -3, 0
3, -3,
0, 3,
0.666667, 1 3, 0, -3, 3,
0.666667, 1 3, 0, -3, 3,
12
Captulo 1: Introduccin
Las transformaciones que empiezan con MUL cambiarn la escala de las formas siguientes, convertirn crculos en elipses y esferas en elipsoides. Con valores negativos pueden usarse para hacer simetras. Los comandos de la segunda fila afectan a las tres dimensiones del espacio a la vez.
13
Captulo 1: Introduccin
Estos comandos deben ser familiares a cualquiera que haya programado alguna vez en un ordenador, pero son lo suficientemente bsicos como para que pueda comprender sus conceptos sin experiencia de programacin previa. La permiten hacer partes del script repetitivas para colocar montones de formas con poca escritura, o le permiten tomar decisiones basadas en clculos previos.
FOR I = 1 TO 5 PRISM_ 8, 0.05, -0.5, 0, -0.5, -0.15, 0.5, -0.15, 0.5, 0, 0.45, 0, 0.45, -0.1, -.45, -0.1, -0.45, 0, ADDZ 0.2 NEXT I
Parmetros
En este estadio de su aprendizaje, puede sustituir los valores fijos con variables alfabticas. Esto hace al objeto flexible. Se puede acceder a estas variables a travs del cuadro de dilogo de Definicin de objetos de biblioteca al trabajar en planta.
Llamadas a Macro
No se est limitado a las formas estndar GDL. Cualquier objeto de biblioteca existente puede ser una forma GDL en su totalidad. Para colocarla, slo debe "llamarla", escribiendo su nombre con los parmetros requeridos, como si fuera un comando estndar.
14
Captulo 1: Introduccin
Nivel Experto
Cuando tenga una buena comprensin de las caractersticas y comandos anteriores, ser capaz de escoger algunos de los comandos restantes que necesite alguna vez, pero no frecuentemente. Nota: la capacidad de memoria de su ordenador puede limitar la longitud de archivo de su script GDL, el nmero de llamadas a Macro y el nmero de transformaciones Para informacin adicional sobre los comandos GDL anteriores, consulte el resto de este manual. Para una consulta rpida de los comandos disponibles y su estructura de parmetros, elija la ventana de Ayuda apropiada desde ArchiCAD.
15
Captulo 1: Introduccin
El espacio 3D en ArchiCAD
El modelo 3D se crea en un espacio tridimensional medido por los ejes x, y, z de un sistema de coordenadas principal, el origen del cual se llama origen global. En ArchiCAD, se puede ver el origen global en la esquina inferior izquierda de la hoja de trabajo si se abre el programa sin leer ningn documento especfico. Adems, el origen global define la cota cero a la que se refieren todos los pisos en un documento de planta. Cuando se coloca un objeto en el diseo, la posicin en el plano queda definida por los valores sobre los ejes x e y de este sistema de coordenadas principal. El valor sobre el eje z puede ajustarse en el cuadro de dilogo de Definicin de Objetos. Este valor ser la base y la posicin por omisin del sistema de coordenadas local del objeto. Las formas descritas en el script se ubicarn en relacin a este sistema de coordenadas local.
16
Captulo 1: Introduccin
17
Captulo 1: Introduccin
18
Captulo 1: Introduccin
19
Captulo 1: Introduccin
Objetos en general : el smbolo 2D se genera directamente desde las vistas superior, lateral o inferior, ya sea en almbrico o con lneas ocultas. El smbolo y la forma 3D se ajustan automticamente al origen del objeto por la esquina inferior izquierda de la envolvente de la forma si el origen del objeto no est incluido en dicha envolvente Puertas/ventanas: La posicin por defecto del sistema de coordenadas de estos objetos de biblioteca est girado de modo que el plano x-y es vertical y el eje z se dirige en horizontal hacia el muro. El origen est situado en el centro inferior de la abertura del muro, en la cara exterior. De este modo, las puertas/ventanas pueden ser modeladas fcilmente con elementos en el plano x-y. Ms detalles en el captulo 'Especial Puertas y Ventanas' de este Manual. 4) Arrastrar & Soltar elementos seleccionados de la planta a cualquier ventana de texto (ventana de script del objeto). En funcin del destino, se generar una descripcin GDL 2D (script 2D u otra ventana de texto) o una descripcin 3D (ventana de script 3D) de los elementos.
20
21
El GDL no es sensible a las maysculas; no distingue entre stas y las minsculas excepto en textos entre comillas. El final lgico de un script GDL se denota mediante las declaraciones END o EXIT al final del archivo. Declaraciones Un programa de GDL consiste en declaraciones. Una declaracin puede empezar con una palabra clave (definiendo una forma, una transformacin de coordenadas o un control de flujo del programa), con un nombre de macro, o con un nombre de variable seguido por un signo = y una expresin matemtica. Lnea Las declaraciones estn en lneas separadas por separadores-delnea (caracteres fin_de_lnea). Una coma (,) en la ltima posicin indica que la declaracin contina en la siguiente lnea. Se usan dos puntos (:) para separar declaraciones en una lnea. Tras un signo de admiracin final (!) puede escribir cualquier comentario en la lnea. Pueden insertarse lneas en blanco en un script GDL sin ningn efecto y se puede usar cualquier nmero de espacios o tabuladores entre operadores y operandos. Es obligatorio el uso de un espacio o tabulador despus de declaraciones de palabras clave y llamadas a macro. Etiqueta Cualquier lnea puede empezar con una etiqueta. Una etiqueta es un nmero entero seguido de dos puntos (:). La etiqueta es una referencia para la declaracin siguiente. Las etiquetas se comprueban para sucesos simples. La ejecucin del programa puede continuar desde cualquier etiqueta indicada por una declaracin GOTO o GOSUB. Caracteres disponibles El texto GDL se compone de letras maysculas y minsculas del alfabeto Ingls, nmeros y los caracteres siguientes: <espacio> _ (subrayado) ! : , ; . + * / ^ = < > # ( ) |(barra vertical) ` <fin_de_lnea> Secuencias de caracteres Cualquier secuencia de caracteres que est colocada entre marcas de comillas (",',`,,,,,), o cualquier secuencia de caracteres sin comillas que no figure en el script como un identificador con un valor dado (llamada a macro, nombre de atributo, nombre de archivo). Las secuencias sin comillas se convertirn a maysculas, por lo que se recomienda usar comillas. La longitud mxima permitida en una secuencia es de 255 caracteres. El carcter '\' tiene valores de control especiales. Su significado depende del carcter siguiente.
22
'\' l mismo nueva lnea tabulador continuar secuencia en siguiente lnea sin una nueva lnea no es correcto, producir un aviso
"Esto es una secuencia de texto" washbasin 1'-6*1'-2 'No use delimitadores distintos'
Identificadores Los identificadores son secuencias de caracteres especiales: no son mayores de 255 caracteres, empiezan con una letra del alfabeto o un carcter '_' o '~' , consisten en letras, nmeros y caracteres '_' o '~'. Maysculas y minsculas se consideran iguales. Los identificadores pueden ser palabras clave GDL, variables locales o globales o secuencias (nombres). Las palabras clave y nombres de variables globales estn determinadas por ArchiCAD; todos los dems identificadores pueden utilizarse como nombres de variable. Variables Un programa en GDL puede manejar variables numricas y de texto (definidas por sus identificadores), nmeros y secuencias de caracteres. Hay dos conjuntos de variables: locales y globales. Todos los identificadores que no son palabras clave, variables globales, nombres de atributo, nombres de macro o archivo, se consideran variables locales. Si se dejan sin inicializar, su valor ser 0.0. Las variables locales se apilan con llamadas a macro. Al volver de una llamada-a-macro el intrprete restaura sus valores. Las variables globales tienen nombres reservados (la lista de variables globales disponibles en ArchiCAD se da en el Apndice). No se apilan durante la llamadas a macro, permitiendo al usuario almacenar valores especiales de modelado y simular cdigos de retorno desde macros. Las variables globales de usuario pueden definirse en cualquier script, pero slo sern efectivas en los scripts subsiguientes. Si quiere asegurarse de que el script deseado se analiza primero, defina estas variables en el objeto MASTER_GDL. El resto de variables globales puede usarse en sus scripts para comunicarse con ArchiCAD.
23
Utilizando el comando "=", puede asignar un nmero o valor de texto a las variables globales y locales. Parmetros Los identificadores enumerados en la lista de elementos de biblioteca se llaman parmetros. Los identificadores de parmetros no deben exceder de 32 caracteres. Dentro de un script, se aplican las mismas reglas que para las variables locales. Los parmetros de los archivos de slo texto GDL se identifican con letras A Z. Tipos simples Las expresiones, variables y parmetros pueden ser de dos tipos simples: numricas o de texto. Las expresiones numricas son nmeros constantes, variables numricas o parmetros, funciones que devuelven valores numricos y cualquier combinacin de stos en operaciones. Las expresiones de texto son secuencias constantes, secuencias variables o parmetros, funciones que devuelven secuencias y cualquier combinacin de stos en operaciones que dan como resultado secuencias de texto. Tipos derivados Variables y parmetros tambin pueden ser matrices, y los parmetros pueden ser listas de valores de tipo simple. Matrices son tablas de una o dos dimensiones de valores numricos y/o de texto, a los que puede accederse directamente por ndices. Listas de Valores son conjuntos de posibles valores numricos o de texto. Pueden ser asignados a los parmetros en el script de lista de valores del objeto o en el script MASTER_GDL y aparecer en el listado de parmetros como un men desplegable. [aaa] Los parntesis cuadrados indican que los elementos incluidos son opcionales (si estn en negrita, deben introducirse tal cual). . . . El elemento previo puede ser repetido varnam Cualquier nombre de variable GDL prompt Cualquier secuencia de caracteres (no debe contener comillas) TEXTO_NEGRITA TEXTO_MAYSCULAS caracteres especiales Deben introducirse tal cual. otros_textos_minsculas_en_lista_de_parmetros Cualquier expresin GDL.
24
Transformacin de Coordenadas
25
26
Ejemplo :
Z
c
X
a
X
ADD a,b,c
mx my mz Escala el sistema de coordenadas local a lo largo del eje dado. Valores negativos de mx, my, mz significan simetras simultneas.
MUL
mx, my, mz Substituye la secuencia MULX mx : MULY my : MULZ mz. Tiene una sola entrada en la pila, y puede borrarse con DEL 1.
alphax alphay alphaz Gira el sistema de coordenadas local alrededor del eje dado un ngulo de alphax, alphay, alphaz grados respectivamente, en sentido antihorario. Ejemplo:
Z
beta
X
ROTZ beta
Manual de Referencia GDL de ArchiCAD
27
ROT
x, y, z, alpha Gira el sistema de coordenadas local alrededor del eje definido por el vector (x, y, z) un ngulo de alpha grados, en sentido antihorario. Tiene una sola entrada en la pila, por lo que puede borrarse con DEL 1.
XFORM
a11, a12, a13, a14, a21, a22, a23, a24, a31, a32, a33, a34 Define una matriz de transformacin completa. Se usa principalmente en generacin automtica de cdigo GDL. Tiene una sola entrada en la pila. x = a11 * x + a12 * y + a13 * z + a14 y = a21 * x + a22 * y + a23 * z + a24 z = a31 * x + a32 * y + a33 * z + a34 Ejemplo:
BLOCK
2, 0, 0, 1,
COS(A), SIN(A), 0, 1,
COS(B)*0.6, SIN(B)*0.6, 1, 1
0, 0, 0
28
b
X
a
ADD2 a, b
MUL2 ROT2
x, y alpha Ejemplo:
Y
Y X
beta
ROT2 beta
29
30
Ejemplo:
BLOCK ADDX ADDY ADDZ ROTX ADDX BLOCK DEL BLOCK DEL BLOCK DEL BLOCK
1,
0.5, 2 1 0.5, 1 NTR()-2 0.5, 2 3 0.5, 2 !Borra la transformacin !ROTX -60 y la ADDY 2.5 !Borra la transformacin !ADDZ 1.5 !Borra la transformacin !ADDX 2
31
32
Formas Planas en 3D
33
LIN_
x1, y1, z1, x2, y2, z2 Segmento de lnea entre los puntos P1(x1,y1,z1) y P2(x2,y2,z2).
RECT
b
X
POLY
n, x1, y1, . . . xn, yn Polgono con n aristas en el plano x-y. Las coordenadas de cada nodo i son (xi, yi, 0). Restriccin de parmetros: n>3
Y
n 1 2 3 X
34
POLY_
n, x1, y1, mask1, . . . xn, yn, maskn Similar a la declaracin POLY normal, pero se puede omitir cualquiera de las aristas. Si maski = 0, la arista que empieza en (xi,yi) ser omitida. Si maski = 1, se mostrar el vrtice. maski = -1 se usa para definir huecos directamente. Ver PRISM_ en el Captulo 3.2 para ms detalles. Restriccin de parmetros: n>3
Y
n 1 2 3 X
n 1 2 3 X
PLANE
n, x1, y1, z1, . . . xn, yn, zn Polgono con n aristas en un plano arbitrario. Las coordenadas de cada nodo i son (xi, yi, zi). El polgono debe ser plano de cara a obtener un rendering correcto, pero el intrprete no comprueba esta condicin. Restriccin de parmetros: n>3
PLANE_
n, x1, y1, z1, mask1, . . . xn, yn, zn, maskn Similar a la declaracin PLANE normal, pero se puede omitir cualquiera de las aristas como en la declaracin POLY_. Restriccin de parmetros: n>3
35
CIRCLE
ARC
r, alpha, beta Arco (en modo Almbrico) / sector circular (en otros modos) en el plano x-y con su centro en el origen desde un ngulo alpha hasta beta con un radio r. Alpha y beta estn en grados.
Y
be ta
alpha
X
36
Formas Tridimensionales
37
Z b
c
Y X
CYLIND
h, r Cilindro recto, coaxial con el eje z con altura h y radio r. Si h es cero, se genera un crculo en el plano x-y. Si r es cero, se genera una lnea a lo largo del eje z.
Z
38
SPHERE
r Y
ELLIPS
h, r Medio elipsoide. Su seccin transversal en el plano x-y es un crculo con radio r, centrado en el origen. La longitud del semieje z es h.
Z
r Y
Ejemplo:
ELLIPS r, r ! hemisferio
39
CONE
h, r1, r2, alpha1, alpha2 Tronco de cono, donde alpha1 y alpha2 son los ngulos de inclinacin de las superficies en los extremos del eje z, r1 y r2 son los radios de los crculos extremos y h es la altura a lo largo del eje z Si h es cero, los valores de alpha1 y alpha2 se ignoran y se genera un anillo en el plano x-y. Alpha1, alpha2 estn en grados. Restriccin de parmetros: 0 < alpha1 < 180 y 0 < alpha2 < 180
Z Z
2 ha alp
r2
alp
r1 Y
ha
1
Y
Ejemplo:
CONE h, r, 0, 90, 90 ! cono regular
PRISM
n, h, x1, y1, . . . xn, yn Prisma recto con base poligonal en el plano x-y (ver los parmetros de POLY). La altura a lo largo del eje z es abs(h). Pueden usarse valores de h negativos. En este caso, la segunda base del polgono est por debajo del plano x-y. Restriccin de parmetros: n>3
Z
Y n X 1
40
PRISM_
n, h, x1, y1, mask1, . . . xn, yn, maskn Similar a la declaracin PRISM, pero puede omitirse cualquiera de las aristas y caras horizontales. Restriccin de parmetros: n>3
Z
j3
j2
j4 i+1
j1
El nmero maski es un entero binario (entre o y 15 o 64 y 79) o -1. maski = j1 + 2*j2 + 4*j3 + 8*j4 + 64*j7 donde j1, j2, j3, j4, j7 pueden ser 0 o 1. Los nmeros j1, j2, j3, j4 representan dnde los vrtices y la cara estn presentes (1) o se omiten (0). j1 : arista horizontal inferior j2 : arista vertical j3 : arista horizontal superior j4 : cara j7 : valor especial adicional efectivo slo cuando j2 es 1 y controla el punto de vista en funcin de la visibilidad de la arista vertical actual. j2 = 0: la arista vertical es siempre invisible j2 = 1 y j7= 1: la arista vertical slo es visible cuando es un contorno aparente desde la actual direccin de vista j2 = 1 y j7 = 0: la arista vertical siempre es visible
41
10
11
12
13
14
15
Maski = -1 se usa para definir huecos directamente en el prisma. Marca el fin del contorno y el principio del hueco en el interior del contorno. Tambin se usa para indicar el final de un contorno de hueco y el principio de otro. Las coordenadas anteriores a este valor deben ser idnticas a las del primer punto del contorno/hueco. Si ha usado el valor de mask -1, el ltimo valor de mask en la lista de parmetros debe ser -1, indicando el final del ltimo hueco. Los huecos no deben estar conectados. Se prohiben intersecciones internas del polgono para un coloreado/rendering correcto. Ejemplos:
42
ROTX 90 PRISM_ 26, 0.3, 0.3, 0.27, 0.27, 0.25, -0.25, -0.27, -0.27, -0.3, -0.3, 0.3, 0.10, 0.24, 0.24, 0.10, 0.10, 0.07, 0.07, -0.07, -0.07, 0.07, -0.24, -0.24, -0.1, -0.1, -0.24,
1.2, 0, 0.06, 0.06, 0.21, 0.23, 0.23, 0.21, 0.06, 0.06, 0, 0, 0.03, 0.03, 0.2, 0.2, 0.03, 0.03, 0.2, 0.2, 0.03, 0.03, 0.03, 0.2, 0.2, 0.03, 0.03,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, -1, 15, 15, 15, 15, -1, 15, 15, 15, 15, -1, 15, 15, 15, 15, -1
!Fin de contorno
43
j7 = 0
R=1 H=3 PRISM_ -R, COS(180)*R, COS(210)*R, COS(240)*R, COS(270)*R, COS(300)*R, COS(330)*R, COS(360)*R, R, ADDX 5 PRISM_ -R, COS(180)*R, COS(210)*R, COS(240)*R, COS(270)*R, COS(300)*R, COS(330)*R, COS(360)*R, R,
j7 = 1
9, R, SIN(180)*R, SIN(210)*R, SIN(240)*R, SIN(270)*R, SIN(300)*R, SIN(330)*R, SIN(360)*R, R, 9, R, SIN(180)*R, SIN(210)*R, SIN(240)*R, SIN(270)*R, SIN(300)*R, SIN(330)*R, SIN(360)*R, R,
H, 15, 15, 15, 15, 15, 15, 15, 15, 15 H, 15, 64+15, 64+15, 64+15, 64+15, 64+15, 64+15, 64+15, 15
44
CPRISM_
topmat, botmat, sidemat, n, h, x1, y1, mask1, . . . xn, yn, maskn Extensin de la declaracin PRISM_ , los primeros 3 parmetros se usan para el nombre/ndice de material de las superficies superior, inferior y lateral. Los otros parmetros son los mismos que en la declaracin PRISM_ anterior. Restriccin de parmetros: n>3 Ver tambin la declaracin MATERIAL en el Captulo de "Atributos" y la descripcin de la funcin IND en el Apndice. Ejemplo:
CPRISM_
Iron, 0, T_,
!Hierro es un material ! predefinido. ! 0 es un material ! genrico. ! T_ es una variable ! global (un ndice ! de material)
13, 0.2, 0, 0, 2, 0, 2, 2, 0, 2, 0, 0, 0.2, 1.8, 1.0, 0.2, 0.2, 1.8, 1.0, 0.2, 0.2, 0.2, 0.9, 0.2, 1.8, 1.8, 1.1, 1.8,
15, 15, 15, 15, -1, 15, 15, 15, -1, 15, 15, 15, -1
45
BPRISM_
topmat, botmat, sidemat, n, h, radio, x1, y1, mask1, . . . xn, yn, maskn Prisma de aristas curvadas, basado en la misma estructura de datos que el elemento recto CPRISM_ . El nico parmetro adicional es el radio. Deriva del correspondiente CPRISM_ al curvarse el plano x-y en un cilindro tangencial a dicho plano. Las aristas a lo largo del eje x se transforman en arcos circulares; las aristas a lo largo del eje y permanecen horizontales; las aristas a lo largo del eje z tendrn direccin radial. Ver BWALL_ para detalles. Ejemplos: (con los correspondientes CPRISM_):
46
BPRISM_ "Concrete", "Concrete", "Concrete", 17, 0.3, 5, 0, 7.35, 15, 0, 2, 15, 1.95, 0, 15, 8, 0, 15, 6.3, 2, 15, 2, 2, 15, 4.25, 4, 15, 8, 4, 15, 8, 10, 15, 2.7, 10, 15, 0, 7.35, -1, 4, 8.5, 15, 1.85, 7.05, 15, 3.95, 5.6, 15, 6.95, 5.6, 15, 6.95, 8.5, 15, 4, 8.5, -1
47
FPRISM_
topmat, botmat, sidemat, hillmat, n, thickness, angle, hill_height, x1, y1, mask1, ... xn, yn, maskn Similar a la declaracin PRISM_ con los parmetros adicionales hillmat, angle y hill_height. Sobre el prisma recto se aade una parte suavizada. hillmat: el material de la cara de la parte suavizada angle: el ngulo de inclinacin de las aristas suavizadas. Restriccin: 0 < angle < 90. Si el ngulo = 0 las aristas suavizadas se ven en proyeccin ortogonal como un cuarto de crculo con una resolucin especificada por el comando RESOL. la altura de la parte suavizada. Observe que el parmetro thickness representa la altura total del FPRISM.
hill_height:
Restriccin de parmetros: n>3 Maski = -1 se usa para definir huecos directamente en el prisma. Vea su descripcin en PRISM_ .
hill_height thickness
angle
1 2
48
Ejemplos:
RESOL 10 FPRISM_ "Roof Tile", "Red Brick", "Face brick", "Roof Tile", 4, 1.5, 0, 1.0, !ngulo= 0 0, 0, 0, 5, 0, 0, 5, 4, 0, 0, 4, 0
FPRISM_ "Roof Tile", "Red Brick", "Face brick", "Roof Tile", 10, 2, 45, 1, 0, 0, 0, 6, 0, 0, 6, 5, 0, 0, 5, 0, 0, 0, -1, 1, 2, 0, 4, 2, 0, 4, 4, 0, 1, 4, 0, 1, 2, -1
49
SPRISM_
topmat, botmat, sidemat, n, xb,yb, xe, ye, h, angle, x1, y1, mask1, . . . xn, yn, maskn Extensin de la declaracin CPRISM_ con la posibilidad de tener un polgono superior no paralelo al plano x-y. La definicin del plano superior es similar a la definicin de plano en la declaracin CROOF_. La altura del prisma se define en la lnea de referencia. La interseccin de los polgonos superior e inferior est prohibida. Parmetros adicionales: xb, yb, xe, ye: lnea de referencia (vector) coordenadas iniciales y finales, angle: ngulo de rotacin del polgono superior alrededor de la lnea de referencia dada, en grados (antihorario)
Nota: todas las coordenadas z calculadas de los nodos del polgono superior deben ser positivas o 0
Ejemplo:
'Earth', 2,
'Earth',
-10.0,
50
SLAB
n, h, x1, y1, z1, . . . xn, yn, zn Prisma oblicuo. Las caras laterales son siempre perpendiculares al plano x-y, sus bases son polgonos planos girados sobre un eje paralelo con el plano x-y. Pueden usarse valores de h negativos. En este caso, la segunda base del polgono est por debajo de la dada. No se comprueba si los puntos estn realmente en un plano. Los vrtices no contenidos en el plano darn colores propios/ renderings extraos. Restriccin de parmetros: n>3
Z
SLAB_
n, h, x1, y1, z1, mask1, . . . xn, yn, zn, maskn Similar a la declaracin SLAB, pero pueden omitirse cualquiera de las aristas y caras horizontales. Esta declaracin es una analoga de la declaracin PRISM_ .
CSLAB_
topmat, botmat, sidemat, n, h, x1, y1, z1, mask1, . . . xn, yn, zn, maskn Extensin de la declaracin SLAB_ ; los primeros 3 parmetros se usan para el nombre/ndice de material de las superficies superior, inferior y lateral. Los otros parmetros son los mismos que en la declaracin SLAB_ anterior. Ver tambin la declaracin MATERIAL en el Captulo de Atributos y la funcin IND en el Apndice.
51
CWALL_
leftmat, rightmat, sidemat, height, x1, x2, x3, x4, t, mask1, mask2, mask3, mask4, n, xbeg1, lower1, xend1, upper1, framevis1, ... xbegn, lowern, xendn, uppern, framevisn, m, a1, b1, c1, d1, ... am, bm, cm, dm
leftmat, rightmat, sidemat: Nombres/ndices de Material para las superficies izquierda, derecha y lateral. Las caras izquierda y derecha del muro siguen el eje x. Ver tambin la declaracin MATERIAL en el Captulo de Atributos y la funcin IND en el Apndice. La lnea de referencia del muro se transforma siempre coincidiendo con el eje x. Las caras del muro estn en el plano x-z. height : Altura del muro en relacin a su base. x1, x2, x3, x4 : Proyeccin de los extremos del muro sobre el plano x-y, como se ve a continuacin. Si el muro es rectangular, entonces x1 = x4 = 0, x2 = x3 = longitud del muro. t: grosor del muro. t < 0 si el cuerpo del muro est a la derecha del eje x, t > 0 si el cuerpo del muro est a la izquierda del eje x, t = 0 el muro est representado por un polgono y se generan marcos alrededor de los huecos.
52
X x1 x4 x3 x2
mask1, mask2, mask3, mask4 : Controlan la visibilidad de aristas y caras de los polgonos. maski = j1 + 2*j2 + 4*j3 + 8*j4 donde j1, j2, j3, j4 pueden ser 0 or 1. Los nmeros j1, j2, j3, j4 representan cundo los vrtices y la cara estn presentes (1) o se omiten (0).
Z mask 3
n:
height
lower
xbeg xend
i
upper
53
framevisi : 1 si las aristas del hueco son visibles, 0 si las aristas del hueco son invisibles. Los valores negativos controlan la visibilidad de cada arista de la abertura por separado. framevisi = - (1*j1 + 2*j2 + 4*j3 + 8*j4 + 16*j5 + 32*j6 + 64*j7 + 128*j8) donde j1, j2... j8 pueden ser 0 o 1. Los nmeros j1 a j4 controlan la visibilidad de las aristas del hueco en el lado izquierdo de la superficie del muro, mientras que j5 a j8 afectan a las aristas de la derecha, como se muestra en la ilustracin siguiente.
Z
j3 j7 j2 j4 j8 j5 Y j1 j6
Una arista que sea perpendicular a la superficie del muro es visible si existen bordes visibles dibujados desde sus dos puntos extremos. m: nmero de los planos de corte. ai, bi, ci, di : coeficientes de la ecuacin que define el plano de corte [ai*x + bi*y + ci*z = di]. Partes de la cara positiva del plano de corte que sern cortadas y eliminadas (p.e. ai*x + bi*y + ci*z > di).
54
BWALL_
leftmat, rightmat, sidemat, height, x1, x2, x3, x4, t, radio, mask1, mask2, mask3, mask4, n, xbeg1, lower1, xend1, upper1, framevis1, ... xbegn, lowern, xendn, uppern, framevisn, m, a1, b1, c1, d1, ... am, bm, cm, dm Muro curvo, basado en la misma estructura de datos que el elemento de muro recto CWALL_. El nico parmetro adicional es el radio. Deriva del correspondiente CWALL_ curvando el plano x-z sobre un cilindro tangencial a este plano. Las aristas a lo largo del eje x se transforman en arcos circulares; a lo largo del eje y sern radiales, y las aristas verticales permanecen verticales. La curvatura se aproxima mediante un nmero de segmentos definido por la directiva RESOL, como para esferas y cilindros. Ver CWALL_ para detalles.
55
ROTZ -60 BWALL_ 1, 1, 4, 0, 6, 0.3, 2, 15, 15, 15, 5, 1, 1, 3.8, 1.8, 0, 3, 4.1, 1, 4.5, 4.1, 1.55, 4.5, 4.1, 2.1, 4.5, 1, 0, -0.25,
1, 6, 15,
0,
2.5, -255, 2.5, -255, 1.4, -255, 1.95, -255, 2.5, -255, 1, 3
56
XWALL_
leftmat, rightmat, sidevmat, sidehmat, height, x1, x2, x3, x4, y1, y2, y3, y4, t, radio, reserved1, reserved2, mask1, mask2, mask3, mask4, n, xbeg1, lower1, xend1, upper1, framevis1, ... xbegn, lowern, xendn, uppern, framevisn, m, a1, b1, c1, d1, ... am, bm, cm, dm Definicin de muro ampliada, basada en la misma estructura de datos que el elemento BWALL_. Parmetros adicionales: sidevmat, sidehmat: nombre o ndice de los materiales de las caras vertical y horizontal y1, y2, y3, y4: los extremos del muro proyectados en el plano x-y como sigue
y4 y1
y2 y3 x1 x2 x3 x4
reserved1, reserved2:
reservado, siempre 0.
57
Ejemplo:
XWALL_ "Whitewash", "Whitewash", 3.0, 0.0, 4.0, 4.0, 0.0, 0.0, 0.0, 0.3, 1.2, 1.2, 0.0, 0.0, 0.0, 15, 15, 15, 15, 3, 0.25, 0.0, 1.25, 2.5, 1.25, 1.5, 2.25, 2.5, 2.25, 0.5, 3.25, 2.5, 0
"Whitewash", "Whitewash",
58
CROOF_
topmat, botmat, sidemat, n, xb, yb, xe, ye, height, angle, thickness, x1, y1, alpha1, mask1, , xn, yn, alphan, maskn Cubierta inclinada con los bordes en ngulo a medida topmat, botmat, sidemat: nmero/ndice de materiales inferior, superior y lateral n: xb, yb, xe, ye: height: angle: thickness: xi, yi: alphai: el nmero de nodos en el polgono de cubierta lnea de referencia (vector) la altura de la cubierta en la lnea de referencia (superficie inferior) ngulo de rotacin del plano de cubierta alrededor de la lnea de referencia dada, en grados (antihorario) grosor de la cubierta medida perpendicularmente al plano de cubierta las coordenadas de los nodos del polgono inferior de la cubierta ngulo entre la cara que pertenece a la arista i de la cubierta y el plano perpendicular al de cubierta, -90 < alphai < 90. Mirando en la direccin de la arista del polgono de cubierta correctamente orientado, el ngulo de rotacin antihorario es positivo.
La orientacin de las aristas del polgono de cubierta es correcta si, en planta, la secuencia de contorno es antihoraria y la de huecos horaria. maski: define la visibilidad de las aristas de cubierta, vea el comando PRISM_. Restriccin de parmetros: n>3
59
Ejemplos:
CROOF_ 1, 9, 0, 0, 1, 0, (x2,y2) 0.0, -30, 2.5, 0, 0, -60, 10, 0, 0, 10, 20, -30, 0, 20, 0, 0, 0, 0, 2, 5, 0, 8, 5, 0, 5, 15, 0, 2, 5, 0,
1,
1,
! materiales
! lnea de referencia (x1,y1) ! altura ! ngulo ! grosor 15, 15, 15, 15, -1, 15, 15, 15, -1
60
L=0.25 R=(0.6^2+L^2)/(2*L) A=ASN(0.6/R) CROOF_ "Roof Tile","Pine","Pine", 16, 2, 0, 0, 0, 0, 45, -0.2*SQR(2), 0, 0, 0, 15, 3.5, 0, 0, 15, 3.5, 3, -45, 15, 0, 3, 0, 15, 0, 0, 0, -1, 0.65, 1, -45, 15, 1.85, 1, 0, 15, 1.85, 2.4-L, 0, 13, 1.25, 2.4-R, 0, 900, 0, 2*A, 0, 4015, 0.65, 1, 0, -1, 2.5, 2, 45, 15, 3, 2, 0, 15, 3, 2.5, -45, 15, 2.5, 2.5, 0, 15, 2.5, 2, 0, -1
61
MESH
a, b, m, n, mask, z11, z12, . . . z1m, z21, z22, . . . z2m, ... zn1, zn2, . . . znm Malla suavizada simple basada en un rectngulo con una red equidistante. Los lados del rectngulo de base son a y b; los puntos m y n estn sobre los ejes x e y respectivamente, zij es la altura del nodo. Visibilidad mask = j1 + 4*j3 + 16*j5 + 32*j6 + 64*j7 donde j1, j3, j5, j6, j7 pueden ser 0 or 1. j1 (1): j3 (4): j5 (16): j6 (32): j7 (64): la superficie de base est presente. las superficies laterales estn presentes. las aristas de base y laterales son visibles. las aristas superiores son visibles. las aristas superiores son visibles, la superficie superior no est suavizada.
Z
Zij
Y
n j
b
1 1
a
62
Ejemplos:
MESH 90,100, 12,8, 1+4+16+32+64, 17,16,15,14,13,12,11,10,10,10,10, 9, 16,14,13,11,10, 9, 9, 9,10,10,12,10, 16,14,12,11, 5, 5, 5, 5, 5,11,12,11, 16,14,12,11, 5, 5, 5, 5, 5,11,12,12, 16,14,12,12, 5, 5, 5, 5, 5,11,12,12, 16,14,12,12, 5, 5, 5, 5, 5,11,13,14, 17,17,15,13,12,12,12,12,12,12,15,15, 17,17,15,13,12,12,12,12,13,13,16,16
63
ARMC
r1, r2, l, h, d, alpha Trozo de tubo que empieza en otro tubo; parmetros de acuerdo con la figura (las curvas de interseccin se calculan y dibujan tambin). Alpha est en grados. Restriccin de parmetros: r1 > r2 + d r1 < l * sin(alpha) - r 2 * cos(alpha)
Z
alp ha
r2
r1 Y
Ejemplo:
ROTY CYLIND ADDZ ARMC ADDZ ROTZ ARMC ADDZ ROTZ ARMC
0,
0,
45
0,
0,
90
0,
0,
135
64
ARME
l, r1, r2, h, d Trozo de tubo que empieza desde un elipsoide en el plano y-z; parmetros de acuerdo con la figura (las curvas de interseccin se calculan y dibujan tambin). Restriccin de parmetros: r1 > r2+ d l > h* (1 - (r 2 - d)2 / r12)
Z d r2
Y r1
Ejemplo:
65
ELBOW
r1, alpha, r2 Segmento de codo en el plano x-z. El radio del arco es r1, el ngulo es alpha y el radio del segmento de codo es r2. Alpha est en grados. Restriccin de parmetros: r1 > r2
Z
alp
ha
r1
X r2
Ejemplo:
ROTY 90 ELBOW 2.5, 180, ADDZ -4 CYLIND 4,1 ROTZ -90 MULZ -1 ELBOW 5, 180, DEL 1 ADDX 10 CYLIND 4, ADDZ 4 ROTZ 90 ELBOW 2.5, 180,
66
67
Masking Los valores de mask se usan para mostrar o esconder superficies y/ o aristas caractersticas de la forma 3D. Los valores de mask son especficos de cada elemento y se puede encontrar una definicin ms detallada en sus correspondientes secciones/captulos. mask = j1 + 2*j2 + 4*j3 + 8*j4 + 16*j5 + 32*j6 + 64*j7 donde j1, j2, j3, j4, j5, j6, j7 pueden ser 0 or 1. j1, j2, j3, j4 representan las superficies presentes (1) o no (0). j5, j6, j7 representan qu aristas son visibles (1) o invisibles (0). j1 : superficie inferior. j2 : superficie superior. j3 : superficie lateral j4 : superficie de la otra cara j5 : aristas de la base j6 : aristas superiores j7: seccin transversal/aristas de la superficie visibles, la superficie no se suaviza. Para permitir todas las caras y aristas, ajustar el valor de mask a 127. Status Los valores de status se usan para exponer dnde un punto dado de una polilnea dejar atrs un trazo ntido de su trayectoria de rotacin. 0: 1: -1 : arcos/aristas laterales que arrancan del nodo son todos visibles. arcos/aristas laterales que arrancan del nodo se usan solo para mostrar el contorno. slo para EXTRUDE: marca el final del polgono cerrado o de un hueco, y significa que el siguiente nodo ser el primer nodo de otro hueco.
Para crear una forma suavizada en 3D, ajuste todos los valores de status a 1. Use status=0 para crear una cresta. En el Captulo "Cdigos de Status Adicionales para Polilneas" se describen cdigos adicionales para segmentos tangentes y arcos. Se reservan otros valores para futuras mejoras.
68
EXTRUDE
n, dx, dy, dz, mask, x1, y1, s1, . . . xn, yn, sn Prisma genrico que usa una polilnea en el plano x-y como base. El vector desplazamiento entre bases es (dx, dy, dz). Es una generalizacin de las declaraciones PRISM y SLAB. No es necesario que la polilnea de base sea cerrada ni que las aristas laterales sean perpendiculares al plano x-y. La polilnea de base puede incluir huecos, al igual que PRISM_. Es posible controlar la visibilidad de las aristas de contorno n: nmero de nodos de la polilnea. mask : si : controla la existencia de las caras superior, inferior y (en el caso de una polilnea abierta) lateral. status de las aristas laterales o marca el final de un polgono o hueco.
j3 Y
n X 1
j1 j5 2
Masking mask = j1 + 2*j2 + 4*j3 + 16*j5 + 32*j6 donde j1, j2, j3, j5, j6 pueden ser 0 o 1. j1 (1): la superficie inferior est presente. j2 (2): la superficie superior est presente. j3 (4): la superficie lateral (cerrada) est presente. j5 (16): las aristas inferiores son visibles. j6 (32): las aristas superiores son visibles.
69
Valores de status 0: las aristas laterales que empiezan en el nodo son visibles. 1: -1 : las aristas laterales que empiezan en el nodo se usan para mostrar el contorno. marca el final del polgono cerrado o de un hueco, y significa que el siguiente nodo ser el primer vrtice de otro hueco.
Ejemplos:
EXTRUDE 0, 1, 2, 3, 4, 5, 6, 3, 0, 2, 3, 4, 3, 2,
1, 0, 0, 1, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, -1
1,
4,
1+2+4+16+32,
70
A=5 : B=5 R=2 : S=1 C=R-S D=A-R E=B-R EXTRUDE 28, 0, D+R*SIN(0), D+R*SIN(15), D+R*SIN(30), D+R*SIN(45), D+R*SIN(60), D+R*SIN(75), D+R*SIN(90), A, 0, 0, C, D+S*SIN(0), D+S*SIN(15), D+S*SIN(30), D+S*SIN(45), D+S*SIN(60), D+S*SIN(75), D+S*SIN(90), A-C,B-C,0, R-S*COS(90), R-S*COS(75), R-S*COS(60), R-S*COS(45), R-S*COS(30), R-S*COS(15), R-S*COS(0), C,
Manual de Referencia GDL de ArchiCAD
-1, 0, 4, 0, R-R*COS(0), R-R*COS(15), R-R*COS(30), R-R*COS(45), R-R*COS(60), R-R*COS(75), R-R*COS(90), B, B, 0, C, R-S*COS(0), R-S*COS(15), R-S*COS(30), R-S*COS(45), R-S*COS(60), R-S*COS(75), R-S*COS(90), E+S*SIN(90), E+S*SIN(75), E+S*SIN(60), E+S*SIN(45), E+S*SIN(30), E+S*SIN(15), E+S*SIN(0), C,
1+2+4+16+32, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, -1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1
71
PYRAMID
n, h, mask, x1, y1, s1, . . . xn, yn, sn Pirmide basada en una polilnea en el plano x-y. El vrtice de la pirmide se sita en (0, 0, h). n: nmero de nodos de la polilnea. mask : si : controla la existencia de las caras inferior y (en el caso de una polilnea abierta) lateral. status de las aristas laterales.
Y j3 n j1 X 1 2 j5
mask = j1 + 4*j3 + 16*j5 donde j1, j3, j5 pueden ser 0 or 1. j1 (1): j3 (4): j5 (16): la superficie de la base est presente. la superficie lateral (cerrada) est presente. las aristas de la base son visibles.
Valores de status 0: las aristas laterales que arrancan del nodo son todas visibles. 1: las aristas laterales que arrancan del nodo se usan para mostrar el contorno.
72
Ejemplo:
PYRAMID
PYRAMID
ADDX ADDY GOSUB ADDX GOSUB ADDY GOSUB ADDX GOSUB END 100: PYRAMID
4, -2, -2, 2, 2, 4, -1, 1, 1, -1, -1.4 -1.4 100 2.8 100 2.8 100 -2.8 100
1+4+16, 0, 0, 0, 0 21, 0, 0, 0, 0
21, 0, 0, 0, 0
RETURN
73
REVOLVE
n, alpha, mask, x1, y1, s1, . . . xn, yn, sn Superficie generada por la rotacin de una polilnea definida en el plano x-y alrededor del eje x. n: nmero de nodos de la polilnea. alpha: mask: s i: ngulo de barrido en grados. controla la existencia de las caras inferior, superior y (en el caso de alpha < 360) lateral. status de los arcos laterales.
Restricciones de parmetros: n>2 yi > 0.0 yi e yi + 1 (p.e. el valor y de dos nodos vecinos) no debe ser cero a la vez.
Z
j1 j4 j6 j3 alpha j2 1 2 j5 n Y
74
Masking mask = j1 + 2*j2 + 4*j3 + 8*j4 + 16*j5 + 32*j6 + 64*j7 donde j1, j2, j3, j4, j5, j6, j7 pueden ser 0 o 1. j1 (1): j2 (2): j3 (4): j4 (8): j5 (16): j6 (32): j7 (64): superficie inferior presente. superficie superior presente. superficie lateral presente en el ngulo inicial. superficie lateral presente en el ngulo final. aristas de superficie lateral visibles en ngulo inicial. aristas de superficie lateral visibles en ngulo final. aristas de la seccin transversal visibles, superficie no suavizada.
Valores de status 0: arcos laterales que arrancan del nodo todos visibles. 1: 2: arcos laterales que arrancan del nodo se usan para mostrar el contorno. si usa el Rendering de ArchiCAD o Z-buffer y define superficies suavizadas, el borde lateral que pertenece a este punto define una rotura. Esta solucin es equivalente a definir nodos adicionales; el compilador realiza el clculo. El algoritmo de FotoRendering no cambia. Cuando utilice otros mtodos de rendering, tendr el mismo efecto que usar 0.
Ejemplos:
75
ROTY -90 REVOLVE 22, 360, 1+64, 0, 1.982, 0, 0.093, 2, 0, 0.144, 1.845, 0, 0.220, 1.701, 0, 0.318, 1.571, 0, 0.436, 1.459, 0, 0.617, 1.263, 0, 0.772, 1.045, 0, 0.896, 0.808, 0, 0.987, 0.557, 0, 1.044, 0.296, 0, 1.064, 0.030, 0, 1.167, 0.024, 0, 1.181, 0.056, 0, 1.205, 0.081, 0, 1.236, 0.096, 0, 1.270, 0.1, 0, 1.304, 0.092, 0, 1.333, 0.073, 0, 1.354, 0.045, 0, 1.364, 0.012, 0, 1.564, 0, 0
76
77
RULED
n, mask, u1, v1, s1, . . . un, vn, sn, x1, y1, z1, . . . xn, yn, zn RULED es una superficie basada en una curva plana y una curva en el espacio que tienen el mismo nmero de nodos. Segmentos rectos conectan los nodos correspondientes a las dos polilneas. Es el nico elemento de GDL que permite superponer nodos vecinos. n: nmero de nodos de cada curva. mask : controla la existencia de las caras inferior, superior y lateral y la visibilidad de las aristas de la polilneas generatrices. El polgono lateral conecta el primer y ltimo nodos de las curvas, si alguna de ellas no est cerrada. coordenadas de los nodos de la curva plana. status de las aristas laterales. coordenadas de la curva en el espacio.
u i , vi : si : x i , yi , z i :
2 j2 j6 1
j3 Y
n j1 X 1 2 j5
78
Masking mask = j1 + 2*j2 + 4*j3 + 16*j5 + 32*j6 + 64*j7 donde j1, j2, j3, j5, j6, j7 pueden ser 0 o 1. j1 (1): j2 (2): j3 (4): j5 (16): j6 (32): j7 (64): la superficie inferior est presente. la superficie superior est presente (no efectivo si la superficie superior no es plana). la superficie lateral est presente (un cuadrngulo plano o dos tringulos). las aristas de la curva plana son visibles. las aristas de la curva en el espacio son visibles. las aristas de la superficie son visibles, la superficie no se suaviza.
Valores de status 0: las aristas laterales que arrancan del nodo son todas visibles. 1: las aristas laterales que arrancan del nodo se usan para buscar el contorno.
Ejemplos:
79
R=3 RULED 16, 1+2+4+16+32, COS(22.5)*R, SIN(22.5)*R, COS(45)*R, SIN(45)*R, COS(67.5)*R, SIN(67.5)*R, COS(90)*R, SIN(90)*R, COS(112.5)*R, SIN(112.5)*R, COS(135)*R, SIN(135)*R, COS(157.5)*R, SIN(157.5)*R, COS(180)*R, SIN(180)*R, COS(202.5)*R, SIN(202.5)*R, COS(225)*R, SIN(225)*R, COS(247.5)*R, SIN(247.5)*R, COS(270)*R, SIN(270)*R, COS(292.5)*R, SIN(292.5)*R, COS(315)*R, SIN(315)*R, COS(337.5)*R, SIN(337.5)*R, COS(360)*R, SIN(360)*R, COS(112.5)*R, SIN(112.5)*R, COS(135)*R, SIN(135)*R, COS(157.5)*R, SIN(157.5)*R, COS(180)*R, SIN(180)*R, COS(202.5)*R, SIN(202.5)*R, COS(225)*R, SIN(225)*R, COS(247.5)*R, SIN(247.5)*R, COS(270)*R, SIN(270)*R, COS(292.5)*R, SIN(292.5)*R, COS(315)*R, SIN(315)*R, COS(337.5)*R, SIN(337.5)*R, COS(360)*R, SIN(360)*R, COS(22.5)*R, SIN(22.5)*R, COS(45)*R, SIN(45)*R, COS(67.5)*R, SIN(67.5)*R, COS(90)*R, SIN(90)*R,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
80
SWEEP
n, m, alpha, scale, mask, u1, v1, s1, . . . un, vn, sn, x1, y1, z1, . . . xm, ym, zm Superficie generada por una polilnea que se desplaza siguiendo la trayectoria curva de otra polilnea en el espacio. La polilnea puede ser abierta o cerrada. Puede girarse y escalarse incrementalmente en su propio plano. El plano de la polilnea sigue la trayectoria curva. La curva en el espacio tiene su inicio en el plano x-y. Si no se encuentra esta condicin, la curva es movida a lo largo del eje z hasta que arranque del plano x-y. La seccin transversal en el punto (xi, yi, zi) es perpendicular al segmento de la curva en el espacio entre los puntos (xi-1, yi-1, zi-1) y (xi, yi, zi). SWEEP puede usarse para modelar el surtidor de una tetera y otras formas complejas. n: nmero de nodos de la polilnea. m: alpha : nmero de nodos de la trayectoria. incremento de la rotacin de la polilnea sobre su propio plano, desde un punto de la trayectoria hasta el siguiente. incremento del factor de escala de la polilnea, desde un punto de la trayectoria hasta el siguiente. controla la existencia de las superficies y aristas inferiores, superiores y laterales. coordenadas de los nodos de la polilnea de base. status de las aristas laterales. coordenadas de los nodos de la trayectoria curva.
scale : mask : u i , vi : si : x i , yi , z i :
81
Masking mask = j1 + 2*j2 + 4*j3 + 16*j5 + 32*j6 + 64*j7 donde j1, j2, j3, j5, j6, j7 pueden ser 0 o 1. j1 (1): j2 (2): j3 (4): j5 (16): j6 (32): j7 (64): la superficie inferior est presente. la superficie superior est presente. la superficie lateral est presente. las aristas inferiores son visibles. las aristas superiores son visibles. las aristas de la seccin transversal son visibles, la superficie est articulada.
Z j2 j6 m
2 Y j3 n X 1 2 j5 1
j1
Valores de status 0: todas las aristas laterales que arrancan del nodo son visibles. 1: Ejemplos: las aristas laterales que arrancan del nodo se usan para mostrar el contorno.
82
12, 7.5, 1, -0.25, 0, -0.25, 0, 0.25, 0, 0.25, 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6
1+2+4+16+32,
83
TUBE
n, m, mask, u1, w1, s1, ... un, wn, sn, x1, y1, z1, angle1, ... xm, ym, zm, anglem Superficie generada por una polilnea que sigue la trayectoria de una curva en el espacio sin distorsin de la seccin generatriz. Las superficies de conexin interna pueden girar en el plano U-W del sistema de coordenadas instantneo U-V-W. eje V: aproxima la tangente de la curva generatriz en el punto correspondiente, eje W: eje U: perpendicular al eje V y apuntando hacia arriba con respecto al eje z local, perpendicular a los ejes V y W y formando con ellos un sistema de coordenadas Cartesianas segn la regla de la mano derecha.
Si el eje V es vertical, la direccin W no est correctamente definida. El eje W en el nodo previo de la trayectoria se usa para determinar una direccin horizontal. La seccin transversal del tubo, medida en medio de los segmentos de la trayectoria es siempre igual al polgono de base (u1, w1, ... un, wn). Las secciones en las uniones estn situadas en el plano bisector de los segmentos de unin. El polgono de base debe estar cerrado. n: nmero de nodos de la polilnea. m: ui, w i : si : x i , yi , z i : nmero de nodos de la trayectoria. coordenadas de los nodos de la polilnea de base. status de las aristas laterales. coordenadas de los nodos de la trayectoria curva. (La trayectoria comprende dos puntos ms que el nmero de secciones generadas. El primer y el ltimo puntos determinan la posicin el espacio de la primera y la ltima superficies que pertenecen al TUBE. Estos puntos slo juegan un papel determinando la normal de las superficies, no son nodos actuales de la trayectoria. La orientacin de las superficies es la misma que la de las superficies
84
que se generaran en los nodos ms cercanos a los dos extremos, si el TUBE continuara en las direcciones indicadas por ellos. anglei ngulo de rotacin de la seccin transversal. Masking mask = j1 + 2*j2 + 16*j5 + 32*j6 + 64*j7 donde j1, j2, j5, j6, j7 pueden ser 0 o 1. j1 (1): j2 (2): j5 (16): j6 (32): j7 (64): la superficie inferior est presente. la superficie final est presente. las aristas inferiores (en x1, y1, z1) son visibles. las aristas finales (en xm, ym, zm) son visibles. las aristas de la seccin transversal (excepto las lneas de conexin de caras coplanares) son visibles, la superficie est articulada.
U U
Valores de status 0: los bordes laterales que empiezan en el nodo son todos visibles. 1: los bordes laterales que empiezan en el nodo se utilizan para mostrar el contorno.
85
Ejemplos:
TUBE
4, 2.0, 0.0, 0.0, 2.0, -1, 0, 4, 6, 6+4*SIN(15), 6+4*SIN(30), 6+4*SIN(45), 6+4*SIN(60), 6+4*SIN(75), 10, 6+4*SIN(105), 6+4*SIN(120), 6+4*SIN(135), 6+4*SIN(150), 6+4*SIN(165), 6, 0, -1,
16+32, 0, 0, 0, 0, 0, 0, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4*COS(15), 4*COS(30), 4*COS(45), 4*COS(60), 4*COS(75), 4*COS(105), 4*COS(120), 4*COS(135), 4*COS(150), 4*cos(165),
86
TUBE
14, 0, 0.03, 0.03, 0.06, 0.05, 0.05, 0.05, 1, 0.08, 0.19, 0.19, 0.25, 0.25, 0, 0, 0, 0, -0.8, -0.8, -0.8,
6, 0,0, 0,0, 0.02, 0.02, 0.0699, 0.07, 0.15, 0, 90, 0.15, 0.19, 0.19, 0.25, 0.25, 1, 0.0001, 0, 0, 0.0001, 1,
1+2+16+32,
0, 0, 0, 0, 0, 0
87
TUBE
3, 0, -0.5, 0, 0.2, 0, 0, 3, 3, 3, 3,
7, 0, 0, 0.5, 0, 0, 0, 0, 4, 4, 3.8,
88
TUBEA
n, m, mask, u1, w1, s1, ... un, wn, sn, x1, y1, z1, ... xm, ym, zm
2 1 1
m-1
bisector plane
TUBEA es una superficie generada por una polilnea que se desplaza a lo largo de una trayectoria curva en el espacio, con un algoritmo diferente a la declaracin TUBE. La seccin generada en cada unin de la trayectoria es igual al polgono de base (u1, w1, ... un, wn) y est situada en el plano bisector de las proyecciones de los segmentos de unin sobre el plano x-y local. El polgono de base puede estar abierto: en este caso las secciones se generarn de manera que alcancen el plano x-y local, como en el caso de las superficies REVOLVE. La seccin transversal del tubo, medida en el medio de los segmentos de trayectoria puede ser distinta al polgono de base. Ejemplos:
89
90
COONS
n, m, mask, x11, y11, z11, . . . x1n, y1n, z1n, x21, y21, z21, . . . x2n, y2n, z2n, x31, y31, z31, . . . x3m, y3m, z3m, x41, y41, z41, . . . x4m, y4m, z4m Superficie tipo Coons generada a partir de 4 curvas que la limitan. Masking mask = 4*j3 + 8*j4 + 16*j5 + 32*j6 + 64*j7 donde j3, j4, j5, j6, j7 pueden ser 0 o 1. j3 (4): j4 (8): j5 (16): j6 (32): j7 (64): aristas del 1er lmite (x1, y1, z1) visibles. aristas del 2 lmite (x2, y2, z2) visibles. aristas del 3er lmite (x3, y3, z3) visibles. aristas del 4 lmite (x4, y4, z4) son visibles. aristas de superficie visibles, la superficie suavizada.
1(n)
4(m)
2(n)
3(m)
X
91
Ejemplos:
COONS 6, 6, 4+8+16+32+64, !1er contorno, n=6 0, 0, 5, 1, 0, 4, 2, 0, 3, 3, 0, 2, 4, 0, 1, 5, 0, 0, !2 contorno, n=6 0, 5, 0, 1, 5, 1, 2, 5, 2, 3, 5, 3, 4, 5, 4, 5, 5, 5, !3er contorno, m=6 0, 0, 5, 0, 1, 4, 0, 2, 3, 0, 3, 2, 0, 4, 1, 0, 5, 0, !4 contorno, m=6 5, 0, 0, 5, 1, 1, 5, 2, 2, 5, 3, 3, 5, 4, 4, 5, 5, 5
92
ROTZ -90 ROTY 90 COONS 7, 6, !1er contorno, n=7 1, 2, 0.5, 1, 0.2, 0.5, -0.5, 0, 0.2, -0.5, 0.5, -1, 1, -2, !2 contorno, n=7 6, 10, 6.5, 4, 5, 1, 4, 0, 5, -1, 6.5, -4, 6, -10, !3er contorno, m=6 1, 2, 2, 4, 3, 6, 4, 8, 5, 9, 6, 10, !4 contorno, m=6 1, -2, 2, -4, 3, -6, 4, -8, 5, -9, 6, -10,
93
MASS
topmat, botmat, sidemat, n, m, mask, h, x1, y1, z1, s1, ... xn, yn, zn, sn, xn+1, yn+1, zn+1, sn+1, ... xn+m, yn+m, zn+m, sn+m topmat, botmat, sidemat: nombre/ndice de materiales superior, inferior y lateral n: m: h: xi, yi, zi : si : el nmero de nodos en el polgono de base el nmero de nodos sobre las crestas la altura de la cubierta (puede ser negativa) las coordenadas de los nodos similar a la declaracin PRISM_
Masking mask = j1 + 4*j3 + 16*j5 + 32*j6 + 64*j7 donde j1, j3, j5, j6, j7 pueden ser 0 o 1. j1 (1): j3 (4): j5 (16): j6 (32): j7 (64): la superficie de base est presente las superficies laterales estn presentes las aristas de la base y laterales son visibles las aristas superiores son visibles las aristas superiores son visibles, la superficie superior no est suavizada
m n
1 2
dz plane
94
Ejemplo:
MASS 15, 0, 8, 8, 13, 16, 19, 23, 24, 24, 28, 28, 28, 0, 0, 0, 0, 28, 23, 23, 13, 13, 16, 16, 0, 28, 19, 19,
"Whitewash", "Whitewash", "Whitewash", 12, 117, -5.0, 12, 0, 15, 12, 0, 15, 0, 0, 15, 0, 0, 13, 0, 0, 13, 0, 0, 13, 0, 0, 13, 0, 0, 15, 12, 0, 15, 12, 0, 15, 20, 8, 13, 22, 8, 15, 22, 8, 15, 20, 8, 13, 12, 0, -1, 22, 22, 17, 0, 13, 0, 0, 19, 20, 20, 17, 0, 8, 8, 5, 5, 1, 1, 7, 7, 8, 8, 5, 5, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1
95
radius
beta alpha
96
Restricciones de parmetros: alpha < beta < 80 Combinaciones de parmetros que tienen significados especiales: radius = 0, alpha = 0, beta = 0 Un punto de luz, que irradia luz en todas direcciones y no arroja sombras. Los parmetros shadow y angfalloff se ignoran, suponindoles valores shadow = 0, angfalloff = 0. radius > 0, alpha = 0, beta = 0 Una luz direccional. Ejemplo:
LIGHT 1.0,0.2,0.3, 1, 1.0, 45.0,60.0, 0.3, 1.0,10.0, 0.2 ! ! ! ! ! ! ! RGB sombras activas radio angle1, angle2 angfalloff dist1, dist2 distfalloff
97
r > 0, alpha = 0, beta = 0 Tipos de luz usando distintos parmetros alpha y beta
98
PICTURE
expression, a, b, mask Elemento de imagen para FotoRendering. La expresin indica un nombre de archivo, una expresin numrica de un ndice de una imagen guardada como objeto de biblioteca. Un ndice 0 es un valor especial, se refiere a la imagen anterior de la biblioteca. Otras imgenes pueden guardarse en objetos de biblioteca slo al guardar el proyecto o elementos seleccionados conteniendo imgenes como Objetos ArchiCAD. La figura del fichero de referencia encaja en un rectngulo tratado como un RECT en cualquier otro mtodo de proyeccin 3D.
mask = alpha + distortion alpha : control del canal alpha 0 : no se usa canal alpha, la figura es un rectngulo 1 : se usa canal alpha, partes de la figura pueden ser transparentes. distortion : control de distorsin 0 : encaja la imagen en un rectngulo dado 2 : encaja la imagen en el centro de un rectngulo usando las proporciones naturales de la imagen 4 : llena el rectngulo con la imagen en posicin central usando sus proporciones naturales
99
DEFINE STYLE "aa" "New York", 3, 7, 0 SET STYLE "aa" TEXT 0.005, 0, "3D Text"
nombre= "Grand" ROTX 90 ROTY -30 TEXT 0.003, 0, nombre ADDX STW (nombre)/1000 ROTY 60 TEXT 0.003, 0, "Hotel"
Observacin: Para compatibilidad con el script GDL 2D, la altura de los caracteres se interpreta siempre en mm-s en las declaraciones DEFINE STYLE.
100
5.5 Primitivas
Las primitivas de la estructura de datos 3D son VERT, VECT, EDGE, PGON y BODY. Los cuerpos se representan por sus superficies y las conexiones entre ellas. La informacin para ejecutar un corte 3D proviene de la informacin de conexin El indexado empieza con 1, y cada nuevo cuerpo o una declaracin BASE reinicia el ndice a 1. Para cada arista, se almacenan los ndices de polgonos adyacentes (mximo 2). La orientacin de las aristas se define por los dos vrtices determinados como primero y segundo. Los polgonos son listados de aristas con una orientacin incluyendo los ndices de las aristas. Estos nmeros pueden tener un prefijo negativo. Esto significa que la arista dada se usa en direccin opuesta. Los polgonos pueden incluir huecos. En la lista de aristas, un ndice cero indica un nuevo hueco. Los huecos no deben incluir otros huecos. Una arista puede pertenecer de 0 a 2 polgonos. En el caso de cuerpos cerrados, la orientacin de los polgonos es correcta si la arista tiene distintos prefijos en la lista de aristas de los dos polgonos Los vectores normales a los polgonos se almacenan separadamente. En el caso de cuerpos cerrados, sealan del interior al exterior del cuerpo. La orientacin de la lista de aristas es antihoraria (matemticamente positiva), si se mira desde el exterior. La orientacin de los huecos es opuesta al polgono relativo. Los vectores normales a un cuerpo abierto deben sealar a la misma cara del cuerpo. Para determinar el interior y el exterior de los cuerpos, estos deben estar cerrados. Una definicin simple para un cuerpo cerrado es la siguiente: cada arista tiene exactamente dos polgonos adyacentes. La eficiencia de los algoritmos de corte, lneas ocultas o rendering es menor para cuerpos abiertos. Cada elemento tridimensional compuesto con parmetros regulares es un cuerpo cerrado en la estructura de datos interna 3D. La bsqueda de la lnea de contorno se basa en los bits de status de las aristas y sus polgonos adyacentes. Esto de define automticamente para elementos curvos compuestos, pero depende del usuario especificar correctamente estos bits en el caso de elementos primitivos.
101
En el caso de una definicin simplificada (PGON.ivect = 0 PGON.status < 0) las primitivas a las que se refiere por otras deben preceder a su referencia. En este caso, el orden que se recomienda es: VERT (TEVE) EDGE (VECT) PGON (PIPG) COOR BODY La bsqueda de polgonos adyacentes por las aristas se hace durante la ejecucin de la declaracin de cuerpo. La numeracin de VERTs, EDGEs, VECTs y PGONs es relativa a la ltima declaracin de BASE (implcita o explcita. Los valores de status se usan para almacenar informacin especial sobre las primitivas. Cada bit individual tiene habitualmente un significado independiente en el status, pero hay algunas excepciones. Valores dados pueden aadirse juntos. Otras combinaciones de bits que las dadas a continuacin estn estrictamente reservadas para uso interno. El valor por omisin para cada status es cero. VERT x, y, z Nodo en el espacio x-y-z, definido por 3 coordenadas. TEVE x, y, z, u, v Extensin de la declaracin VERT incluyendo una definicin de coordenadas de textura. Puede usarse en lugar de la declaracin VERT se precisan coordenadas de textura definidas por el usuario en lugar de las texturas automticas de ArchiCAD (ver la declaracin COOR). x, y, z: coordenadas de un nodo u, v: coordenadas de textura del nodo (u, v) deben especificarse coordenadas para cada vrtice del cuerpo actual y cada vrtice debe tener slo una coordenada de textura. Si las declaraciones VERT y TEVE se mezclan en una definicin de cuerpo, las coordenadas (u,v) no son efectivas. Nota: las coordenadas de textura (u, v) slo son efectivas en FotoRenderings, pero no para mapeado de tramas vectoriales.
102
VECT
x, y, z Definicin del vector normal a un polgono por 3 coordenadas. En el caso de definicin simplificada (PGON.ivect = 0) estas declaraciones pueden omitirse.
EDGE
vert1, vert2, pgon1, pgon2, status Definicin de una arista. vert1, vert2 : ndice de los extremos. Los ndices vert1 y vert2 deben ser distintos y referenciados a los VERTs previamente definidos. pgon1, pgon2 : ndices de los polgonos vecinos. Valores cero y negativos tienen el siguiente significado especial: 0 : arista solitaria o de extremo. <0 : ArchiCAD buscar posibles vecinos. Bits de status: 1 arista invisible. 2 arista de una superficie curvada. Bits de status reservados para uso futuro: 4 primera arista de una superficie curvada (solamente junto con 2). 8 16 32 64 ltima arista de una superficie curvada (solamente junto con 2). la arista es un segmento de arco. primer segmento de un arco (solamente junto con 16). ltimo segmento de un arco (solamente junto con 16).
103
PGON
n, ivect, status, edge1, edge2, . . . edgen n: ivect : nmero de aristas en la lista de aristas. ndice del vector normal. Debe referirse a un VECT previamente definido. Si ivect = 0, ArchiCAD calcular el vector normal durante el anlisis. Los ndices edge1, edge2, . . . edgen deben referirse a EDGEs previamente definidos. Un valor 0 significa el inicio o el final de una definicin de hueco. Un ndice negativo cambia la direccin de un vector normal o arista almacenados a la opuesta en el polgono. (El vector o la arista almacenados no cambian; otros polgonos pueden referirse a ellos usando la orientacin original con un ndice positivo.) Bits de status: 1 polgono invisible. 2 16 32 64 polgono en una superficie curva. polgono cncavo. polgono con hueco(s). hueco(s) convexo (s) (slo junto con 32). Bits de status reservados para uso futuro: 4 primer polgono de una superficie curva (slo junto con 2). 8 ltimo polgono de una superficie curva (slo junto con 2). Si el valor de status es negativo, ArchiCAD calcular el status del polgono (tal como polgono cncavo o con hueco). n = 0 se permite para usos especiales.
104
PIPG
filename, a, b, mask, n, ivect, status, edge1, edge2, . . . edgen Definicin de polgono de imagen. Los primeros 4 parmetros son los mismos que en el elemento PICTURE, los restantes son los mismos que en el elemento PGON.
COOR
wrap, vert1, vert2, vert3, vert4 Sistema de coordenadas local de un BODY para el relleno y mapeado. wrap : modo de envolver + tipo de proyeccin. Modos de envolver: 1: 2: 3: 4: 5: plano cbico cilndrico esfrico igual que el mapeado cilndrico, pero al renderizar las superficies superior e inferior tendrn un mapeado circular.
Tipos de proyeccin: 256 : el relleno empieza siempre en el origen del sistema de coordenadas local 1024 : proyeccin cuadrtica de la textura (recomendado) 2048 : proyeccin lineal de la textura basada en la distancia promedio 4096 : proyeccin lineal de la textura basada en la triangulacin normal Los 3 valores anteriores slo son efectivos con definiciones propias de coordenadas de texturas (ver la declaracin TEVE). vert1 : ndice de un VERT, representando el origen del sistema de coordenadas local. ndices de VERTs definiendo los 3 ejes coordenados. Use un signo menos antes de los ndices VERT si los usa slo para definir un sistema de coordenadas local.
Manual de Referencia GDL de ArchiCAD
105
CSLAB_ "Face brick", 4, 0.5, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, BASE VERT 1, 0, 0 VERT 1, 1, 1 VERT 0, 0, 0 VERT 1, 0, 1 COOR 2, -1, -2, BODY 1
"Face brick", 15, 15, 15, 15 !#1 !#2 !#3 !#4 -3, -4
"Face brick",
106
BODY
status Compone un cuerpo definido con las siguientes primitivas. Bits de status: 1 cuerpo cerrado. 2 4 cuerpo que incluye superficie(s) curva(s). modelo de superficie: cuando el cuerpo est cortado, no se originan superficies en el plano de corte. el cuerpo siempre arroja sombras, independientemente del algoritmo de preseleccin automtica. el cuerpo nunca arroja sombras.
32
64
Si ni 32 ni 64 estn definidos, se efecta la preseleccin automtica de sombras. Ver SHADOW en el Captulo "Atributos". Si el valor de status es negativo, ArchiCAD calcular el status del cuerpo. Ejemplo:
Z
6 1
7 4 Y 3
2 X
107
1: Descripcin Completa
VERT VERT VERT VERT VERT VERT VERT VERT EDGE EDGE EDGE EDGE EDGE EDGE EDGE EDGE EDGE EDGE EDGE EDGE VECT VECT VECT PGON PGON PGON PGON PGON PGON BODY 0.0, 0.0, 0.0 1.0, 0.0, 0.0 1.0, 1.0, 0.0 0.0, 1.0, 0.0 0.0, 0.0, 1.0 1.0, 0.0, 1.0 1.0, 1.0, 1.0 0.0, 1.0, 1.0 1, 2, 1, 3, 2, 3, 1, 4, 3, 4, 1, 5, 4, 1, 1, 6, 5, 6, 2, 3, 6, 7, 2, 4, 7, 8, 2, 5, 8, 5, 2, 6, 1, 5, 6, 3, 2, 6, 3, 4, 3, 7, 4, 5, 4, 8, 5, 6, 1.0, 0.0, 0.0 0.0, 1.0, 0.0 0.0, 0.0, 1.0 4, -3, 0, -1, -4, -3, 4, 3, 0, 0, 0, 0, 0, 5, 6, 7, !#1 !#2 !#3 !#4 !#5 !#6 !#7 !#8 !#1 !#2 !#3 !#4 !#5 !#6 !#7 !#8 !#9 !#10 !#11 !#12 !#1 !#2 !#3 !#1 !VERT1,2,3,4 !#2 !VERT5,6,7,8 !#3 !VERT1,2,5,6 !#4 !VERT2,3,6,7 !#5 !VERT3,4,7,8 !#6 !VERT1,4,5,8 !CUBE
0 0 0 0 0 0 0 0 0 0 0 0
-2 8
4, -2, 4, 4, 1, 2,
1, 10, -5, -9 2, 11, -6, -10 3, 12, -7, -11 4, 9, -8, -12
4, -1, 1
108
2: (no hay referencia directa a los polgonos o vectores, Archicad los calcula)
VERT VERT VERT VERT VERT VERT VERT VERT EDGE EDGE EDGE EDGE EDGE EDGE EDGE EDGE EDGE EDGE EDGE EDGE PGON PGON PGON PGON PGON PGON BODY 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 4, 0, 4, 0, 0.0, 0.0 0.0, 0.0 1.0, 0.0 1.0, 0.0 0.0, 1.0 0.0, 1.0 1.0, 1.0 1.0, 1.0 2, -1, -1, 3, -1, -1, 4, -1, -1, 1, -1, -1, 6, -1, -1, 7, -1, -1, 8, -1, -1, 5, -1, -1, 5, -1, -1, 6, -1, -1, 7, -1, -1, 8, -1, -1, -1, -1, -4, -3, -1, -1, -1, -1, -1, 5, 6, 7, !#1 !#2 !#3 !#4 !#5 !#6 !#7 !#8 !#1 !#2 !#3 !#4 !#5 !#6 !#7 !#8 !#9 !#10 !#11 !#12 !#1 !VERT1,2,3,4 !#2 !VERT5,6,7,8 !#3 !VERT1,2,5,6 !#4 !VERT2,3,6,7 !#5 !VERT3,4,7,8 !#6 !VERT1,4,5,8 !CUBE
0 0 0 0 0 0 0 0 0 0 0 0 -2 8
4, 0, 4, 4, 0, 0,
1, 10, -5, -9 2, 11, -6, -10 3, 12, -7, -11 4, 9, -8, -12
4, 0, -1
BASE Pone a cero el contador para los elementos geomtricos del nivel bajo declaraciones (VERT, VECT, EDGE y PGON). Utilizado implcitamente despus de cada definicin de elemento compuesto.
109
2:
3:
seccin:
Utilizando 0 para la seccin de ndice, puede referirse simultneamente a todas las partes binarias existentes. Slo las secciones con un valor de ndice de 1 pueden guardarse desde dentro de GDL, los comandos BINARY sin los argumentos de seccin tambin se refieren a ste. Los otras secciones indexadas se utilizarn por herramientas de terceras partes (StairMaker, ArchiSITE, VisualGDL, etc.) Si abre archivos con una estructura de datos diferente a la de ArchiCAD (DXF, ZOOM) sus descripciones 3D se convertirn a formato binario. Es posible guardar un Elemento de Biblioteca en formato binario a travs del comando Abrir Item de Biblioteca del men Archivo.
110
Puede guardar desde la ventana de edicin principal del Objeto de Biblioteca a travs del comando Guardar como Si el recuadro Guardar en formato binario est marcado en el dilogo Guardar como el texto GDL del Objeto de Biblioteca actual ser sustituido por una descripcin binaria. Truco: Guardar el modelo 3D despus de una operacin de corte 3D permite guardar el modelo seccionado. De este modo podr crear formas truncadas. Puede guardar su Objeto de Biblioteca en formato binario slo si el modelo 3D ya ha sido generado, es decir, cuando haya visto la vista 3D al menos una vez. Sustituyendo la descripcin GDL del Objeto de Biblioteca por una descripcin binaria puede reducirse considerablemente el tiempo de conversin a 3D del objeto. Por otra parte, la descripcin 3D binaria no es paramtrica y ocupa mayor espacio en disco que un algoritmo programado en GDL.
111
5.7 Corte en 3D
CUTPLANE [x, y, z [, side]] [stmt1 stmt2 ... stmtn] o angle [stmt1 stmt2 ... stmtn] Crea un plano de corte y borra partes cortadas de formas incluidas. CUTPLANE puede contener diferentes nmeros de parmetros. CUTPLANE tiene: Sin Parmetros: plano x-y 1 parmetro: el plano de corte cruza el eje x, el ngulo est entre el plano de corte 2 parmetros: el plano de corte es paralelo al eje z, cruza el eje x y el y sobre lo valores dados 3 parmetros: cruza ejes x, y , z sobre los valores dados 4 parmetros: los tres primeros parmetros anteriores side = 0: side = 1: borra partes encima del plano de corte (por omisin) borra partes bajo el plano de corte; en caso de x-y, x-z, y-z, las partes en la direccin negativa del eje.
CUTEND CUTPLANE
CUTEND
El corte (sin el parmetro side ) borra partes encima del plano de corte. Si los tres primeros parmetros definen los planos x-y, x-z o y-z (por ejemplo 1.0, 1.0, 0.0 define el plano x-y ), las partes en la direccin positiva del tercer eje se borrarn. Puede aadirse cualquier nmero y clase de comandos entre CUTPLANE y CUTEND. Los macros pueden contener CUTPLANEs. Los parmetros CUTPLANE se refieren al sistema de coordenadas actual. Las transformaciones entre CUTPLANE y CUTEND no tienen efecto en este plano muy cortado, pero cualquier CUTPLANEs sucesivo se transformar: De forma que: utilice tantas transformaciones para
112
definir el CUTPLANE como sea necesario, despus borre estas transformaciones antes de definir las formas a cortar. Las parejas de comandos CUTPLANE-CUTEND pueden anidarse, incluso dentro de bucles. Si el CUTEND final se pierde, su CUTPLANE ser efectivo en todas las formas hasta el final del script. CUTPLANEs en macros afectan slo a las formas del macro, incluso si CUTEND se pierde. Si se llama un macro entre CUTPLANE y CUTEND, las formas del macro se cortarn. Las definiciones de material, plumas y tramas son efectivas en las superficies cortadas. Sea cuidadoso con lo siguiente: - Si CUTPLANE no se cierra con CUTEND, en un escenario recargado, se borrarn todas las formas. Por eso siempre recibe un mensaje de aviso en referencia a los CUTENDs perdidos. - Si la transformacin utilizada solamente para colocar el CUTPLANE no se borra, puede pensar que CUTPLANE est en una posicin incorrecta cuando, en realidad, son las formas las que se han movido. Ejemplos:
CUTPLANE CUTPLANE CUTPLANE CUTPLANE ADD BRICK DEL CUTEND CUTEND CUTEND CUTEND
Manual de Referencia GDL de ArchiCAD
4 4 4 4 0 4
113
114
CUTPOLY
n, x1, y1, . . . xn, yn [, x, y, z] [stmt1 stmt2 ... stmtn] Similar al comando CUTPLANE, los parmetros de CUTPOLY se refieren al sistema de coordenadas actual. El polgono debe ser convexo y no puede tener auto-interseccin. La direccin de corte es el eje Z o puede especificarse un vector opcional (x, y, z) Los parmetros definen un "tubo" infinito: el polgono es la seccin transversal del tubo, la direccin de corte es la direccin del tubo. Se elimina todo lo que est en el interior del tubo. Ejemplos:
CUTEND
ROTX 90 MULZ -1 CUTPOLY 3, 0.5, 1, 2, 2, 3.5, 1, -1.8, 0, 1 DEL 1 BPRISM_ "Red brick", "Red brick", "Face brick", 4, 0.9, 7, 0.0, 0.0, 15, 6.0, 0.0, 15, 6.0, 3.0, 15, 0.0, 3.0, 15 CUTEND
115
A=1.0 D=0.1 CUTPOLY D, A-D, A-D, D, ROTX -90 CUTPOLY D, A-D, A-D, D, DEL 1 ROTY 90 CUTPOLY D, A-D, A-D, D, DEL 1 BLOCK A, CUTEND CUTEND CUTEND
4, D, D, A-D, A-D
4, D, D, A-D, A-D
4, D, D, A-D, A-D A, A
116
ROTX 90 FOR I=1 TO 3 FOR J=1 TO 5 CUTPOLY 4, 0, 0, 1, 1, 1, 0, ADDX 1.2 NEXT J DEL 5 ADDY 1.2 NEXT I DEL NTR()-1 ADD -0.2, -0.2, 0 BRICK 6.2, 3.8, 1 FOR K=1 TO 15 CUTEND NEXT K DEL TOP
0, 1
117
CUTPOLYA
n, status, d, x1, y1, mask1, . . . xn, yn, maskn [, x, y, z] [stmt1 stmt2 ... stmtn] Similar a la definicin CUTPOLY, pero con la posibilidad de controlar la visibilidad de las aristas de los polgonos generados. La forma de corte es un tubo semi-infinito con la seccin transversal poligonal definida. El final de la forma de corte no puede caer dentro del cuerpo.
Z
CUTEND
j2
j3 Y
i j1 i+1 X
status: 1: uso de los atributos propios del cuerpo para las aristas y polgonos generados 2: los polgonos de corte generados se tratarn como polgonos normales d: distancia entre el origen local y el extremo del tubo semi-infinito d = 0 significa cortar con un tubo infinito similar a la declaracin PRISM_ maski = j1 + 2 * j2 + 4 * j3
maski:
118
Ejemplo:
ROTX 90 FOR I=1 TO 3 FOR J=1 TO 5 CUTPOLYA 6, 1, 0, 1, 0.15, 5, 0.15, 0.15, 900, 0, 90, 4007, 0, 0.85, 5, 0.85, 0.85, 900, 0, 90, 4007 ADDX 1 NEXT J DEL 5 ADDY 1 NEXT I DEL NTR()-1 ADD -0.2, -0.2, 0 BRICK 5.4, 3.4, 0.5 FOR K=1 TO 15 CUTEND NEXT K DEL TOP
119
CUTSHAPE
d [stmt1 stmt2 ... stmtn] Si d = 0.0 la forma de corte es el plano X-Y, el corte elimina la parte superior del plano X-Y. d < 0.0 significa un corte en L. Se elimina la parte superior del plano X-Y con x 0. d > 0.0 significa un corte en U. Similar al corte en L, se elimina la parte superior del plano X-Y con 0 < x < d.
CUTEND
FOR I = 1 TO 5 ADDX 0.4 * I ADDZ 2.5 CUTSHAPE 0.4 DEL 2 ADDX 0.4 NEXT I DEL TOP BRICK 4.4, 0.5, 4 FOR I = 1 TO 5 CUTEND NEXT I
120
Formas Bidimensionales
121
(x, y)
LINE2
(x1, y1)
RECT2
(x1, y1)
122
POLY2
n, framefill, x1, y1, .... xn, yn Polgono abierto o cerrado con n bordes. Restricciones de parmetros: n>2
Y
framefill = j1 + 2*j2 + 4*j3 donde j1, j2, j3 pueden ser 0 or 1. j1 (1): j2 (2): j3 (4): POLY2_ slo contorno slo relleno cerrar un polgono abierto.
n, framefill, x1, y1, mask1, .... xn, yn, maskn Similar a la declaracin normal POLY2, pero se puede omitir cualquiera de los bordes. Si maski = 0, se omitir el borde que arranca del vrtice (xi, yi) . Si maski = 1, se mostrar el vrtice. maski = 1 se usa para definir huecos directamente. Ver PRISM_ para ms detalles. Restricciones de parmetros: n>2
Y
X
Manual de Referencia GDL de ArchiCAD
123
framefill = j1 + 2*j2 + 4*j3 donde j1, j2, j3 pueden ser 0 or 1. j1 (1): j2 (2): j3 (4): maski : slo contorno slo relleno cerrar un polgono abierto. 0: el siguiente segmento es invisible 1: el siguiente segmento es visible -1: fin de un contorno POLY2_A POLY2_B n, framefill, fillpen, x1, y1, mask1, ..., xn, yn, maskn n, framefill, fillpen, fillbkgdpen, x1, y1, mask1, ..., xn, yn, maskn Versiones avanzadas del comando POLY2_ , con parmetros adicionales: la pluma y el relleno. El resto de parmetros son similares a los descritos en la declaracin POLY2_. ARC2 x, y, r, alpha, beta Arco con centro en (x, y) desde un ngulo alpha hasta beta, con radio r. Alpha y beta estn en grados.
be ta
alpha
(x, y)
124
CIRCLE2
r
Y (x, y)
SPLINE2
n, status, x1, y1, angle1,, xn, yn, anglen Restriccin: n2 Spline, con n puntos de control. La tangente en el punto de control (xi, yi) est definida por anglei, el ngulo con eje Ox en grados.
angle i i 1 Y (x i ,yi ) n
Valores de status: 0: por defecto 1: 2: spline cerrada, el primer y ltimo nodos de la spline estarn conectados, cerrando as la spline spline autosuavizada, el valor del parmetro de ngulo de los nodos entre el primero y el ltimo no se usa al generar la spline. Se usa un algoritmo interno de autosuavizado.
125
Ejemplos:
n = 5 FOR I = 1 TO n SPLINE2 4, 0.0, 2.0, -1.0, 1.8, -1.0, 1.0, 0.0, 0.0, MUL2 -1.0, SPLINE2 4, 0.0, 2.0, -1.0, 1.8, -1.0, 1.0, 0.0, 0.0, DEL 1 SPLINE2 4, 0.0, 2.0, 0.0, 2.5, 0.0, 2.4, 0.0, 2.0, ADD2 2.5, NEXT I
0, 135.0, 240.0, 290.0, 45.0 1.0 0, 135.0, 240.0, 290.0, 45.0 0, 100.0, 0.0, 270.0, 270.0 0
126
SPLINE2_A
n, status, x1, y1, angle1, lenPrev1, lenNext1, ... xn, yn, anglen, lenPrevn, lenNextn Extensin de la declaracin SPLINE2 (spline de Bzier), usada principalmente en generacin automtica de scripts 2D a causa de su complejidad (para ms detalles, vea el Manual de Referencia de ArchiCAD).
xti len Ne
Pr
ev
angle i i (x i ,yi ) n
len
Cdigos de status: 0: 1: 2: Por defecto spline cerrada, el primer y ltimo nodos de la spline estarn conectados, cerrando as la spline spline autosuavizada, los valores de los parmetros de ngulo, lenPrevi e lenNexti de los nodos entre el primero y el ltimo no se usa al generar la spline. Se usa un algoritmo interno de autosuavizado. coordenadas de los puntos de control
xi, yi:
lenPrevi, lenNexti: longitudes de las tangentes para los puntos de control anteriores y posteriores anglei: ngulo de la direccin de la tangente
127
Ejemplo:
SPLINE2A 0.0, 0.7, 1.9, 1.9, 1.8, 2.4, 3.5, 4.7, 6.0,
PICTURE2
expression, a, b, mask Puede usarse en 2D de manera similar al comando PICTURE en 3D. Una expresin indica un nombre de archivo, una expresin numrica, un ndice de una imagen guardada en el objeto. Un ndice 0 es un valor especial, se refiere a la imagen previa del objeto de biblioteca. El resto de imgenes solamente pueden guardarse en objetos al guardar el proyecto o elementos seleccionados conteniendo imgenes como Objetos de ArchiCAD.
128
ArchiCAD
(x,y)
129
ALL, use_current_attributes_flag Todos los fragmentos se insertan en la Vista Completa 2D con las transformaciones actuales. use_current_attributes_flag : 0: El fragmento aparece con el color, tipo de lnea y tipo de trama definido para l 1: Los ajustes del script se usan en lugar del color, tipo de lnea y tipo de trama del fragmento
130
6.4 Proyecciones 3D en 2D
PROJECT2 projcode, angle, method Crea una proyeccin del script 3D en el mismo elemento de biblioteca y aade las lneas generadas la smbolo paramtrico 2D. projcode: 3: Vista superior 4: Vista lateral 6: Axonometra frontal 7: Axonometra isomtrica 8: Axonometra monomtrica 9: Axonometra dimtrica -3: -6: -7: -8: -9: angle: method: 1: 2: almbrico opaco analtico Vista Inferior Frontal inferior Isomtrica inferior Monomtrica inferior Dimtrica inferior
131
132
133
Las polilneas planas con cdigos de mask/status en los nodos son la base de muchos elementos en GDL: POLY_ maski PRISM_ CPRISM_ BPRISM_ FPRISM_ SPRISM_ CROOF_ EXTRUDE PYRAMID REVOLVE SWEEP TUBE TUBEA POLY2_ POLY2_A POLY2_B maski maski maski maski maski maski si si si si si si maski maski maski
La resolucin de los arcos se controla mediante directivas descritas en el captulo "Atributos". En el caso de la declaracin POLY2_ , si la resolucin es mayor que 8, se generan arcos reales, si no todos los arcos generados estarn segmentados. Los siguientes cdigos adicionales de mask/status le permiten crear segmentos y arcos en la polilnea usando coacciones especiales. Se refieren al siguiente segmento o arco. Los cdigos de mask/status originales slo son efectivos donde estn especificados (se incluye "+s" despus del cdigo adicional).
134
x,y
dy dx
100
Segmento por extremo relativo dx, dy, 100+s, donde 0 < s < 100
135
l a
200
300
(x1,y1)
600
136
700
ey ex
800
(x0,y0)
900
137
(x,y)
1000
r a
2000
Arco tangente por radio y ngulo r, a, 2000+s, donde 0 < s < 100
3000
x,y
Arco usando centro y punto en el radio final x, y, 3000+s, donde 0 < s < 100
138
4000
4000
Crculo completo usando centro y radio r, 360, 4000+s, donde 0 < s < 100 En este caso, el status s se refiere a todo el crculo Todos los valores de ngulos estn en grados. Las coordenadas omitidas marcadas con 0 (para cdigos 300, 700, 4000) pueden tener cualquier valor.
139
Ejemplos:
EXTRUDE 0, 0, 7, 0, 7, 3, 6, 3, 5, 3, 1, 90, 2, 1, 1, 3, 3, 2,
21, 0, 0, 3, 1+2+4+16+32, 0, 0, 1, 1000, ! arco tangente a extremo 1001, ! arco tangente a extremo 2000, ! arco tangente por radio ! y ngulo 1001, ! arco tangente a extremo 900, ! definir centro 3000, ! arco usando punto inicial, ! centro ! y punto en radio final 900, ! definir centro 4001, ! arco usando punto inicial, ! centro y ngulo 1000, ! arco tangente a extremo 100, ! segmento por (dx, dy) 200, ! segmento por (long, ngulo) 800, ! definir tangente 1000, ! arco tangente a extremo -1, ! final de contorno 900, ! definir centro 4000, ! crculo completo usando centro ! y radio 900, ! definir centro 4001 ! crculo completo usando centro ! y radio
140
EXTRUDE
2+5+10+10+2, 0, 1+2+4+16+32, 0, 0, 900, 3, 360, 4001, 2.5, -1, 0, 2.5, 1, 0, 1.5, 1, 1, 1.5, -1, 1001, 2.5, -1, -1, 0, 2.5, 600, 0, -1, 800, 1, 1.5, 1001, -1, 0, 800, 0, 0.5, 1001, 0, 1, 800, -1, 1.5, 1001, 1, 0, 800, 0, 2.5, 1001, 0, 2.5, 700, -1.5, 0, 900, -2.5, 0, 600, -2.5, 1, 3000, -2.5, 1, 0, -1.5, 1, 0, -1.5, -1, 1001, -2.5, -1, 0, SQR(2)-1, 45, 200, -2.5, 0, 3000, -2.5, 0, 700, 0, -1.5, 900, 1, 360, 4000
0,
3,
141
1,
3,
1+2+4+16+32,
-90 9, 180, 16+32, 0, 0, 0, 0, 0, 900, ! definir centro 4001, ! arco usando punto inicial, ! centro y ngulo 0, 0
142
Captulo 8: Atributos
Atributos
143
Captulo 8: Atributos
8.1 Directivas
Estas directivas influyen en la interpretacin de las declaraciones GDL subsiguientes. Su influencia permanece efectiva hasta la siguiente directiva o hasta el final del script. Los scripts llamados heredan las definiciones actuales, los cambios tienen influencia local. Saliendo del script reajusta las definiciones a tal como eran antes de la llamada a macro. Las directivas RADIUS, RESOL y TOLER definen la suavizacin de los elementos cilndricos 3D (CIRCLE, ARC, CYLIND, SPHERE, ELLIPS, CONE, ARMC, ARME, ELBOW, REVOLVE) y de los arcos en polilneas 2D que usan bordes curvos (ver el captulo "Cdigos de Status Adicionales para Polilneas Planas).
144
Captulo 8: Atributos
Ejemplos:
RADIUS 1.1, 1.15 CYLIND 3.0, 1.0 RADIUS 0.9, 1.15 CYLIND 3.0, 1.0
RESOL
n Define la suavizacin de los elementos cilndricos. Los crculos se convierten en polgonos regulares de n caras. La conversin del arco es proporcional a sto. Tras una declaracin RESOL, las declaraciones previas RADIUS y TOLER pierden su efecto. Restriccin de parmetros: n>3 Por omisin:
RESOL 36
Ejemplos: n>3
RESOL 5 CYLIND 3.0, 1.0 RESOL 36 CYLIND 3.0, 1.0
TOLER
d Define la suavizacin de los elementos cilndricos. El error de aproximacin del arco (p.e. la mayor distancia entre un arco terico y la cuerda generada) ser menor que d. Tras una declaracin TOLER, las declaraciones previas RADIUS y RESOL pierden su efecto.
145
Captulo 8: Atributos
Ejemplos:
TOLER 0.1 CYLIND 3.0, 1.0 TOLER 0.01 CYLIND 3.0, 1.0
PEN
n Define el color actual. Restriccin de parmetros: 0 < n < 99 Por omisin: PEN 1 si no hay declaracin de PEN en el script. (Para tems de biblioteca, ArchiCAD lee valores por omisin desde la definicin del tem de biblioteca. Si el script se refiere a un ndice inexistente, PEN 1 ser la definicin por omisin.)
name_string index Todos los textos generados despus representarn este estilo hasta la prxima declaracin de SET STYLE. El ndice es una constante referida a una pila de estilos en la estructura de datos interna de ArchiCAD. Esta pila se modifica durante el anlisis GDL y tambin puede ser modificada desde el programa. El uso del ndice en lugar del nombre del estilo se recomienda slo con un uso previo de la funcin IND descrita ms adelante. Por omisin:
SET STYLE 0
(tipo de la aplicacin, tamao 5 mm, insercin= 1, normal) si no hay declaracin de SET STYLE en el script. Ver tambin la funcin IND en el Captulo 10.
146
Captulo 8: Atributos
147
Captulo 8: Atributos
name_string index Todas las superficies generadas despus representarn este material hasta la prxima declaracin de MATERIAL. Las superficies en los cuerpos BPRISM_,CPRISM_, FPRISM_, SPRISM_, CSLAB_, CWALL_, BWALL_, XWALL_, CROOF, y MASS son excepciones a esta regla. El ndice es una constante referida a una pila de material en la estructura de datos interna de ArchiCAD. Esta pila se modifica durante el anlisis GDL y tambin puede ser modificada desde el programa. El uso del ndice en lugar del nombre del material se recomienda slo con un uso previo de la funcin IND. El ndice 0 tiene un significado especial: las superficies usan el color de la pluma actual y tienen una apariencia mate. Por omisin:
MATERIAL 0
si no hay declaracin de MATERIAL en el script. (Para objetos de Biblioteca, ArchiCAD lee los valores por defecto de las definiciones de la Biblioteca. Si el script se refiere a un ndice no existente, el ajuste por defecto ser MATERIAL 0). Ver tambin la descripcin de la funcin IND en el Apndice. SHADOW keyword1[, keyword2] Controla la proyeccin de sombras de los elementos en el FotoRendering y en las sombras vectoriales. keyword1: ON, AUTO u OFF keyword2: ON: OFF: AUTO: ON u OFF todos los elementos subsiguientes arrojarn sombras en todas las circunstancias. todos los elementos subsiguientes no arrojarn sombras en todas las circunstancias. la proyeccin de sombras se determinar automticamente.
Si define SHADOW OFF para partes ocultas, ahorrar espacio y tiempo de proceso. Definir SHADOW ON asegura que incluso los menores detalles arrojarn sombras. El segundo control opcional controla la aparicin de sombras en superficies.
148
Captulo 8: Atributos
SHADOW keyword1, OFF desactiva las sombras vectoriales sobre las superficies siguientes. SHADOW keyword1, ON reactiva las sombras vectoriales. Por omisin:
SHADOW AUTO
OFF 1, 2 ON 1, 2 OFF 1,
1,
1,
1,
trama vaca, si no hay declaracin de SET FILL en el script. Ver tambin la descripcin de la funcin IND en el Apndice.
Manual de Referencia GDL de ArchiCAD
149
Captulo 8: Atributos
name_string index Todas las lneas 2D posteriores mostrarn este tipo de lnea (lneas, arcos y polilneas) hasta la prxima declaracin SET LINE_TYPE. El ndice es una constante referida a una pila de tipos de lnea en la estructura de datos interna de ArchiCAD. Esta pila se modifica durante el anlisis GDL y tambin puede ser modificada desde el programa. El uso del ndice en lugar del nombre del tipo de lnea se recomienda slo con un uso previo de la funcin IND. Por omisin:
SET LINE_TYPE 1
lnea continua, si no hay declaracin SET LINE_TYPE en el script. Ver tambin la descripcin de la funcin IND en el Apndice.
150
Captulo 8: Atributos
Definicin de materiales
DEFINE MATERIAL name type, m1, m2, . . . mn Cualquier script GDL puede incluir definiciones de materiales previas a la primera referencia a dicho material. El material definido de este modo puede usarse solamente en el script donde fue definido y en sus scripts secundarios. name : nombre del material. type : 0: definicin general, n=16 El significado de los parmetros y sus lmites se muestra en los siguientes ejemplos. 1: definicin simple, n=9 Los parmetros extra son constantes o calculados desde valores dados. 2-7: tipos de material predefinidos, n=3 Estos 3 valores son las componentes RGB del color de la superficie. Otros parmetros son constantes o calculados a partir del color. 2: mate 3: metlico 4: plstico 5: vidrio 6: incandescente 7: constante 10 : definicin general, parmetro de trama n=17 11 : definicin simple, parmetro de trama n=10 12-17 : tipos de materiales predefinidos con parmetro de trama, n=4 20: definicin general con trama, ndice de color de la trama e ndice de los parmetros de textura, n=19 21: definicin simple con trama, ndice de color de la trama e ndice de los parmetros de textura, n=12 22-27: tipos de material predefinido con trama, ndice de color de trama e ndice de los parmetros de textura, n=6
Manual de Referencia GDL de ArchiCAD
151
Captulo 8: Atributos
Ejemplos:
DEFINE MATERIAL "water" 0, 0.5284, 0.5989, 0.6167, ! surface RGB [0.0..1.0] 1.0, 0.5, 0.5, 0.9, ! ambient, diffuse, specular, transparent ! coefficients [0.0..1.0] 20, ! shining [0.0..100.0] 1, ! transparency attenuation [0.0..4.0] 0.5284, 0.5989, 0.6167, ! specular RGB [0.0..1.0] 0, 0, 0, ! emission RGB [0.0..1.0] 0.0 ! emission attenuation [0.0..65.5] DEFINE MATERIAL "asphalt" 1, 0.1995, 0.2023, 0.2418 ! surface RGB [0.0..1.0] 1.0, 1.0, 0.0, 0.0, ! ambient, diffuse, specular, transparent ! coefficients [0.0..1.0] 0, ! shining [0..100] 0 ! transparency attenuation [0..4] DEFINE MATERIAL "matte red" 2, 1.0, 0.0, 0.0 ! surface RGB [0.0..1.0] DEFINE MATERIAL "Red Brick" 10, 0.878294, 0.398199, 0.109468, 0.58, 0.85, 0.0, 0.0, 0, 0.0, 0.878401, 0.513481, 0.412253, 0.0, 0.0, 0.0, 0, IND(FILL, "common brick") ! fill index
152
Captulo 8: Atributos
DEFINE MATERIAL "Yellow Brick+*" 20, 1, 1, 0, ! surface RGB [0.0 .. 1.0] 0.58, 0.85, 0, 0, ! ambient, diffuse, specular, transparent ! coefficients [0.0 .. 1.0] 0, ! shining [0.0 .. 100.0] 0, ! transparency attenuation [0.0 .. 4.0] 0.878401, 0.513481, 0.412253, ! specular RGB [0.0 .. 1.0] 0, 0, 0, ! emission RGB [0.0 .. 1.0] 0, ! emission attenuation [0.0 .. 65.5] IND(FILL, "Brick Jointing 25x75"), 61, IND(TEXTURE, "Brick") ! Fill index, color index, texture index
Significados especiales para los tipos 20 - 27: - Si el nmero de pluma es cero, las tramas vectoriales se generarn con la pluma activa. - El valor cero para el ndice de textura le permite definir materiales sin trama vectorial o textura.
153
Captulo 8: Atributos
DEFINE TEXTURE
name, filename, x, y, mask, angle Cualquier script GDL puede incluir definiciones de textura antes de la primera referencia a ese nombre de textura. La textura puede utilizarse slo en el script en que se defini y en los scripts sucesivos a este. name: nombre de la textura filename: x: y: mask: nombre de la imagen anchura lgica de la textura altura lgica de la textura j1 + 2 * j2 + 4 * j3 + 8 * j4 + 16 * j5 + 32 * j6 + 64 * j7 + 128 * j8 + 256 * j9 donde j1, j2, j3, j4, j5, j6, j7, j8, j9 puede ser 0 1. controles de canal Alfa (j1 j6): j1: el canal alfa cambia la transparencia de la textura j2: Mapeado Bump o perturbacin normal de la superficie. El mapeado Bump utiliza el canal Alfa para determinar la amplitud de la normal de la superficie. j3: j4: j5: j6: el canal alfa cambia el color difuso de la textura el canal alfa cambia el color especular de la textura el canal alfa cambia el color ambiente de la textura el canal alfa cambia el color de superficie de la textura
y x
154
Manual de Referencia GDL de ArchiCAD
Captulo 8: Atributos
j7:
x
j8: simetra en direccin X
y x
j9: simetra en direccin Y
y x
angle: ngulo de rotacin desde la orientacin natural. Ejemplo:
DEFINE TEXTURE "Brick" "Brick.PICT", 1.35, 0.3, 256+128, 35.0
155
Captulo 8: Atributos
Definicin de trama
DEFINE FILL name pat1, pat2, pat3, pat4, pat5, pat6, pat7, pat8, spacing, angle, n, freq1, dir1, offsetx1, offsety1, m1, len11, . . . lenm1, ... freqn, dirn, offsetxn, offsetyn, mn, lenn1, . . . lennm Cualquier script GDL puede incluir definiciones de tramas previas a la primera referencia a dicha trama. La trama definida de este modo puede usarse solamente en el script donde fue definido y en sus scripts secundarios.
m line parts
freq
name :
nombre de la trama. definicin del patrn, 8 nmeros entre 0 y 255 representando valores binarios. Define el aspecto bitmap de la trama.
spa cing *y
spa cing *x x
angle
156
Captulo 8: Atributos
spacing :
factor de espaciado entre lneas - define un factor de escala global para toda la trama. Todos los valores sern multiplicados por este nmero en ambas direcciones x e y. ngulo de rotacin global en grados nmero de lneas de trama frecuencia de la lnea (la distancia entre dos lneas es spacing * freqi) ngulo de direccin de la lnea en grados desplazamiento de la lnea desde el origen nmero de partes de lnea longitud de las partes de lnea (la longitud real es spacing * lenij). Las partes de lnea son segmentos y espacios unos a continuacin de otros. La primera parte de lnea es un segmento, una longitud cero significa un punto.
La trama bitmap est definida slo por los parmetros pat1...pat8 y se usa en ArchiCAD cuando se ajusta Opciones / Opciones de Visualizacin / Tramas de Polgonos / Tramas Bitmap. Para definirla, escoja la unidad de trama ms pequea, y represntela como puntos y huecos usando una cuadrcula de 8x8. Los 8 parmetros de trama son representaciones decimales de los valores binarios en las lneas de la cuadrcula (un punto es 1, un hueco es 0). La trama vectorial (Opciones / Opciones de Visualizacin / Tramas de Polgonos / Tramas Vectoriales) queda definida en la segunda parte de la definicin de trama como una coleccin de lneas discontinuas repetidas con una frecuencia dada (freqi). Cada lnea de la coleccin se describe por su direccin (diri), su desplazamiento desde el origen (offsetxi, offsetyi) y la definicin de lnea discontinua que contiene segmentos y espacios con una longitud dada (lenij) a continuacin de cada uno. Nota: Slo pueden definirse en GDL tramas simples, no es posible definir tramas de smbolos.
157
Captulo 8: Atributos
Ejemplo:
DEFINE FILL "brick" 0.08333, 1.0, 3.0, 1.0, 3.0, 1.0, 1.5, 1.0, 0.0, 0.0, 90.0, 1.0, 90.0, 3.0, 90.0, 5.0 85, 255, 136, 255, 34, 255, 136, 255, 4, 0.0, 0.0, 0, 0.0, 0.0, 2, 1.5, 1.0, 0.75, 1.0, 1.0, 3.0, 4, 2,
Valor binario:
01010101 11111111 10001000 11111111 00100010 11111111 10001000 11111111
Vista:
Trama vectorial:
158
Captulo 8: Atributos
freq
doffset i
freq
doffset i
spacingx : spacingy :
angle
factor de espaciado en la direccin x factor de espaciado en la direccin y Estos dos parmetros definen un factor de escala global para toda la trama. Todos los valores en la direccin x sern multiplicados por spacingx y todos los valores en la direccin y sern multiplicados por spacingy.
159
Captulo 8: Atributos
doffseti:
el desplazamiento del principio de la siguiente lnea de trama similar, medido a lo largo de la direccin de la lnea. Cada lnea de la serie ser dibujada a una distancia dada por freqi con un desplazamiento dado por doffseti La longitud real del desplazamiento ser spacing multiplicado por doffseti.
8, 8, 142, 128, 232, 142, 128, 232, 2, 2, 1, 1, 1, 3
Ejemplo:
DEFINE FILLA "TEST"
0.5, 0.5, 0, 2, 2, 1, 90, 0, 0, 1, 2, 0, 0, 0, FILL "TEST" POLY2 4, 6, -0.5, -0.5, 12, -0.5, 12, 6, -0.5, 6
Valor binario:
00001000 10001110 10000000 11101000 00001000 10001110 10000000 11101000 .
Vista:
Trama vectorial:
160
Captulo 8: Atributos
Nota: En GDL slo pueden definirse tipos de lneas simples, es decir, las que consisten en segmentos y espacios, no hay posibilidad de definir lneas de smbolos. Ejemplo: DEFINE LINE_TYPE "line - - ." 1, 6, 0.005, 0.002, 0.001, 0.002, 0.0, 0.002
161
Captulo 8: Atributos
Definicin de estilo
DEFINE STYLE DEFINE STYLE DEFINE STYLE name font_family, size, anchor, facecode name PLOTMAKER, size, anchor, slant name PLOTTER, size, anchor, slant Cualquier script GDL puede incluir definiciones de estilo previas a la primera referencia a dicho estilo. El estilo definido de este modo puede usarse solamente para elementos 2D en el script donde fue definido y en sus scripts secundarios. name : nombre del estilo font_family : nombre de la familia de tipos usada (p.e. Geneva) size : anchor : altura de los caracteres en mm. cdigo del punto de posicin en el texto
1 4 7
facecode :
2 5 8
0 1 2 4 8 16
3 6 9
combinacin de los siguientes valores: normal negrita cursiva subrayada hueca sombra
slant :
162
Scripts No Geomtricos
163
code [, keycode] Referencia por cdigo y cdigo llave a una descripcin en una base de datos externa.
COMPONENT
name, quantity, unit [, prop_with, code, keycode, unitcode] Definicin de componentes locales. Los scripts pueden incluir cualquier nmero de COMPONENTs.
164
nombre del componente (max. 128 caracteres) cantidad, una expresin numrica el texto usado para la descripcin de unidad un cdigo entre 1-6. Al hacer un listado, la cantidad de componentes definida anteriormente ser automticamente multiplicada por un valor calculado para el elemento listado
1: elemento 2: longitud 3: superficie A 4: superficie B 5: superficie 6: volumen code : keycode : texto, define un cdigo para el componente texto, hace referencia a una clave en una base de datos externa La clave se asignar al componente. unitcode : texto, hace referencia a una unidad en una base de datos externa que controla el formato de salida de la cantidad de componentes. Esto sustituir la unidad definida localmente.
REF COMPONENT
code [, keycode [, num_expr]] Referencia por cdigo y cdigo llave a un componente en una base de datos externa. El valor por el que multiplicar en la base de datos de componentes puede ser sustituido por la expresin numrica opcional especificada aqu.
BINARYPROP Referencia a datos de propiedades binarios (componentes y descripciones) definidos en el elemento de biblioteca en la seccin de Componentes/Descripciones. SURFACE3D ( ) VOLUME3D ( ) Estas funciones le dan la superficie y el volumen de la forma 3D del elemento de biblioteca.
165
Atencin: Si coloca dos o ms formas en la misma posicin con los mismos parmetros, estas funciones le darn la suma total de las superficies y volmenes de todas las formas. POSITION position_keyword Efectivo slo en el Listado de Componentes. Cambia el tipo slo del elemento al que estn asociados los componentes y descripciones siguientes. Si no hay este tipo de directivas en el script de Propiedades, los componentes y descripciones sern listados con sus tipos de elementos por defecto. Las palabras clave son las siguientes: WALLS COLUMNS DOORS WINDOWS OBJECTS CEILS PITCHED_ROOFS LIGHTS HATCHES ROOMS MESHES Una directiva permanece vlida para todos los DESCRIPTORs y COMPONENTs siguientes hasta que se asigna la siguiente directiva. Un script puede incluir cualquier nmero de directivas. Ejemplo:
DESCRIPTOR "\tPainted box.\n\t Properties:\n\ \t\t - swinging doors\n\ \t\t - adjustable height\n\ \t\t - scratchproof" REF DESCRIPTOR "0001" s = SURFACE3D () ! wardrobe surface COMPONENT "glue", 1.5, "kg" COMPONENT "handle", 2 * c, "nb" ! c number of doors COMPONENT "paint", 0.5 * s, "kg" POSITION WALLS REF COMPONENT "0002"
DRAWING Se refiere al dibujo descrito en el script 2D del mismo elemento de biblioteca. selo para colocar dibujos en sus listados de materiales.
166
167
168
10
Expresiones y Funciones
169
Todos los parmetros de las formas GDL pueden ser resultado de clculos. Por ejemplo, se puede definir que la altura de un cilindro sea cinco veces el radio de su base, o previamente a definir un cubo, mover el sistema de coordenadas en cada direccin la mitad del tamao del cubo, para tener el origen en el centro del cubo en lugar de en la esquina inferior izquierda. De cara a definir estos clculos el GDL ofrece un amplio nmero de herramientas matemticas: expresiones, operadores y funciones.
10.1 Expresiones
Se pueden escribir expresiones compuestas en las declaraciones GDL, que pueden ser numricas o de texto. En los operadores hay constantes, variables, parmetros o llamadas a funcin y cualquier combinacin de ellos. Se usan pares de parntesis curvos (( )) (precedencia 1) para anular la precedencia por defecto de los operadores. Las variables de tipo simple pueden ser valores numricos y de texto, incluso en el mismo script, y pueden usarse en expresiones numricas y de texto respectivamente. Las operaciones que dan como resultado texto NO PUEDEN ser usadas directamente como nombres de macro en llamadas a macro, o como nombres de atributos en definiciones de material, trama, tipo de lnea o estilo. Las variables con valor de texto sern tratadas como tal y pueden ser usadas en cualquier lugar donde se requieran valores de texto. Si ms adelante en el script a la misma variable se le da un valor numrico, ser utilizable slo en expresiones numricas hasta que se le d otra vez valor de texto. En el proceso de precompilacin se comprueba el tipo de las expresiones. El GDL soporta matrices de una y dos dimensiones. Las variables devienen matrices despus de una declaracin, en la cual se especifican sus dimensiones mximas: DIM var1 [dim_1], var2 [dim_1][dim_2], ... Despus de la palabra clave DIM puede haber cualquier nmero de nombres de variables separados por comas. var1 yvar2 son los nombres de matriz, los nmeros entre parntesis representan las dimensiones de la matriz (constantes numricas). Las expresiones variables no pueden ser usadas como dimensiones. Los parmetros de los elementos de biblioteca tambin pueden ser matrices. Sus dimensiones se especifican en el dilogo del elemento. Las matrices de parmetros no tienen que declararse en el script. Al
170
referenciar un elemento de biblioteca usando una declaracin CALL, el parmetro actual ha de ser una matriz con las mismas dimensiones. Los elementos de las matrices pueden referenciarse donde se quiera en el script, pero si hay variables, slo despus de la declaracin: var1 [num_expr] o var1 var2 [num_expr1][num_expr2] o var2 Escribir el nombre de matriz sin valores de ndice actual significa referenciar toda la matriz, lo cual se acepta en algunos casos (declaraciones CALL, PRINT, LET, PUT, REQUEST, INPUT, OUTPUT). Los elementos de matriz pueden ser usados en cualquier expresin numrica o de texto, pueden ser valores numricos o de texto dados. Los ndices empiezan con 1, y cualquier expresin numrica puede ser usada como ndice. Los nombres de matriz no pueden ser usados despus en el mismo script como nombres de variables simples. Si el valor de un ndice actual llega a ser mayor que la dimensin declarada o que la dimensin de parmetros, se obtendr un mensaje de error. Ejemplos de expresiones numricas:
Z 5.5 (+15) -X A*(B+C) SIN(X+Y)*Z A+R*COS(I*D) 5' 4" SQR (x^2 + y^2) / (1 - d) a + b * sin (alpha) altura* anchura
171
10.2 Operadores
Los operadores siguientes se enumeran en orden de precedencia decreciente. La evaluacin de una expresin empieza con el operador de precedencia ms alta y, si no, de izquierda a derecha.
Operadores aritmticos
^ (o **) * / MOD (or %) + Potencia de Multiplicacin Divisin Mdulo (parte restante) X MOD Y = X - Y * INT (X/Y) Suma Resta precedencia 4 precedencia 4 precedencia 2 precedencia 3 precedencia 3 precedencia 3
Note: + (suma) tambin puede aplicarse a expresiones de texto: el resultado es la concatenacin de textos.
Operadores Relacionales
= < > <= >= <> (o #) Igual Menor que Mayor que Menor o igual que Mayor o igual que No igual a precedencia 5 precedencia 5 precedencia 5 precedencia 5 precedencia 5 precedencia 5
Los operadores relacionales pueden utilizarse entre dos expresiones texto cualquiera. El resultado es un nmero 1 o 0. Esta funcin es sensible a maysculas o minsculas.
Operadores Booleanos
AND (o&) OR (o |) EXOR (o @) y lgico o lgico inclusivo o lgico exclusivo precedencia 6 precedencia 7 precedencia 8
172
El GDL usa solamente nmeros de coma flotante, mientras que los operadores Booleanos trabajan con nmeros reales. As 0.0 significa falso, mientras que cualquier otro nmero significa verdadero. El valor de una expresin lgica tambin es real, p.e. 1.0 para verdadero y 0.0 para falso.
10.3 Funciones
Funciones Aritmticas
ABS (x) INT (x) FRA (x) SGN (x) SQR (x) Devuelve el valor absoluto de x. Devuelve la parte entera de x. (e.g. INT(1.23) = 1, INT(-1.23) = -2). Devuelve la parte fraccional de x. (e.g. FRA(1.23) = 0.23, FRA(-1.23) = 0.77). Devuelve +1.0 si x es positivo, -1.0 si negativo, de otro modo 0.0. Devuelve la raz cuadrada de x.
Funciones Circulares
Estas funciones usan grados para sus argumentos (COS, SIN, TAN) y para devolver valores (ACS, ASN, ATN). ACS (x) ASN (x) ATN (x) COS (x) SIN (x) TAN (x) PI Devuelve el arco coseno de x. (-1.0 < x < 1.0; 0 < ACS(x) < 180). Devuelve el arco seno de x. (-1.0 < x < 1.0; -90 < ASN(x) < 90). Devuelve el arco tangente de x. (-90 < ATN(x) < 90). Devuelve el coseno de x. Devuelve el seno de x. Devuelve la tangente de x. Devuelve la constante de Ludolph. ( = 3.1415926).
173
Funciones Trascendentes
EXP (x) LGT (x) LOG (x) Devuelve la x a potencia de e. (e = 2.7182818). Devuelve el logaritmo decimal de x. Devuelve el logaritmo neperiano de x.
Funciones Booleanas
NOT (x) Devuelve falso (=0.0) si x es verdadero ( 0.0) y verdadero (=1.0) si x es falso (=0.0). (Negacin lgica).
Funciones Estadsticas
MIN (x1,x2, . . . xn) MAX (x1,x2, . . . xn) RND (x) Devuelve el menor de un numero ilimitado de argumentos. Devuelve el mayor de un numero ilimitado de argumentos. Devuelve un valor aleatorio entre 0.0 y x. (x > 0.0).
Funciones de texto
STR STR (numeric_expression, len, frac) (formatstring, numeric_expression) La primera forma de la funcin crea una secuencia de texto desde el valor actual de la expresin numrica. El mximo nmero de caracteres numricos en el texto es len, mientras que frac representa el nmero que sigue a la coma flotante. Ejemplo:
A=4.5 B=2.345 TEXT2 0, 2, STR(A, 8, 2) TEXT2 0, 1, STR(B, 8, 2) TEXT2 0, 0, STR(A*B, 8, 2)
En el segundo caso, el formatstring puede ser una variable o una constante. Si el formato est vaco, se interpreta como metros, con una precisin de tres decimales (ceros enteros). El formatstring puede ser como el que se muestra a continuacin:
174
%[0 or more flags] [field_width] [.precision] conv_spec flags (for m, mm, cm, e, df, di, sqm, sqcm, sqf, sqi, dd, gr, rad): none justificar derecha (por defecto) + justificar izquierda explicitar signo ms
space en lugar de un signo + flags (for m, mm, cm, df, di, sqm, sqcm, sqf, sqi, dd, gr, rad): '#' flags (for ffi, fdi, fi): '0' mostrar 0 pulgadas field_width: decimal entero no asignado el mnimo nmero de caracteres a generar precision: decimal entero no asignado el nmero de fraccionales a generar conv_spec (especificador de conversin): e m mm cm ffi fdi df fi di para reas: sqm - m2 sqcm - cm2 sqmm - mm2 sqf sqi
Manual de Referencia GDL de ArchiCAD
- formato exponencial (metros) - metros - milmetros - centmetros - pies y pulgadas - pies y pulgadas decimales - pies decimales - pulgadas fraccionales - pulgadas decimales
- pies2 - pulgadas2
175
alpha = 88.657 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 0, 0, 0, 0, 0, 0, h-17, h-18, h-19, h-20, h-21, h-22, STR STR STR STR STR STR ("%+10.3dd", alpha) ! +88.657 ("%.1dms", alpha) !8839' ("%.2dms", alpha) !8839'25" ("%10.4gr", alpha) ! 98.5078G ("%rad", alpha) !1.55R ("%.2surv", alpha) !N 120'35" E
176
SPLIT
(texto, format, var1 [, var2, ..., varn]) Divide el parmetro de texto segn el formato en uno o ms partes numricas o de texto. El proceso de divisin se detiene cuando se encuentra la primera parte no coincidente. Devuelve el nmero de valores ledos con xito. texto : format : el texto a dividir cualquier combinacin de constantes de texto, %s y %n -s. Las partes de la secuencia de texto deben encajar en las constantes de texto, %s denota cualquier valor de texto delimitado por espacios o tabuladores %n denota cualquier valor numrico. los nombres de variables para guardar las partes de texto divididas
vari : Ejemplo:
ss = "3 pieces 2x5 beam" n = SPLIT (ss, "%n pieces %nx%n %s", num, ss1, size1, ss2, size2, name) IF n = 6 THEN PRINT num, ss1, size1, ss2, size2, name !3 pieces 2 x 5 beam ELSE PRINT "ERROR" ENDIF
STW
(string_expression) Devuelve la longitud del texto en metros mostrado en el estilo actual. Ejemplo:
abcd
DEFINE STYLE "own" "Monaco", 180000 / A_, 0, 0 SET STYLE "own" string = "abcd" width = STW (string) / 1000 * A_ REQUEST ("Height_of_style", "own", height) height = height / 1000 * A_ text2 0,0, string rect2 0,0, width, -height
Manual de Referencia GDL de ArchiCAD
177
STRLEN
STRSTR
(string_exp1, string_exp2) Devuelve la posicin de la primera aparicin del segundo texto en el primer texto. Si el primer texto no contiene al segundo, la funcin devuelve 0.
STRSUB
(string_exp, begpos, numchars) Devuelve una subsecuencia del parmetro de texto que empieza en la posicin dada por el parmetro begpos y su longitud es numchars caracteres. Ejemplo:
ss = "" REQUEST ("Linear_dimension", "", ss) unit = "" IF STRSTR (ss, "m") > 0 THEN unit = "m" IF STRSTR (ss, "mm") > 0 THEN unit = "mm" IF STRSTR (ss, "cm") > 0 THEN unit = "cm" TEXT2 0, 0, STR (ss, a) + " " + unit ! 1.00 m string = "Flowers.PICT" len = STRLEN (string) n = STRSTR (string, ".") TEXT2 0, -1, STRSUB (string, 1, n - 1) TEXT2 0, -2, STRSUB (string, len - 4, 5) ! Flowers ! .PICT
178
Funciones Especiales
Las funciones especiales (junto a las variables globales) pueden ser usadas en el script para comunicar con ArchiCAD. O bien preguntan el estado actual y distintos ajustes de preferencias del programa, o bien se refieren al entorno actual del elemento de biblioteca. Tambin pueden usarse llamadas de peticin para comunicar con extensiones GDL. Hay dos tipos de funciones especiales: peticiones y la funcin IND: REQ REQUEST IND IND IND IND (parameter_string) (question_name, name | index, var1 [, var2,....]) (MATERIAL, name_string) (FILL, name_string) (LINE_TYPE, name_string) (STYLE, name_string) Vera ms detalles en el Apndice: Funciones Especiales
179
180
11
Declaraciones de Control
181
NEXT
varnam ltima declaracin de un bucle FOR. La variable de bucle vara desde el initial_value hasta el end_value en incrementos (o decrementos) del step_value en cada ejecucin del cuerpo del bucle (declaraciones entre las declaraciones FOR y NEXT). Si la variable de loop excede el valor del end_value, el programa ejecuta la declaracin siguiendo la declaracin NEXT. Los dos fragmentos de programa siguientes son equivalentes:
! 1st A = B 1:IF C > 0 AND A > D OR C < 0 AND A < D THEN 2 PRINT A A = A + C GOTO 1
2:
! 2nd FOR A = B TO D STEP C PRINT A NEXT A
El ejemplo anterior muestra que un step_value = 0 provoca un bucle infinito. Solamente se permite una declaracin NEXT despus de una declaracin FOR. Est permitido salir del bucle con una declaracin GOTO (o IF ... GOTO) y volver a l, pero no est permitido entrar un bucle saltndose la declaracin FOR.
182
DO [stmt1 stmt2 ... stmtn] condicin Las declaraciones entre las palabras claves se ejecutan mientras la condicin es verdadera. La condicin se comprueba despus de cada ejecucin de las declaraciones. WHILE condicin DO [stmt1 stmt2 ... stmtn] Las declaraciones entre las palabras claves se ejecutan mientras la condicin es verdadera. La condicin se comprueba antes de cada ejecucin de las declaraciones. REPEAT [stmt1 stmt2 ... stmtn] condicin Las declaraciones entre las palabras claves se ejecutan hasta que la condicin llega a ser verdadera. La condicin se comprueba despus de cada ejecucin de las declaraciones.
WHILE
ENDWHILE
UNTIL
183
IF IF IF
condicin THEN label condicin GOTO label condicin GOSUB label Declaracin de salto condicional. Si el valor de la condicin es 0 , el comando no tiene efecto, de otro modo, la ejecucin contina en la etiqueta. Ejemplos:
IF IF IF A THEN 28 I > J GOTO 200+I*J I > 0 GOSUB 9000
184
IF
IF
condicin THEN [stmt1 stmt2 ... stmtn] stmtn+1 stmtn2 ... stmtn+m]
[ELSE
ENDIF Si slo escribe un comando despus de palabras clave THEN y/o ELSE en la misma fila, no es necesario ENDIF. Un comando despus de THEN o ELSE en la misma fila significa un ENDIF definido. Si existe una nueva fila despus de THEN, los comandos sucesivos (todos ellos despus de la palabra clave ELSE o ENDIF) slo se ejecutarn si la expresin en la condicin es verdadera (diferente de cero). De otra forma, los comandos que sigan a ELSE se eliminarn. Si la palabra clave ELSE no existe, los comandos despus de ENDIF sern eliminados. Ejemplo:
IF a = b THEN height = 5 ELSE height = 7 IF needdoors THEN CALL "door_macro" PARAMETERS ADDX a ENDIF IF simple THEN HOTSPOT2 0, 0 RECT2 a, 0, 0, b ELSE PROJECT2 3, 270, 1 IF name = "Sphere" THEN ADDY b SPHERE 1 ELSE ROTX 90 TEXT 0.002, 0, name ENDIF
Manual de Referencia GDL de ArchiCAD
185
GOTO
label Declaracin de salto incondicional. El programa ejecuta una rama de la declaracin indicada por el valor de la etiqueta Ejemplo:
GOTO K+2
GOSUB
label Llamada a subrutina interna donde la etiqueta es el punto de entrada de la subrutina. Ver Etiquetas en el captulo "Elementos Sintcticos Bsicos".
RETURN Vuelve de una subrutina interna. END EXIT Final del script GDL actual. El programa termina o vuelve al nivel anterior. Es posible usar varios ENDs o EXITs en un archivo GDL. BREAKPOINT expression Con este comando, se puede especificar un punto de interrupcin en el script GDL. El analizador (debugger) GDL se detendr en este comando si el valor del parmetro (una expresin numrica) es verdadero (1) y est activa la opcin Activar Interrupciones en el analizador. En el modo de ejecucin "normal", el intrprete GDL simplemente pasa sobre este comando.
186
PUT
NSP = NSP+1
GET
NSP = NSP-1
USE
PUT
expression [ , expression ] . . . Almacena los valores dados en el orden dado en buffer de parmetros interno.
GET
(n) Usa los siguientes n valores del buffer de parmetros interno y los olvida.
187
USE
(n) Usa los siguientes n valores del buffer de parmetros interno sin borrarlos. Las siguientes funciones USE y GET pueden usar la misma secuencia de parmetros.
NSP Devuelve el nmero de parmetros almacenados en el buffer. Ejemplo de uso del buffer de parmetros:
R=2 : B=6 : C=4 : D=10 N=12 S=180/N FOR T=0 TO 180 STEP S PUT R+R*COS(T), C-R*SIN(T), 1 NEXT T FOR I=1 TO 2 EXTRUDE 3+NSP/3, 0,0,D, 1+16, 0, B, 0, 2*R, B, 0, USE(NSP), 0, B, 0 MULY -1 NEXT I DEL 1 ADDZ D REVOLVE 3+NSP/3, 180, 0, 0, B, 0, 2*R, B, 0, GET(NSP), 0, B, 0
188
La descripcin completa:
R=2 : B=6 : C=4 : D=10 FOR I=1 TO 2 EXTRUDE 16, 0,0,D, 1+16, 0, B, 0, 2*R, B, 0, 2*R, C, 1, R+R*COS(15), C-R*SIN(15), R+R*COS(30), C-R*SIN(30), R+R*COS(45), C-R*SIN(45), R+R*COS(60), C-R*SIN(50), R+R*COS(75), C-R*SIN(75), R+R*COS(90), C-R*SIN(90), R+R*COS(105), C-R*SIN(105), R+R*COS(120), C-R*SIN(120), R+R*COS(135), C-R*SIN(135), R+R*COS(150), C-R*SIN(150), R+R*COS(165), C-R*SIN(165), 0, B, 1, 0, B, 0 MULY -1 NEXT I DEL 1 ADDZ D REVOLVE 16, 180, 0, 0, B, 0, 2*R, B, 0, 2*R, C, 1, R+R*COS(15), C-R*SIN(15), R+R*COS(30), C-R*SIN(30), R+R*COS(45), C-R*SIN(45), R+R*COS(60), C-R*SIN(50), R+R*COS(75), C-R*SIN(75), R+R*COS(90), C-R*SIN(90), R+R*COS(105), C-R*SIN(105), R+R*COS(120), C-R*SIN(120), R+R*COS(135), C-R*SIN(135), R+R*COS(150), C-R*SIN(150), R+R*COS(165), C-R*SIN(165), 0, B, 1, 0, B, 0
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
189
190
El segundo tipo slo puede utilizarse con elementos de biblioteca con caractersticas plenas y no con archivos GDL textuales. Despus de la palabra clave PARAMETERS necesita listar los nombres de parmetros de la macro llamada en cualquier secuencia, con una marca '=' y un valor para cada uno. Puede utilizar expresiones de tipo texto, pero tenga cuidado en dar un valor de texto solamente a los parmetros de tipo texto del macro llamado. Si no se puede encontrar un nombre de parmetro en la lista de parmetros en la llamada a macro, recibir un mensaje de error. A los parmetros de la macro llamada que no estn listados en la llamada a macro se les dar su valor por omisin original como fue definido en el tem de biblioteca llamado. Una macro GDL tiene su propio entorno que depende de su orden de llamada. Los valores actuales de las opciones MODEL, RADIUS, RESOL, TOLER, PEN, LINE_TYPE, MATERIAL, FILL, STYLE, SHADOW y las transformaciones actuales son vlidas en la macro. Puede usarlos o modificarlos, pero las modificaciones tienen un efecto local solamente. No tendrn efecto en el nivel del que el macro fue llamado. Dar parmetros a una llamada a macro significa asignarlos implcitamente en el nivel del macro. Los parmetros A y B se usan generalmente para redimensionar los objetos. Ejemplos:
CALL "leg" 2, , 5 leg 2, , 5 ! A = 2, B = 0, C = 5
CALL "door-1" PARAMETERS height = 2, a = 25.5, name = "Director" CALL "door-1" PARAMETERS ! use parameter default values door-1 PARAMETERS
En resumen: donde no necesite un parmetro con un nombre largo o de texto, utilizar el tipo de texto GDL puede ser suficiente. Este tipo GDL puede ser llamado solamente con el primer tipo de llamadas a macro, dado que no tiene una lista de parmetros modificable. Por otra parte, si no desea limitar sus nombres de parmetros de macro a letras entre A y Z, o si desea incluir textos en la lista de parmetros, su macro debe ser un tem de biblioteca y llamado de acuerdo con el segundo tipo de sintaxis GDL.
191
192
paramstring : texto, contiene los caracteres especficos de separacin de la extensin operacional y el modo de abertura. Su contenido se interpreta por la extensin. Abre un archivo. Su valor de retorno es un entero positivo que identificar el archivo especificado. Este valor ser el nmero de referencia de archivo en las instancias sucesivas. INPUT (channel, recordID, fieldID, var1 [, var2,...]) recordID, fieldID : la posicin inicial de tipo texto o numrico de la lectura, su contenido se interpreta por la extensin. El nmero de parmetros dados define el nmero de valores desde la posicin inicial leda desde el archivo identificado por el valor de canal. En la lista de parmetros debe existir como mnimo un valor. Esta funcin coloca los valores reales en los parmetros como estn ordenados. Los valores pueden ser numricos o de texto, independientemente del tipo de parmetro definido para almacenarlos. El valor de retorno es el nmero de los valores ledos satisfactoriamente. Cuando se encuentra un carcter de final de archivo, es -1.
193
OUTPUT
channel, recordID, fieldID, expr1 [, expr2, ...] recordID, fieldID: la posicin inicial de tipo texto o numrico de la lectura, su contenido se interpreta por la extensin. Escribe tantos valores en el archivo identificado por el valor de canal desde la posicin dada como expresiones se hayan definido. Debe existir una expresin como mnimo. El tipo de valores es el mismo que el de las expresiones.
CLOSE
194
12
195
A consecuencia del comportamiento especial de estos objetos de biblioteca, el smbolo 2D se genera desde una proyeccin interna no accesible de otro modo a los usuarios. (una vista lateral de arriba abajo desde una direccin de 90 grados). El smbolo y la forma 3D se encajarn en el origen de la puerta/ventana por el centro (x) de la base (y) de la caja de contorno, pero no se harn ajustes a lo largo del eje z para permitir a los usuarios disear puertas y ventanas sobresaliendo del muro en cualquier direccin z. Considerando estas reglas, he aqu algunos trucos que le ayudaran a construir puertas y ventanas que funcionen adecuadamente: - Al construir la puerta/ventana en el plano de planta, piense que la est mirando desde el interior del muro en que la insertar. - Piense en la Cota Cero del Proyecto como en la superficie exterior del muro. - Los elementos que deban estar en el interior del muro, como el marco de la ventana, deben estar por encima de la Cota Cero. - Las hojas de las puertas que se abren al exterior deben estar por debajo de la Cota Cero.
196
197
Ejemplo:
A=0.9: B=1.5: C=0.1: D=0.08 E=0.08: F=0.9: G=0.03: H=3 PRISM_ 10,C, -A/2, 0, 15, A/2, 0, 15, A/2, B, 15, -A/2, B, 15, -A/2, 0, -1, -A/2+D, D, 15, A/2-D, D, 15, A/2-D, B-D, 15, -A/2+D, B-D, 15, -A/2+D, D, -1 ADDX -A/2+D, F, 0 BRICK A-2*D, E, C ADDX -G/2, -F+D, C/2 GOSUB 1 ADDZ -G GOSUB 1 DEL 2 MATERIAL "Glass" RECT A-2*D, F-D ADDY F-D+E RECT A-2*D, B-F-E-D END 1: FOR I=1 TO H-1 ADDX (A-2*D)/3 BLOCK G, F-D, G ADDY F+E-D BLOCK G, B-F-D-E, G DEL 1 NEXT I DEL H-1 RETURN
198
2. Usar el comando WALLHOLE disponible a partir de ArchiCAD 6.0 Con este comando, es posible definir una forma poligonal para cortar el muro all donde se coloca la puerta/ventana.
199
WALLHOLE
n, status, x1, y1, mask1, ... xn, yn, maskn [, x, y, z] n: status : 1: usa los atributos propios del cuerpo para los polgonos y bordes generados 2: los polgonos de corte generados sern tratados como polgonos normales x i, yi : maski : x, y, z : coordenadas de la seccin transversal del polgono similar a la declaracin CUTPOLYA maski = j1 + 2 * j2 + 4 * j3 vector de direccin opcional (por defecto es el eje Z de la puerta/ventana) nmero de nodos del polgono
z x y Z n Y 1 i X j2 j1 j3 i+1
Este comando puede usarse en el script 3D de puertas/ventanas para cortar huecos a medida en el muro donde estn colocadas. Durante la generacin 3D del muro actual, el script 3D de todas sus puertas/ventanas se interpreta sin generacin de modelo, para recoger los comandos WALLHOLE. Si existen, ArchiCAD cortar el muro actual usando un tubo infinito con la seccin transversal poligonal y direccin definidas en el script. Puede haber cualquier nmero de WALLHOLES para cada puerta/ventana, por lo que es posible cortar varios huecos en la misma puerta/ventana, incluso con intersecciones. Si en un script 3D de puerta/ventana se interpreta al menos un comando WALLHOLE, ArchiCAD no generar la abertura rectangular correspondiente.
200
Nota: El reveal 3D no se generar automticamente para los huecos a medida, deber generarlo desde el script. El hueco hecho de este modo slo ser visible en 3D, dado que los comandos WALLHOLE no tienen efecto en 2D. Se puede escribir una representacin 2D si es necesario (usada con el marco desactivado en planta). Se recomienda el uso de polgonos de seccin transversal convexa; el uso de polgonos cncavos puede dar errores de corte o sombreados/renderings extraos. Los polgonos convexos pueden combinarse para obtener los cncavos). Ejemplos:
RESOL 72 L1=2.7 : L2=1.2 : H1=2.1 : H2=0.3 : H3=0.9 R=((L1/2)^2+H2^2)/(2*H2) A=ATN((L1/2)/(R-H2)) WALLHOLE 5,1, -L1/2,H3,15, L1/2,H3,15, L1/2,H1-H2,13, 0,H1-R,915, 0,2*A,4015 WALLHOLE 4,1, L1/2-L2,0,15, L1/2,0,15, L1/2,H3,15, L1/2-L2,H3,15
201
WALLHOLE 5,1, -0.45, 0, 15, 0.45, 0, 15, 0.45, 1.5, 15, 0, 1.95, 15, -0.45, 1.5, 15 PRISM_ 12, 0.1, -0.45, 0, 15, 0.45, 0, 15, 0.45, 1.5, 15, 0, 1.95, 15, -0.45, 1.5, 15, -0.45, 0, -1, -0.35, 0.1, 15, 0.35, 0.1, 15, 0.35, 1.45, 15, 0, 1.80, 15, -0.35, 1.44, 15, -0.35, 0.1, -1
202
El hueco en el muro de la izquierda se crea cuando ArchiCAD corta automticamente el hueco para la puerta/ventana. En este caso las caras tienen direccin radial. A la derecha, el hueco se corta usando el comando WALLHOLE en el Script 3D del objeto puerta/ ventana. El propio objeto debe escribirse tomando estos factores en consideracin. Otro aspecto a considerar es si la puerta/ventana colocada en el muro curvo es recta o curva.
En el caso de una puerta/ventana recta, como en la figura izquierda, la anchura y espesor del objeto y el espesor del muro estn muy relacionadas, dado que por encima de una determinada dimensin, el Objeto no podr estar en el muro. Al usar puertas/ ventanas curvas, este problema no ocurre.
203
Ejemplo:
Z
RESOL 72 ROTX -90 MULY -1 C= 0.12 : Z=(360*A)/(2*R_*PI) Y= (360*C)/(2*R_*PI) A1= 270+Z/2 : A2=270-Z/2 GOSUB 1 ADDZ B MULZ -1 GOSUB 1 DEL 2 ADDZ C GOSUB 2 MULX -1 GOSUB 2 END 1: PRISM_ 9, C, COS(A2)*R_, SIN(A2)*R_+R_, COS(A2+Y)*R_, SIN(A2+Y)*R_+R_, 0, R_, 0, Z-2*Y, COS(A1)*R_, SIN(A1)*R_+R_, COS(A1)*(R_-0.1), SIN(A1)*(R_-0.1)+R_, COS(A1-Y)*(R_-0.1), SIN(A1-Y)*(R_-0.1)+R_, 0, -(Z-2*Y), COS(A2)*(R_-0.1), SIN(A2)*(R_-0.1)+R_, RETURN 2: PRISM_ 4, B-2*C, COS(A2)*R_, SIN(A2)*R_+R_, COS(A2+Y)*R_, SIN(A2+Y)*R_+R_, COS(A2+Y)*(R_-0.1), SIN(A2+Y)*(R_-0.1)+R_, COS(A2)*(R_-0.1), SIN(A2)*(R_-0.1)+R_, RETURN
204
C=0.1 : D=0.025 Z=A/2-SQR(2)*C : Y=A/2-SQR(2)*C-D ADDY A/2 WALLHOLE 4, 1, 0, -A/2, 15, A/2, 0, 15, 0, A/2, 15, -A/2, 0, 15 PRISM_ 10, 0.1, 0, -A/2, 15, A/2, 0, 15, 0, A/2, 15, -A/2, 0, 15, 0, -A/2, -1, 0, -Z, 15, Z, 0, 15, 0, Z, 15, -Z, 0, 15, 0, -Z, -1 ADDZ 0.02 GOSUB 1 ADDZ 0.03
205
GOSUB 1 ADDY -Z SET MATERIAL "Glass" ROTZ 45 RECT SQR(2)*Z, SQR(2)*Z END 1: PRISM_ 16, 0.03, 0, -Z, 15, D, -Y, 15, D, -D, 15, Y, -D, 15, Z, 0, 15, Z, D, 15, D, D, 15, D, Y, 15, 0, Z, 15, -D, Y, 15, -D, D, 15, -Y, D, 15, -Z, 0, 15, -Y, -D, 15, -D, -D, 15, -D, -Y, 15 RETURN
206
Apndice
Apndice
A: Lista de Variables Globales B: Funciones Especiales C: GDL Guardado desde la Planta D: Palabras Clave Slo para Vista 3D E: Palabras Clave Slo para Smbolo 2D F: Palabras Clave para Uso 2D y 3D G: Palabras Clave para Scripts No Geomtricos H: Palabras Clave Comunes I: Palabras Clave Reservadas y Caducadas J: Lista de Conversin de Antiguos Nombres de Variables Globales K: Listado Alfabtico de Palabras Clave L: Extensin de Texto
207
Apndice
Variables Globales
Las variables globales hacen posible guardar valores especiales del modelo. Esto le permite acceder a informacin geomtrica acerca del entorno del macro GDL. Por ejemplo, puede acceder a los parmetros del muro cuando define una ventana que debe encajar en el muro. Las variables Globales no se apilan durante las llamadas a macro.
Informacin de piso
GLOB_HSTORY_ELEV B_ altitud del piso origen el piso origen es sobre el que est colocado el objeto GLOB_HSTORY_HEIGHT Q_ altura del piso origen el piso origen es sobre el que est colocado el objeto GLOB_CSTORY_ELEV Q~ altitud del piso actual el piso actual es el que est visible en la Ventana de Planta GLOB_CSTORY_HEIGHT R~ altura del piso actual el piso actual es el que est visible en la Ventana de Planta GLOB_CH_STORY_DIST S~ posicin relativa del piso actual respecto al piso origen el piso actual es el que est visible en la Ventana de Planta
Informacin de animacin
GLOB_FRAME_NR N_ nmero de cuadro actual en animacin slo vlido para animacin, 0 para imagen fija GLOB_FIRST_FRAME O_ ndice del primer cuadro en animacin slo vlido para animacin, 0 para imagen fija
208
Apndice
GLOB_LAST_FRAME P_ ndice del ltimo cuadro en animacin slo vlido para animacin, 0 para imagen fija GLOB_EYEPOS_X K~ posicin actual de la cmara (x) slo vlido en proyeccin perspectiva, tanto para animacin como para imgenes fijas GLOB_EYEPOS_Y L~ posicin actual de la cmara (y) slo vlido en proyeccin perspectiva, tanto para animacin como para imgenes fijas GLOB_EYEPOS_Z M~ posicin actual de la cmara (z) slo vlido en proyeccin perspectiva, tanto para animacin como para imgenes fijas GLOB_TARGPOS_X N~ posicin actual del objetivo (x) slo vlido en proyeccin perspectiva, tanto para animacin como para imgenes fijas GLOB_TARGPOS_Y O~ posicin actual del objetivo (y) slo vlido en proyeccin perspectiva, tanto para animacin como para imgenes fijas GLOB_TARGPOS_Z P~ posicin actual del objetivo (z) slo vlido en proyeccin perspectiva, tanto para animacin como para imgenes fijas
209
Apndice
SYMB_VIEW_PEN L_ pluma por defecto del elemento de biblioteca aplicado en todos los bordes en la ventana 3D y en las ventanas de seccin/alzado SYMB_MAT M_ material por defecto del elemento de biblioteca SYMB_POS_X X~ posicin del elemento de biblioteca (x) relativo al origen del proyecto (excluyendo puerta, ventana: relativa al punto inicial del muro en que estn) SYMB_POS_Y Y~ posicin del elemento de biblioteca (y) relativo al origen del proyecto (excluyendo puerta, ventana: relativa al punto inicial del muro en que estn) SYMB_POS_Z Z~ posicin del elemento de biblioteca (z) relativo al origen del proyecto (excluyendo puerta, ventana: relativa al punto inicial del muro en que estn)
210
Apndice
WIDO_REVEAL_SIDE E~ lado de reveal opuesto al de abertura 1- s, 0- no - al colocar un elemento, el valor por defecto es 0 para ventanas, 1 para puertas WIDO_FRAME_THICKNESS F~ grosor del marco de puerta/ventana al hacer simetras de puertas/ventanas, se recolocarn automticamente por este valor WIDO_POSITION H~ desplazamiento de puerta/ventana ngulo o distancia entre el eje de la abertura y el vector normal al punto de inicio del muro WIDO_ORIENTATION orientacin de abertura de puerta/ventana izquierda/derecha - funcionar bien slo si la puerta/ventana se cre segn los estndares locales WIDO_MARKER_TXT marca de texto de puerta/ventana como se define en el subdilogo Acotacin de Puerta/Ventana del dilogo de Definicin de Puerta/ Ventana WIDO_SUBFL_THICKNESS espesor del pavimento inferior (correccin de antepecho) como se define en el subdilogo Acotacin de Puerta/Ventana del dilogo de Definicin de Puerta/ Ventana WIDO_PREFIX prefijo de altura de antepecho de puerta/ventana como se define en el subdilogo Acotacin de Puerta/Ventana del dilogo de Definicin de Puerta/ Ventana WIDO_CUSTOM_MARKER conmutador de marca de puerta/ventana 1- los parmetros pueden usarse en el script 2D mientras no est presente la acotacin automtica WIDO_ORIG_DIST R_ distancia del origen local al final del muro distancia del origen local desde el centro del muro curvo, 0 para muros rectos
211
Apndice
WALL_HEIGHT D_ altura del muro WALL_MAT_A G_ material del muro en la cara opuesta a la de abertura en caso de aberturas esto puede variar de abertura a abertura colocada en el mismo muro WALL_MAT_B H_ material del muro en la cara de abertura puede variar de abertura a abertura colocada en el mismo muro WALL_MAT_EDGE I_ material de los bordes del muro WALL_LINE_TYPE tipo de lnea del muro aplicado en los contornos slo en la ventana de planta WALL_FILL A~ tipo de trama del muro ndice de trama - su valor es negativo en el caso de estructura compuesta WALL_FILL_PEN F_ pluma de la trama del muro WALL_COMPS_NAME estructura compuesta del muro nombre de la estructura compuesta WALL_SKINS_NUMBER nmero de capas de muro compuesto entre 1 y 8, 0 si se aplica una nica trama WALL_SKINS_PARAMS parmetros de las capas del muro compuesto matriz con 6 columnas: trama, grosor, pluma, pluma de trama, pluma de fondo de trama, status del ncleo y hasta 8 filas WALL_SECT_PEN E_ pluma de los contornos del muro en seccin se aplica a los contornos de superficies cortadas de muros en las ventanas de planta y de seccin/ alzado WALL_VIEW _PEN pluma de los contornos del muro visible aplicado a todos los contornos en la ventana 3D y en los contornos visibles en ventanas de seccin/alzado WALL_FBGD_PEN pluma del fondo de la trama del muro WALL_DIRECTION direccin del muro muros rectos: la direccin de la lnea de referencia, muros curvos: la direccin de la cuerda del arco WALL_POSITION coordenadas absolutas del muro la posicin del punto inicial del muro en relacin al origen del proyecto
212
Apndice
superficie de ventanas en el muro superficie de aberturas vacas en el muro anchura combinada de ventanas en el muro anchura combinada de puertas en el muro nmero de columnas en el muro
213
Apndice
SLAB_COMPS_NAME estructura compuesta del forjado nombre de la estructura compuesta SLAB_SKINS_NUMBER nmero de capas de forjado compuestas entre 1 y 8, 0 se aplica una nica trama SLAB_SKINS_PARAMS parmetros de las capas del forjado compuesto matriz con 6 columnas: trama, grosor, pluma, pluma de trama, pluma de fondo de trama, status del ncleo y hasta 8 filas SLAB_SECT_PEN pluma de los contornos del forjado en seccin aplicado a los contornos de superficies cortadas en los planos de planta y de seccin/alzado SLAB_VIEW_PEN pluma del forjado visible aplicado en todas las aristas en la ventana 3D y en las aristas visibles en las ventanas de seccin/ alzado SLAB_TOP_SURF superficie superior del forjado SLAB_BOT_SURF superficie inferior del forjado SLAB_EDGE_SURF superficie de los bordes del forjado SLAB_PERIMETER permetro del forjado SLAB_VOLUME volumen del forjado SLAB_SEGMENTS_NR nmero de segmentos del forjado SLAB_HOLES_NR nmero de huecos del forjado SLAB_HOLES_AREA rea de los huecos del forjado SLAB_HOLES_PRM permetro de los huecos del forjado
214
Apndice
ROOF_VIEW_PEN pluma de la cubierta visible aplicado en todas las aristas en la ventana 3D y en las aristas visibles en las ventanas de seccin/ alzado ROOF_BOTTOM_SURF superficie inferior de la cubierta ROOF_TOP_SURF superficie superior de la cubierta ROOF_EDGE_SURF superficie del borde de la cubierta ROOF_PERIMETER permetro de la cubierta ROOF_VOLUME volumen de la cubierta ROOF_SEGMENTS_NR nmero de segmentos de la cubierta ROOF_HOLES_NR nmero de huecos de la cubierta ROOF_HOLES_AREA rea de huecos de la cubierta ROOF_HOLES_PRM permetro de huecos de la cubierta
215
Apndice
MESH_FILL MESH_FILL_PEN MESH_FBGD_PEN MESH_BOTTOM_SURF MESH_TOP_SURF MESH_EDGE_SURF MESH_PERIMETER MESH_VOLUME MESH_SEGMENTS_NR MESH_HOLES_NR MESH_HOLES_AREA MESH_HOLES_PRM
tipo de trama de la malla pluma de la trama de la malla pluma del fondo de trama de la malla superficie inferior de la malla superficie superior de la malla superficie de las caras de la malla permetro de la malla volumen de la malla nmero de segmentos de la malla nmero de huecos de la malla rea de huecos de la malla permetro de huecos de la trama
las variables globales libres para usuarios de 1 a 10 estn inicializadas al nmero por defecto
las variables globales libres para usuarios de 11 a 20 estn inicializadas al texto por defecto
216
Apndice
Funciones Especiales
REQ (parameter_string) Esta funcin pregunta el estado actual del programa. Este parmetro - la pregunta - es una cadena. El intrprete GDL responde con un valor numrico. Si no entiende la pregunta, la respuesta es negativa. Listado de preguntas actuales: "GDL_version" nmero de versin del intrprete/compilador del GDL. (Atencin: no es el mismo que la versin de ArchiCAD). "Program" cdigo del programa (1: ArchiCAD, 2: topCAD, etc.). "Serial_number" el nmero de serie de la llave. "Model_size" tamao en bytes de la estructura de datos 3D actual. "Red_of_material name" "Green_of_material name" "Blue_of_material name" Definen las componentes de color del material dado en valores RGB entre 0 y 1. "Red_of_pen index" "Green_of_pen index" "Blue_of_pen index" Definen las componentes de color de una pluma dada en valores RGB entre 0 y 1. "Pen_of_RGB r g b" Define el ndice de pluma de color ms prximo al color dado. Las constantes r, g y b figuran en la cadena entre 0 y 1.
217
Apndice
REQUEST
(question_name, name | index, var1 [, var2,....]) El primer parmetro representa la pregunta mientras que la segunda representa el objeto de la cuestin (si existe) y puede ser un texto o de tipo numrico ( por ejemplo, la pregunta puede ser "Rgb_of_material" y el objeto el nombre de material, o "Rgb_of_pen" y el objeto el ndice de pluma). Los otros parmetros son nombres de variable en el que los valores de retorno (las respuestas) se almacenan. El valor de la funcin de retorno es el nmero de la respuesta (en caso de una pregunta mal formulada o nombre inexistente, el valor ser 0).
REQUEST
("Name_of_program", "", programname) Devuelve en la variable dada el nombre del programa, "ArchiCAD", "topCAD" , etc.
REQUEST REQUEST
("Name_of_macro", "", myname) ("Name_of_main", "", mainname) Despus de ejecutar estas funciones de llamada, la variable myname contendr el nombre del macro, mientras que mainname contendr el nombre del macro principal (si no existe, texto vaco).
REQUEST
("ID_of_main", "", idstring) Para los tems de Biblioteca colocados en la Planta, devuelve el identificador definido en el dilogo de herramientas en la variable idstring (en caso contrario texto vaco).
REQUEST
("Name_of_plan", "", name) Devuelve en la variable dada el nombre del proyecto actual.
REQUEST
("Story", "", index, storyname) Devuelve en las variables index y storyname el ndice y el nombre del piso actual.
REQUEST
("Internal_id", "", id) Devuelve en la variable id el identificador interno del elemento de biblioteca.
218
Apndice
("Radial_dimension", "", formatstr) ("Level_dimension", "", formatstr) ("Elevation_dimension", "", formatstr) ("Window_door_dimension", "", formatstr) ("Sill_height_dimension", "", formatstr) ("Area_dimension", "", formatstr) Estas llamadas le permiten obtener los formatos de medidas definidas en el dilogo de Opciones/Preferencias/Acotaciones. Estas llamadas devuelven un texto de formato que puede utilizarse como primer parmetro en la funcin STR (). Ejemplo:
format = "" num = 60.55 REQUEST ("Angular_dimension", "", format) !%.2dd TEXT2 0, 0, STR (format, num) !60.55
REQUEST
("Clean_intersections", "", state) Devuelve el estado de la caracterstica Limpiar Intersecciones del men Opciones (1 si est activo, 0 si inactivo).
REQUEST
("Zone_category", "", name, code) Para Zonas, devuelve el nombre y el texto de cdigo de la categora de zona actual.
REQUEST
("Zone_relations", "", catname, code, name, nr [, catname2, code2, name2, nr2]) Devuelve en las variables dadas el nombre de categora de zona, cdigo de categora de zona, nombre de zona y nmero de la zona donde est el elemento de biblioteca que contiene esta pregunta. Para puertas y ventanas puede haber un mximo de 2 zonas. El valor de retorno de la pregunta es el nmero de valores satisfactorios obtenidos (0 si el elemento de biblioteca no est dentro de ninguna zona).
REQUEST
("Zone_colus_area", "", area) Devuelve en la variable de rea, el rea total de las columnas colocadas en la zona actual. Efectivo slo para Sellos de Zona.
219
Apndice
REQUEST
("Custom_auto_label", "", name) Devuelve en la variable de nombre el nombre de la auto-etiqueta a medida del elemento de biblioteca, o un texto vaco si no existe sta.
("Rgb_of_material", name, r, g, b) ("Rgb_of_pen", penindex, r, g, b) ("Pen_of_RGB", "r g b", penindex) Al igual que la funcin REQ() ( en una sola llamada), devuelve en las variables especificadas el valor de los componentes r, g, b del material y pluma, o el ndice de la pluma correspondiente a los valores r, g, b dados.
REQUEST
("Height_of_style", name, height) Devuelve en la variable dada la altura del estilo de nombre medida en metros.
REQUEST
("Name_of_material", index, name) Devuelve en la variable dada el nombre del material identificado por su ndice.
REQUEST
("Name_of_fill", index, name) Devuelve en la variable de nombre el nombre de la trama identificada por su ndice.
REQUEST
("Name_of_line_type", index, name) Devuelve en la variable dada el nombre de la lnea identificada por su ndice.
REQUEST
("Name_of_style", index, name) Devuelve en la variable dada el nombre del estilo identificado por su ndice. Si ndice < 0, se refiere a un material, trama, tipo de lnea o estilo definido en el script GDL o en el archivo MASTER_GDL. Una llamada de una pregunta con ndice = 0 devuelve en la variable el nombre del material o tipo de lnea por defecto (Texto vaco para trama y estilo) El valor de retorno de la pregunta es el nmero de valores satisfactorios obtenidos (1 si no ocurren errores, 0 para un error cuando el ndice no es vlido).
220
Apndice
REQUEST
(extension_name, parameter_string, v1, v2, ...) Si la pregunta no es ninguna de las vistas anteriormente, la funcin REQUEST () intenta utilizarla como una extensin de nombre especfico. Si est extensin se encuentra en la carpeta de extensiones, se utilizar para obtener tantos valores para cuantos nombres de variable se hayan especificado. El parmetro de texto es interpretado por la extensin.
(MATERIAL, name_string) (FILL, name_string) (LINE_TYPE, name_string) (STYLE, name_string) Esta funcin devuelve el ndice actual del atributo de material, trama, tipo de lnea o estilo. El uso principal del nmero resultante es transferirlo a un macro que requiere el mismo atributo que el macro llamado. El resultado es negativo para definiciones temporales y positivo para definiciones globales (ver los comandos Materiales..., Tipos de Trama... y Tipos de Lnea... en ArchiCAD). Ver tambin MATERIAL, FILL, LINE_TYPE, STYLE en el captulo "Definicin de Atributos en Lnea".
221
Apndice
Los planos de corte definidos en el dilogo de Planos de Corte 3D (activado con el comando de Seccin 3D): CUTPLANE angle CUTPLANE Los planos de corte y polgonos generados por Cubiertas : CUTPOLY and CUTPLANE Script 2D: HOTSPOT2, POLY2_B, LINE2 CALL
222
Apndice
223
Apndice
EXTRUDE PYRAMID REVOLVE RULED SWEEP TUBE, TUBEA COONS MESH MASS LIGHT PICTURE TEXT VERT, TEVE VECT EDGE PGON, PIPG COOR BODY BASE BINARY CUTPLANE CUTSHAPE CUTPOLY CUTPOLYA CUTEND DEFINE MATERIAL DEFINE TEXTURE [SET] MATERIAL SHADOW MODEL
224
Apndice
225
Apndice
226
Apndice
227
Apndice
228
Apndice
229
Apndice
230
Apndice
A~ B~ C~ D~ E~ F~ G~ H~ I~ J~ K~ L~ M~ N~ O~ P~ Q~ R~ S~ T~ U~ V~ W~ X~ Y~ Z~
WALL_FILL WIDO_RIGHT_JAMB WIDO_THRES_DEPTH WIDO_HEAD_DEPTH WIDO_REVEAL_SIDE WIDO_FRAME_THICKNESS GLOB_USER_9 WIDO_POSITION GLOB_USER_10 WALL_RESOL GLOB_EYEPOS_X GLOB_EYEPOS_Y GLOB_EYEPOS_Z GLOB_TARGPOS_X GLOB_TARGPOS_Y GLOB_TARGPOS_Z GLOB_CSTORY_ELEV GLOB_CSTORY_HEIGHT GLOB_CH_STORY_DIST GLOB_SCRIPT_TYPE GLOB_NORTH_DIR SYMB_MIRRORED SYMB_ROTANGLE SYMB_POS_X SYMB_POS_Y SYMB_POS_Z
231
Apndice
dx, dy, dz x, y dx dy dz r, alpha, beta x, y, r, alpha, beta r1, r2, l, h, d, alpha l, r1, r2, h, d
BINARYPROP
BREAKPOINT BRICK
232
Apndice
BWALL_
leftmat, rightmat, sidemat, height, x1, x2, x3, x4, t, radius, mask1, mask2, mask3, mask4, n, xbeg1, lower1, xend1, upper1, framevis1, ... xbegn, lowern, xendn, uppern, framevisn, m, a1, b1, c1, d1, ... am, bm, cm, dm macro_name_string [parameter_list] macro_name_string PARAMETERS [name1=value1, . . . namen=valuen] r x, y, r channel
COMPONENT name, quantity, unit, [, prop_with, code, keycode, unitcode] CONE COONS h, r1, r2, alpha1, alpha2 n, m, mask, x11, y11, z11, . . . x1n, y1n, z1n, x21, y21, z21, . . . x2n, y2n, z2n, x31, y31, z31, . . . x3m, y3m, z3m, x41, y41, z41, . . . x4m, y4m, z4m wrap, vert1, vert2, vert3, vert4 topmat, botmat, sidemat, n, h, x1, y1, mask1, . . . xn, yn, maskn topmat, botmat, sidemat, n, xb, yb, xe, ye, height, angle, thickness, x1, y1, alpha1, mask1, . . . xn, yn, alphan, maskn topmat, botmat, sidemat, n, h, x1, y1, z1, mask1, . . . xn, yn, zn, maskn
CSLAB_
233
Apndice
CUTPLANE
[x, y, z [, side]] statements CUTEND angle statements CUTEND n, status, d, x1, y1, . . . xn, yn, [, x, y, z] statements CUTEND
CUTPLANE
CUTPOLY
CUTPOLYA n, status, d, x1, y1, mask1, . . . xn, yn, maskn [, x, y, z] statements CUTEND CUTSHAPE d statements CUTEND leftmat, rightmat, sidemat, height, x1, x2, x3, x4, t, mask1, mask2, mask3, mask4, n, xbeg1, lower1, xend1, upper1, framevis1, ... xbegn, lowern, xendn, uppern, framevisn, m, a1, b1, c1, d1, ... am, bm, cm, dm h, r
CWALL_
CYLIND
DEFINE FILL name pat1, pat2, pat3, pat4, pat5, pat6, pat7, pat8, spacing, angle, n, freq1, dir1, offsetx1, offsety1, m1, len11, . . . lenm1, ... freqn, dirn, offsetxn, offsetyn, mn, lenn1, . . . lennm
234
Apndice
DEFINE FILLA name pat1,pat2,pat3,pat4,pat5,pat6,pat7,pat8, spacingx, spacingy, angle, n, freq1, doffset1, dir1, offsetx1, offsety1, m1, len11, . . . lenm1, ... freqn, doffsetn,dirn, offsetxn, offsetyn, mn, lenn1, . . . lennm DEFINE LINE_TYPE name spacing, n, len1, . . . lenn DEFINE MATERIAL name type, m1, m2, . . . mn DEFINE STYLE DEFINE STYLE DEFINE STYLE DEL DEL DIM DO statements WHILE DRAWING DRAWING2 DRAWING3 EDGE ELBOW ELLIPS END EXIT EXOR EXP (x) EXTRUDE FILL FILL n, dx, dy, dz, mask, x1, y1, s1, . . . xn, yn, sn index name_string vert1, vert2, pgon1, pgon2, status r1, alpha, r2 h, r condition n TOP string var1 [dim_1], var2 [dim_1][dim_2], . . . name font_family, size, anchor, facecode name PLOTMAKER, size, anchor, slant name PLOTTER, size, anchor, slant
DESCRIPTOR
235
Apndice
FOR FPRISM_
varnam = initial_value TO end_value [STEP step_value] topmat, botmat, sidemat, hillmat, n, thickness, angle, hill_height, x1, y1 , mask1, ... xn, yn, maskn
FRA (x) FRAGMENT2 ALL, use_current_attributes_flag FRAGMENT2 plane_index, use_current_attributes_flag GET (n) GOSUB GOTO IF IF IF IF IF label label cond GOSUB cond GOTO cond THEN condition THEN statements [ELSE statements] ENDIF IND IND IND IND IND INPUT INT (x) LET LGT (x) (FILL, name_string) (LINE_TYPE, name_string) (MATERIAL, name_string) (STYLE, name_string) (TEXTURE, name_string) (channel, recordID, fieldID, var1 [, var2, . . .] label label label
HOTSPOT2 x, y
236
Apndice
LIGHT
red, green, blue, shadow, radius, alpha, beta, angfalloff, dist1, dist2, distfalloff x1, y1, z1, x2, y2, z2
LIN_
LINE_TYPE index LINE_TYPE name_string LINE2 LOG (x) MASS topmat, botmat, sidemat, n, m, mask, h, x1, y1, z1, s1, ... xn, yn, zn, sn, xn+1, yn+1, zn+1, sn+1, ... xn+m, yn+m, zn+m, sn+m index name_string a, b, m, n, mask, z11, z12, . . . z1m, z21, z22, . . . z2m, ... zn1, zn2, . . . znm x1, y1, x2, y2
MIN (x1,x2, . . . xn) MOD MODEL MODEL MODEL MUL MUL2 MULX MULY MULZ NEXT NOT (x)
Manual de Referencia GDL de ArchiCAD
237
Apndice
NSP NTR ( ) OPEN OR OUTPUT PEN PGON PI PICTURE PICTURE2 PIPG PLANE PLANE_ POLY POLY_ POLY2 POLY2_ POLY2_A POLY2_B filename, a, b, mask expression, a, b, mask filename, a, b, mask, n, ivect, status, edge1, edge2, . . . edgen n, x1, y1, z1, . . . xn, yn, zn n, x1, y1, z1, mask1, . . . xn, yn, zn, maskn n, x1, y1, . . . xn, yn n, x1, y1, mask1, . . . xn, yn, maskn n, framefill, x1, y1, . . . xn, yn n, framefill, x1, y1, mask1, . . . xn, yn, maskn n, framefill, fillpen, x1, y1, mask1, . . . xn, yn, maskn n, framefill, fillpen, fillbkgdpen, x1, y1, mask1, . . . xn, yn, maskn position_keyword [expression] [, expression] . . . n, h, x1, y1, . . . xn, yn n, h, x1, y1, mask1, . . . xn, yn, maskn projcode, angle, method expression [, expression] . . . n, h, mask, x1, y1, s1, . . . xn, yn, sn rmin, rmax a, b
Manual de Referencia GDL de ArchiCAD
(filter, filename, paramstring) channel, recordID, fieldID, expr1 [, expr2, . . .] n n, ivect, status, edge1, edge2, . . . edgen
238
Apndice
RECT2
REF COMPONENT code [, num_expr [, keycode]] REF DESCRIPTOR code [, keycode] REPEAT statements UNTIL REQ (parameter_string) REQUEST RESOL RETURN REVOLVE RND (x) ROT ROT2 ROTX ROTY ROTZ RULED x, y, z, alpha alphaz alphax alphay alphaz n, mask, u1, v1, s1, . . . un, vn, sn, x1, y1, z1, . . . xn, yn, zn index name_string index name_string ndex name_string n, alpha, mask, x1, y1, s1, . . . xn, yn, sn (question_name, name | index, var1 [, var2, . . .]) n condition
SET LINE_TYPE SET LINE_TYPE SET MATERIAL SET MATERIAL SET STYLE SET STYLE SGN (x) SHADOW SHADOW SHADOW
Manual de Referencia GDL de ArchiCAD
239
Apndice
SIN (x) SLAB SLAB_ SPHERE SPLINE2 SPLINE2_A n, h, x1, y1, z1, . . . xn, yn, zn n, h, x1, y1, z1, mask1, . . . xn, yn, zn, maskn r n, status, x1, y1, angle1, . . . xn, yn, anglen n, status, x1, y1, angle1, lenPrev1, lenNext1, ... xn, yn, anglen, lenPrevn, lenNextn (string, format, var1 [, var2, . . . varn]) topmat, botmat, sidemat, n, xb,yb, xe, ye, h, angle, x1, y1, mask1, . . . xn, yn, maskn (numeric_expression, len, frac) (formatstring, numeric_expression) (string_exp) (string_exp1, string_exp2) (string_exp, begpos, numchars) (string_expression) index name_string n, m, alpha, scale, mask, u1, v1, s1, . . . un, vn, sn, x1, y1, z1, . . . xm, ym, zm x, y, z, u, v d, 0, expression x, y, string d
SPLIT SPRISM_
SQR (x) STR STR STRLEN STRSTR STRSUB STW STYLE STYLE SWEEP
SURFACE3D ( )
240
Apndice
TUBE
n, m, mask, u1, w1, s1, . . . un, wn, sn, x1, y1, z1, angle1, . . . xm, ym, zm, anglem n, m, mask, u1, w1, s1, . . . un, wn, sn, x1, y1, z1, . . . xm, ym, zm name, val1 [, val2, . . . valn] x, y, z x, y, z
TUBEA
VOLUME3D ( ) WALLHOLE n, status, x1, y1, mask1, . . . xn, yn, maskn [, x, y, z] WHILE condition DO statements ENDWHILE a11, a12, a13, a14, a21, a22, a23, a24, a31, a32, a33, a34 leftmat, rightmat, sidevmat, sidehmat, height, x1, x2, x3, x4, y1, y2, y3, y4, t, radius, reserved1, reserved2, mask1, mask2, mask3, mask4, n, xbeg1, lower1, xend1, upper1, framevis1, ... xbegn, lowern, xendn, uppern, framevisn, m, a1, b1, c1, d1, ... am, bm, cm, dm
XFORM
XWALL_
241
Apndice
Extensin de Texto
Esta es una extensin de ejemplo que demuestra las posibilidades de las operaciones de archivo I/O. Otras extensiones de este tipo estn disponibles desde Graphisoft u otros vendedores. La extensin interpreta los textos en la lista de parmetros de los comandos OPEN, INPUT, OUTPUT. Asume que una carpeta llamada "ArchiCAD Data Folder" existe aparte de ArchiCAD para archivos definidos por el usuario. (El nombre de esta carpeta est definida en el recurso extensin, en donde puede localizarse). Si esa carpeta no existe, la extensin crea una. La carpeta puede contener subcarpetas en donde la extensin busca archivos existentes. Los archivos de tipo TEXTO se pueden leer y escribir. 1. channel = OPEN (filter, filename, paramstring) filter : especfico de la extensin, en el caso de la extensin de texto "TEXT" filename: el nombre del archivo por abrir paramstring: contiene los caracteres especficos de separacin de la extensin y el modo de abertura Este comando abre el archivo. Si el archivo en donde quiere escribir no existe, l lo crea. Si el archivo a leer no existe, se muestra un mensaje de error. Su valor de retorno es un entero positivo que identificar el archivo especfico. Este valor ser el futuro nmero de referencia del archivo. El paramstring puede contener lo siguiente: SEPARATOR = despus de la palabra clave entre comillas ('') puede asignar un carcter para utilizarlo en el archivo de texto (para lectura y escritura) para separar columnas. Los casos especiales son el tabulador ('\t') y la nueva fila ('\n').
242
Apndice
MODE = despus de la palabra clave el modo de abertura a seguir. Slo existen tres modos de abertura: RO (slo lectura) WA (slo escritura, aadir) al final del archivo WO (slo escritura, re-escritura) todos los datos del archivo se perdern! Un archivo no puede abrirse para leer y escribir al mismo tiempo. Ponga siempre una coma (,) entre el SEPARATOR y el MODE. Si utiliza palabras clave que no existen, si los caracteres de separacin son incorrectos o no hay nada en el string de parmetros, la extensin utilizar las definiciones por omisin: SEPARATOR = '\t', MODE = RO. Ejemplo:
ch1 = OPEN ("TEXT", "file1", "SEPARATOR=';', MODE=RO") ch2 = OPEN ("TEXT", "file2", "") ch3 = OPEN ("TEXT", "file3", "SEPARATOR='\n', MODE=WO")
2. n = INPUT (channel, recordID, fieldID, var1 [, var2, ...]) recordID: nmero de columna (numrica o texto) fieldID: ndice de columna en la fila dada El comando lee tantos valores dados desde la posicin inicial del archivo, identificado por el valor de canal, como parmetros asignados tenga. En la lista de parmetros debe haber como mnimo un valor. La funcin coloca los valores ledos en los parmetros de la secuencia. Los valores pueden ser numricos o de texto con independencia del tipo de parmetro definido para ellos. En el lugar del valor del archivo, tambin puede tener expresiones de tipo numrico o de texto, cada una conteniendo constantes numricas o de texto as como llamadas a funciones matemticas GDL. Estas expresiones se evalan durante el proceso de entrada. Ejemplo: en el archivo de texto (separador es ','):
1.23,1'2","aaa",2 * SIN(45) + 1,SQR (3)
El valor de retorno es el nmero de valores ledos satisfactoriamente, para el final de archivo (-1). Tanto los nmeros de columna como los de fila deben ser enteros positivos, de otra forma se mostrar un mensaje de error. Si el nmero de fila o de columna son incorrectos, la entrada no se realizar. (n = 0)
Manual de Referencia GDL de ArchiCAD
243
Apndice
En la identificacin de fila y columna, se asignar el mismo nmero de valores desde la posicin inicial dada que de parmetros, o si hay ms parmetros que valores, los parmetros sin valor correspondiente se ajustarn a cero. Para las columnas vacas (no hay nada entre los caracteres de separacin) los parmetros sern ajustados a cero. Ejemplo:
nr = INPUT (ch1, 1, 1, v1, v2, v3) ! entrada de tres valores de la primera columna ! de la primera fila PRINT nr, v1, v2, v3
3. OUTPUT channel, recordID, fieldID, expr1 [, expr2, ...] recordID : si es positivo, los valores de salida irn seguidos de una nueva columna fieldID : si no tiene cometido, su valor no se usa Este comando da salida a tantos valores dentro del archivo identificado por el canal de valor de la posicin dada como expresiones definidas. Debe haber como mnimo una expresin. Los tipos de valor de salida son los mismos que los de las expresiones. Para una extensin de texto el OUTPUT, en secuencia (dependiendo del modo de abertura) colocar las expresiones dadas en posiciones consecutivas utilizando los caracteres de separacin dados al abrir el archivo entre l mediante re-escritura o aadidura al final del archivo. En este caso la posicin dada no se interpreta. El recordID se utiliza para dirigir las nuevas columnas en las salidas. Si el recordID es positivo, los valores de salida irn seguidos de una nueva fila, de otra forma el ltimo valor ir seguido por un carcter separador. Ejemplo:
string = "Date: 19.01.1996" a = 1.5 OUTPUT ch2, 1, 0, string ! texto seguido por una nueva fila OUTPUT ch2, 0, 0, a, a + 1, a + 2 ! carcter separador despus de +2 sin fila nueva
244
Apndice
4. CLOSE channel Este comando cierra el archivo identificado por el valor de canal. Ejemplo: Un objeto GDL que simplemente copia el contenido del archivo "f1" en el "f2" y "f3", y escribe todos los valores tabulados en "f1" dentro de una fila separada en "f2" y "f3".
ch1 ch2 ch3 i = 1: = OPEN ("TEXT", "f1", "MODE=ro") = OPEN ("TEXT", "f2", "SEPARATOR='\n', MODE=wo") = OPEN ("TEXT", "f3", "SEPARATOR='\n', MODE=wo") 1 n = INPUT (ch1, i, 1, var1, var2, var3, var4) IF n <> -1 THEN OUTPUT ch2, 1, 0, var1, var2, var3, var4 OUTPUT ch3, 1, 0, var1, var2, var3, var4 i = i + 1 GOTO 1 ELSE GOTO 2 ENDIF 2: CLOSE ch1 CLOSE ch2 CLOSE ch3 END
245
Apndice
246
ndice
ndice
2D script 3D script 7 7
A
ABS 173 ACS 173 ADD 26 ADD2 29 ADDX 26 ADDY 26 ADDZ 26 Alias Wavefront 520 AND 172 ARC 36, 144 ARC2 124 ArchiSITE 2, 5 ARMC 64, 144 ARME 65, 144 Arrastrar & Soltar 20 ASN 173 ATN 173
B
BASE 109 BINARY 7, 110 BINARYPROP 7, 165 BLOCK 38 BODY 107 BPRISM_ 46, 134 BREAKPOINT 186 BRICK 38 BWALL_ 55
247
ndice
C
CALL 190 CEILS 166 CIRCLE 36, 144 CIRCLE2 125 CLOSE 194 COLUMNS 166 comentario 8 COMPONENT 164, 165, 166 componentes 7 CONE 40, 144 COONS 91 COOR 105 COS 173 CPRISM_ 45, 134 CROOF_ 59, 134 CSLAB_ 51 CUTEND 112 CUTPLANE 112 CUTPOLY 115 CUTPOLYA 118 CUTSHAPE 120 CWALL_ 52 CYLIND 38, 144
E
EDGE 103 ELBOW 66, 144 elementos de biblioteca ELLIPS 39, 144 ELSE 185 END 22, 186 ENDIF 185 ENDWHILE 183 Etiqueta 22 EXIT 22, 186 EXOR 172 EXP 174 expresiones 24 EXTRUDE 69, 134
F
FILL 149, 156, 191 FILLA 159 FOR 182 format string 174 FPRISM_ 48, 134 FRA 173 FRAGMENT2 7, 130
D
datos binarios 2D 7 datos binarios 3D 7 datos binarios de propiedades Declaraciones 22 DEFINE FILL 156 DEFINE FILLA 159 DEFINE LINE_TYPE 161 DEFINE MATERIAL 151 DEFINE STYLE 162 DEFINE TEXTURE 154 definicin de atributos 18 DEL 30 DEL TOP 30 descripciones 7 DESCRIPTOR 164 DIM 170 DO 183 DOORS 166 DRAWING2 132 DRAWING3 132 DXF 5
G
7 GET 187 GOSUB 22, 184, 186 GOTO 22, 184, 186 Graphisoft Collection 4
H
HATCHES 166 HOTSPOT2 122
I
IF 184, 185 imagen previa 8 IND 179, 221 INPUT 193, 243 INT 173
248
ndice
L
LET 144 LGT 174 LIGHT 96 LIGHTS 166 LIN_ 34 LINE_TYPE 150, 161, 191 LINE2 122 Lnea 22 Lista de Componentes 166 lista de valores 18, 167 LOG 174
P
PARAMETERS 190 Parmetros 8, 24, 171 PEN 146, 191 PGON 104 PI 173 PICTURE 8, 99 PICTURE2 8, 128 pila de transformacin 26 PIPG 105 PITCHED_ROOFS 166 PLANE 35 PLANE_ 35 POLY 34 POLY_ 35, 134 POLY2 123 POLY2_ 123, 134 POLY2_A 124, 134 POLY2_B 124, 134 POSITION 166 PRINT 192 PRISM 40 PRISM_ 41, 134 PROJECT2 131 PUT 187 PYRAMID 72, 134
M
MASS 94 Master script 7 MASTER_GDL 18, 23, 150, 167, 220 MASTEREND_GDL 18 MATERIAL 148, 151, 191 MAX 174 MESH 62 MIN 174 MOD 172 MODEL 147, 191 MUL 27 MUL2 29 MULX 27 MULY 27 MULZ 27
R
RADIUS 144, 191 RECT 34 RECT2 122 REF 164 REPEAT 183 REQ 179, 217 REQUEST 179, 218 RESOL 145, 191 RETURN 186 REVOLVE 74, 134, 144 RND 174 ROT 28 ROT2 29 ROTX 27 ROTY 27 ROTZ 27 RULED 78
N
NEXT 182 NOT 174 NSP 188 NTR 30
O
OBJECTS 166 OPEN 193, 242 OR 172 origen global 16 OUTPUT 194, 244
249
ndice
S
script de lista de valores 7 Script de Propiedades 7, 164 SET FILL 149 SET LINE_TYPE 150 SET MATERIAL 148 SET STYLE 146 SGN 173 SHADOW 148, 191 SIN 173 sistema de coordenadas local 16 sistema de coordenadas principal 16 SLAB 51 SLAB_ 51 SOLID 147 SPHERE 39, 144 SPLINE2 125 SPLINE2_A 127 SPLIT 177 SPRISM_ 50, 134 SQR 173 StairMaker 2, 4 STEP 182 STR 174 STRLEN 178 STRSTR 178 STRSUB 178 STW 177 STYLE 146, 162, 191 SURFACE 147 SURFACE3D 165 SWEEP 81, 134
U
UNTIL 183 USE 188
V
valores de mask 42 VALUES 167 Variables 23 variables globales 18 VECT 103 VERT 102 VisualGDL 5 VOLUME3D 165
W
WALLHOLE 199, 200 WALLS 166 WHILE 183 WINDOWS 166 WIRE 147
X
XFORM 28 XWALL_ 57
T
TAN 173 TEVE 102 TEXT 100 TEXT2 129 TEXTURE 154 THEN 184, 185 Tipos simples 24 TO 182 TOLER 145, 191 trama bitmap 157 trama vectorial 157 TUBE 84, 134 TUBEA 89, 134
250
Contenido
Contenido
1 Introduccin 1
1.1 Acerca de este Manual ____________________________________________________ 2 1.2 Objetos de Biblioteca _____________________________________________________ 2 Sus fuentes de objetos de biblioteca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
La Biblioteca de Archicad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Bibliotecas Complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 StairMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Extensiones de Terceras Partes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Cmo genera ArchiCAD una imagen 3D __________________________________ 16 El espacio 3D en ArchiCAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Porqu necesita transformaciones de coordenadas ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 El motor de intrprete GDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 El orden de anlisis de los scripts GDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.5 Creacin de objetos en ArchiCAD ________________________________________ 19
Manual de Referencia GDL de ArchiCAD
Contenido
21 25
3.1 Transformaciones en el espacio Tridimensional __________________________ 26 3.2 Transformaciones en el espacio Bidimensional ___________________________ 29 3.3 Manejo de la Pila de Transformacin _____________________________________ 30
33 37
5.1 Formas bsicas _________________________________________________________ 38 5.2 Formas generadas desde polilneas ______________________________________ 67 5.3 Elementos para la Visualizacin __________________________________________ 96 5.4 Elemento de Texto _____________________________________________________ 100 5.5 Primitivas _____________________________________________________________ 101 5.6 Uso de los Datos 3D Binarios ___________________________________________ 110 5.7 Corte en 3D ____________________________________________________________ 112
6 Formas Bidimensionales
6.1 Elementos de Dibujo ___________________________________________________ 6.2 Elemento de Texto _____________________________________________________ 6.3 Uso de Datos Binarios 2D _______________________________________________ 6.4 Proyecciones 3D en 2D _________________________________________________ 6.5 Dibujos en la Lista _____________________________________________________
121
122 129 130 131 132
133 143
8.1 Directivas _____________________________________________________________ 144 Directivas Usadas en Scripts 3D y 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Directivas utilizadas slo en scripts 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 Directivas usadas slo en scripts 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 8.2 Definicin de Atributos _________________________________________________ 150 Definicin de materiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Definicin de trama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 Definicin de Trama Avanzada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
ii
Contenido
9 Scripts No Geomtricos
163
9.1 El Script de Propiedades ________________________________________________ 164 9.2 El Script de Lista de Valores _____________________________________________ 167
10 Expresiones y Funciones
169
10.1 Expresiones __________________________________________________________ 170 10.2 Operadores ___________________________________________________________ 172 Operadores aritmticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Operadores Relacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Operadores Booleanos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 10.3 Funciones ____________________________________________________________ 173 Funciones Aritmticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Funciones Circulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Funciones Trascendentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 Funciones Booleanas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 Funciones Estadsticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 Funciones de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 Funciones Especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
11 Declaraciones de Control
11.1 Declaraciones de control de flujo ______________________________________ 11.2 Manipulacin del Buffer de Parmetros ________________________________ 11.3 Objetos Macro ________________________________________________________ 11.4 La Declaracin de Salida _______________________________________________ 11.5 Operaciones de Archivo _______________________________________________
181
182 187 190 192 193
195
12.1 Reglas Generales ______________________________________________________ 196 12.2 Creacin de Elementos de Biblioteca Puerta/Ventana ____________________ 197 Puertas/Ventanas Rectangulares en Muros Rectos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 Ventanas No-Rectangulares en Muros Rectos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Puertas/Ventanas Rectangulares en Muros Curvos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 Puertas/Ventanas No Rectangulares en Muros Curvos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
iii
Contenido
Apndice
A B C D E F G H I J K L Variables Globales ____________________________________________________ Funciones Especiales _________________________________________________ GDL Creado desde la Planta ___________________________________________ Palabras Clave slo para la Vista 3D ___________________________________ Palabras Clave slo para el Smbolo 2D ________________________________ Palabras Clave para uso 2D y 3D ______________________________________ Palabras Clave para Scripts No Geomtricos ____________________________ Palabras Clave Comunes ______________________________________________ Palabras Clave Reservadas ____________________________________________ Lista de Conversin de Antiguos Nombres de Variables Globales ________ Listado Alfabtico Actual de Palabras Clave GDL ________________________ Extensin de Texto ___________________________________________________
207
208 217 222 223 225 226 227 228 229 230 232 242
ndice
247
iv