Capítulo 1: Introducción
1
Introducción
Manual de Referencia GDL de ArchiCAD
1
Capítulo 1: Introducción
1.1 Acerca de este Manual Este manual es una referencia completa sobre el GDL (Lenguaje de Descripción Geométrica) disponible en ArchiCAD. El manual está recomendado a aquellos usuarios de ArchiCAD que quieran ir más allá de las posibilidades de las herramientas de construcción y objetos de biblioteca suministradas con el paquete. Primero, un capítulo corto a modo de mapa de carreteras le dará una descripción de las diferentes maneras de modelar. Escribir en GDL es sólo una de las posibilidades. Esta parte merece ser leída sin tener en cuenta su habilidad y propósitos. Después de esto, encontrará una descripción detallada de GDL, incluyendo la definición de sintaxis, comandos, variables, etc. Es una materia más bien áspera, técnica y precisa. Esta parte se recomienda para quienes que están dispuestos a escribir en GDL. Probablemente nunca leerá esta parte por completo, pero explorando sus contenidos su conocimiento, habilidades y ambiciones crecerán. El manual asume que se está familiarizado con ArchiCAD por lo menos a un nivel intermedio, y que se han estudiado los capítulos correspondientes al Manual de Referencia de ArchiCAD.
1.2 Objetos de Biblioteca Además de las herramientas de modelado básicas de ArchiCAD muros, forjados y cubiertas - hay otras que le permiten colocar elementos de forma y geometría predefinida en sus proyectos. Estas son Ventanas, Puertas, Objetos, Lámparas y Zonas y extensiones adicionales (StairMaker y ArchiSITE). Para colocar los distintos tipos, necesita llevar a cabo acciones diferentes, una vez colocados tienen comportamientos diferentes, y sus características se almacenan en cuatro tipos diferentes de documento. Lo que todos estos elementos tienen en común, es la manera como se define su apariencia bi y tridimensional así como sus propiedades. El Manual de Referencia de GDL le ayuda a aprender las aplicaciones del potente Lenguaje de Descripción Geométrica de ArchiCAD para vestir su proyecto con objetos, ornamentos y otros detalles de su propio diseño.
2
Manual de Referencia GDL de ArchiCAD
Capítulo 1: Introducción
Sus fuentes de objetos de biblioteca La Biblioteca de Archicad Merece la pena recorrer meticulosamente la Biblioteca de Archicad incluida con su paquete antes de empezar a crear partes de biblioteca por su cuenta. Estudie todas las posibilidades antes de empezar: descubrirá objetos de biblioteca que nunca antes había pensado en usar.
También debería familiarizarse con las dimensiones típicas y parámetros adicionales de los objetos de biblioteca. Todos ellos pueden modificarse a fin de ajustar los objetos a sus necesidades.
Manual de Referencia GDL de ArchiCAD
3
Capítulo 1: Introducción
Bibliotecas Complementarias Existen diversas bibliotecas para diferentes usos tanto desde Graphisoft (la Colección Graphisoft) y distribuidores locales (bibliotecas de personas, letras 3D, mobiliario de diseño, 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 parámetros.
Modelo de escaleras en espiral desde StairMaker
4
Manual de Referencia GDL de ArchiCAD
Capítulo 1: Introducción
Extensiones de Terceras Partes Existen diversos programas de terceras partes que pueden crear o editar elementos de biblioteca de ArchiCAD. Los objetos creados con estas aplicaciones contienen scripts GDL así como otros datos dependiendo de la aplicación. Se puede acceder a ellos desde dentro de ArchiCAD o en modo aislado. Consulte a su Distribuidor de ArchiCAD para más información.
Modelo de teléfono de VisualGDL Modelo de terreno de ArchiSITE
Bibliotecas en formato DXF Las bibliotecas en DXF están ampliamente difundidas en el mundo del CAD y cubren casi todas las áreas de la ingeniería y el diseño. Muchos fabricantes ofrecen símbolos o modelos de sus productos en formato DXF. ArchiCAD puede importar fácilmente estas bibliotecas.
Uso de sus propias habilidades Muchas veces necesitará objetos que no encontrará en ninguna biblioteca. En este caso, todavía tiene algunas posibilidades sin tocar el entorno de GDL.
Modelar en otras aplicaciones 3D ArchiCAD puede importar cualquier modelo 3D que haga usando, p.e. Zoom o Alias Wavefront. Estas aplicaciones son modeladores 3D genéricos que permiten formas de geometría libre. Con este método, sin embargo, necesita aprender cómo trabajar con otra aplicación.
Manual de Referencia GDL de ArchiCAD
5
Capítulo 1: Introducción
Modelar con las herramientas propias de ArchiCAD Las herramientas de construcción de muros, forjados, cubiertas y demás de ArchiCAD están a su disposición para que las use como piezas a medida, sin tener en cuenta su función original. Se puede, por ejemplo, modelar una mesa fácilmente usando muros y forjados. Estas estructuras se pueden guardar como objetos de biblioteca para manejarlas como elementos de construcción simples. Estarán entonces disponibles para usarlos también en otros proyectos. Los objetos de biblioteca originados desde el plano de planta pueden guardarse como scripts GDL o en formato binario. Los scripts GDL son editables, por lo que se puede modificar el aspecto 3D del objeto de biblioteca modificando su script. Los objetos de biblioteca binarios ofrecen mayor velocidad de representación 3D, pero sólo permiten una edición limitada. Si quiere efectuar otros tipos de modificaciones, deberá volver al documento original en el plano de planta para hacer cambios y guardar otro objeto de biblioteca binario.
Tracería de una ventana Gótica 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 información detallada sobre los objetos de biblioteca derivados desde un plano de planta de ArchiCAD, refiérase a los capítulos “GDL creado desde el plano de planta” y “Crear objetos en ArchiCAD” en el Apéndice B.
Escritura en GDL Si quiere ir más allá de todas las posibilidades anteriores, o si necesita objetos de biblioteca cuya forma pueda ser controlada con
6
Manual de Referencia GDL de ArchiCAD
Capítulo 1: Introducción
parámetros definibles por el usuario, su próximo paso será utilizar GDL y el entorno de escritura ofrecido por ArchiCAD.
1.3 Escritura en GDL Qué es GDL? GDL es un lenguaje de programación paramétrico interno de ArchiCAD parecido al lenguaje BASIC. Su objetivo es describir objetos sólidos tridimensionales y los símbolos 2D que los representan sobre el plano de planta, como puertas, ventanas, muebles, elementos estructurales, escaleras, etc. Se les llama objetos de biblioteca.
Estructura del Elemento de Biblioteca de ArchiCAD Cada objeto de biblioteca descrito con GDL tiene scripts, que son listas de comandos GDL que construyen la forma 3D y el símbolo 2D. Los objetos de biblioteca pueden también tener una descripción para cálculos de cuantificación en ArchiCAD, llamada script de propiedades. Los comandos Master script se ejecutarán antes de cada script (como si se hubieran copiado antes del resto de scripts del objeto) El script 2D contiene la descripción 2D paramétrica del dibujo. Los datos binarios 2D del objeto (contenido de la ventana del símbolo 2D) pueden referenciarse usando el comando FRAGMENT2. Si el script 2D está vacío, los datos binarios 2D se usarán para mostrar el objeto en planta. El script 3D contiene la descripción paramétrica del modelo 3D. Los datos binarios 3D (que se generan durante una operación de importación de Guardar Como…) pueden referenciarse usando el comando BINARY. El script de propiedades contiene componentes y descripciones usados en listados de zonas, elementos y componentes. Los datos binarios de propiedades descritos en las secciones de componentes y descripciones del objeto, pueden referenciarse usando el comando BINARYPROP. Si el script de propiedades está vacío, los datos binarios de propiedades se usarán en el proceso de cálculo. En el value list script pueden definirse conjuntos de posibles valores para los parámetros de los objetos. Manual de Referencia GDL de ArchiCAD
7
Capítulo 1: Introducción
Los parámetros definidos en la sección de parámetros se usan como defecto en la definición de objeto al colocarlo en la planta. La imagen previa aparece en el cuadro de diálogo de definición de objetos al mirar la biblioteca activa. Puede ser llamado con los comandos PICTURE y PICTURE2 desde los scripts 3D y 2D. En la sección de comentarios puede almacenarse cualquier información relacionada con el objeto. ArchiCAD provee un entorno útil para escribir scripts GDL, con visualización en línea, y comprobación de sintaxis y errores.
Analizar, descomponer y simplificar La mayoría de los objetos que desea crear, sea cual sea su complejidad, pueden descomponerse en bloques constructivos de formas geométricas simples. Empiece siempre con un breve y simple análisis del futuro objeto y defina todas las unidades geométricas que lo componen. Cuando haya hecho la descomposición, podrá traducir estos bloques al vocabulario del lenguaje GDL. Si el análisis es adecuado, la síntesis de estas entidades estará cerca del ideal. Para hacer el análisis, se necesita una buena percepción espacial y por lo menos un conocimiento a nivel básico de geometría descriptiva.
Representación de ventanas de diversas complejidades Para evitar obstáculos prematuros y seguir un aprendizaje uniforme, comience con objetos de dimensiones definidas y obtenga su forma más simple pero todavía reconocible. Cuando se familiarice con el modelado básico, podrá disminuir la simplificación y acercarse cada vez más a la forma ideal. “Ideal” no significa necesariamente “complicado”. En función de la naturaleza del proyecto arquitectónico, el objeto de biblioteca ideal puede variar desde aproximado a preciso. La ventana de la izquierda de la ilustración anterior se adapta perfectamente el estilo de visualización urbana de diseño. La ventana de la derecha puede
8
Manual de Referencia GDL de ArchiCAD
Capítulo 1: Introducción
dar un toque de realismo y detalle que puede usarse en la fase constructiva del proyecto.
Elaboración En función de su propósito, los objetos paramétricos pueden variar en su elaboración. Los objetos para uso interno del estudio pueden ser, por supuesto, menos precisos que los hechos para uso general o para la distribución comercial. Si sus símbolos tienen poca importancia en el plano o los cambios paramétricos no necesitan aparecer en 2D, podrá omitir los scripts 2D paramétricos. Incluso si los cambios paramétricos están destinados a aparecer en 2D, no es absolutamente necesario escribir un paramétrico 2D. Es posible efectuar modificaciones paramétricas en la ventana de Script 3D, usar la vista 3D de planta del objeto modificado como un símbolo nuevo y guardar el objeto bajo un nombre nuevo. Obtendrá así un grupo de objetos similares derivados del original mediante cambios paramétricos de sus valores por omisión.
Los objetos de biblioteca más complejos y sofisticados consisten en descripciones paramétricas 3D con sus correspondientes scripts paramétricos 2D. Cualquier cambio en los parámetros afectará no solamente a la vista 3D del objeto sino también a su aspecto en el plano de planta.
Para empezar Las necesidades de su diseño, sus conocimientos de programación y de geometría descriptiva influirán probablemente en dónde 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 más adelante. Manual de Referencia GDL de ArchiCAD
9
Capítulo 1: Introducción
Si está familiarizado con cualquier lenguaje de programación 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. También 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 construcción (tipo LEGO), todavía puede encontrar su manera de practicar GDL. Le aconsejamos que pruebe con los comandos más simples ahora mismo y verifique su efecto en la ventana 3D del objeto de biblioteca. Para detalles sobre el entorno de edición de objetos de biblioteca en ArchiCAD, vea el Manual de Referencia de ArchiCAD .
Comandos de Nivel Básico Estos comandos son fáciles de comprender y usar. No requieren conocimientos de programación. Sin embargo, se pueden crear objetos efectivos sólo con ellos.
Formas Simples Las formas GDL son unidades geométricas básicas que se añaden 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 numéricos o parámetros alfabéticos que definen sus dimensiones. El número de valores varía con cada forma. Al principio, puede evitar el uso de parámetros 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 inglés).
10
Manual de Referencia GDL de ArchiCAD
Capítulo 1: Introducción
Transformaciones de Coordenadas Las transformaciones de coordenadas son como mover su mano a cierto lugar antes de poner una pieza de LEGO. Preparan la posición, orientación y escala de la próxima forma. Z Z
Y
Y
G X
L
X
BLOCK ADDX ROTY BLOCK
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 tríada de ejes coordenados para cualquier objeto presente. Las transformaciones de coordenadas más simples son: En 3D: ADDX ADDY ADDZ ROTX ROTY ROTZ En 2D: ADD2 ROT2 Los comandos que empiezan con ADD moverán la próxima forma, mientras que los que empiezan con ROT la girarán alrededor de uno de sus ejes.
Comandos de Nivel Intermedio Estos comandos son un poco más complejos. No porque requieran conocimientos de programación, sino porque describen formas más complejas o transformaciones más abstractas. Manual de Referencia GDL de ArchiCAD
11
Capítulo 1: Introducción
En 3D: ELLIPS POLY_ PRISM_ TEXT En 2D: HOTSPOT2
CONE LIN_ CPRISM_
PLANE SLAB
PLANE_ SLAB_
POLY2_
TEXT2
FRAGMENT2
CSLAB_
Estos comandos requieren habitualmente más valores para definirlos que los básicos. Algunos de ellos precisan valores de estado para controlar la visibilidad de aristas y superficies.
Transformaciones de Coordenadas En 3D: MULX ADD
MULY MUL
MULZ ROT
En 2D: MUL2
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
12
3, -3,
0, 3,
0.666667, 1 3, 0, -3, 3,
0.666667, 1 3, 0, -3, 3,
Manual de Referencia GDL de ArchiCAD
Capítulo 1: Introducción
Las transformaciones que empiezan con MUL cambiarán la escala de las formas siguientes, convertirán círculos en elipses y esferas en elipsoides. Con valores negativos pueden usarse para hacer simetrías. Los comandos de la segunda fila afectan a las tres dimensiones del espacio a la vez.
Comandos y Características de Nivel Avanzado Estos comandos añaden un nuevo nivel de complejidad. Ya sea por su forma geométrica o porque representan el GDL como un lenguaje de programación. En 3D: BPRISM_ BWALL_ CWALL_ XWALL_ CROOF_ FPRISM_ SPRISM_ EXTRUDE PYRAMID REVOLVE RULED SWEEP TUBE TUBEA COONS MESH MASS LIGHT PICTURE Hay comandos de forma en este grupo que le permiten trazar un polígono en el espacio con una base poligonal para hacer superficies curvas suavizadas. Algunas formas requieren referencias de materiales en su lista de parámetros. Utilizando planos, polígonos y formas de corte, puede generar formas arbitrarias complejas más allá de las simples. Los comandos correspondientes son CUTPLANE, CUTPOLY, CUTPOLYA, CUTSHAPE y CUTEND. En 2D: PICTURE2 POLY2_A SPLINE2 SPLINE2_A
Control de Flujo y Declaraciones Condicionales FOR DO REPEAT IF GOTO RETURN Manual de Referencia GDL de ArchiCAD
NEXT WHILE UNTIL THEN GOSUB END
ENDWHILE ELSE
ENDIF
EXIT
13
Capítulo 1: Introducción
Estos comandos deben ser familiares a cualquiera que haya programado alguna vez en un ordenador, pero son lo suficientemente básicos como para que pueda comprender sus conceptos sin experiencia de programación previa. La permiten hacer partes del script repetitivas para colocar montones de formas con poca escritura, o le permiten tomar decisiones basadas en cálculos 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
15, 15, 15, 15, 15, 15, 15, 15
Parámetros En este estadio de su aprendizaje, puede sustituir los valores fijos con variables alfabéticas. Esto hace al objeto flexible. Se puede acceder a estas variables a través del cuadro de diálogo de Definición de objetos de biblioteca al trabajar en planta.
Llamadas a Macro No se está limitado a las formas estándar GDL. Cualquier objeto de biblioteca existente puede ser una forma GDL en su totalidad. Para colocarla, sólo debe "llamarla", escribiendo su nombre con los parámetros requeridos, como si fuera un comando estándar.
14
Manual de Referencia GDL de ArchiCAD
Capítulo 1: Introducción
Nivel Experto Cuando tenga una buena comprensión de las características 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 número de llamadas a Macro y el número de transformaciones Para información adicional sobre los comandos GDL anteriores, consulte el resto de este manual. Para una consulta rápida de los comandos disponibles y su estructura de parámetros, elija la ventana de Ayuda apropiada desde ArchiCAD.
Manual de Referencia GDL de ArchiCAD
15
Capítulo 1: Introducción
1.4 Cómo genera ArchiCAD una imagen 3D El modelado 3D en ArchiCAD está basado en cálculos de coma flotante, lo que significa que no hay límites al tamaño geométrico del modelo. Por grande que sea, mantiene la misma precisión en los menores detalles. El modelo 3D que finalmente ve en pantalla está compuesto por primitivas geométricas. Estas primitivas se guardan en la memoria de su ordenador en formato binario, y ArchiCAD las genera según la planta que se cree. La metamorfosis entre el plano de planta arquitectónico y los datos binarios 3D se llama conversión 3D. Las primitivas son las siguientes: - todos los vértices de los componentes constructivos - todas las aristas que vinculan los vértices - todas los polígonos de superficie entre las aristas. Algunos grupos de primitivas se mantienen juntas como ‘cuerpos’. Los cuerpos estructuran el modelo 3D. Todas las características de la visualización 3D en ArchiCAD - suavizar superficies, sombras arrojadas, brillo o materiales transparentes están basadas en esta estructura de datos.
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 ningún documento específico. Además, 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 diseño, la posición 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 diálogo de Definición de Objetos. Este valor será la base y la posición por omisión del sistema de coordenadas local del objeto. Las formas descritas en el script se ubicarán en relación a este sistema de coordenadas local.
16
Manual de Referencia GDL de ArchiCAD
Capítulo 1: Introducción
¿ Porqué necesita transformaciones de coordenadas ? Cada forma GDL está vinculada a la posición actual del sistema de coordenadas local. Por ejemplo, los BLOCKs están vinculados al origen por una de sus esquinas, y la longitud, anchura y altura del bloque se miden a lo largo de los tres ejes, siempre en dirección positiva. Por esto el comando BLOCK requiere sólo tres parámetros que definan las dimensiones sobre los ejes. ¿ Cómo generar otro bloque, desplazado y girado? Con la estructura de parámetros del BLOCK no hay manera de hacerlo. No hay parámetros para desplazar y girar. La respuesta es mover el sistema de coordenadas hasta la posición correcta antes de la aparición del comando BLOCK. Con los comandos de transformación de coordenadas, se puede predefinir la posición y rotación del sistema alrededor de los ejes. Estas transformaciones no se aplican a las formas ya generadas. Son efectivas sólo con las formas siguientes.
El motor de intérprete GDL Cuando se ejecuta un script GDL, el motor de intérprete GDL de ArchiCAD detectará la posición en el plano de planta, el tamaño, ángulo de rotación, parámetros de usuario definidos y posible estado “simétrico” del objeto de biblioteca. Después mueve el sistema de coordenadas local a la posición correcta, a punto de recibir los comandos GDL del script del objeto de biblioteca. Cada vez que el intérprete encuentra un comando para una forma básica, genera las primitivas geométricas que estructuran esta forma concreta. Cuando el intérprete ha terminado, el modelo 3D binario completo estará en memoria, y podrá efectuar recorridos, renderings o estudios de asoleo sobre él. ArchiCAD contiene un pre-compilador y un intérprete para GDL. La interpretación de un script GDL usa este código pre-compilado. Esta característica incrementa la velocidad del análisis. Si el script se modifica, se genera un nuevo código.. Las estructuras de datos convertidos desde otros formatos (p.e. DXF, Zoom, Alias Wavefront) se guardan en una sección binaria del objeto de biblioteca. Esta sección se referencia con la declaración BINARY del script GDL.
Manual de Referencia GDL de ArchiCAD
17
Capítulo 1: Introducción
El orden de análisis de los scripts GDL Los usuarios de ArchiCAD no tienen control sobre el orden en el que los elementos de biblioteca colocados en la Planta son analizados. El orden de análisis de los scripts de GDL se basa en la estructura interna de datos, más aún, las operaciones de Deshacer o Rehacer pueden influir en ese orden. La única excepción a esta regla son scripts GDL especiales de la biblioteca activa, cuyos nombres empiezan por "MASTER_GDL" o "MASTEREND_GDL". Los scripts cuyo nombre empieza por "MASTER_GDL" se ejecutan antes de una conversión a 3D, antes de crear una Sección/Alzado, antes de empezar un proceso de listado y después de cargar la biblioteca activa. Los scripts cuyo nombre empieza por "MASTEREND_GDL" se ejecutan después de una conversión a 3D, después de crear una Sección/Alzado, al finalizar un proceso de listado y cuando la biblioteca activa va a cambiar (Cargar Bibliotecas, Abrir un proyecto, Nuevo proyecto, Salir). Estos scripts no se ejecutan cuando edita elementos de Biblioteca. Si su biblioteca contiene uno o más de tales scripts, se ejecutarán todos en un orden no definido. Los scripts MASTER_GDL y MASTEREND_GDL pueden incluir definiciones de atributos, inicializaciones de GDL, variables globales de usuario, comandos 3D (efectivos sólo en el modelo 3D), definiciones de lista de valores (vea el comando VALUES en el capítulo de Scripts No Geométricos) y comandos específicos de GDL. Los atributos definidos en estos scripts se combinarán con el conjunto de atributos de ArchiCAD (los atributos de ArchiCAD con el mismo nombre no son sustituidos, mientras que los atributos originados desde GDL y no editados en ArchiCAD son siempre sustituidos).
18
Manual de Referencia GDL de ArchiCAD
Capítulo 1: Introducción
1.5 Creación de objetos en ArchiCAD Los objetos de biblioteca 3D se han hecho tradicionalmente escribiendo un script GDL y dibujando manualmente un símbolo 2D. ArchiCAD ofrece cuatro maneras de automatizar este proceso, guardando conjuntos de elementos del plano de planta como un objeto de biblioteca 3D individual. 1) Guardando el proyecto entero o los elementos seleccionados como un documento GDL 3D (Guardar Como…> 3D GDL). De esta manera, todos los elementos (o los seleccionados) del plano serán guardados como formas GDL 3D, como se describe en el Apéndice. Este documento GDL puede abrirse y editarse en ArchiCAD, ya como documento GDL, ya como objeto de biblioteca (Guardar Especial > Objeto ArchiCAD). 2) Guardar todo el proyecto o los elementos seleccionados como un objeto ArchiCAD. Todos los elementos de la planta (o los seleccionados) se guardarán como un objeto completo con descripciones 2D y 3D. Este objeto es, de hecho, una representación de biblioteca de su plano de planta con partes 2D y 3D en script. 3) Guardar el modelo actualmente visible en la ventana 3D como un objeto de biblioteca completo, con símbolo 2D y descripción 3D (Guardar como…> Objeto de Biblioteca). La descripción 3D del objeto de biblioteca puede ser un script GDL o datos binarios no editables. El símbolo 2D se genera directamente desde la proyección 3D. Para crear un objeto de biblioteca, siga los pasos siguientes: - Use las herramientas de ArchiCAD para construir el modelo. - Active la ventana 3D para obtener la estructura de datos 3D del modelo y verlo en la proyección actual. Si guarda puertas o ventanas esto último no se aplica. - Escoja Guardar como… en el menú Archivo y seleccione el tipo de documento Objeto de Biblioteca. - Después de hacer clic en Guardar, defina las opciones deseadas en el cuadro de diálogo.
Manual de Referencia GDL de ArchiCAD
19
Capítulo 1: Introducción
Objetos en general : el símbolo 2D se genera directamente desde las vistas superior, lateral o inferior, ya sea en alámbrico o con líneas ocultas. El símbolo y la forma 3D se ajustan automáticamente 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 posición 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 fácilmente con elementos en el plano x-y. Más detalles en el capítulo '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 función del destino, se generará una descripción GDL 2D (script 2D u otra ventana de texto) o una descripción 3D (ventana de script 3D) de los elementos.
20
Manual de Referencia GDL de ArchiCAD
Capítulo 2: Elementos de Sintaxis Básicos
2
Elementos de Sintaxis Básicos
Manual de Referencia GDL de ArchiCAD
21
Capítulo 2: Elementos de Sintaxis Básicos
El GDL no es sensible a las mayúsculas; no distingue entre éstas y las minúsculas excepto en textos entre comillas. El final lógico 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 declaración puede empezar con una palabra clave (definiendo una forma, una transformación 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 expresión matemática. Línea Las declaraciones están en líneas separadas por separadores-delínea (caracteres fin_de_línea). Una coma (,) en la última posición indica que la declaración continúa en la siguiente línea. Se usan dos puntos (:) para separar declaraciones en una línea. Tras un signo de admiración final (!) puede escribir cualquier comentario en la línea. Pueden insertarse líneas en blanco en un script GDL sin ningún efecto y se puede usar cualquier número de espacios o tabuladores entre operadores y operandos. Es obligatorio el uso de un espacio o tabulador después de declaraciones de palabras clave y llamadas a macro. Etiqueta Cualquier línea puede empezar con una etiqueta. Una etiqueta es un número entero seguido de dos puntos (:). La etiqueta es una referencia para la declaración siguiente. Las etiquetas se comprueban para sucesos simples. La ejecución del programa puede continuar desde cualquier etiqueta indicada por una declaración GOTO o GOSUB. Caracteres disponibles El texto GDL se compone de letras mayúsculas y minúsculas del alfabeto Inglés, números y los caracteres siguientes: _ (subrayado) ! : , ; . + – * / ^ = < > # ( ) |(barra vertical) “ ‘ ` ´ ” “ ’ ‘ 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 convertirán a mayúsculas, por lo que se recomienda usar comillas. La longitud máxima permitida en una secuencia es de 255 caracteres. El carácter '\' tiene valores de control especiales. Su significado depende del carácter siguiente.
22
Manual de Referencia GDL de ArchiCAD
Capítulo 2: Elementos de Sintaxis Básicos
\\ \n \t \new line \others Ejemplos:
'\' él mismo nueva línea tabulador continuar secuencia en siguiente línea sin una nueva línea 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 carácter '_' o '~' , consisten en letras, números y caracteres '_' o '~'. Mayúsculas y minúsculas 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 están determinadas por ArchiCAD; todos los demás identificadores pueden utilizarse como nombres de variable. Variables Un programa en GDL puede manejar variables numéricas y de texto (definidas por sus identificadores), números 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 intérprete restaura sus valores. Las variables globales tienen nombres reservados (la lista de variables globales disponibles en ArchiCAD se da en el Apéndice). No se apilan durante la llamadas a macro, permitiendo al usuario almacenar valores especiales de modelado y simular códigos de retorno desde macros. Las variables globales de usuario pueden definirse en cualquier script, pero sólo serán 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.
Manual de Referencia GDL de ArchiCAD
23
Capítulo 2: Elementos de Sintaxis Básicos
Utilizando el comando "=", puede asignar un número o valor de texto a las variables globales y locales. Parámetros Los identificadores enumerados en la lista de elementos de biblioteca se llaman parámetros. Los identificadores de parámetros no deben exceder de 32 caracteres. Dentro de un script, se aplican las mismas reglas que para las variables locales. Los parámetros de los archivos de sólo texto GDL se identifican con letras A … Z. Tipos simples Las expresiones, variables y parámetros pueden ser de dos tipos simples: numéricas o de texto. Las expresiones numéricas son números constantes, variables numéricas o parámetros, funciones que devuelven valores numéricos y cualquier combinación de éstos en operaciones. Las expresiones de texto son secuencias constantes, secuencias variables o parámetros, funciones que devuelven secuencias y cualquier combinación de éstos en operaciones que dan como resultado secuencias de texto. Tipos derivados Variables y parámetros también pueden ser matrices, y los parámetros pueden ser listas de valores de tipo simple. Matrices son tablas de una o dos dimensiones de valores numéricos y/o de texto, a los que puede accederse directamente por índices. Listas de Valores son conjuntos de posibles valores numéricos o de texto. Pueden ser asignados a los parámetros en el script de lista de valores del objeto o en el script MASTER_GDL y aparecerá en el listado de parámetros como un menú desplegable. [aaa] Los paréntesis cuadrados indican que los elementos incluidos son opcionales (si están 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_MAYÚSCULAS caracteres especiales Deben introducirse tal cual. otros_textos_minúsculas_en_lista_de_parámetros Cualquier expresión GDL.
24
Manual de Referencia GDL de ArchiCAD
Capítulo 3: Transformación de Coordenadas
3
Transformación de Coordenadas
Manual de Referencia GDL de ArchiCAD
25
Capítulo 3: Transformación de Coordenadas
3.1 Transformaciones en el espacio Tridimensional En GDL, todos los elementos geométricos están estrictamente vinculados al sistema de coordenadas local. Una esquina de un bloque, por ejemplo, está en el origen y sus caras están en los planos x-y, x-z e y-z. Para colocar un elemento geométrico en la posición deseada se requieren dos pasos. Primero, mover el sistema de coordenadas a la posición deseada. Segundo, generar el elemento. Cada movimiento, rotación o deformación del sistema de coordenadas a lo largo o alrededor de un eje se llama transformación. Las transformaciones se almacenan en una pila; la interpretación empieza hacia atrás desde la última. Los scripts heredan esta pila de transformación; pueden insertarse nuevos elementos, pero no pueden borrarse más que los definidos localmente. Es posible borrar una, varias o todas las transformaciones definidas en el script actual. Al volver de un script, las transformaciones globales definidas se eliminan de la pila ADDX ADDY ADDZ
dx dy dz Mueven el sistema de coordenadas local dx, dy o dz respectivamente a lo largo del eje dado.
ADD
dx, dy, dz Substituye la secuencia ADDX dx : ADDY dy : ADDZ dz. Tiene una sola entrada en la pila, por lo que puede borrarse con DEL␣ 1.
26
Manual de Referencia GDL de ArchiCAD
Capítulo 3: Transformación de Coordenadas
Ejemplo : Z
Y
Z
Y
c X
b
a X
ADD a,b,c
MULX MULY MULZ
mx my mz Escala el sistema de coordenadas local a lo largo del eje dado. Valores negativos de mx, my, mz significan simetrías simultáneas.
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.
ROTX ROTY ROTZ
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
Y
Y
X
beta X
ROTZ beta Manual de Referencia GDL de ArchiCAD
27
Capítulo 3: Transformación de Coordenadas
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 transformación completa. Se usa principalmente en generación automática de código 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:
A=60 B=30 XFORM
BLOCK
28
2, 0, 0, 1,
COS(A), SIN(A), 0, 1,
COS(B)*0.6, SIN(B)*0.6, 1, 1
0, 0, 0
Manual de Referencia GDL de ArchiCAD
Capítulo 3: Transformación de Coordenadas
3.2 Transformaciones en el espacio Bidimensional Son los equivalentes en el espacio 2D de las transformaciones 3D ADD, MUL y ROTZ. ADD2
x, y Ejemplo: Y
Y
X
b X
a ADD2
MUL2
x, y
ROT2
alpha
a, b
Ejemplo: Y
Y X
beta
X
ROT2 beta
Manual de Referencia GDL de ArchiCAD
29
Capítulo 3: Transformación de Coordenadas
3.3 Manejo de la Pila de Transformación DEL
n [, beg_with] Borra las n entradas previas de la pila de transformación. Si no se especifica el parámetro beg_with, se borran las n entradas previas en la pila de transformación. El sistema de coordenadas local vuelve atrás a una posición previa. Si se especifica el parámetro beg_with, se borran n entradas hacia adelante, empezando con la determinada por beg_with. La numeración empieza con 1. Si el parámetro beg_with está especificado y es negativo, el borrado es hacia atrás. Si se han emitido menos transformaciones en el script actual que las descritas por el argumento n dado, sólo se borrarán las transformaciones emitidas.
DEL
TOP Borra todas las transformaciones del script actual..
NTR
() Devuelve el número actual de transformaciones.
30
Manual de Referencia GDL de ArchiCAD
Capítulo 3: Transformación de Coordenadas
Ejemplo:
BLOCK ADDX ADDY ADDZ ROTX ADDX BLOCK
1, 2 2.5 1.5 -60 1.5 1,
1,
DEL
1,
1
BLOCK
1,
0.5, 1
DEL
1,
NTR()-2
BLOCK
1,
0.5, 2
DEL
-2,
3
BLOCK
1,
0.5, 2
Manual de Referencia GDL de ArchiCAD
1
0.5, 2 !Borra la transformación !ADDX 2
!Borra la transformación !ADDZ 1.5
!Borra la transformación !ROTX -60 y la ADDY 2.5
31
Capítulo 3: Transformación de Coordenadas
32
Manual de Referencia GDL de ArchiCAD
Capítulo 4: Formas Planas en 3D
4
Formas Planas en 3D
Manual de Referencia GDL de ArchiCAD
33
Capítulo 4: Formas Planas en 3D
LIN_
x1, y1, z1, x2, y2, z2 Segmento de línea entre los puntos P1(x1,y1,z1) y P2(x2,y2,z2).
RECT
a, b Rectángulo en el plano x-y con caras a y b. Restricción de parámetros: a, b ≥ 0 Y
b
a
X
POLY
n, x1, y1, . . . xn, yn Polígono con n aristas en el plano x-y. Las coordenadas de cada nodo i son (xi, yi, 0). Restricción de parámetros: n>3 Y
n 1
2
3 X
34
Manual de Referencia GDL de ArchiCAD
Capítulo 4: Formas Planas en 3D
POLY_
n, x1, y1, mask1, . . . xn, yn, maskn Similar a la declaración 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 vértice. maski = -1 se usa para definir huecos directamente. Ver PRISM_ en el Capítulo 3.2 para más detalles. Restricción de parámetros: n>3 Y
n 1
2
3 X
Y
n 1
2
3 X
PLANE
n, x1, y1, z1, . . . xn, yn, zn Polígono con n aristas en un plano arbitrario. Las coordenadas de cada nodo i son (xi, yi, zi). El polígono debe ser plano de cara a obtener un rendering correcto, pero el intérprete no comprueba esta condición. Restricción de parámetros: n>3
PLANE_
n, x1, y1, z1, mask1, . . . xn, yn, zn, maskn Similar a la declaración PLANE normal, pero se puede omitir cualquiera de las aristas como en la declaración POLY_. Restricción de parámetros: n>3
Manual de Referencia GDL de ArchiCAD
35
Capítulo 4: Formas Planas en 3D
CIRCLE
r Círculo en el plano x-y con su centro en el origen y un radio r.
r
ARC
r, alpha, beta Arco (en modo Alámbrico) / 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 están en grados. Y
ta
be alpha X
36
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
5
Formas Tridimensionales
Manual de Referencia GDL de ArchiCAD
37
Capítulo 5: Formas Tridimensionales
5.1 Formas básicas BLOCK BRICK
a, b, c a, b, c La primera esquina del bloque está en el origen local y sus aristas, con longitudes a, b y c, están a lo largo de los ejes x, y, z, respectivamente. Valores cero crean bloques degenerados (rectángulos o líneas). Restricción de parámetros: a, b, c > 0
Z
a
c
b
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 círculo en el plano x-y. Si r es cero, se genera una línea a lo largo del eje z. Z
h
r
Y
X
38
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
SPHERE
r Esfera con su centro en el origen y radio r. Z
r Y
X
ELLIPS
h, r Medio elipsoide. Su sección transversal en el plano x-y es un círculo con radio r, centrado en el origen. La longitud del semieje z es h.
h
Z
r Y
X
Ejemplo: ELLIPS r, r
Manual de Referencia GDL de ArchiCAD
! hemisferio
39
Capítulo 5: Formas Tridimensionales
CONE
h, r1, r2, alpha1, alpha2 Tronco de cono, donde alpha1 y alpha2 son los ángulos de inclinación de las superficies en los extremos del eje z, r1 y r2 son los radios de los círculos 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 están en grados. Restricción de parámetros: 0 < alpha1 < 180° y 0 < alpha2 < 180° Z
Z
2 ha alp r2
h
alp
ha
r1
1
Y
Y
X
Ejemplo: CONE h, r, 0, 90, 90
PRISM
! cono regular
n, h, x1, y1, . . . xn, yn Prisma recto con base poligonal en el plano x-y (ver los parámetros 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 polígono está por debajo del plano x-y. Restricción de parámetros: n>3
h
Z
Y n X
40
2 1
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
PRISM_
n, h, x1, y1, mask1, . . . xn, yn, maskn Similar a la declaración PRISM, pero puede omitirse cualquiera de las aristas y caras horizontales. Restricción de parámetros: n>3 Z
j3
X
Y
j4
j2
i
j1
i+1
El número 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 números j1, j2, j3, j4 representan dónde los vértices y la cara están presentes (1) o se omiten (0). j1 : arista horizontal inferior j2 : arista vertical j3 : arista horizontal superior j4 : cara j7 : valor especial adicional efectivo sólo cuando j2 es 1 y controla el punto de vista en función de la visibilidad de la arista vertical actual. j2 = 0: la arista vertical es siempre invisible j2 = 1 y j7= 1: la arista vertical sólo es visible cuando es un contorno aparente desde la actual dirección de vista j2 = 1 y j7 = 0: la arista vertical siempre es visible
Manual de Referencia GDL de ArchiCAD
41
Capítulo 5: Formas Tridimensionales
Valores de mask (las líneas gruesas denotan aristas visibles) : invisible surface
visible surface
0
8
1
9
2
10
3
11
4
12
5
13
6
14
7
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. También se usa para indicar el final de un contorno de hueco y el principio de otro. Las coordenadas anteriores a este valor deben ser idénticas 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 parámetros debe ser -1, indicando el final del último hueco. Los huecos no deben estar conectados. Se prohiben intersecciones internas del polígono para un coloreado/rendering correcto. Ejemplos:
PRISM_ 4,1, 0,0,15, 1,1,15, 2,0,15, 1,3,15
42
PRISM_ 4,1, 0,0,7, 1,1,5, 2,0,15, 1,3,15 Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
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,
Manual de Referencia GDL de ArchiCAD
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
!Fin del primer hueco
!Fin del segundo hueco
!Fin del tercer hueco
43
Capítulo 5: Formas Tridimensionales
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,
44
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,
H, 15, 15, 15, 15, 15, 15, 15, 15, 15
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, 64+15, 64+15, 64+15, 64+15, 64+15, 64+15, 64+15, 15
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
CPRISM_
topmat, botmat, sidemat, n, h, x1, y1, mask1, . . . xn, yn, maskn Extensión de la declaración PRISM_ , los primeros 3 parámetros se usan para el nombre/índice de material de las superficies superior, inferior y lateral. Los otros parámetros son los mismos que en la declaración PRISM_ anterior. Restricción de parámetros: n>3 Ver también la declaración MATERIAL en el Capítulo de "Atributos" y la descripción de la función IND en el Apéndice. Ejemplo:
CPRISM_
“Iron“, 0, T_,
13, 0.2, 0, 0, 2, 0, 2, 2, 0, 2, 0, 0,
15, 15, 15, 15, -1,
0.2, 1.8, 1.0, 0.2, 0.2, 1.8, 1.0, 0.2,
15, 15, 15, -1, 15, 15, 15, -1
0.2, 0.2, 0.9, 0.2, 1.8, 1.8, 1.1, 1.8,
Manual de Referencia GDL de ArchiCAD
!”Hierro” es un material ! predefinido. ! 0 es un material ! genérico. ! T_ es una variable ! global (un índice ! de material)
! fin del contorno
! fin del primer hueco
! fin del segundo hueco
45
Capítulo 5: Formas Tridimensionales
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 parámetro 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 tendrán dirección radial. Ver BWALL_ para detalles. Ejemplos: (con los correspondientes CPRISM_):
BPRISM_ 3, 0.4, 0, 0, 5, 0, 1.3, 2,
46
"Glass", 1, 15, 15, 15
"Glass", "Glass", ! radio = 1
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
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
Manual de Referencia GDL de ArchiCAD
47
Capítulo 5: Formas Tridimensionales
FPRISM_
topmat, botmat, sidemat, hillmat, n, thickness, angle, hill_height, x1, y1, mask1, ... xn, yn, maskn Similar a la declaración PRISM_ con los parámetros adicionales hillmat, angle y hill_height. Sobre el prisma recto se añade una parte suavizada. hillmat: el material de la cara de la parte suavizada angle:
el ángulo de inclinación de las aristas suavizadas. Restricción: 0 < angle < 90. Si el ángulo = 0 las aristas suavizadas se ven en proyección ortogonal como un cuarto de círculo con una resolución especificada por el comando RESOL.
hill_height:
la altura de la parte suavizada. Observe que el parámetro thickness representa la altura total del FPRISM.
Restricción de parámetros: n>3 Maski = -1 se usa para definir huecos directamente en el prisma. Vea su descripción en PRISM_ .
hill_height
n
angle
thickness
1 2
48
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
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
Manual de Referencia GDL de ArchiCAD
49
Capítulo 5: Formas Tridimensionales
SPRISM_
topmat, botmat, sidemat, n, xb,yb, xe, ye, h, angle, x1, y1, mask1, . . . xn, yn, maskn Extensión de la declaración CPRISM_ con la posibilidad de tener un polígono superior no paralelo al plano x-y. La definición del plano superior es similar a la definición de plano en la declaración CROOF_. La altura del prisma se define en la línea de referencia. La intersección de los polígonos superior e inferior está prohibida. Parámetros adicionales: xb, yb, xe, ye: línea de referencia (vector) coordenadas iniciales y finales, angle:
ángulo de rotación del polígono superior alrededor de la línea de referencia dada, en grados (antihorario)
Nota: todas las coordenadas z calculadas de los nodos del polígono superior deben ser positivas o 0
angle n h (xb,yb ) (xe,ye ) 1 2
Ejemplo:
SPRISM_ 6, 0, 0, 0, 0, 10, 1, 11, 6, 5, 7, 4.5, 5.5, 1, 6,
50
'Grass',
'Earth',
11, 15, 15, 15, 15, 15, 15
2,
6,
'Earth',
-10.0,
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
SLAB
n, h, x1, y1, z1, . . . xn, yn, zn Prisma oblicuo. Las caras laterales son siempre perpendiculares al plano x-y, sus bases son polígonos planos girados sobre un eje paralelo con el plano x-y. Pueden usarse valores de h negativos. En este caso, la segunda base del polígono está por debajo de la dada. No se comprueba si los puntos están realmente en un plano. Los vértices no contenidos en el plano darán colores propios/ renderings extraños. Restricción de parámetros: n>3 Z
Y
X
SLAB_
n, h, x1, y1, z1, mask1, . . . xn, yn, zn, maskn Similar a la declaración SLAB, pero pueden omitirse cualquiera de las aristas y caras horizontales. Esta declaración es una analogía de la declaración PRISM_ .
CSLAB_
topmat, botmat, sidemat, n, h, x1, y1, z1, mask1, . . . xn, yn, zn, maskn Extensión de la declaración SLAB_ ; los primeros 3 parámetros se usan para el nombre/índice de material de las superficies superior, inferior y lateral. Los otros parámetros son los mismos que en la declaración SLAB_ anterior. Ver también la declaración MATERIAL en el Capítulo de Atributos y la función IND en el Apéndice.
Manual de Referencia GDL de ArchiCAD
51
Capítulo 5: Formas Tridimensionales
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 también la declaración MATERIAL en el Capítulo de Atributos y la función IND en el Apéndice. La línea de referencia del muro se transforma siempre coincidiendo con el eje x. Las caras del muro están en el plano x-z. height : Altura del muro en relación a su base. x1, x2, x3, x4 : Proyección de los extremos del muro sobre el plano x-y, como se ve a continuación. 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 polígono y se generan ‘marcos’ alrededor de los huecos.
52
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
t
Y
X x1
x4
x3
x2
mask1, mask2, mask3, mask4 : Controlan la visibilidad de aristas y caras de los polígonos. maski = j1 + 2*j2 + 4*j3 + 8*j4 donde j1, j2, j3, j4 pueden ser 0 or 1. Los números j1, j2, j3, j4 representan cuándo los vértices y la cara están presentes (1) o se omiten (0). Z mask 3
Y mask 2
mask 4 j3 j2 j4 j1
X mask 1
n:
el número de aberturas en el muro.
xbegi, loweri, xendi, upperi : coordenadas de las aberturas como sigue.
i
xbeg xend
i
lower
i
upper
i
height
Z
X
Manual de Referencia GDL de ArchiCAD
53
Capítulo 5: Formas Tridimensionales
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 números 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 ilustración siguiente. Z
j3 j7 j2 j4
j1
j6
j8 j5 Y
X
Una arista que sea perpendicular a la superficie del muro es visible si existen bordes visibles dibujados desde sus dos puntos extremos. m: número de los planos de corte. ai, bi, ci, di : coeficientes de la ecuación que define el plano de corte [ai*x + bi*y + ci*z = di]. Partes de la cara positiva del plano de corte que serán cortadas y eliminadas (p.e. ai*x + bi*y + ci*z > di).
[ai, bi, ci]
54
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
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 parámetro 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 serán radiales, y las aristas verticales permanecen verticales. La curvatura se aproxima mediante un número de segmentos definido por la directiva RESOL, como para esferas y cilindros. Ver CWALL_ para detalles.
Manual de Referencia GDL de ArchiCAD
55
Capítulo 5: Formas Tridimensionales
Ejemplos: un BWALL_ y el CWALL_ correspondiente
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,
56
1, 6,
0,
15, 2.5, -255, 2.5, -255, 1.4, -255, 1.95, -255, 2.5, -255, 1,
3
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
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 Definición de muro ampliada, basada en la misma estructura de datos que el elemento BWALL_. Parámetros 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
Y
y4 y1
y2 y3 x1
x2
reserved1, reserved2:
Manual de Referencia GDL de ArchiCAD
x3
x4
X
reservado, siempre 0.
57
Capítulo 5: Formas Tridimensionales
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
58
"Whitewash", "Whitewash",
-255, -255, -255,
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
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: número/índice de materiales inferior, superior y lateral n:
el número de nodos en el polígono de cubierta
xb, yb, xe, ye:
línea de referencia (vector)
height:
la altura de la cubierta en la línea de referencia (superficie inferior)
angle:
ángulo de rotación del plano de cubierta alrededor de la línea de referencia dada, en grados (antihorario)
thickness:
grosor de la cubierta medida perpendicularmente al plano de cubierta
xi, yi:
las coordenadas de los nodos del polígono inferior de la cubierta
alphai:
á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 dirección de la arista del polígono de cubierta correctamente orientado, el ángulo de rotación antihorario es positivo.
La orientación de las aristas del polígono 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_. Restricción de parámetros: n>3
Manual de Referencia GDL de ArchiCAD
59
Capítulo 5: Formas Tridimensionales
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,
60
1,
1,
! materiales
! línea de referencia (x1,y1) ! altura ! ángulo ! grosor 15, 15, 15, 15, -1, 15, 15, 15, -1
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
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
Manual de Referencia GDL de ArchiCAD
61
Capítulo 5: Formas Tridimensionales
MESH
a, b, m, n, mask, z11, z12, . . . z1m, z21, z22, . . . z2m, ... zn1, zn2, . . . znm Malla suavizada simple basada en un rectángulo con una red equidistante. Los lados del rectángulo de base son a y b; los puntos m y n están 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):
la superficie de base está presente.
j3 (4):
las superficies laterales están presentes.
j5 (16):
las aristas de base y laterales son visibles.
j6 (32):
las aristas superiores son visibles.
j7 (64):
las aristas superiores son visibles, la superficie superior no está suavizada. Z
Zij Y
n b
j 1 1
i
m
X
a
Restricción de parámetros: m > 2, n > 2
62
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
Ejemplos:
MESH 50, 30, 5, 6, 1+4+16+32+64, 2, 4, 6, 7, 8, 10, 3, 4, 5, 6, 7, 9, 5, 5, 7, 8, 10, 9, 4, 5, 6, 7, 9, 8, 2, 4, 5, 6, 8, 6
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
Manual de Referencia GDL de ArchiCAD
63
Capítulo 5: Formas Tridimensionales
ARMC
r1, r2, l, h, d, alpha Trozo de tubo que empieza en otro tubo; parámetros de acuerdo con la figura (las curvas de intersección se calculan y dibujan también). Alpha está en grados. Restricción de parámetros: r1 > r2 + d r1 < l * sin(alpha) - r 2 * cos(alpha) Z alp
ha
r2
h
l
X
r1
d
Y
X
Ejemplo:
ROTY CYLIND ADDZ ARMC ADDZ ROTZ ARMC ADDZ ROTZ ARMC
64
90 10,1 6 1, 0.9, 3, -1 -90 1, 0.75, 3, -1 -90 1, 0.6, 3,
0,
0,
45
0,
0,
90
0,
0,
135
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
ARME
l, r1, r2, h, d Trozo de tubo que empieza desde un elipsoide en el plano y-z; parámetros de acuerdo con la figura (las curvas de intersección se calculan y dibujan también). Restricción de parámetros: r1 > r2+ d l > h*√ (1 - (r 2 - d)2 / r12) Z
r2
h
l
d
Y r1
Ejemplo:
ELLIPS 3,4 FOR i=1 TO 6 ARME 6,4,0.5,3,3.7-0.2*i ROTZ 30 NEXT i
Manual de Referencia GDL de ArchiCAD
65
Capítulo 5: Formas Tridimensionales
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. Restricción de parámetros: r1 > r2
ha
r1
Z
alp
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
1
1
1
1
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
5.2 Formas generadas desde polilíneas Estos elementos permiten crear formas 3D complejas usando una polilínea y una regla constructiva. Se puede girar, proyectar o trasladar la polilínea dada. Los cuerpos resultantes generalizan algunos elementos existentes, como PRISM_ y CYLIND. Formas generadas desde una sola polilínea: EXTRUDE PYRAMID REVOLVE Formas generadas desde dos polilíneas: RULED SWEEP TUBE TUBEA La primera polilínea está siempre en el plano x-y. Dos coordenadas determinan los puntos, el tercer valor (ver a continuación) es el status . La segunda polilínea (RULED y SWEEP) es una curva en el espacio cuyos vértices se determinan por tres valores coordenados. Formas generadas desde cuatro polilíneas: COONS Forma generada a partir de polilíneas: MASS Restricciones generales para polilíneas: Los vértices adyacentes no deben coincidir (excepto para␣ RULED). La polilínea no debe cortarse a sí misma (no se verifica, pero el cálculo de ocultos y rendering serán incorrectos). Las polilíneas pueden ser abiertas o cerradas. En el último caso, el primer nodo debe repetirse al final de la declaración.
Manual de Referencia GDL de ArchiCAD
67
Capítulo 5: Formas Tridimensionales
Masking Los valores de mask se usan para mostrar o esconder superficies y/ o aristas características de la forma 3D. Los valores de mask son específicos de cada elemento y se puede encontrar una definición más detallada en sus correspondientes secciones/capítulos. 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: sección 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 dónde un punto dado de una polilínea dejará atrás un trazo nítido de su trayectoria de rotación. 0:
arcos/aristas laterales que arrancan del nodo son todos visibles.
1:
arcos/aristas laterales que arrancan del nodo se usan solo para mostrar el contorno.
-1 :
sólo para EXTRUDE: marca el final del polígono 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 Capítulo "Códigos de Status Adicionales para Polilíneas" se describen códigos adicionales para segmentos tangentes y arcos. Se reservan otros valores para futuras mejoras.
68
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
EXTRUDE
n, dx, dy, dz, mask, x1, y1, s1, . . . xn, yn, sn Prisma genérico que usa una polilínea en el plano x-y como base. El vector desplazamiento entre bases es (dx, dy, dz). Es una generalización de las declaraciones PRISM y SLAB. No es necesario que la polilínea de base sea cerrada ni que las aristas laterales sean perpendiculares al plano x-y. La polilínea de base puede incluir huecos, al igual que PRISM_. Es posible controlar la visibilidad de las aristas de contorno n: número de nodos de la polilínea. mask :
controla la existencia de las caras superior, inferior y (en el caso de una polilínea abierta) lateral.
si :
status de las aristas laterales o marca el final de un polígono o hueco.
Restricción de parámetros: n>2 Z j6 j2
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.
Manual de Referencia GDL de ArchiCAD
69
Capítulo 5: Formas Tridimensionales
Valores de status 0: las aristas laterales que empiezan en el nodo son visibles. 1:
las aristas laterales que empiezan en el nodo se usan para mostrar el contorno.
-1 :
marca el final del polígono cerrado o de un hueco, y significa que el siguiente nodo será el primer vértice de otro hueco.
Ejemplos:
70
EXTRUDE 0, 1, 2, 3, 4, 5, 6, 3, 0,
14, 0, -3, -2, -4, -2, -3, 0, 4, 0,
1, 0, 0, 1, 0, 1, 0, 0, 0, -1,
2, 3, 4, 3, 2,
0, 2, 0, -2, 0,
0, 0, 0, 0, -1
1,
4,
1+2+4+16+32,
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
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,
1+2+4+16+32, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, -1,
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),
0, 1, 1, 1, 1, 1, 1, 1,
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, 1, 1, 1, 1, 1, 1, -1
71
Capítulo 5: Formas Tridimensionales
PYRAMID
n, h, mask, x1, y1, s1, . . . xn, yn, sn Pirámide basada en una polilínea en el plano x-y. El vértice de la pirámide se sitúa en (0, 0, h). n: número de nodos de la polilínea. mask :
controla la existencia de las caras inferior y (en el caso de una polilínea abierta) lateral.
si :
status de las aristas laterales.
Restricciones de parámetros: h>0 n>2
h
Z
Y j3 n j1 X
1
j5 2
mask = j1 + 4*j3 + 16*j5 donde j1, j3, j5 pueden ser 0 or 1. j1 (1):
la superficie de la base está presente.
j3 (4):
la superficie lateral (cerrada) está presente.
j5 (16):
las aristas de la base son visibles.
Valores de status 0: las aristas laterales que arrancan del nodo son todas visibles. 1:
72
las aristas laterales que arrancan del nodo se usan para mostrar el contorno.
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
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.5, -2, 2, 2, -2, 4, -1, -1, 1, 1,
1+4+16, 0, 0, 0, 0 21, 0, 0, 0, 0
4, -0.25, 0.25, 0.25, -0.25,
1.5, -0.25, -0.25, 0.25, 0.25,
21, 0, 0, 0, 0
RETURN
Manual de Referencia GDL de ArchiCAD
73
Capítulo 5: Formas Tridimensionales
REVOLVE
n, alpha, mask, x1, y1, s1, . . . xn, yn, sn Superficie generada por la rotación de una polilínea definida en el plano x-y alrededor del eje x. n: número de nodos de la polilínea. alpha:
ángulo de barrido en grados.
mask:
controla la existencia de las caras inferior, superior y (en el caso de alpha < 360) lateral.
s i:
status de los arcos laterales.
Restricciones de parámetros: 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 Y
n
j4 j6 j3
j5
alpha j2
2 1
74
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
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):
superficie inferior presente.
j2 (2):
superficie superior presente.
j3 (4):
superficie lateral presente en el ángulo inicial.
j4 (8):
superficie lateral presente en el ángulo final.
j5 (16):
aristas de superficie lateral visibles en ángulo inicial.
j6 (32):
aristas de superficie lateral visibles en ángulo final.
j7 (64):
aristas de la sección transversal visibles, superficie no suavizada.
Valores de status 0: arcos laterales que arrancan del nodo todos visibles. 1:
arcos laterales que arrancan del nodo se usan para mostrar el contorno.
2:
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 solución es equivalente a definir nodos adicionales; el compilador realiza el cálculo. El algoritmo de FotoRendering no cambia. Cuando utilice otros métodos de rendering, tendrá el mismo efecto que usar 0.
Ejemplos:
Manual de Referencia GDL de ArchiCAD
75
Capítulo 5: Formas Tridimensionales
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
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
revolución sin código de status 2:
el mismo resultado con código 2:
ROTY -90 REVOLVE 26, 180, 16+32, 7, 1, 0, 6.0001, 1, 1, 6, 1, 0, 5.9999, 1.0002, 1, 5.5001, 1.9998, 1, 5.5, 2, 0, 5.4999, 1.9998, 1, 5.0001, 1.0002, 1, 5, 1, 0, 4.9999, 1, 1, 4.0001, 1, 1, 4, 1, 0, 3+COS(15), 1+SIN(15), 1, 3+COS(30), 1+SIN(30), 1, 3+COS(45), 1+SIN(45), 1, 3+COS(60), 1+SIN(60), 1, 3+COS(75), 1+SIN(75), 1, 3, 2, 1, 3+COS(105), 1+SIN(105), 1, 3+COS(120), 1+SIN(120), 1, 3+COS(135), 1+SIN(135), 1, 3+COS(150), 1+SIN(150), 1, 3+COS(165), 1+SIN(165), 1, 2, 1, 0, 1.9999, 1, 0, 1, 1, 0
ROTY -90 REVOLVE 18, 180, 48, 7, 1, 0, 6, 1, 2, 5.5, 2, 2, 5, 1, 2, 4, 1, 2, 3+COS(15), 1+SIN(15), 1, 3+COS(30), 1+SIN(30), 1, 3+COS(45), 1+SIN(45), 1, 3+COS(60), 1+SIN(60), 1, 3+COS(75), 1+SIN(75), 1, 3, 2, 1, 3+COS(105), 1+SIN(105), 1, 3+COS(120), 1+SIN(120), 1, 3+COS(135), 1+SIN(135), 1, 3+COS(150), 1+SIN(150), 1, 3+COS(165), 1+SIN(165), 1, 2, 1, 2, 1, 1, 0
Manual de Referencia GDL de ArchiCAD
77
Capítulo 5: Formas Tridimensionales
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 número de nodos. Segmentos rectos conectan los nodos correspondientes a las dos polilíneas. Es el único elemento de GDL que permite superponer nodos vecinos. n: número de nodos de cada curva. mask :
controla la existencia de las caras inferior, superior y lateral y la visibilidad de las aristas de la polilíneas generatrices. El polígono lateral conecta el primer y último nodos de las curvas, si alguna de ellas no está cerrada.
u i , vi :
coordenadas de los nodos de la curva plana.
si :
status de las aristas laterales.
x i , yi , z i :
coordenadas de la curva en el espacio.
Restricción de parámetros: n>1
Z
2 j2 j6 1
n
j3 Y
n j1 X
1 2
78
j5
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
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):
la superficie inferior está presente.
j2 (2):
la superficie superior está presente (no efectivo si la superficie superior no es plana).
j3 (4):
la superficie lateral está presente (un cuadrángulo plano o dos triángulos).
j5 (16):
las aristas de la curva plana son visibles.
j6 (32):
las aristas de la curva en el espacio son visibles.
j7 (64):
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:
Manual de Referencia GDL de ArchiCAD
79
Capítulo 5: Formas Tridimensionales
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,
80
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
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
SWEEP
n, m, alpha, scale, mask, u1, v1, s1, . . . un, vn, sn, x1, y1, z1, . . . xm, ym, zm Superficie generada por una polilínea que se desplaza siguiendo la trayectoria curva de otra polilínea en el espacio. La polilínea puede ser abierta o cerrada. Puede girarse y escalarse incrementalmente en su propio plano. El plano de la polilínea sigue la trayectoria curva. La curva en el espacio tiene su inicio en el plano x-y. Si no se encuentra esta condición, la curva es movida a lo largo del eje z hasta que arranque del plano x-y. La sección 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: número de nodos de la polilínea. m:
número de nodos de la trayectoria.
alpha :
incremento de la rotación de la polilínea sobre su propio plano, desde un punto de la trayectoria hasta el siguiente.
scale :
incremento del factor de escala de la polilínea, desde un punto de la trayectoria hasta el siguiente.
mask :
controla la existencia de las superficies y aristas inferiores, superiores y laterales.
u i , vi :
coordenadas de los nodos de la polilínea de base.
si :
status de las aristas laterales.
x i , yi , z i :
coordenadas de los nodos de la trayectoria curva.
Restricciones de parámetros: n>1 m>1 z 1 < z2
Manual de Referencia GDL de ArchiCAD
81
Capítulo 5: Formas Tridimensionales
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):
la superficie inferior está presente.
j2 (2):
la superficie superior está presente.
j3 (4):
la superficie lateral está presente.
j5 (16):
las aristas inferiores son visibles.
j6 (32):
las aristas superiores son visibles.
j7 (64):
las aristas de la sección transversal son visibles, la superficie está articulada. Z j2 j6 m
2 Y j3 n X
1
j1
1 2
j5
Valores de status 0: todas las aristas laterales que arrancan del nodo son visibles. 1:
las aristas laterales que arrancan del nodo se usan para mostrar el contorno.
Ejemplos:
82
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
SWEEP 4, -0.5, 0.5, 0.5, -0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Manual de Referencia GDL de ArchiCAD
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12, 7.5, 1, -0.25, 0, -0.25, 0, 0.25, 0, 0.25, 0,
1+2+4+16+32,
0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6
83
Capítulo 5: Formas Tridimensionales
TUBE
n, m, mask, u1, w1, s1, ... un, wn, sn, x1, y1, z1, angle1, ... xm, ym, zm, anglem Superficie generada por una polilínea que sigue la trayectoria de una curva en el espacio sin distorsión de la sección generatriz. Las superficies de conexión interna pueden girar en el plano U-W del sistema de coordenadas instantáneo U-V-W. eje V: aproxima la tangente de la curva generatriz en el punto correspondiente, eje W:
perpendicular al eje V y apuntando hacia arriba con respecto al eje z local,
eje U:
perpendicular a los ejes V y W y formando con ellos un sistema de coordenadas Cartesianas según la regla de la mano derecha.
Si el eje V es vertical, la dirección W no está correctamente definida. El eje W en el nodo previo de la trayectoria se usa para determinar una dirección horizontal. La sección transversal del tubo, medida en medio de los segmentos de la trayectoria es siempre igual al polígono de base (u1, w1, ... un, wn). Las secciones en las uniones están situadas en el plano bisector de los segmentos de unión. El polígono de base debe estar cerrado. n: número de nodos de la polilínea. m:
número de nodos de la trayectoria.
ui, w i :
coordenadas de los nodos de la polilínea de base.
si :
status de las aristas laterales.
x i , yi , z i :
coordenadas de los nodos de la trayectoria curva. (La trayectoria comprende dos puntos más que el número de secciones generadas. El primer y el último puntos determinan la posición el espacio de la primera y la última superficies que pertenecen al TUBE. Estos puntos sólo juegan un papel determinando la normal de las superficies, no son nodos actuales de la trayectoria. La orientación de las superficies es la misma que la de las superficies
84
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
que se generarían en los nodos más cercanos a los dos extremos, si el TUBE continuara en las direcciones indicadas por ellos. anglei
ángulo de rotación de la sección 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):
la superficie inferior está presente.
j2 (2):
la superficie final está presente.
j5 (16):
las aristas inferiores (en x1, y1, z1) son visibles.
j6 (32):
las aristas finales (en xm, ym, zm) son visibles.
j7 (64):
las aristas de la sección transversal (excepto las líneas de conexión de caras coplanares) son visibles, la superficie está articulada.
Restricciones de parámetros: n>2 m>3 W m m-1 V W 1
2 alpha
U U
Valores de status 0: los bordes laterales que empiezan en el nodo son todos visibles. 1:
Manual de Referencia GDL de ArchiCAD
los bordes laterales que empiezan en el nodo se utilizan para mostrar el contorno.
85
Capítulo 5: Formas Tridimensionales
Ejemplos:
TUBE
86
4, 2.0, 0.0, 0.0, 2.0,
18, 0.0, 0.0, 0.4, 0.4,
16+32, 0, 0, 0, 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,
0, 0, 0, 0, 4 4 4 4 4 4, 4 4 4 4 4 8, 8, 8,
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,
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),
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
TUBE
Manual de Referencia GDL de ArchiCAD
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, 1, 901, 801, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0
87
Capítulo 5: Formas Tridimensionales
TUBE
88
3, 0, -0.5, 0,
7, 0, 0, 0.5,
0, 0, 0,
16+32,
0.2, 0, 0, 3, 3, 3, 3,
0, 0, 0, 0, 4, 4, 3.8,
-0.2, 0, 5, 5, 5, 0, -0.2,
0, 0, 0, 0, 0, 0, 0
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
TUBEA
n, m, mask, u1, w1, s1, ... un, wn, sn, x1, y1, z1, ... xm, ym, zm
2
n
1
m
m-1
1
bisector plane
TUBEA es una superficie generada por una polilínea que se desplaza a lo largo de una trayectoria curva en el espacio, con un algoritmo diferente a la declaración TUBE. La sección generada en cada unión de la trayectoria es igual al polígono de base (u1, w1, ... un, wn) y está situada en el plano bisector de las proyecciones de los segmentos de unión sobre el plano x-y local. El polígono de base puede estar abierto: en este caso las secciones se generarán de manera que alcancen el plano x-y local, como en el caso de las superficies REVOLVE. La sección transversal del tubo, medida en el medio de los segmentos de trayectoria puede ser distinta al polígono de base. Ejemplos:
Manual de Referencia GDL de ArchiCAD
89
Capítulo 5: Formas Tridimensionales
TUBEA 9, -1, 0, 0.8, 0.8, 0.8001, 3.2, 3.2, 4, 5, 0, 0, 4, 9, 9, 14, 20,
90
7, 1, 2, 2, 1.6, 1.6, 1.6, 2, 2, 1, -7, 0, 0, 3, 10, 10, 15,
1 + 2 + 16 + 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 2.25, 2.25, 2.25, 5
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
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):
aristas del 1er límite (x1, y1, z1) visibles.
j4 (8):
aristas del 2º límite (x2, y2, z2) visibles.
j5 (16):
aristas del 3er límite (x3, y3, z3) visibles.
j6 (32):
aristas del 4º límite (x4, y4, z4) son visibles.
j7 (64):
aristas de superficie visibles, la superficie suavizada.
Restricciones de parámetros: n, m > 1 Z
Y
1(n)
4(m)
2(n)
3(m) X
Manual de Referencia GDL de ArchiCAD
91
Capítulo 5: Formas Tridimensionales
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
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
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,
Manual de Referencia GDL de ArchiCAD
4+8+16+32+64, 0, 0, 0, 0, 0, 0, 0, -2, -1.5, -1.2, -1, -1.2, -1.5, -2,
0, -0.5, -1, -1.5, -1.8, -2, 0, -0.5, -1, -1.5, -1.8, -2
93
Capítulo 5: Formas Tridimensionales
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:
el número de nodos en el polígono de base
m:
el número de nodos sobre las crestas
h:
la altura de la cubierta (puede ser negativa)
xi, yi, zi :
las coordenadas de los nodos
si :
similar a la declaración 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):
la superficie de base está presente
j3 (4):
las superficies laterales están presentes
j5 (16):
las aristas de la base y laterales son visibles
j6 (32):
las aristas superiores son visibles
j7 (64):
las aristas superiores son visibles, la superficie superior no está suavizada
Restricciones de parámetros: n > 3, m > 0 m-1
m n
1 2
dz plane
94
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
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,
Manual de Referencia GDL de ArchiCAD
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
Capítulo 5: Formas Tridimensionales
5.3 Elementos para la Visualización LIGHT
red, green, blue, shadow, radius, alpha, beta, angfalloff, dist1, dist2, distfalloff Fuente luminosa que irradia luz coloreada [red, green, blue] desde el origen local a lo largo del eje x. La luz se proyecta paralelamente al eje x desde una fuente puntual o circular. Tiene una intensidad máxima dentro del tronco de cono de ángulo alpha y disminuye hasta cero en el tronco de cono de ángulo beta. Esta disminución se controla por el parámetro angfalloff. (Cero da a la luz un contorno nítido, valores mayores indican transiciones suaves.) El efecto de la luz está limitado a lo largo del eje definido por los valores de corte dist1 y dist2. El parámetro distfalloff controla la caída de intensidad en función de la distancia. (Un valor cero significa una intensidad constante, valores mayores se usan para caídas más fuertes.) Las transformaciones GDL afectan solo al punto inicial y a la dirección de la luz. El parámetro shadow controla si la luz arroja sombras. 0: no hay sombras arrojadas hay sombras arrojadas
beta alpha
radius
1:
intensity dist1 dist2
96
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
Restricciones de parámetros: alpha < beta < 80° Combinaciones de parámetros 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 parámetros shadow y angfalloff se ignoran, suponiéndoles 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
Diálogo de edición de Lámparas en ArchiCAD:
Manual de Referencia GDL de ArchiCAD
97
Capítulo 5: Formas Tridimensionales
Parte del correspondiente script GDL: IF C = 0 GOTO 10 LIGHT G/100*D, G/100*E, G/100*F, ... 10:
!RGB
r = 0, alpha > 0, beta > 0
r > 0, alpha = 0, beta > 0
r > 0, alpha = 0, beta = 0 Tipos de luz usando distintos parámetros alpha y beta
98
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
PICTURE
expression, a, b, mask Elemento de imagen para FotoRendering. La expresión indica un nombre de archivo, una expresión numérica 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 imágenes pueden guardarse en objetos de biblioteca sólo al guardar el proyecto o elementos seleccionados conteniendo imágenes como Objetos ArchiCAD. La figura del fichero de referencia encaja en un rectángulo tratado como un RECT en cualquier otro método de proyección 3D.
mask = alpha + distortion alpha : control del canal alpha 0 : no se usa canal alpha, la figura es un rectángulo 1 : se usa canal alpha, partes de la figura pueden ser transparentes. distortion :
control de distorsión 0 : encaja la imagen en un rectángulo dado 2 : encaja la imagen en el centro de un rectángulo usando las proporciones naturales de la imagen 4 : llena el rectángulo con la imagen en posición central usando sus proporciones naturales
Manual de Referencia GDL de ArchiCAD
99
Capítulo 5: Formas Tridimensionales
5.4 Elemento de Texto TEXT
d, 0, expression Una representación 3D en el estilo definido del valor de un texto o expresión de tipo numérico. Ver DEFINE STYLE y SET STYLE en el capítulo "Atributos". d: grosor de los caracteres en metros En esta versión de GDL, el segundo parámetro es siempre cero. Ejemplos:
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"
Observación: Para compatibilidad con el script GDL 2D, la altura de los caracteres se interpreta siempre en mm-s en las declaraciones DEFINE STYLE.
100
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
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 información para ejecutar un corte 3D proviene de la información de conexión El indexado empieza con 1, y cada nuevo cuerpo o una declaración BASE reinicia el índice a 1. Para cada arista, se almacenan los índices de polígonos adyacentes (máximo 2). La orientación de las aristas se define por los dos vértices determinados como primero y segundo. Los polígonos son listados de aristas con una orientación incluyendo los índices de las aristas. Estos números pueden tener un prefijo negativo. Esto significa que la arista dada se usa en dirección opuesta. Los polígonos 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 polígonos. En el caso de cuerpos cerrados, la orientación de los polígonos es correcta si la arista tiene distintos prefijos en la lista de aristas de los dos polígonos Los vectores normales a los polígonos se almacenan separadamente. En el caso de cuerpos cerrados, señalan del interior al exterior del cuerpo. La orientación de la lista de aristas es antihoraria (matemáticamente positiva), si se mira desde el exterior. La orientación de los huecos es opuesta al polígono relativo. Los vectores normales a un cuerpo abierto deben señalar a la misma cara del cuerpo. Para determinar el interior y el exterior de los cuerpos, estos deben estar cerrados. Una definición simple para un cuerpo cerrado es la siguiente: cada arista tiene exactamente dos polígonos adyacentes. La eficiencia de los algoritmos de corte, líneas ocultas o rendering es menor para cuerpos abiertos. Cada elemento tridimensional compuesto con parámetros regulares es un cuerpo cerrado en la estructura de datos interna 3D. La búsqueda de la línea de contorno se basa en los bits de status de las aristas y sus polígonos adyacentes. Esto de define automáticamente para elementos curvos compuestos, pero depende del usuario especificar correctamente estos bits en el caso de elementos primitivos.
Manual de Referencia GDL de ArchiCAD
101
Capítulo 5: Formas Tridimensionales
En el caso de una definición 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 búsqueda de polígonos adyacentes por las aristas se hace durante la ejecución de la declaración de cuerpo. La numeración de VERTs, EDGEs, VECTs y PGONs es relativa a la última declaración de BASE (implícita o explícita. Los valores de status se usan para almacenar información especial sobre las primitivas. Cada bit individual tiene habitualmente un significado independiente en el status, pero hay algunas excepciones. Valores dados pueden añadirse juntos. Otras combinaciones de bits que las dadas a continuación están estrictamente reservadas para uso interno. El valor por omisión 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 Extensión de la declaración VERT incluyendo una definición de coordenadas de textura. Puede usarse en lugar de la declaración VERT se precisan coordenadas de textura definidas por el usuario en lugar de las texturas automáticas de ArchiCAD (ver la declaración COOR). x, y, z: coordenadas de un nodo u, v: coordenadas de textura del nodo (u, v) deben especificarse coordenadas para cada vértice del cuerpo actual y cada vértice debe tener sólo una coordenada de textura. Si las declaraciones VERT y TEVE se mezclan en una definición de cuerpo, las coordenadas (u,v) no son efectivas. Nota: las coordenadas de textura (u, v) sólo son efectivas en FotoRenderings, pero no para mapeado de tramas vectoriales.
102
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
VECT
x, y, z Definición del vector normal a un polígono por 3 coordenadas. En el caso de definición simplificada (PGON.ivect␣ =␣ 0) estas declaraciones pueden omitirse.
EDGE
vert1, vert2, pgon1, pgon2, status Definición 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 polígonos 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
última arista de una superficie curvada (solamente junto con 2).
16
la arista es un segmento de arco.
32
primer segmento de un arco (solamente junto con 16).
64
último segmento de un arco (solamente junto con 16).
Manual de Referencia GDL de ArchiCAD
103
Capítulo 5: Formas Tridimensionales
PGON
n, ivect, status, edge1, edge2, . . . edgen n:
número de aristas en la lista de aristas.
ivect :
índice del vector normal. Debe referirse a un VECT previamente definido. Si ivect = 0, ArchiCAD calculará el vector normal durante el análisis.
Los índices edge1, edge2, . . . edgen deben referirse a EDGEs previamente definidos. Un valor 0 significa el inicio o el final de una definición de hueco. Un índice negativo cambia la dirección de un vector normal o arista almacenados a la opuesta en el polígono. (El vector o la arista almacenados no cambian; otros polígonos pueden referirse a ellos usando la orientación original con un índice positivo.) Bits de status: 1 polígono invisible. 2
polígono en una superficie curva.
16
polígono cóncavo.
32
polígono con hueco(s).
64
hueco(s) convexo (s) (sólo junto con 32).
Bits de status reservados para uso futuro: 4 primer polígono de una superficie curva (sólo junto con 2). 8
último polígono de una superficie curva (sólo junto con 2).
Si el valor de status es negativo, ArchiCAD calculará el status del polígono (tal como polígono cóncavo o con hueco). n = 0 se permite para usos especiales.
104
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
PIPG
filename, a, b, mask, n, ivect, status, edge1, edge2, . . . edgen Definición de polígono de imagen. Los primeros 4 parámetros 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 proyección. Modos de envolver: 1:
plano
2:
cúbico
3:
cilíndrico
4:
esférico
5:
igual que el mapeado cilíndrico, pero al renderizar las superficies superior e inferior tendrán un mapeado circular.
Tipos de proyección: 256 : el relleno empieza siempre en el origen del sistema de coordenadas local 1024 : proyección cuadrática de la textura (recomendado) 2048 : proyección lineal de la textura basada en la distancia promedio 4096 : proyección lineal de la textura basada en la triangulación normal Los 3 valores anteriores sólo son efectivos con definiciones propias de coordenadas de texturas (ver la declaración TEVE). vert1 :
índice de un VERT, representando el origen del sistema de coordenadas local.
vert2, vert3, vert4 : índices de VERTs definiendo los 3 ejes coordenados. Use un signo menos antes de los índices VERT si los usa sólo para definir un sistema de coordenadas local. Manual de Referencia GDL de ArchiCAD
105
Capítulo 5: Formas Tridimensionales
Ejemplo de ejes de textura propios:
Z
Y X'
Z'
X Y'
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
106
"Face brick",
"Face brick",
15, 15, 15, 15 !#1 !#2 !#3 !#4 -3,
-4
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
BODY
status Compone un cuerpo definido con las siguientes primitivas. Bits de status: 1 cuerpo cerrado. 2
cuerpo que incluye superficie(s) curva(s).
4
modelo de superficie: cuando el cuerpo está cortado, no se originan superficies en el plano de corte.
32
el cuerpo siempre arroja sombras, independientemente del algoritmo de preselección automática.
64
el cuerpo nunca arroja sombras.
Si ni 32 ni 64 están definidos, se efectúa la preselección automática de sombras. Ver SHADOW en el Capítulo "Atributos". Si el valor de status es negativo, ArchiCAD calculará el status del cuerpo. Ejemplo: Z
5
6
8
7 1
4 Y 3
2 X
Manual de Referencia GDL de ArchiCAD
107
Capítulo 5: Formas Tridimensionales
1: Descripción Completa
108
VERT VERT VERT VERT VERT VERT VERT VERT EDGE EDGE EDGE EDGE EDGE EDGE EDGE EDGE EDGE EDGE EDGE EDGE VECT VECT VECT PGON
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,
PGON
4,
3,
0,
5,
PGON
4, -2,
0,
1, 10, -5, -9
PGON
4,
1,
0,
2, 11, -6, -10
PGON
4,
2,
0,
3, 12, -7, -11
PGON
4, -1,
0,
4,
BODY
1
6,
7,
0 0 0 0 0 0 0 0 0 0 0 0
-2 8
9, -8, -12
!#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
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
2: (no hay referencia directa a los polígonos 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
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,
PGON
4,
PGON
4, 0,
PGON
4,
0,
-1,
2, 11, -6, -10
PGON
4,
0,
-1,
3, 12, -7, -11
PGON
4, 0,
BODY
-1
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,
5,
6,
0 0 0 0 0 0 0 0 0 0 0 0 -2
7,
8
1, 10, -5, -9
4,
9, -8, -12
!#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
BASE Pone a cero el contador para los elementos geométricos del nivel bajo declaraciones (VERT, VECT, EDGE y PGON). Utilizado implícitamente después de cada definición de elemento compuesto.
Manual de Referencia GDL de ArchiCAD
109
Capítulo 5: Formas Tridimensionales
5.6 Uso de los Datos 3D Binarios BINARY
mode [, section] Comando especial para incluir objetos binarios en un macro GDL. Un conjunto de vértices, vectores, aristas, polígonos, cuerpos y materiales se lee desde una sección especial del archivo del Objeto de Biblioteca. Estos se transforman de acuerdo con las transformaciones actuales y se combinan en el modelo 3D. Los datos contenidos en la sección binaria no es editable para el usuario. mode: 0:
Las definiciones de PEN y MATERIAL son efectivas.
1:
Las definiciones de PEN y MATERIAL no tienen efecto. El elemento de Biblioteca se mostrará con los colores almacenados y las definiciones de material. La apariencia de Superficie es constante.
2:
se utilizan las definiciones de PEN y MATERIAL almacenadas, los materiales no definidos se reemplazan por las definiciones actuales.
3:
se utilizan las definiciones almacenadas de PEN y MATERIAL , los materiales no definidos se reemplazan por los atributos almacenados por omisión.
sección:
índice de la parte binaria del 1 al 16.
Utilizando 0 para la sección de índice, puede referirse simultáneamente a todas las partes binarias existentes. Sólo las secciones con un valor de índice de 1 pueden guardarse desde dentro de GDL, los comandos BINARY sin los argumentos de sección también se refieren a éste. Los otras secciones indexadas se utilizarán 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 convertirán a formato binario. Es posible guardar un Elemento de Biblioteca en formato binario a través del comando Abrir Item de Biblioteca del menú Archivo.
110
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
Puede guardar desde la ventana de edición principal del Objeto de Biblioteca a través del comando Guardar como… Si el recuadro Guardar en formato binario está marcado en el diálogo Guardar como… el texto GDL del Objeto de Biblioteca actual será sustituido por una descripción binaria. Truco: Guardar el modelo 3D después de una operación de corte 3D permite guardar el modelo seccionado. De este modo podrá crear formas truncadas. Puede guardar su Objeto de Biblioteca en formato binario sólo si el modelo 3D ya ha sido generado, es decir, cuando haya visto la vista 3D al menos una vez. Sustituyendo la descripción GDL del Objeto de Biblioteca por una descripción binaria puede reducirse considerablemente el tiempo de conversión a 3D del objeto. Por otra parte, la descripción 3D binaria no es paramétrica y ocupa mayor espacio en disco que un algoritmo programado en GDL.
Manual de Referencia GDL de ArchiCAD
111
Capítulo 5: Formas Tridimensionales
5.7 Corte en 3D CUTPLANE
[x, y, z [, side]] [stmt1 stmt2 ... stmtn]
CUTEND CUTPLANE
o angle [stmt1 stmt2 ... stmtn]
CUTEND Crea un plano de corte y borra partes cortadas de formas incluidas. CUTPLANE puede contener diferentes números de parámetros. CUTPLANE tiene: Sin Parámetros: plano x-y 1 parámetro: el plano de corte cruza el eje x, el ángulo está entre el plano de corte 2 parámetros: el plano de corte es paralelo al eje z, cruza el eje x y el y sobre lo valores dados 3 parámetros: cruza ejes x, y , z sobre los valores dados 4 parámetros: los tres primeros parámetros anteriores side = 0:
borra partes encima del plano de corte (por omisión)
side = 1:
borra partes bajo el plano de corte; en caso de x-y, x-z, y-z, las partes en la dirección negativa del eje.
El corte (sin el parámetro side ) borra partes encima del plano de corte. Si los tres primeros parámetros 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 dirección positiva del tercer eje se borrarán. Puede añadirse cualquier número y clase de comandos entre CUTPLANE y CUTEND. Los macros pueden contener CUTPLANEs. Los parámetros 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
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
definir el CUTPLANE como sea necesario, después 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 sólo a las formas del macro, incluso si CUTEND se pierde. Si se llama un macro entre CUTPLANE y CUTEND, las formas del macro se cortarán. 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 borrarán todas las formas. Por eso siempre recibe un mensaje de aviso en referencia a los CUTENDs perdidos. - Si la transformación utilizada solamente para colocar el CUTPLANE no se borra, puede pensar que CUTPLANE está en una posición 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
2, -2, -2, 2, -1, 2, 1
2, 2, -2, -2, -1, 2,
4 4 4 4 0 4
113
Capítulo 5: Formas Tridimensionales
114
CUTPLANE SPHERE 2 CUTEND
CUTPLANE 1, 1, 0, 1 SPHERE 2 CUTEND
CUTPLANE 1.8, 1.8, 1.8 SPHERE 2 CUTEND
CUTPLANE 1.8, 1.8, 1.8, 1 SPHERE 2 CUTEND
CUTPLANE 60 BRICK 2, 2, 2 CUTEND
CUTPLANE -120 BRICK 2, 2, 2 CUTEND
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
CUTPOLY
n, x1, y1, . . . xn, yn [, x, y, z] [stmt1 stmt2 ... stmtn]
CUTEND Similar al comando CUTPLANE, los parámetros de CUTPOLY se refieren al sistema de coordenadas actual. El polígono debe ser convexo y no puede tener auto-intersección. La dirección de corte es el eje Z o puede especificarse un vector opcional (x, y, z) Los parámetros definen un "tubo" infinito: el polígono es la sección transversal del tubo, la dirección de corte es la dirección del tubo. Se elimina todo lo que está en el interior del tubo. Ejemplos:
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
Manual de Referencia GDL de ArchiCAD
115
Capítulo 5: Formas Tridimensionales
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
116
4, D, D, A-D, A-D
4, D, D, A-D, A-D
4, D, D, A-D, A-D A,
A
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
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
Manual de Referencia GDL de ArchiCAD
0, 1
117
Capítulo 5: Formas Tridimensionales
CUTPOLYA
n, status, d, x1, y1, mask1, . . . xn, yn, maskn [, x, y, z] [stmt1 stmt2 ... stmtn]
CUTEND Similar a la definición CUTPOLY, pero con la posibilidad de controlar la visibilidad de las aristas de los polígonos generados. La forma de corte es un tubo semi-infinito con la sección transversal poligonal definida. El final de la forma de corte no puede caer dentro del cuerpo. Z
j3
j2
Y i j1 i+1 X
status: 1: uso de los atributos propios del cuerpo para las aristas y polígonos generados 2: los polígonos de corte generados se tratarán como polígonos normales d:
distancia entre el origen local y el extremo del tubo semi-infinito d = 0 significa cortar con un tubo infinito
maski:
similar a la declaración PRISM_ maski = j1 + 2 * j2 + 4 * j3
118
Manual de Referencia GDL de ArchiCAD
Capítulo 5: Formas Tridimensionales
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
Manual de Referencia GDL de ArchiCAD
119
Capítulo 5: Formas Tridimensionales
CUTSHAPE
d [stmt1 stmt2 ... stmtn]
CUTEND 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.
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
Manual de Referencia GDL de ArchiCAD
Capítulo 6: Formas Bidimensionales
6
Formas Bidimensionales
Manual de Referencia GDL de ArchiCAD
121
Capítulo 6: Formas Bidimensionales
6.1 Elementos de Dibujo HOTSPOT2
x, y
Y
(x, y)
X
LINE2
x1, y1, x2, y2 (x2, y2) Y
(x1, y1)
X
RECT2
x1, y1, x2, y2 (x2, y2) Y
(x1, y1)
X
122
Manual de Referencia GDL de ArchiCAD
Capítulo 6: Formas Bidimensionales
POLY2
n, framefill, x1, y1, .... xn, yn Polígono abierto o cerrado con n bordes. Restricciones de parámetros: n>2 Y
n
2
1
X
framefill = j1 + 2*j2 + 4*j3 donde j1, j2, j3 pueden ser 0 or 1.
POLY2_
j1 (1):
sólo contorno
j2 (2):
sólo relleno
j3 (4):
cerrar un polígono abierto.
n, framefill, x1, y1, mask1, .... xn, yn, maskn Similar a la declaración normal POLY2, pero se puede omitir cualquiera de los bordes. Si maski = 0, se omitirá el borde que arranca del vértice (xi, yi) . Si maski = 1, se mostrará el vértice. maski = 1 se usa para definir huecos directamente. Ver PRISM_ para más detalles. Restricciones de parámetros: n>2 Y
n
1
2
X Manual de Referencia GDL de ArchiCAD
123
Capítulo 6: Formas Bidimensionales
framefill = j1 + 2*j2 + 4*j3 donde j1, j2, j3 pueden ser 0 or 1. j1 (1):
sólo contorno
j2 (2):
sólo relleno
j3 (4):
cerrar un polígono abierto.
maski :
0: el siguiente segmento es invisible 1: el siguiente segmento es visible -1: fin de un contorno
POLY2_A
n, framefill, fillpen, x1, y1, mask1, ..., xn, yn, maskn
POLY2_B
n, framefill, fillpen, fillbkgdpen, x1, y1, mask1, ..., xn, yn, maskn Versiones avanzadas del comando POLY2_ , con parámetros adicionales: la pluma y el relleno. El resto de parámetros son similares a los descritos en la declaración 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 están en grados.
be
Y
ta
r
alpha (x, y)
X
124
Manual de Referencia GDL de ArchiCAD
Capítulo 6: Formas Bidimensionales
CIRCLE2
x, y, r Círculo con centro en (x, y), y radio r.
r Y (x, y)
X
SPLINE2
n, status, x1, y1, angle1,…, xn, yn, anglen Restricción: n≥2 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 (x i ,yi )
1 Y
n
X
Valores de status: 0: por defecto 1:
spline cerrada, el primer y último nodos de la spline estarán conectados, cerrando así la spline
2:
spline autosuavizada, el valor del parámetro 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.
Manual de Referencia GDL de ArchiCAD
125
Capítulo 6: Formas Bidimensionales
Ejemplos:
SPLINE2 0, 0, 1, 2, 1.5, 1.5, 3, 4, 4, 3,
5, 2, 60, 30, -30, 45, -45
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
126
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
Manual de Referencia GDL de ArchiCAD
Capítulo 6: Formas Bidimensionales
SPLINE2_A
n, status, x1, y1, angle1, lenPrev1, lenNext1, ... xn, yn, anglen, lenPrevn, lenNextn
len
Ne
xti
Extensión de la declaración SPLINE2 (spline de Bézier), usada principalmente en generación automática de scripts 2D a causa de su complejidad (para más detalles, vea el Manual de Referencia de ArchiCAD).
len
Pr
ev
i
angle i
Y
i (x i ,yi )
1
n
X
Códigos de status: 0:
Por defecto
1:
spline cerrada, el primer y último nodos de la spline estarán conectados, cerrando así la spline
2:
spline autosuavizada, los valores de los parámetros 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.
xi, yi:
coordenadas de los puntos de control
lenPrevi, lenNexti: longitudes de las tangentes para los puntos de control anteriores y posteriores anglei:
Manual de Referencia GDL de ArchiCAD
ángulo de la dirección de la tangente
127
Capítulo 6: Formas Bidimensionales
Ejemplo:
SPLINE2A 0.0, 0.7, 1.9, 1.9, 1.8, 2.4, 3.5, 4.7, 6.0,
PICTURE2
9, 0.0, 1.5, 0.8, 1.8, 3.1, 4.1, 3.3, 3.7, 4.6,
2, 0.0, 15, 72, 100, 85, 352, 338, 36, 0,
0.0, 0.9, 0.8, 0.3, 0.4, 0.4, 0.4, 0.4, 0.0,
0.0, 1.0, 0.3, 0.4, 0.5, 0.4, 0.4, 0.8, 0.0
expression, a, b, mask Puede usarse en 2D de manera similar al comando PICTURE en 3D. Una expresión indica un nombre de archivo, una expresión numérica, 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 imágenes solamente pueden guardarse en objetos al guardar el proyecto o elementos seleccionados conteniendo imágenes como Objetos de ArchiCAD.
128
Manual de Referencia GDL de ArchiCAD
Capítulo 6: Formas Bidimensionales
6.2 Elemento de Texto TEXT2
x, y, expression El valor de un cálculo numérico o de texto, escrito en el estilo definido en las coordenadas x, y. Y
ArchiCAD (x,y)
X
Manual de Referencia GDL de ArchiCAD
129
Capítulo 6: Formas Bidimensionales
6.3 Uso de Datos Binarios 2D FRAGMENT2
fragment_index, use_current_attributes_flag El fragmento con el índice dado se inserta en la Vista Completa 2D con las transformaciones actuales. use_current_attributes_flag : 0: El fragmento aparece con el color, tipo de línea y tipo de trama definido para él 1:
FRAGMENT2
Los ajustes del script se usan en lugar del color, tipo de línea y tipo de trama del fragmento
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 línea y tipo de trama definido para él 1:
130
Los ajustes del script se usan en lugar del color, tipo de línea y tipo de trama del fragmento
Manual de Referencia GDL de ArchiCAD
Capítulo 6: Formas Bidimensionales
6.4 Proyecciones 3D en 2D PROJECT2
projcode, angle, method Crea una proyección del script 3D en el mismo elemento de biblioteca y añade las líneas generadas la símbolo paramétrico 2D. projcode: 3: Vista superior 4: Vista lateral 6: Axonometría frontal 7: Axonometría isométrica 8: Axonometría monométrica 9: Axonometría dimétrica -3: -6: -7: -8: -9: angle:
Vista Inferior Frontal inferior Isométrica inferior Monométrica inferior Dimétrica inferior
ángulo de azimut definido en el diálogo de proyección 3D.
method: 1: 2:
Manual de Referencia GDL de ArchiCAD
alámbrico opaco analítico
131
Capítulo 6: Formas Bidimensionales
6.5 Dibujos en la Lista Estos comandos sólo son efectivos cuando se crea una lista de elementos. Cuando un objeto de biblioteca es un objeto especial de propiedades y está de alguna manera asociado a un objeto (Objeto, Puerta, Ventana o Lámpara) situado en planta, incluir los siguientes comandos en su script 2D se referirá a las partes 2D y 3D de dicho objeto. Esta es una referencia virtual que se resuelve durante el proceso de listado, usando el script 2D o 3D del elemento listado. DRAWING2 Crea un dibujo del objeto asociado con el objeto de propiedades que contiene este comando. DRAWING3
projcode, angle, method Similar a PROJECT2, crea una proyección del script 3D del objeto asociado con el objeto de propiedades que contiene este comando. Todos los parámetros son similares a los de PROJECT2.
132
Manual de Referencia GDL de ArchiCAD
Capítulo 7: Códigos de status adicionales para polilíneas planas
7
Códigos de status adicionales para polilíneas planas
Manual de Referencia GDL de ArchiCAD
133
Capítulo 7: Códigos de status adicionales para polilíneas planas
Las polilíneas planas con códigos de mask/status en los nodos son la base de muchos elementos en GDL: POLY_ maski PRISM_
maski
CPRISM_
maski
BPRISM_
maski
FPRISM_
maski
SPRISM_
maski
CROOF_
maski
EXTRUDE
si
PYRAMID
si
REVOLVE
si
SWEEP
si
TUBE
si
TUBEA
si
POLY2_
maski
POLY2_A
maski
POLY2_B
maski
La resolución de los arcos se controla mediante directivas descritas en el capítulo "Atributos". En el caso de la declaración POLY2_ , si la resolución es mayor que 8, se generan arcos reales, si no todos los arcos generados estarán segmentados. Los siguientes códigos adicionales de mask/status le permiten crear segmentos y arcos en la polilínea usando coacciones especiales. Se refieren al siguiente segmento o arco. Los códigos de mask/status originales sólo son efectivos donde están especificados (se incluye "+s" después del código adicional).
134
Manual de Referencia GDL de ArchiCAD
Capítulo 7: Códigos de status adicionales para polilíneas planas
Parte previa de la polilínea: se definen posición actual y tangente.
x,y
0
Segmento por extremo absoluto x, y, s, donde 0 < s < 100
dy dx
100
Segmento por extremo relativo dx, dy, 100+s, donde 0 < s < 100
Manual de Referencia GDL de ArchiCAD
135
Capítulo 7: Códigos de status adicionales para polilíneas planas
l a
200
Segmento por longitud y dirección l, a, 200+s, donde 0 < s < 100
l
300
Segmento tangente por longitud l, 0, 300+s, donde 0 < s < 100
(x1,y1)
600
Definir punto inicial x1, y1, 600,
136
Manual de Referencia GDL de ArchiCAD
Capítulo 7: Códigos de status adicionales para polilíneas planas
700
Cerrar polilínea 0, 0, 700,
ey ex
800
Definir tangente ex, ey, 800,
(x0,y0)
900
Definir centro x0, y0, 900,
Manual de Referencia GDL de ArchiCAD
137
Capítulo 7: Códigos de status adicionales para polilíneas planas
(x,y)
1000
Arco tangente a un extremo x, y, 1000+s, donde 0 < s < 100
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
Manual de Referencia GDL de ArchiCAD
Capítulo 7: Códigos de status adicionales para polilíneas planas
4000
a
Arco usando centro y ángulo 0, a, 4000+s, donde 0 < s < 100
r
4000
Círculo completo usando centro y radio r, 360, 4000+s, donde 0 < s < 100 En este caso, el status s se refiere a todo el círculo Todos los valores de ángulos están en grados. Las coordenadas omitidas marcadas con 0 (para códigos 300, 700, 4000) pueden tener cualquier valor.
Manual de Referencia GDL de ArchiCAD
139
Capítulo 7: Códigos de status adicionales para polilíneas planas
Ejemplos:
EXTRUDE 0, 0, 7, 0, 7, 3, 6, 3, 5, 3, 1, 90, 2, 1, 1,
3, 3, 2,
1, 2.5, 0,-180, 1, 5, -1, 0, 2, 225, -1, 0, -1, 0, 0, 0, 1, 1, 0.5,360, 3.5,1.5, 1, 360,
140
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, ! círculo completo usando centro ! y radio 900, ! definir centro 4001 ! círculo completo usando centro ! y radio
Manual de Referencia GDL de ArchiCAD
Capítulo 7: Códigos de status adicionales para polilíneas planas
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
Manual de Referencia GDL de ArchiCAD
0,
3,
141
Capítulo 7: Códigos de status adicionales para polilíneas planas
EXTRUDE 0, 0, 3, 360, 2, 360,
3, 1, 900, 4001, 4000
ROTY REVOLVE 7, 1, 6, 1, 5.5, 2, 5, 1, 4, 1, 3, 1, 0, 180,
-90 9, 180, 16+32, 0, 0, 0, 0, 0, 900, ! definir centro 4001, ! arco usando punto inicial, ! centro y ángulo 0, 0
2, 1,
142
1, 1,
1,
3,
1+2+4+16+32,
Manual de Referencia GDL de ArchiCAD
Capítulo 8: Atributos
8
Atributos
Manual de Referencia GDL de ArchiCAD
143
Capítulo 8: Atributos
8.1 Directivas Estas directivas influyen en la interpretación 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 suavización de los elementos cilíndricos 3D (CIRCLE, ARC, CYLIND, SPHERE, ELLIPS, CONE, ARMC, ARME, ELBOW, REVOLVE) y de los arcos en polilíneas 2D que usan bordes curvos (ver el capítulo "Códigos de Status Adicionales para Polilíneas Planas).
Directivas Usadas en Scripts 3D y 2D [LET]
varnam = n Asignación de valor. La directiva LET es opcional. La variable almacenará el valor evaluado de n.
RADIUS
rmin, rmax Define la suavización de elementos cilíndricos y arcos en polilíneas. Un círculo de radio r se representa: si r < rmin, por un hexágono, si r > rmax, por un polígono de 36 caras, si rmin < r < rmax, por un polígono de (6+30*(r–rmin)/(rmax– rmin)) caras. La conversión del arco es proporcional a ésto. Tras una declaración RADIUS, las declaraciones previas RESOL y TOLER pierden su efecto. Restricciones de parámetros: rmin < rmax
144
Manual de Referencia GDL de ArchiCAD
Capítulo 8: Atributos
Ejemplos: RADIUS 1.1, 1.15 CYLIND 3.0, 1.0
RESOL
RADIUS 0.9, 1.15 CYLIND 3.0, 1.0
n Define la suavización de los elementos cilíndricos. Los círculos se convierten en polígonos regulares de n caras. La conversión del arco es proporcional a ésto. Tras una declaración RESOL, las declaraciones previas RADIUS y TOLER pierden su efecto. Restricción de parámetros: n>3 Por omisión: RESOL 36
Ejemplos: n>3 RESOL 5 CYLIND 3.0, 1.0
TOLER
RESOL 36 CYLIND 3.0, 1.0
d Define la suavización de los elementos cilíndricos. El error de aproximación del arco (p.e. la mayor distancia entre un arco teórico y la cuerda generada) será menor que d. Tras una declaración TOLER, las declaraciones previas RADIUS y RESOL pierden su efecto.
Manual de Referencia GDL de ArchiCAD
145
Capítulo 8: Atributos
Ejemplos: TOLER 0.1 CYLIND 3.0, 1.0
PEN
TOLER 0.01 CYLIND 3.0, 1.0
n Define el color actual. Restricción de parámetros: 0 < n < 99 Por omisión: PEN 1 si no hay declaración de PEN en el script. (Para ítems de biblioteca, ArchiCAD lee valores por omisión desde la definición del ítem de biblioteca. Si el script se refiere a un índice inexistente, PEN 1 será la definición por omisión.)
[SET] STYLE [SET] STYLE
name_string index Todos los textos generados después representarán este estilo hasta la próxima declaración 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 análisis GDL y también puede ser modificada desde el programa. El uso del índice en lugar del nombre del estilo se recomienda sólo con un uso previo de la función IND descrita más adelante. Por omisión: SET STYLE 0
(tipo de la aplicación, tamaño 5 mm, inserción= 1, normal) si no hay declaración de SET STYLE en el script. Ver también la función IND en el Capítulo 10.
146
Manual de Referencia GDL de ArchiCAD
Capítulo 8: Atributos
Directivas utilizadas sólo en scripts 3D MODEL MODEL MODEL
WIRE SURFACE SOLID Ajusta el modo de representación en el script actual. MODEL WIRE : alámbrico solamente, sin superficies ni volúmenes. Los objetos son transparentes. MODEL␣ SURFACE, MODEL␣ SOLID : La generación de las superficies de sección se basa en la relación de las superficies límite, por lo que ambos métodos generan la misma estructura de datos internos 3D. Los objetos son opacos. La única diferencia puede verse después de haber cortado una parte del cuerpo MODEL SURFACE : el interior de los cuerpos será visible, MODEL SOLID : pueden aparecer nuevas superficies. Por omisión: MODEL SOLID
Para ilustrar los tres métodos de modelado, tomemos tres bloques: MODEL BLOCK ADDY MODEL BLOCK ADDY MODEL BLOCK
WIRE 3,2,1 4 SURFACE 3,2,1 4 SOLID 3,2,1
Tras cortarlos con un plano:
Manual de Referencia GDL de ArchiCAD
147
Capítulo 8: Atributos
[SET] MATERIAL [SET] MATERIAL
name_string index Todas las superficies generadas después representarán este material hasta la próxima declaración 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 análisis GDL y también puede ser modificada desde el programa. El uso del índice en lugar del nombre del material se recomienda sólo con un uso previo de la función IND. El índice 0 tiene un significado especial: las superficies usan el color de la pluma actual y tienen una apariencia mate. Por omisión: MATERIAL 0
si no hay declaración 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 también la descripción de la función IND en el Apéndice. SHADOW
keyword1[, keyword2] Controla la proyección de sombras de los elementos en el FotoRendering y en las sombras vectoriales. keyword1: ON, AUTO u OFF keyword2:
ON u OFF
ON:
todos los elementos subsiguientes arrojarán sombras en todas las circunstancias.
OFF:
todos los elementos subsiguientes no arrojarán sombras en todas las circunstancias.
AUTO:
la proyección de sombras se determinará automáticamente.
Si define SHADOW OFF para partes ocultas, ahorrará espacio y tiempo de proceso. Definir SHADOW ON asegura que incluso los menores detalles arrojarán sombras. El segundo control opcional controla la aparición de sombras en superficies.
148
Manual de Referencia GDL de ArchiCAD
Capítulo 8: Atributos
SHADOW keyword1, OFF desactiva las sombras vectoriales sobre las superficies siguientes. SHADOW keyword1, ON reactiva las sombras vectoriales. Por omisión: SHADOW AUTO
SHADOW BRICK ADDX SHADOW BRICK ADDX SHADOW BRICK
OFF 1, 2 ON 1, 2 OFF 1,
1,
1
1,
2
1,
3
Directivas usadas sólo en scripts 2D [SET] FILL [SET] FILL
name_string index Todos los polígonos 2D generados después serán representados con esta trama hasta la siguiente declaración SET FILL. El índice es una constante referida a una pila de tramas en la estructura de datos interna de ArchiCAD. Esta pila se modifica durante el análisis GDL y también puede ser modificada desde el programa. El uso del índice en lugar del nombre de la trama se recomienda sólo con un uso previo de la función IND. Por omisión: SET FILL 0
trama vacía, si no hay declaración de SET FILL en el script. Ver también la descripción de la función IND en el Apéndice. Manual de Referencia GDL de ArchiCAD
149
Capítulo 8: Atributos
[SET] LINE_TYPE [SET] LINE_TYPE
name_string index Todas las líneas 2D posteriores mostrarán este tipo de línea (líneas, arcos y polilíneas) hasta la próxima declaración SET LINE_TYPE. El índice es una constante referida a una pila de tipos de línea en la estructura de datos interna de ArchiCAD. Esta pila se modifica durante el análisis GDL y también puede ser modificada desde el programa. El uso del índice en lugar del nombre del tipo de línea se recomienda sólo con un uso previo de la función IND. Por omisión: SET LINE_TYPE 1
línea continua, si no hay declaración SET LINE_TYPE en el script. Ver también la descripción de la función IND en el Apéndice.
8.2 Definición de Atributos Los atributos en ArchiCAD pueden crearse usando los diálogos de material, trama y tipo de línea. Estos atributos de planta pueden ser referenciados desde cualquier script GDL Los atributos también pueden ser definidos en scripts GDL. Hay dos casos distintos: 1. Definición de atributos en el script MASTER_GDL. El script MASTER_GDL se interpreta cuando la biblioteca que lo contiene se carga en memoria. Los atributos MASTER_GDL se combinan con los de la planta; los atributos de ArchiCAD con los mismos nombres no son sustituidos. Una vez cargado el MASTER_GDL, los atributos definidos en él pueden referenciarse desde cualquier script. 2. Definición de atributos en objetos de biblioteca. Los materiales y texturas definidas de este modo pueden ser usados en el script y en sus scripts secundarios. Tramas y tipos de línea definidos y usados en el script 2D tienen el mismo comportamiento que si estuvieran definidos en el script MASTER_GDL. El comando Comprobar Scripts GDL en la ventana de script le ayuda a verificar si los parámetros de material, trama, tipo de línea o estilo son correctos. Cuando alguno de estos parámetros es diferente en la interpretación 3D, pero no existe un mensaje de error, es posible que uno o más parámetros sean incorrectos. El comando Comprobar Scripts GDL le ayuda a encontrar estos parámetros con mensajes detallados.
150
Manual de Referencia GDL de ArchiCAD
Capítulo 8: Atributos
Definición 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:
definición general, n=16
El significado de los parámetros y sus límites se muestra en los siguientes ejemplos. 1:
definición simple, n=9
Los parámetros 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 parámetros son constantes o calculados a partir del color. 2: mate 3: metálico 4: plástico 5: vidrio 6: incandescente 7: constante 10 : definición general, parámetro de trama n=17 11 : definición simple, parámetro de trama n=10 12-17 : tipos de materiales predefinidos con parámetro de trama, n=4 20: definición general con trama, índice de color de la trama e índice de los parámetros de textura, n=19 21: definición simple con trama, índice de color de la trama e índice de los parámetros de textura, n=12 22-27: tipos de material predefinido con trama, índice de color de trama e índice de los parámetros de textura, n=6 Manual de Referencia GDL de ArchiCAD
151
Capítulo 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
Manual de Referencia GDL de ArchiCAD
Capítulo 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 número de pluma es cero, las tramas vectoriales se generarán con la pluma activa. - El valor cero para el índice de textura le permite definir materiales sin trama vectorial o textura.
Manual de Referencia GDL de ArchiCAD
153
Capítulo 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 sólo en el script en que se definió y en los scripts sucesivos a este. name: nombre de la textura filename:
nombre de la imagen
x:
anchura lógica de la textura
y:
altura lógica de la textura
mask:
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 perturbación normal de la superficie. El mapeado Bump utiliza el canal Alfa para determinar la amplitud de la normal de la superficie.
j3:
el canal alfa cambia el color difuso de la textura
j4:
el canal alfa cambia el color especular de la textura
j5:
el canal alfa cambia el color ambiente de la textura
j6:
el canal alfa cambia el color de superficie de la textura
Controles de conexión (j7… j9): Si el valor es cero, se selecciona el modo normal:
y x 154
Manual de Referencia GDL de ArchiCAD
Capítulo 8: Atributos
j7:
la textura cambiará aleatoriamente.
y
x j8:
simetría en dirección X
y x j9:
simetría en dirección Y
y x angle: ángulo de rotación desde la orientación natural. Ejemplo: DEFINE TEXTURE "Brick" "Brick.PICT", 1.35, 0.3, 256+128, 35.0
Manual de Referencia GDL de ArchiCAD
155
Capítulo 8: Atributos
Definición 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.
len .... im leni2 m line parts
Y leni1 diri offsetyi
freq
i
offsetx i X
name :
freq
i
nombre de la trama.
pat1, pat2, pat3, pat4, pat5, pat6, pat7, pat8 : definición del patrón, 8 números entre 0 y 255 representando valores binarios. Define el aspecto bitmap de la trama.
y
spa *y
cing
angle
156
*x
cing
spa
x
Manual de Referencia GDL de ArchiCAD
Capítulo 8: Atributos
spacing :
factor de espaciado entre líneas - define un factor de escala global para toda la trama. Todos los valores serán multiplicados por este número en ambas direcciones x e y.
angle :
ángulo de rotación global en grados
n:
número de líneas de trama
freqi :
frecuencia de la línea (la distancia entre dos líneas es spacing␣ *␣ freqi)
diri :
ángulo de dirección de la línea en grados
offsetxi, offsetyi :
desplazamiento de la línea desde el origen
m i,
número de partes de línea
lenij
longitud de las partes de línea (la longitud real es spacing␣ *␣ lenij). Las partes de línea son segmentos y espacios unos a continuación de otros. La primera parte de línea es un segmento, una longitud cero significa un punto.
La trama bitmap está definida sólo por los parámetros pat1...pat8 y se usa en ArchiCAD cuando se ajusta Opciones / Opciones de Visualización / Tramas de Polígonos / Tramas Bitmap. Para definirla, escoja la unidad de trama más pequeña, y represéntela como puntos y huecos usando una cuadrícula de 8x8. Los 8 parámetros de trama son representaciones decimales de los valores binarios en las líneas de la cuadrícula (un punto es 1, un hueco es 0). La trama vectorial (Opciones / Opciones de Visualización / Tramas de Polígonos / Tramas Vectoriales) queda definida en la segunda parte de la definición de trama como una colección de líneas discontinuas repetidas con una frecuencia dada (freqi). Cada línea de la colección se describe por su dirección (diri), su desplazamiento desde el origen (offsetxi, offsetyi) y la definición de línea discontinua que contiene segmentos y espacios con una longitud dada (lenij) a continuación de cada uno. Nota: Sólo pueden definirse en GDL tramas simples, no es posible definir tramas de símbolos.
Manual de Referencia GDL de ArchiCAD
157
Capítulo 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,
Trama Bitmap: Trama:
Valor binario:
pat1 pat2 pat3 pat4 pat5 pat6 pat7 pat8
01010101 11111111 10001000 11111111 00100010 11111111 10001000 11111111
= = = = = = = =
85 255 136 255 34 255 136 255
1.0, 1.0, 3.0,
4, 2,
Vista:
• • • • •••••••• • • •••••••• • • •••••••• • • ••••••••
Trama vectorial:
158
Manual de Referencia GDL de ArchiCAD
Capítulo 8: Atributos
Definición de Trama Avanzada 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
len .... im leni2 m line parts
Y leni1 diri offsetyi
freq
doffset i
i
offsetx i X
freq
i
doffset i
Declaración DEFINE FILL extendida. Parámetros adicionales:
y
cing
spa y*y
angle
x*x
cing
spa
x
spacingx :
factor de espaciado en la dirección x
spacingy :
factor de espaciado en la dirección y Estos dos parámetros definen un factor de escala global para toda la trama. Todos los valores en la dirección x serán multiplicados por spacingx y todos los valores en la dirección y serán multiplicados por spacingy.
Manual de Referencia GDL de ArchiCAD
159
Capítulo 8: Atributos
doffseti:
el desplazamiento del principio de la siguiente línea de trama similar, medido a lo largo de la dirección de la línea. Cada línea 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.
Ejemplo: DEFINE FILLA "TEST"
8, 8,
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
142, 128, 232, 142, 128, 232, 2, 2,
Trama bitmap: Trama:
Valor binario:
pat1 pat2 pat3 pat4 pat5 pat6 pat7 pat8
00001000 10001110 10000000 11101000 00001000 10001110 10000000 11101000
= = = = = = = =
8 142 128 232 8 142 128 232
1, 1,
1, 3
Vista: . •••
• • ••• • • • ••• • ••• •
Trama vectorial:
160
Manual de Referencia GDL de ArchiCAD
Capítulo 8: Atributos
Definición de tipos de líneas DEFINE LINE_TYPE
name spacing, n, len1, . . . lenn Cualquier script GDL puede incluir definiciones de tipos de línea previas a la primera referencia a dicho tipo de línea. El tipo de línea definido de este modo puede usarse solamente en el script donde fue definido y en sus scripts secundarios. name : nombre del tipo de línea. spacing :
factor de espaciado
n:
número de partes de línea
leni :
longitud de las partes de línea (la longitud real es spacing␣ *␣ leni). Las partes de línea son segmentos y espacios unos a continuación de otros. La primera parte de línea es un segmento, una longitud cero significa un punto.
Nota: En GDL sólo pueden definirse tipos de líneas simples, es decir, las que consisten en segmentos y espacios, no hay posibilidad de definir líneas de símbolos. Ejemplo: DEFINE LINE_TYPE "line - - ." 1, 6, 0.005, 0.002, 0.001, 0.002, 0.0, 0.002
Manual de Referencia GDL de ArchiCAD
161
Capítulo 8: Atributos
Definición 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 :
altura de los caracteres en mm.
anchor :
código del punto de posición en el texto
1
2
3
4
5
6
7
8
9
facecode :
slant :
162
combinación de los siguientes valores: 0
normal
1
negrita
2
cursiva
4
subrayada
8
hueca
16
sombra
ángulo en grados (solamente para tipos PLOTMAKER y PLOTTER)
Manual de Referencia GDL de ArchiCAD
Capítulo 9: Scripts No Geométricos
9
Scripts No Geométricos
Manual de Referencia GDL de ArchiCAD
163
Capítulo 9: Scripts No Geométricos
9.1 El Script de Propiedades Los elementos de Biblioteca tienen una ventana de GDL reservada al script de Propiedades. Este script le permite asignar propiedades al elemento, dependiendo de parámetros y, mediante una directiva, definir su posición en el listado de componentes final. Utilizando algunos comandos, es posible definir en el script componentes y descripciones locales, características familiares en las ventanas de Propiedades de versiones anteriores de ArchiCAD. También pueden referenciarse descripciones y componentes desde bases de datos externas. La longitud del código no puede exceder de 32 caracteres. En el script de Propiedades, también puede utilizar cualquier comando GDL que no genere una forma. DESCRIPTOR
name [,code, keycode] Definición de descripción local. Los scripts pueden incluir cualquier número de DESCRIPTORs. name : puede extenderse a más de una línea. Las nuevas líneas pueden definirse por el carácter '\n' y los tabuladores por '\t'. Añadiendo '\' al final de una línea le permite continuar la secuencia en la línea siguiente sin añadir una nueva línea. Dentro de la secuencia, si el carácter '\' es doble (\\), perderá su función de control y significará simplemente '\'. La longitud máxima del texto (incluyendo caracteres de nueva línea) es de 255 caracteres: los caracteres adicionales serán cortados por el compilador. Si necesita un texto más largo, use varios DESCRIPTORs.
REF DESCRIPTOR
code :
texto, define un código para la descripción
keycode :
texto, referencia a una clave en una base de datos externa. La clave se asignará a la descripción.
code [, keycode] Referencia por código y código llave a una descripción en una base de datos externa.
COMPONENT
name, quantity, unit [, prop_with, code, keycode, unitcode] Definición de componentes locales. Los scripts pueden incluir cualquier número de COMPONENTs.
164
Manual de Referencia GDL de ArchiCAD
Capítulo 9: Scripts No Geométricos
name :
nombre del componente (max. 128 caracteres)
quantity :
cantidad, una expresión numérica
unit :
el texto usado para la descripción de unidad
prop_with :
un código entre 1-6. Al hacer un listado, la cantidad de componentes definida anteriormente será automáticamente multiplicada por un valor calculado para el elemento listado
1: elemento 2: longitud 3: superficie A 4: superficie B 5: superficie 6: volumen code :
texto, define un código para el componente
keycode :
texto, hace referencia a una clave en una base de datos externa La clave se asignará al componente.
unitcode :
REF COMPONENT
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.
code [, keycode [, num_expr]] Referencia por código y código 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 expresión numérica opcional especificada aquí.
BINARYPROP Referencia a datos de propiedades binarios (componentes y descripciones) definidos en el elemento de biblioteca en la sección de Componentes/Descripciones. SURFACE3D ( ) VOLUME3D ( ) Estas funciones le dan la superficie y el volumen de la forma 3D del elemento de biblioteca.
Manual de Referencia GDL de ArchiCAD
165
Capítulo 9: Scripts No Geométricos
Atención: Si coloca dos o más formas en la misma posición con los mismos parámetros, estas funciones le darán la suma total de las superficies y volúmenes de todas las formas. POSITION
position_keyword Efectivo sólo en el Listado de Componentes. Cambia el tipo sólo del elemento al que están asociados los componentes y descripciones siguientes. Si no hay este tipo de directivas en el script de Propiedades, los componentes y descripciones serán 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 válida para todos los DESCRIPTORs y COMPONENTs siguientes hasta que se asigna la siguiente directiva. Un script puede incluir cualquier número 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
Manual de Referencia GDL de ArchiCAD
Capítulo 9: Scripts No Geométricos
9.2 El Script de Lista de Valores Las Listas de Valores son conjuntos de posibles valores numéricos o de texto. Pueden ser aplicados a los parámetros como se define en el script lista de valores del elemento de biblioteca o en el script MASTER_GDL. El tipo de parámetro ha de tener una lista de valores de cualquier tipo simple. El compilador comprueba la compatibilidad del tipo. El script de lista de valores será interpretado cada vez que cambie un parámetro de tipo de lista de valores, y los posibles valores definidos en el script aparecerán en un menú desplegable. El comando de definición de lista es: VALUES
name, val1 [, val2, ..., valn] name:
nombre de los parámetros
vali :
valores posibles
Manual de Referencia GDL de ArchiCAD
167
Capítulo 9: Scripts No Geométricos
168
Manual de Referencia GDL de ArchiCAD
Capítulo10: Expresiones y Funciones
10
Expresiones y Funciones
Manual de Referencia GDL de ArchiCAD
169
Capítulo10: Expresiones y Funciones
Todos los parámetros de las formas GDL pueden ser resultado de cálculos. 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 dirección la mitad del tamaño del cubo, para tener el origen en el centro del cubo en lugar de en la esquina inferior izquierda. De cara a definir estos cálculos el GDL ofrece un amplio número de herramientas matemáticas: expresiones, operadores y funciones.
10.1 Expresiones Se pueden escribir expresiones compuestas en las declaraciones GDL, que pueden ser numéricas o de texto. En los operadores hay constantes, variables, parámetros o llamadas a función y cualquier combinación de ellos. Se usan pares de paréntesis curvos (( )) (precedencia 1) para anular la precedencia por defecto de los operadores. Las variables de tipo simple pueden ser valores numéricos y de texto, incluso en el mismo script, y pueden usarse en expresiones numéricas 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 línea o estilo. Las variables con valor de texto serán tratadas como tal y pueden ser usadas en cualquier lugar donde se requieran valores de texto. Si más adelante en el script a la misma variable se le da un valor numérico, será utilizable sólo en expresiones numéricas hasta que se le dé otra vez valor de texto. En el proceso de precompilación se comprueba el tipo de las expresiones. El GDL soporta matrices de una y dos dimensiones. Las variables devienen matrices después de una declaración, en la cual se especifican sus dimensiones máximas: DIM
var1 [dim_1], var2 [dim_1][dim_2], ... Después de la palabra clave DIM puede haber cualquier número de nombres de variables separados por comas. var1 yvar2 son los nombres de matriz, los números entre paréntesis representan las dimensiones de la matriz (constantes numéricas). Las expresiones variables no pueden ser usadas como dimensiones. Los parámetros de los elementos de biblioteca también pueden ser matrices. Sus dimensiones se especifican en el diálogo del elemento. Las matrices de parámetros no tienen que declararse en el script. Al
170
Manual de Referencia GDL de ArchiCAD
Capítulo10: Expresiones y Funciones
referenciar un elemento de biblioteca usando una declaración CALL, el parámetro 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, sólo después de la declaración: 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 expresión numérica o de texto, pueden ser valores numéricos o de texto dados. Los índices empiezan con 1, y cualquier expresión numérica puede ser usada como índice. Los nombres de matriz no pueden ser usados después en el mismo script como nombres de variables simples. Si el valor de un índice actual llega a ser mayor que la dimensión declarada o que la dimensión de parámetros, se obtendrá un mensaje de error. Ejemplos de expresiones numéricas: 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
Ejemplos de expresiones de texto: "Constante de texto" name + STR ("%m", i) + "." + ext string_param <> "Mode 1"
Ejemplos de expresiones usando matrices de valores: DIM tab [5], tab2 [3][4] tab [1] + tab [2] tab2 [2][3] + A PRINT tab
Manual de Referencia GDL de ArchiCAD
! declaración
171
Capítulo10: Expresiones y Funciones
10.2 Operadores Los operadores siguientes se enumeran en orden de precedencia decreciente. La evaluación de una expresión empieza con el operador de precedencia más alta y, si no, de izquierda a derecha.
Operadores aritméticos ^ (o **)
Potencia de
precedencia 2
*
Multiplicación
precedencia 3
/
División
precedencia 3
Módulo (parte restante)
precedencia 3
MOD (or %)
X MOD Y = X - Y * INT (X/Y) +
Suma
precedencia 4
-
Resta
precedencia 4
Note: + (suma) también puede aplicarse a expresiones de texto: el resultado es la concatenación de textos.
Operadores Relacionales =
Igual
precedencia 5
<
Menor que
precedencia 5
>
Mayor que
precedencia 5
<=
Menor o igual que
precedencia 5
>=
Mayor o igual que
<> (o #)
No igual a
precedencia 5 precedencia 5
Los operadores relacionales pueden utilizarse entre dos expresiones texto cualquiera. El resultado es un número 1 o 0. Esta función es sensible a mayúsculas o minúsculas.
Operadores Booleanos AND (o&)
172
y lógico
precedencia 6
OR (o |)
o lógico inclusivo
precedencia 7
EXOR (o @)
o lógico exclusivo
precedencia 8
Manual de Referencia GDL de ArchiCAD
Capítulo10: Expresiones y Funciones
El GDL usa solamente números de coma flotante, mientras que los operadores Booleanos trabajan con números reales. Así 0.0 significa “falso”, mientras que cualquier otro número significa “verdadero”. El valor de una expresión lógica también es real, p.e. 1.0 para “verdadero” y 0.0 para “falso”.
10.3 Funciones Funciones Aritméticas ABS (x)
Devuelve el valor absoluto de x.
INT (x)
Devuelve la parte entera de x. (e.g. INT(1.23) = 1, INT(-1.23) = -2).
FRA (x)
Devuelve la parte fraccional de x. (e.g. FRA(1.23) = 0.23, FRA(-1.23) = 0.77).
SGN (x)
Devuelve +1.0 si x es positivo, -1.0 si negativo, de otro modo 0.0.
SQR (x)
Devuelve la raíz cuadrada de x.
Funciones Circulares Estas funciones usan grados para sus argumentos (COS, SIN, TAN) y para devolver valores (ACS, ASN, ATN). ACS (x)
Devuelve el arco coseno de x. (-1.0 < x < 1.0; 0° < ACS(x) < 180°).
ASN (x)
Devuelve el arco seno de x. (-1.0 < x < 1.0; -90° < ASN(x) < 90°).
ATN (x)
Devuelve el arco tangente de x. (-90° < ATN(x) < 90°).
COS (x)
Devuelve el coseno de x.
SIN (x) TAN (x) PI
Devuelve el seno de x. Devuelve la tangente de x. Devuelve la constante de Ludolph. (π = 3.1415926…).
Manual de Referencia GDL de ArchiCAD
173
Capítulo10: Expresiones y Funciones
Funciones Trascendentes EXP (x)
Devuelve la x a potencia de e. (e = 2.7182818).
LGT (x)
Devuelve el logaritmo decimal de x.
LOG (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). (Negación lógica).
Funciones Estadísticas MIN (x1,x2, . . . xn)
Devuelve el menor de un numero ilimitado de argumentos.
MAX (x1,x2, . . . xn)
Devuelve el mayor de un numero ilimitado de argumentos.
RND (x)
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 función crea una secuencia de texto desde el valor actual de la expresión numérica. El máximo número de caracteres numéricos en el texto es len, mientras que frac representa el número 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)
! 4.50 ! 2.34 ! 10.55
En el segundo caso, el formatstring puede ser una variable o una constante. Si el formato está vacío, se interpreta como metros, con una precisión de tres decimales (ceros enteros). El formatstring puede ser como el que se muestra a continuación:
174
Manual de Referencia GDL de ArchiCAD
Capítulo10: Expresiones y Funciones
%[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 más
space en lugar de un signo + flags (for m, mm, cm, df, di, sqm, sqcm, sqf, sqi, dd, gr, rad): '#'
no mostrar ceros enteros
'0'
mostrar 0 pulgadas
flags (for ffi, fdi, fi): field_width: decimal entero no asignado el mínimo número de caracteres a generar precision: decimal entero no asignado el número de fraccionales a generar conv_spec (especificador de conversión): e
- formato exponencial (metros)
m
- metros
mm
- milímetros
cm
- centímetros
ffi
- pies y pulgadas
fdi
- pies y pulgadas decimales
df
- pies decimales
fi
- pulgadas fraccionales
di
- pulgadas decimales
para áreas: sqm
- m2
sqcm - cm2 sqmm - mm2
Manual de Referencia GDL de ArchiCAD
sqf
- pies2
sqi
- pulgadas2
175
Capítulo10: Expresiones y Funciones
para ángulos : dd
- grados decimales
dms
- grados, minutos, segundos
gr
- grados
rad
- radianes
surv
- unidad topográfica
Ejemplos: h = 23 nr = 0.345678 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2
0, 0, 0, 0, 0, 0,
h, STR ("%m", nr) h-1, STR ("%#10.2m", nr) h-2, STR ("%.4cm", nr) h-3, STR ("%12.4cm", nr) h-4, STR ("%.6mm", nr) h-5, STR ("%+15e", nr)
!0.346 ! 35 ! 34.5678 ! 34.5678 !345.678000 !+3.456780e-01
TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2
0, 0, 0, 0, 0, 0,
h-6, STR ("%ffi", nr) h-7, STR ("%0.16ffi", nr) h-8, STR ("% .3fdi", nr) h-9, STR ("% -10.4df", nr) h-10, STR ("%0.64fi", nr) h-11, STR ("%+12.4di", nr)
!1'-2" !1'-1 5/8" ! 1'-1.609" ! 1.1341' !13 39/64" ! +13.6094"
TEXT2 TEXT2 TEXT2 TEXT2 TEXT2
0, 0, 0, 0, 0,
h-12, h-13, h-14, h-15, h-16,
! 346 !+3,456.78 ! 345,678.00 !3.72 ! 535.80
STR STR STR STR STR
("%#.3sqm", nr) ("%+sqcm", nr) ("% .2sqmm", nr) ("%-12sqf", nr) ("%10sqi", nr)
STR STR STR STR STR STR
("%+10.3dd", alpha) ! +88.657° ("%.1dms", alpha) !88°39' ("%.2dms", alpha) !88°39'25" ("%10.4gr", alpha) ! 98.5078G ("%rad", alpha) !1.55R ("%.2surv", alpha) !N 1°20'35" E
alpha = 88.657 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2
176
0, 0, 0, 0, 0, 0,
h-17, h-18, h-19, h-20, h-21, h-22,
Manual de Referencia GDL de ArchiCAD
Capítulo10: Expresiones y Funciones
SPLIT
(texto, format, var1 [, var2, ..., varn]) Divide el parámetro de texto según el formato en uno o más partes numéricas o de texto. El proceso de división se detiene cuando se encuentra la primera parte no coincidente. Devuelve el número de valores leídos con éxito. texto :
el texto a dividir
format :
cualquier combinación 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 numérico.
vari :
los nombres de variables para guardar las partes de texto divididas
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
Capítulo10: Expresiones y Funciones
STRLEN
(string_exp) Devuelve la longitud de la secuencia de texto (el número de caracteres)
STRSTR
(string_exp1, string_exp2) Devuelve la posición de la primera aparición del segundo texto en el primer texto. Si el primer texto no contiene al segundo, la función devuelve 0.
STRSUB
(string_exp, begpos, numchars) Devuelve una subsecuencia del parámetro de texto que empieza en la posición dada por el parámetro 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)
178
! Flowers ! .PICT
Manual de Referencia GDL de ArchiCAD
Capítulo10: Expresiones y Funciones
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. También pueden usarse llamadas de petición para comunicar con extensiones GDL. Hay dos tipos de funciones especiales: peticiones y la función 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 más detalles en el Apéndice: Funciones Especiales
Manual de Referencia GDL de ArchiCAD
179
Capítulo10: Expresiones y Funciones
180
Manual de Referencia GDL de ArchiCAD
Capítulo 11: Declaraciones de Control
11
Declaraciones de Control
Manual de Referencia GDL de ArchiCAD
181
Capítulo 11: Declaraciones de Control
11.1 Declaraciones de control de flujo FOR
varnam = initial_value TO end_value [ STEP step_value ] Primera declaración de un bucle FOR. Si la palabra clave STEP y el step_value no se encuentran, se asumen con valor uno. Una variable global no está permitida como una variable de control de bucle. Ejemplo: FOR I=1 TO 10 STEP 2 PRINT I NEXT I
NEXT
varnam Última declaración de un bucle FOR. La variable de bucle varía desde el initial_value hasta el end_value en incrementos (o decrementos) del step_value en cada ejecución 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 declaración siguiendo la declaración 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 declaración NEXT después de una declaración FOR. Está permitido salir del bucle con una declaración GOTO (o IF ... GOTO) y volver a él, pero no está permitido entrar un bucle saltándose la declaración FOR.
182
Manual de Referencia GDL de ArchiCAD
Capítulo 11: Declaraciones de Control
DO
WHILE
[stmt1 stmt2 ... stmtn] condición Las declaraciones entre las palabras claves se ejecutan mientras la condición es verdadera. La condición se comprueba después de cada ejecución de las declaraciones.
WHILE
condición DO [stmt1 stmt2 ... stmtn]
ENDWHILE Las declaraciones entre las palabras claves se ejecutan mientras la condición es verdadera. La condición se comprueba antes de cada ejecución de las declaraciones. REPEAT
UNTIL
[stmt1 stmt2 ... stmtn] condición Las declaraciones entre las palabras claves se ejecutan hasta que la condición llega a ser verdadera. La condición se comprueba después de cada ejecución de las declaraciones.
Manual de Referencia GDL de ArchiCAD
183
Capítulo 11: Declaraciones de Control
Ejemplo: Las 4 secuencias siguientes de comandos GDL son equivalentes: ! 1st FOR i = 1 TO 5 STEP 1 BRICK 0.5, 0.5, 0.1 ADDZ 0.3 NEXT i ! 2nd i = 1 DO BRICK 0.5, 0.5, 0.1 ADDZ 0.3 i = i + 1 WHILE i <= 5 ! 3rd i = 1 WHILE i <= 5 DO BRICK 0.5, 0.5, 0.1 ADDZ 0.3 i = i + 1 ENDWHILE ! 4th i = 1 REPEAT BRICK 0.5, 0.5, 0.1 ADDZ 0.3 i = i + 1 UNTIL i > 5
IF IF IF
condición THEN label condición GOTO label condición GOSUB label Declaración de salto condicional. Si el valor de la condición es 0 , el comando no tiene efecto, de otro modo, la ejecución continúa en la etiqueta. Ejemplos: IF IF IF
184
A THEN 28 I > J GOTO 200+I*J I > 0 GOSUB 9000
Manual de Referencia GDL de ArchiCAD
Capítulo 11: Declaraciones de Control
IF
condición THEN declaración [ELSE declaración] or
IF
condición THEN [stmt1 stmt2 ... stmtn]
[ELSE stmtn+1 stmtn2 ... stmtn+m] ENDIF Si sólo escribe un comando después de palabras clave THEN y/o ELSE en la misma fila, no es necesario ENDIF. Un comando después de THEN o ELSE en la misma fila significa un ENDIF definido. Si existe una nueva fila después de THEN, los comandos sucesivos (todos ellos después de la palabra clave ELSE o ENDIF) sólo se ejecutarán si la expresión en la condición es verdadera (diferente de cero). De otra forma, los comandos que sigan a ELSE se eliminarán. Si la palabra clave ELSE no existe, los comandos después de ENDIF serán 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
Capítulo 11: Declaraciones de Control
GOTO
label Declaración de salto incondicional. El programa ejecuta una rama de la declaración 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 capítulo "Elementos Sintácticos Básicos".
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 interrupción en el script GDL. El analizador (debugger) GDL se detendrá en este comando si el valor del parámetro (una expresión numérica) es verdadero (1) y está activa la opción Activar Interrupciones en el analizador. En el modo de ejecución "normal", el intérprete GDL simplemente pasa sobre este comando.
186
Manual de Referencia GDL de ArchiCAD
Capítulo 11: Declaraciones de Control
11.2 Manipulación del Buffer de Parámetros El buffer de parámetros es una estructura de datos interna que puede utilizarse si algunos valores (coordenadas, por ejemplo) cambian según una regla definida que puede ser descrita utilizando una expresión matemática, si desea almacenar los valores actuales de sus variables, o en algunos casos más. El buffer de parámetros es una cadena infinitamente larga en donde puede almacenar valores numéricos utilizando el comando PUT. El comando PUT almacena los valores dados al final del buffer. Estos valores pueden utilizarse después (comandos GET y USE) en el mismo orden consecutivo en el que se entraron (de forma que el primer valor guardado será el primero que se utilice). Un comando GET(n) o USE(n) es equivalente a n valores separados por comas. Pueden utilizarse en cualquier parámetro GDL en donde se necesiten n valores.
PUT
NSP = NSP+1
GET
NSP = NSP-1
USE
PUT
expression [ , expression ] . . . Almacena los valores dados en el orden dado en buffer de parámetros interno.
GET
(n) Usa los siguientes n valores del buffer de parámetros interno y los olvida.
Manual de Referencia GDL de ArchiCAD
187
Capítulo 11: Declaraciones de Control
USE
(n) Usa los siguientes n valores del buffer de parámetros interno sin borrarlos. Las siguientes funciones USE y GET pueden usar la misma secuencia de parámetros.
NSP Devuelve el número de parámetros almacenados en el buffer. Ejemplo de uso del buffer de parámetros: 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
Manual de Referencia GDL de ArchiCAD
Capítulo 11: Declaraciones de Control
La descripción 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
Manual de Referencia GDL de ArchiCAD
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
189
Capítulo 11: Declaraciones de Control
11.3 Objetos Macro Aunque los objetos 3D que pueda necesitar pueden siempre descomponerse en elementos complejos o primitivos, a veces es deseable definir estos elementos complejos especialmente para ciertas aplicaciones. Estos elementos propios se llaman MACROs. CALL
macro_name_string [,parameter_list]
CALL
macro_name_string PARAMETERS [name1=value1,… namen=valuen] Los nombres de macro no deben ser más largos de 31 caracteres. Los nombres macro pueden ser constantes de texto, variables de texto o parámetros. No puede utilizar operaciones de texto como un nombre macro con llamadas a macro. ¡Atención! Si se usan variables o parámetros de texto como nombres de macro, la macro llamada no se incluirá en el proyecto de archivo aunque esté activa la opción "Incluir Todos los Objetos de Bibliotecas Cargadas". El nombre de macro debe ser colocado entre comillas (",',`,´,”,’,“,‘), a no ser que coincida con las definiciones de los identificadores, p.e. empieza con una letra o con los caracteres '_' o '~' y sólo contiene letras, números y los caracteres '_' y '~' . En otro caso, las comillas utilizadas en la declaración CALL deben ser las mismas al principio y al final y deben ser diferentes de cualquier carácter del nombre de macro. Un nombre de macro, por sí mismo, puede utilizarse también como comando, sin la palabra clave CALL:
macro_name
[parameter_list]
macro_name
PARAMETERS [name1=value1,… namen=valuen] El primer tipo de llamada a macro puede utilizarse con textos GDL simples así como con ítems de biblioteca, con la condición de que su lista de parámetros contenga sólo parámetros de una letra (A…Z). Esta forma de llamadas a macro puede utilizarse para compatibilidad con versiones anteriores, pero le recomendamos el segundo tipo. El significado de la lista de parámetros es el siguiente: el valor del parámetro A será el primer valor de la lista, el valor del parámetro B será el segundo valor y así sucesivamente. Si el macro (del ítem de biblioteca) no tiene un parámetro de letra única correspondiente al valor, la interpretación continuará ignorando este valor, pero recibirá un aviso del programa. No se permiten expresiones de texto con este método.
190
Manual de Referencia GDL de ArchiCAD
Capítulo 11: Declaraciones de Control
El segundo tipo sólo puede utilizarse con elementos de biblioteca con características plenas y no con archivos GDL textuales. Después de la palabra clave PARAMETERS necesita listar los nombres de parámetros 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 parámetros de tipo texto del macro llamado. Si no se puede encontrar un nombre de parámetro en la lista de parámetros en la llamada a macro, recibirá un mensaje de error. A los parámetros de la macro llamada que no estén listados en la llamada a macro se les dará su valor por omisión 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 válidas en la macro. Puede usarlos o modificarlos, pero las modificaciones tienen un efecto local solamente. No tendrán efecto en el nivel del que el macro fue llamado. Dar parámetros a una llamada a macro significa asignarlos implícitamente en el nivel del macro. Los parámetros 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 parámetro 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 parámetros modificable. Por otra parte, si no desea limitar sus nombres de parámetros de macro a letras entre A y Z, o si desea incluir textos en la lista de parámetros, su macro debe ser un ítem de biblioteca y llamado de acuerdo con el segundo tipo de sintaxis GDL.
Manual de Referencia GDL de ArchiCAD
191
Capítulo 11: Declaraciones de Control
11.4 La Declaración de Salida PRINT
expression [, expression ]. . . Escribe todos sus argumentos en un cuadro de diálogo. Los argumentos pueden ser textos o expresiones numéricas de cualquier número en cualquier secuencia, separadas por comas. Ejemplos: PRINT PRINT PRINT PRINT PRINT
"loop-variable:", I J, K-3*L "Beginning of interpretation" a * SIN (alpha) + b * COS (alpha) "Parameter values: ", "a = ", a, ", b = ", b PRINT name + STR ("%m", i) + "." + ext
192
Manual de Referencia GDL de ArchiCAD
Capítulo 11: Declaraciones de Control
11.5 Operaciones de Archivo Las siguientes palabras clave le permiten abrir archivos externos para leer/escribir y manipularlos mediante colocar/obtener valores desde/hacia scripts GDL. Este proceso implica necesariamente la utilización de extensiones especiales de ArchiCAD. Los archivos de texto pueden manejarse con la extensión TEXT GDL I/O. Las extensiones para otros tipos de archivo pueden ser desarrolladas por terceras partes. OPEN
(filter, filename, paramstring) filter :
texto, el nombre de una extensión existente
filename :
texto, el nombre del archivo
paramstring : texto, contiene los caracteres específicos de separación de la extensión operacional y el modo de abertura. Su contenido se interpreta por la extensión. Abre un archivo. Su valor de retorno es un entero positivo que identificará el archivo especificado. Este valor será el número de referencia de archivo en las instancias sucesivas. INPUT
(channel, recordID, fieldID, var1 [, var2,...]) recordID, fieldID : la posición inicial de tipo texto o numérico de la lectura, su contenido se interpreta por la extensión. El número de parámetros dados define el número de valores desde la posición inicial leída desde el archivo identificado por el valor de canal. En la lista de parámetros debe existir como mínimo un valor. Esta función coloca los valores reales en los parámetros como están ordenados. Los valores pueden ser numéricos o de texto, independientemente del tipo de parámetro definido para almacenarlos. El valor de retorno es el número de los valores leídos satisfactoriamente. Cuando se encuentra un carácter de final de archivo, es -1.
Manual de Referencia GDL de ArchiCAD
193
Capítulo 11: Declaraciones de Control
OUTPUT
channel, recordID, fieldID, expr1 [, expr2, ...] recordID, fieldID: la posición inicial de tipo texto o numérico de la lectura, su contenido se interpreta por la extensión. Escribe tantos valores en el archivo identificado por el valor de canal desde la posición dada como expresiones se hayan definido. Debe existir una expresión como mínimo. El tipo de valores es el mismo que el de las expresiones.
CLOSE
channel Cierra el archivo identificado por el valor del canal.
194
Manual de Referencia GDL de ArchiCAD
Capítulo 12: Instrucciones Especiales para Puertas y Ventanas
12
Instrucciones Especiales para Puertas y Ventanas
Manual de Referencia GDL de ArchiCAD
195
Capítulo 12: Instrucciones Especiales para Puertas y Ventanas
12.1 Reglas Generales Este capítulo trata de las diversas opciones especiales relacionadas con la creación de elementos de biblioteca tipo Puerta/Ventana Una vez insertada una puerta/ventana en un muro, la posición por defecto del sistema de coordenadas de estos elementos de biblioteca está girada de manera que el plano x-y sea vertical y el eje z se sitúe horizontalmente sobre el muro. El origen se coloca en el centro de la base de la abertura del muro, y en su cara exterior. De este modo, puertas y ventanas pueden modelarse fácilmente mediante elementos en el plano x-y. Ver las ilustraciones siguientes.
A consecuencia del comportamiento especial de estos objetos de biblioteca, el símbolo 2D se genera desde una proyección interna no accesible de otro modo a los usuarios. (una vista lateral de arriba abajo desde una dirección de 90 grados). El símbolo y la forma 3D se encajarán en el origen de la puerta/ventana por el centro (x) de la base (y) de la caja de contorno, pero no se harán ajustes a lo largo del eje z para permitir a los usuarios diseñar puertas y ventanas sobresaliendo del muro en cualquier dirección 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
Manual de Referencia GDL de ArchiCAD
Capítulo 12: Instrucciones Especiales para Puertas y Ventanas
12.2 Creación de Elementos de Biblioteca Puerta/Ventana Al crear elementos de biblioteca de tipo Puerta/Ventana, existen diversas posibilidades, presentando diferentes problemas: - Creación de puertas/ventanas rectangulares en muros rectos - Creación de puertas/ventanas no rectangulares en muros rectos - Creación de puertas/ventanas rectangulares en muros curvos - Creación de puertas/ventanas no rectangulares en muros curvos
Puertas/Ventanas Rectangulares en Muros Rectos Esta es la manera más sencilla y directa de crear puertas y ventanas. Se recomienda el uso de comandos GDL simples, como PRISM_ o RECT. Si desea que los materiales de superficie de los elementos puerta/ ventana coincidan con los del muro, la superficie inferior debe coincidir con el exterior, y la superficie superior con el interior del muro. Puede conseguir esto en los scripts usando las variables Globales G_, H_ e I_, que le dan los materiales del muro en el que se coloca la puerta/ventana. En el script 2D, las variables globales E_, F_ y A˜ pueden ser útiles pues le dan los números de pluma de contorno y relleno del muro además del número de índice del relleno del muro en que está colocada la puerta/ventana. En el caso de muros compuestos, debe usar las variables globales correspondientes. Vea el apéndice para más detalles. La Biblioteca ArchiCAD viene con un amplio conjunto de macros de puerta/ventana. Estos scripts GDL contienen elementos constructivos comunes usados por muchas puertas/ventanas en la Biblioteca ArchiCAD. Hay macros para generar marcos de uso común, paneles y muchos otros tipos de elementos puerta/ ventana. Abra algunas puertas/ventanas para ver qué tipo de macros llaman y qué tipo de elementos generan estos macros
Manual de Referencia GDL de ArchiCAD
197
Capítulo 12: Instrucciones Especiales para Puertas y Ventanas
Ejemplo:
Z
Y
X
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
Manual de Referencia GDL de ArchiCAD
Capítulo 12: Instrucciones Especiales para Puertas y Ventanas
Ventanas No-Rectangulares en Muros Rectos Al trabajar con puertas/ventanas, es importante saber que ArchiCAD siempre corta un hueco rectangular en el muro en el que coloca la puerta/ventana. El tamaño de este hueco está determinado por los parámetros A y B de la puerta/ventana. Sin embargo, cuando la puerta/ventana no tiene un alzado rectangular, no llenará por completo el hueco rectangular. Hay dos soluciones: 1. El script 3D ha de contener partes que generen las zonas que llenan el hueco entre el cuerpo de la puerta/ventana y los bordes del hueco rectangular. En este caso, hay que poner atención a la visibilidad de los bordes de estos rellenos.
Z
Y
X
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.
Manual de Referencia GDL de ArchiCAD
199
Capítulo 12: Instrucciones Especiales para Puertas y Ventanas
WALLHOLE
n, status, x1, y1, mask1, ... xn, yn, maskn [, x, y, z] n:
número de nodos del polígono
status : 1: usa los atributos propios del cuerpo para los polígonos y bordes generados 2: los polígonos de corte generados serán tratados como polígonos normales x i, yi :
coordenadas de la sección transversal del polígono
maski :
similar a la declaración CUTPOLYA maski = j1 + 2 * j2 + 4 * j3
x, y, z :
vector de dirección opcional (por defecto es el eje Z de la puerta/ventana)
z x
Z
y
j3
n Y
j2
i+1 j1
1 i
X
Este comando puede usarse en el script 3D de puertas/ventanas para cortar huecos a medida en el muro donde están colocadas. Durante la generación 3D del muro actual, el script 3D de todas sus puertas/ventanas se interpreta sin generación de modelo, para recoger los comandos WALLHOLE. Si existen, ArchiCAD cortará el muro actual usando un tubo infinito con la sección transversal poligonal y dirección definidas en el script. Puede haber cualquier número 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
Manual de Referencia GDL de ArchiCAD
Capítulo 12: Instrucciones Especiales para Puertas y Ventanas
Nota: El reveal 3D no se generará automáticamente para los huecos a medida, deberá generarlo desde el script. El hueco hecho de este modo sólo será visible en 3D, dado que los comandos WALLHOLE no tienen efecto en 2D. Se puede escribir una representación 2D si es necesario (usada con el marco desactivado en planta). Se recomienda el uso de polígonos de sección transversal convexa; el uso de polígonos cóncavos puede dar errores de corte o sombreados/renderings extraños. Los polígonos convexos pueden combinarse para obtener los cóncavos). 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
Manual de Referencia GDL de ArchiCAD
201
Capítulo 12: Instrucciones Especiales para Puertas y Ventanas
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
Manual de Referencia GDL de ArchiCAD
Capítulo 12: Instrucciones Especiales para Puertas y Ventanas
Puertas/Ventanas Rectangulares en Muros Curvos Al colocar puertas/ventanas en muros curvos, las caras del hueco cortado en el muro pueden variar de acuerdo con la siguiente figura.
El hueco en el muro de la izquierda se crea cuando ArchiCAD corta automáticamente el hueco para la puerta/ventana. En este caso las caras tienen dirección 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 consideración. 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 están muy relacionadas, dado que por encima de una determinada dimensión, el Objeto no podrá estar en el muro. Al usar puertas/ ventanas curvas, este problema no ocurre.
Manual de Referencia GDL de ArchiCAD
203
Capítulo 12: Instrucciones Especiales para Puertas y Ventanas
Ejemplo: Z
Y
X
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
11, 13, 900, 4009, 11, 11, 13, 4009, 11
10, 15, 10, 10
Manual de Referencia GDL de ArchiCAD
Capítulo 12: Instrucciones Especiales para Puertas y Ventanas
Puertas/Ventanas No Rectangulares en Muros Curvos Las reglas generales dadas para puertas/ventanas rectangulares en muros curvos se aplican también aquí. Ejemplo:
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
Manual de Referencia GDL de ArchiCAD
205
Capítulo 12: Instrucciones Especiales para Puertas y Ventanas
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
Manual de Referencia GDL de ArchiCAD
Apéndice
Apéndice A: Lista de Variables Globales B: Funciones Especiales C: GDL Guardado desde la Planta D: Palabras Clave Sólo para Vista 3D E: Palabras Clave Sólo para Símbolo 2D F: Palabras Clave para Uso 2D y 3D G: Palabras Clave para Scripts No Geométricos H: Palabras Clave Comunes I: Palabras Clave Reservadas y Caducadas J: Lista de Conversión de Antiguos Nombres de Variables Globales K: Listado Alfabético de Palabras Clave L: Extensión de Texto
Manual de Referencia GDL de ArchiCAD
207
Apéndice
A
Variables Globales
Las variables globales hacen posible guardar valores especiales del modelo. Esto le permite acceder a información geométrica acerca del entorno del macro GDL. Por ejemplo, puede acceder a los parámetros del muro cuando define una ventana que debe encajar en el muro. Las variables Globales no se apilan durante las llamadas a macro.
Información general del entorno GLOB_SCRIPT_TYPE T~ tipo de script actual 1-script de propiedades, 2-script 2D, 3-script 3D, 4-no implementado, 5-script lista de valores, 1masterscript GLOB_CONTEXT contexto de aparición 1- editor de objetos, 2- planta, 3- vista 3D, 4- alzado/sección, 5- diálogo de ajuste, 6- lista GLOB_SCALE A_ escala de dibujo según la ventana actual GLOB_NORTH_DIR U~ dirección del Norte relativa al sistema de coordenadas por defecto del proyecto, según los ajustes hechos en el diálogo Sol… GLOB_DRAWING_BGD_PEN pluma del color de fondo del dibujo la pluma más parecida de la paleta actual al color de fondo de la ventana actual
Información 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~ posición relativa del piso actual respecto al piso origen el piso actual es el que está visible en la Ventana de Planta
Información de animación GLOB_FRAME_NR N_ número de cuadro actual en animación sólo válido para animación, 0 para imagen fija GLOB_FIRST_FRAME O_ índice del primer cuadro en animación sólo válido para animación, 0 para imagen fija
208
Manual de Referencia GDL de ArchiCAD
Apéndice
GLOB_LAST_FRAME P_ índice del último cuadro en animación sólo válido para animación, 0 para imagen fija GLOB_EYEPOS_X K~ posición actual de la cámara (x) sólo válido en proyección perspectiva, tanto para animación como para imágenes fijas GLOB_EYEPOS_Y L~ posición actual de la cámara (y) sólo válido en proyección perspectiva, tanto para animación como para imágenes fijas GLOB_EYEPOS_Z M~ posición actual de la cámara (z) sólo válido en proyección perspectiva, tanto para animación como para imágenes fijas GLOB_TARGPOS_X N~ posición actual del objetivo (x) sólo válido en proyección perspectiva, tanto para animación como para imágenes fijas GLOB_TARGPOS_Y O~ posición actual del objetivo (y) sólo válido en proyección perspectiva, tanto para animación como para imágenes fijas GLOB_TARGPOS_Z P~ posición actual del objetivo (z) sólo válido en proyección perspectiva, tanto para animación como para imágenes fijas
Parámetros generales de elementos GLOB_LAYER capa del elemento nombre de la capa al que está asignado el elemento GLOB_ID ID de usuario del elemento ID definido en el cuadro de diálogo GLOB_INTID ID interno del elemento el ID interno único generado por el programa (no controlable por el usuario) GLOB_ELEVATION J_ altitud de la base del elemento relativa al origen del proyecto (excluyendo puerta, ventana: altura de antepecho, según ajustes actuales)
Parámetros generales de elementos - sólo disponibles para listados GLOB_ELEM_TYPE tipo de elemento 1- objeto, 2- lámpara, 3- ventana, 4- puerta, 5- muro, 6- columna, 7- forjado, 8- cubierta, 9trama, 10- malla
Parámetros de Objetos, Lámparas, Puertas, Ventanas SYMB_LINETYPE tipo de línea del elemento de biblioteca aplicado como tipo de línea por defecto del símbolo 2D SYMB_FILL tipo de trama del elemento de biblioteca aplicado sobre superficies cortadas de elementos de biblioteca en ventanas de sección/alzado SYMB_FILL_PEN pluma de la trama del elemento de biblioteca aplicado sobre superficies cortadas de elementos de biblioteca en ventanas de sección/alzado SYMB_FBGD_PEN pluma del fondo de la trama del elemento de biblioteca aplicado sobre superficies cortadas de elementos de biblioteca en ventanas de sección/alzado SYMB_SECT_PEN pluma del elemento de biblioteca en sección aplicado sobre contornos de superficies cortadas de elementos de biblioteca en ventanas de sección/alzado Manual de Referencia GDL de ArchiCAD
209
Apéndice
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 sección/alzado SYMB_MAT M_ material por defecto del elemento de biblioteca SYMB_POS_X X~ posición del elemento de biblioteca (x) relativo al origen del proyecto (excluyendo puerta, ventana: relativa al punto inicial del muro en que están) SYMB_POS_Y Y~ posición del elemento de biblioteca (y) relativo al origen del proyecto (excluyendo puerta, ventana: relativa al punto inicial del muro en que están) SYMB_POS_Z Z~ posición del elemento de biblioteca (z) relativo al origen del proyecto (excluyendo puerta, ventana: relativa al punto inicial del muro en que están)
Parámetros de Objetos, Lámparas SYMB_ROTANGLE W~ ángulo de rotación del elemento de biblioteca rotación numérica desde los ajustes del diálogo ejecutada alrededor del punto de anclaje actual SYMB_MIRRORED V~ elemento de biblioteca simétrico 0- no , 1- simétrico (la simetría se ejecuta alrededor del punto de anclaje actual)
Parámetros de Objetos, Lámparas, Puertas, Ventanas - disponible sólo para listado SYMB_A_SIZE longitud/anchura nominal del elemento de biblioteca longitud del objeto/lámpara, anchura de ventana/puerta (parámetro fijado) SYMB_B_SIZE longitud/anchura nominal del elemento de biblioteca anchura del objeto/lámpara, altura de ventana/puerta (parámetro fijado)
Parámetros de Objeto, Lámpara - disponible sólo para listado SYMB_Z_SIZE altura nominal del elemento de biblioteca si el primer parámetro de usuario se nombra en formato zzxyz será usado para altura nominal, si no 0 Parámetros de Ventana, Puerta WIDO_REVEAL_ON reveal de puerta/ventana activo 0- reveal inactivo 1- reveal activo WIDO_SILL K_ antepecho de puerta/ventana para muros curvos: en dirección radial al tamaño nominal de la esquina de la abertura WIDO_RIGHT_JAMB B~ jamba izquierda de puerta/ventana como se define en el diálogo de Definición de la Abertura WIDO_LEFT_JAMB jamba derecha de puerta/ventana como se define en el diálogo de Definición de la Abertura WIDO_THRES_DEPTH C~ antepecho/peldaño de puerta/ventana como se define en el diálogo de Definición de la Abertura WIDO_HEAD_DEPTH D~ grosor de dintel de puerta/ventana como se define en el diálogo de Definición de la Abertura
210
Manual de Referencia GDL de ArchiCAD
Apéndice
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 simetrías de puertas/ventanas, se recolocarán automáticamente 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 orientación de abertura de puerta/ventana izquierda/derecha - funcionará bien sólo si la puerta/ventana se creó según los estándares locales WIDO_MARKER_TXT marca de texto de puerta/ventana como se define en el subdiálogo Acotación de Puerta/Ventana del diálogo de Definición de Puerta/ Ventana WIDO_SUBFL_THICKNESS espesor del pavimento inferior (corrección de antepecho) como se define en el subdiálogo Acotación de Puerta/Ventana del diálogo de Definición de Puerta/ Ventana WIDO_PREFIX prefijo de altura de antepecho de puerta/ventana como se define en el subdiálogo Acotación de Puerta/Ventana del diálogo de Definición de Puerta/ Ventana WIDO_CUSTOM_MARKER conmutador de marca de puerta/ventana 1- los parámetros pueden usarse en el script 2D mientras no esté presente la acotación automática 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
Parámetros de Lámparas - disponibles sólo para listado LIGHT_ON luz encendida 0- luz apagada, 0- luz encendida: como se define en el diálogo de Definición de Lámparas (parámetro fijado) LIGHT_RED componente rojo del color de la luz como se define en el diálogo de Definición de Lámparas (parámetro fijado) LIGHT_GREEN componente verde del color de la luz como se define en el diálogo de Definición de Lámparas (parámetro fijado) LIGHT_BLUE componente azul del color de la luz como se define en el diálogo de Definición de Lámparas (parámetro fijado) LIGHT_INTENSITY intensidad de la luz como se define en el diálogo de Definición de Lámparas (parámetro fijado)
Parámetros de Muros - disponibles para Puertas/Ventanas WALL_RESOL J~ resolución 3D de un muro curvo efectivo sólo en 3D WALL_THICKNESS C_ grosor del muro en el caso de muros inclinados: el grosor del muro en el eje de abertura (eje z local) WALL_INCL inclinación de las superficies del muro el ángulo entre las dos superficies inclinadas del muro - 0 para muros rectos normales
Manual de Referencia GDL de ArchiCAD
211
Apéndice
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 línea del muro aplicado en los contornos sólo 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 número de capas de muro compuesto entre 1 y 8, 0 si se aplica una única trama WALL_SKINS_PARAMS parámetros de las capas del muro compuesto matriz con 6 columnas: trama, grosor, pluma, pluma de trama, pluma de fondo de trama, status del núcleo y hasta 8 filas WALL_SECT_PEN E_ pluma de los contornos del muro en sección se aplica a los contornos de superficies cortadas de muros en las ventanas de planta y de sección/ 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 sección/alzado WALL_FBGD_PEN pluma del fondo de la trama del muro WALL_DIRECTION dirección del muro muros rectos: la dirección de la línea de referencia, muros curvos: la dirección de la cuerda del arco WALL_POSITION coordenadas absolutas del muro la posición del punto inicial del muro en relación al origen del proyecto
Parámetros de Muros - disponibles sólo para listados WALL_LENGTH_A WALL_LENGTH_B WALL_SURFACE_A WALL_SURFACE_B referencia WALL_EDGE_SURF WALL_VOLUME WALL_DOORS_NR WALL_WINDS_NR WALL_HOLES_NR WALL_DOORS_SURF
212
longitud del muro en el lado de la línea de referencia longitud del muro en el lado opuesto de la línea de referencia superficie del muro en el lado de la línea de referencia superficie del muro en el lado opuesto de la línea de superficie del borde del muro volumen del muro número de puertas en el muro número de ventanas en el muro número de aberturas vacías superficie de puertas en el muro Manual de Referencia GDL de ArchiCAD
Apéndice
WALL_WINDS_SURF WALL_HOLES_SURF WALL_WINDS_WID WALL_DOORS_WID WALL_COLUMNS_NR
superficie de ventanas en el muro superficie de aberturas vacías en el muro anchura combinada de ventanas en el muro anchura combinada de puertas en el muro número de columnas en el muro
Parámetros de Columnas - disponibles sólo para listados COLU_CORE propiedades núcleo/recubrimiento sirve para compatibilidad: sólo es efectivo en el script de propiedades de archivos CPS (Column.Properties) COLU_HEIGHT altura de la columna COLU_VENEER_WIDTH grosor del recubrimiento de la columna COLU_MAT material de la columna Nota: La envolvente del muro sustituirá el material de columna por los materiales de los muros conectados COLU_LINETYPE tipo de línea de la columna aplicado en los contornos sólo en la ventana de planta COLU_CORE_FILL trama del núcleo de la columna COLU_VENEER_FILL relleno del recubrimiento de la columna COLU_SECT_PEN pluma de los contornos de la columna en sección aplicado en contornos de superficies cortadas en la ventanas de planta y de alzado/sección COLU_VIEW_PEN pluma de la columna visible aplicado a todos los contornos en la ventana 3D y en los contornos visibles en ventanas de sección/alzado COLU_CORE_FILL_PEN pluma de la trama del núcleo de la columna COLU_CORE_FBGD_PEN pluma del fondo de la trama del núcleo de la columna COLU_VENEER_FILL_PEN pluma de la trama del recubrimiento de columna COLU_VENEER_FBGD_PEN pluma del fondo de la trama del recubrimiento de columna COLU_CORE_SURF superficie del núcleo de la columna COLU_CORE_VOL volumen del núcleo de la columna COLU_VENEER_SURF superficie del recubrimiento de la columna COLU_VENEER_VOL volumen del recubrimiento de la columna
Parámetros de Forjados - disponibles sólo para listados SLAB_THICKNESS grosor del forjado SLAB_MAT_TOP material de la superficie superior del forjado SLAB_MAT_EDGE material de los bordes del forjado SLAB_MAT_BOTT material de la superficie inferior del forjado SLAB_LINETYPE tipo de línea del forjado SLAB_FILL trama del forjado índice de trama - su valor es negativo en el caso de una estructura compuesta SLAB_FILL_PEN pluma de la trama del forjado SLAB_FILLBGD_PEN pluma del fondo de la trama del forjado Manual de Referencia GDL de ArchiCAD
213
Apéndice
SLAB_COMPS_NAME estructura compuesta del forjado nombre de la estructura compuesta SLAB_SKINS_NUMBER número de capas de forjado compuestas entre 1 y 8, 0 se aplica una única trama SLAB_SKINS_PARAMS parámetros de las capas del forjado compuesto matriz con 6 columnas: trama, grosor, pluma, pluma de trama, pluma de fondo de trama, status del núcleo y hasta 8 filas SLAB_SECT_PEN pluma de los contornos del forjado en sección aplicado a los contornos de superficies cortadas en los planos de planta y de sección/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 sección/ 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 perímetro del forjado SLAB_VOLUME volumen del forjado SLAB_SEGMENTS_NR número de segmentos del forjado SLAB_HOLES_NR número de huecos del forjado SLAB_HOLES_AREA área de los huecos del forjado SLAB_HOLES_PRM perímetro de los huecos del forjado
Parámetros de Cubiertas - disponibles sólo para listados ROOF_THICKNESS grosor de la cubierta ROOF_ANGLE pendiente de la cubierta ROOF_MAT_TOP material de la superficie superior de la cubierta ROOF_MAT_EDGE material de los bordes de la cubierta ROOF_MAT_BOTT material de la superficie inferior de la cubierta ROOF_LINETYPE tipo de línea de la cubierta aplicado en los contornos sólo en la ventana de planta ROOF_FILL trama de la cubierta índice de trama - su valor es negativo en el caso de una estructura compuesta ROOF_FILL_PEN pluma de la trama de la cubierta ROOF_FBGD_PEN pluma del fondo de trama de la cubierta ROOF_COMPS_NAME estructura compuesta de la cubierta nombre de la estructura compuesta ROOF_SKINS_NUMBER número de capas compuestas de cubiertas entre 1 y 8, 0 si se aplica una única trama ROOF_SKINS_PARAMS parámetros de las capas compuestas de cubierta matriz con 6 columnas: trama, grosor, pluma, pluma de trama, pluma de fondo de trama, status del núcleo y hasta 8 filas ROOF_SECT_PEN pluma de los contornos de cubierta en sección aplicado a contornos de superficies cortadas de muros en las ventanas de planta y alzado/sección
214
Manual de Referencia GDL de ArchiCAD
Apéndice
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 sección/ 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 perímetro de la cubierta ROOF_VOLUME volumen de la cubierta ROOF_SEGMENTS_NR número de segmentos de la cubierta ROOF_HOLES_NR número de huecos de la cubierta ROOF_HOLES_AREA área de huecos de la cubierta ROOF_HOLES_PRM perímetro de huecos de la cubierta
Parámetros de Trama - disponibles sólo para listados FILL_LINETYPE FILL_FILL FILL_FILL_PEN FILL_PEN FILL_FBGD_PEN FILL_SURF FILL_PERIMETER FILL_SEGMENT_NR FILL_HOLES_NR FILL_HOLES_PRM FILL_HOLES_AREA
tipo de línea de la trama tipo de trama de la trama pluma de trama de la trama pluma de la trama pluma del fondo de trama de la trama área de la trama perímetro de la trama número de segmentos de la trama número de huecos de la trama perímetro de huecos de la trama área de huecos de la trama
Parámetros de Malla - disponibles sólo para listados MESH_TYPE tipo de la malla 1- cuerpo cerrado, 2 - superior & borde, 3 - sólo superficie superior MESH_BASE_OFFSET desplazamiento de la superficie inferior al nivel de base MESH_USEREDGE_PEN pluma de las crestas definidas por el usuario en la malla MESH_TRIEDGE_PEN pluma de las caras trianguladas de la malla MESH_SECT_PEN pluma de los contornos de la malla en sección aplicado a los contornos de superficies cortadas de muros en las ventanas de planta y de alzado/ sección MESH_VIEW_PEN pluma de los contornos visibles aplicado a todas las aristas en la ventana 3D y en las aristas visibles en las ventanas de alzado/ sección MESH_MAT_TOP material de la superficie superior de la malla MESH_MAT_EDGE material de las caras de la malla MESH_MAT_BOTT material de la superficie inferior de la malla MESH_LINETYPE tipo de línea de la malla aplicado a los contornos sólo en la ventana de planta Manual de Referencia GDL de ArchiCAD
215
Apéndice
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 perímetro de la malla volumen de la malla número de segmentos de la malla número de huecos de la malla área de huecos de la malla perímetro de huecos de la trama
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
Variables globales libres para usuarios GLOB_USER_1 GLOB_USER_2 GLOB_USER_3 GLOB_USER_4 GLOB_USER_5 GLOB_USER_6 GLOB_USER_7 GLOB_USER_8 GLOB_USER_9 GLOB_USER_10 GLOB_USER_11 GLOB_USER_12 GLOB_USER_13 GLOB_USER_14 GLOB_USER_15 GLOB_USER_16 GLOB_USER_17 GLOB_USER_18 GLOB_USER_19 GLOB_USER_20
216
S_ T_ U_ V_ W_ X_ Y_ Z_ G~ I~
las variables globales libres para usuarios de 1 a 10 están inicializadas al número por defecto
las variables globales libres para usuarios de 11 a 20 están inicializadas al texto por defecto
Manual de Referencia GDL de ArchiCAD
Apéndice
B
Funciones Especiales REQ
(parameter_string) Esta función pregunta el estado actual del programa. Este parámetro - la pregunta - es una cadena. El intérprete GDL responde con un valor numérico. Si no entiende la pregunta, la respuesta es negativa. Listado de preguntas actuales: "GDL_version" número de versión del intérprete/compilador del GDL. (Atención: no es el mismo que la versión de ArchiCAD). "Program" código del programa (1: ArchiCAD, 2: topCAD, etc.). "Serial_number" el número de serie de la llave. "Model_size" tamaño 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 más próximo al color dado. Las constantes r, g y b figuran en la cadena entre 0 y 1.
Manual de Referencia GDL de ArchiCAD
217
Apéndice
REQUEST
(question_name, name | index, var1 [, var2,....]) El primer parámetro representa la pregunta mientras que la segunda representa el objeto de la cuestión (si existe) y puede ser un texto o de tipo numérico ( 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 parámetros son nombres de variable en el que los valores de retorno (las respuestas) se almacenan. El valor de la función de retorno es el número 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
("Name_of_macro", "", myname)
REQUEST
("Name_of_main", "", mainname) Después 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 vacío).
REQUEST
("ID_of_main", "", idstring) Para los ítems de Biblioteca colocados en la Planta, devuelve el identificador definido en el diálogo de herramientas en la variable idstring (en caso contrario texto vacío).
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
REQUEST
("Linear_dimension", "", formatstr)
REQUEST
("Angular_dimension", "", formatstr)
REQUEST
("Angular_length_dimension", "", formatstr) Manual de Referencia GDL de ArchiCAD
Apéndice
REQUEST
("Radial_dimension", "", formatstr)
REQUEST
("Level_dimension", "", formatstr)
REQUEST
("Elevation_dimension", "", formatstr)
REQUEST
("Window_door_dimension", "", formatstr)
REQUEST
("Sill_height_dimension", "", formatstr)
REQUEST
("Area_dimension", "", formatstr) Estas llamadas le permiten obtener los formatos de medidas definidas en el diálogo de Opciones/Preferencias/Acotaciones. Estas llamadas devuelven un texto de formato que puede utilizarse como primer parámetro en la función 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 característica 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 código de la categoría de zona actual.
REQUEST
("Zone_relations", "", catname, code, name, nr [, catname2, code2, name2, nr2]) Devuelve en las variables dadas el nombre de categoría de zona, código de categoría de zona, nombre de zona y número de la zona donde está el elemento de biblioteca que contiene esta pregunta. Para puertas y ventanas puede haber un máximo de 2 zonas. El valor de retorno de la pregunta es el número 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 sólo para Sellos de Zona.
Manual de Referencia GDL de ArchiCAD
219
Apéndice
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 vacío si no existe ésta.
REQUEST
("Rgb_of_material", name, r, g, b)
REQUEST
("Rgb_of_pen", penindex, r, g, b)
REQUEST
("Pen_of_RGB", "r g b", penindex) Al igual que la función 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 línea 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 línea 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 línea por defecto (Texto vacío para trama y estilo) El valor de retorno de la pregunta es el número de valores satisfactorios obtenidos (1 si no ocurren errores, 0 para un error cuando el índice no es válido).
220
Manual de Referencia GDL de ArchiCAD
Apéndice
REQUEST
(extension_name, parameter_string, v1, v2, ...) Si la pregunta no es ninguna de las vistas anteriormente, la función REQUEST () intenta utilizarla como una extensión de nombre específico. Si está extensión se encuentra en la carpeta de extensiones, se utilizará para obtener tantos valores para cuantos nombres de variable se hayan especificado. El parámetro de texto es interpretado por la extensión.
IND
(MATERIAL, name_string)
IND
(FILL, name_string)
IND
(LINE_TYPE, name_string)
IND
(STYLE, name_string) Esta función devuelve el índice actual del atributo de material, trama, tipo de línea o estilo. El uso principal del número 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 Línea... en ArchiCAD). Ver también MATERIAL, FILL, LINE_TYPE, STYLE en el capítulo "Definición de Atributos en Línea".
Manual de Referencia GDL de ArchiCAD
221
Apéndice
C
GDL Creado desde la Planta Al guardar el plano de planta como script GDL o elemento de Biblioteca se producirán los siguientes elementos GDL. Puede utilizar estos scripts GDL como plantillas para su propia biblioteca. Vea también el capítulo "Formas Tridimensionales". Script 3D: Muros:
LIN_, xWALL_
Columnas:
cPRISM_
Forjados:
cPRISM_
Cubiertas Inclinadas:
cSLAB_, cROOF_
Mallas:
MASS
Ventanas: Puertas:
CALL
Objetos: Lámparas:
Los planos de corte definidos en el diálogo de Planos de Corte 3D (activado con el comando de Sección 3D): CUTPLANE angle CUTPLANE Los planos de corte y polígonos generados por Cubiertas : CUTPOLY and CUTPLANE Script 2D: HOTSPOT2, POLY2_B, LINE2 CALL
222
Manual de Referencia GDL de ArchiCAD
Apéndice
D
Palabras Clave sólo para la Vista 3D ADDX, ADDY, ADDZ ADD MULX, MULY, MULZ MUL ROTX, ROTY, ROTZ ROT XFORM LIN_ RECT POLY, POLY_ PLANE, PLANE_ CIRCLE ARC BLOCK, BRICK CYLIND SPHERE ELLIPS CONE PRISM, PRISM_, CPRISM_, BPRISM_, FPRISM_, SPRISM_ SLAB, SLAB_, CSLAB_ CWALL_, BWALL_, XWALL_ WALLHOLE CROOF_ ARMC ARME ELBOW
Manual de Referencia GDL de ArchiCAD
223
Apéndice
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
Manual de Referencia GDL de ArchiCAD
Apéndice
E
Palabras Clave sólo para el Símbolo 2D ADD2 MUL2 ROT2 HOTSPOT2 LINE2 RECT2 POLY2, POLY2_, POLY2_A, POLY2_B ARC2 CIRCLE2 SPLINE2, SPLINE2A PICTURE2 TEXT2 FRAGMENT2 PROJECT2 DEFINE FILL DEFINE FILLA DEFINE LINE_TYPE [SET] FILL [SET] LINE_TYPE DRAWING2 DRAWING3
Manual de Referencia GDL de ArchiCAD
225
Apéndice
F
Palabras Clave para uso 2D y 3D DEL [LET] RADIUS RESOL TOLER PEN DEFINE STYLE [SET] STYLE
226
Manual de Referencia GDL de ArchiCAD
Apéndice
G
Palabras Clave para Scripts No Geométricos Script de Propiedades DESCRIPTOR COMPONENT REF SURFACE3D VOLUME3D POSITION WALLS COLUMNS DOORS WINDOWS OBJECTS PITCHED_ROOFS HIP_ROOFS LIGHTS HATCHES ROOMS MESHES DRAWING BINARYPROP
Script de Lista de Valores VALUES
Manual de Referencia GDL de ArchiCAD
227
Apéndice
H
228
Palabras Clave Comunes Operadores Funciones FOR, NEXT DO, WHILE, ENDWHILE REPEAT, UNTIL IF, THEN, ELSE, ENDIF GOTO GOSUB RETURN END EXIT PUT GET USE NSP CALL, PARAMETERS PRINT OPEN INPUT OUTPUT CLOSE DIM BREAKPOINT
Manual de Referencia GDL de ArchiCAD
Apéndice
I
Palabras Clave Reservadas Las palabras clave listadas a continuación están reservadas, existen por razones de compatibilidad o no han sido hechas públicas. BAS BOX GDLBIN LIN LINE NOD NODE ORIGO PARS RECT_ SFLINE TET TETRA TRI WALL_ VOCA UI_INFIELD UI_OUTFIELD UI_BUTTON UI_PAGE UI_DIALOG UI_OK UI_CANCEL UI_PREV UI_NEXT UI_SEPARATOR UI_GROUPBOX UI_PICT
Manual de Referencia GDL de ArchiCAD
229
Apéndice
J
Lista de Conversión de Antiguos Nombres de Variables Globales Pueden usarse los nombres antiguos de variables globales, sin embargo se recomienda el uso de los nuevos nombres. Cada variable global antigua corresponde a una nueva con nombre largo. A_ B_ C_ D_ E_ F_ G_ H_ I_ J_ K_ L_ N_ N_ M_ P_ Q_ R_ S_ T_ U_ V_ W_ X_ Y_ Z_
230
GLOB_SCALE GLOB_HSTORY_ELEV WALL_THICKNESS WALL_HEIGHT WALL_OUTLINE_PEN WALL_FILL_PEN WALL_MAT_A WALL_MAT_B WALL_MAT_EDGE GLOB_ELEVATION WIDO_SILL SYMB_PEN SYMB_MAT GLOB_FRAME_NR GLOB_FIRST_FRAME GLOB_LAST_FRAME GLOB_HSTORY_HEIGHT WIDO_ORIG_DIST GLOB_USER_1 GLOB_USER_2 GLOB_USER_3 GLOB_USER_4 GLOB_USER_5 GLOB_USER_6 GLOB_USER_7 GLOB_USER_8
Manual de Referencia GDL de ArchiCAD
Apéndice
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~
Manual de Referencia GDL de ArchiCAD
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
Apéndice
K
Listado Alfabético Actual de Palabras Clave GDL ABS (x) ACS (x) ADD
dx, dy, dz
ADD2
x, y
ADDX
dx
ADDY
dy
ADDZ
dz
AND ARC
r, alpha, beta
ARC2
x, y, r, alpha, beta
ARMC
r1, r2, l, h, d, alpha
ARME
l, r1, r2, h, d
ASN (x) ATN (x) BASE BINARY
mode [, section]
BINARYPROP BLOCK
a, b, c
BODY
status
BPRISM_
topmat, botmat, sidemat, n, h, radius, x1, y1, mask1, . . . xn, yn, maskn
BREAKPOINT BRICK
232
expression
a, b, c Manual de Referencia GDL de ArchiCAD
Apéndice
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
CALL
macro_name_string [parameter_list]
CALL
macro_name_string PARAMETERS [name1=value1, . . . namen=valuen]
CIRCLE
r
CIRCLE2
x, y, r
CLOSE
channel
COMPONENT name, quantity, unit, [, prop_with, code, keycode, unitcode] CONE
h, r1, r2, alpha1, alpha2
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
COOR
wrap, vert1, vert2, vert3, vert4
COS (x) CPRISM_
topmat, botmat, sidemat, n, h, x1, y1, mask1, . . . xn, yn, maskn
CROOF_
topmat, botmat, sidemat, n, xb, yb, xe, ye, height, angle, thickness, x1, y1, alpha1, mask1, . . . xn, yn, alphan, maskn
CSLAB_
topmat, botmat, sidemat, n, h, x1, y1, z1, mask1, . . . xn, yn, zn, maskn
Manual de Referencia GDL de ArchiCAD
233
Apéndice
CUTPLANE
[x, y, z [, side]] statements CUTEND
CUTPLANE
angle statements CUTEND
CUTPOLY
n, status, d, x1, y1, . . . xn, yn, [, x, y, z] statements CUTEND
CUTPOLYA n, status, d, x1, y1, mask1, . . . xn, yn, maskn [, x, y, z] statements CUTEND CUTSHAPE
d statements CUTEND
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
CYLIND
h, r
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
Manual de Referencia GDL de ArchiCAD
Apéndice
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
name font_family, size, anchor, facecode
DEFINE STYLE
name PLOTMAKER, size, anchor, slant
DEFINE STYLE
name PLOTTER, size, anchor, slant
DEFINE TEXTURE name, filename, x, y, mask, angle DEL
n
DEL
TOP
DESCRIPTOR DIM
string
var1 [dim_1], var2 [dim_1][dim_2], . . .
DO statements WHILE
condition
DRAWING DRAWING2 DRAWING3 EDGE
vert1, vert2, pgon1, pgon2, status
ELBOW
r1, alpha, r2
ELLIPS
h, r
END EXIT EXOR EXP (x) EXTRUDE
n, dx, dy, dz, mask, x1, y1, s1, . . . xn, yn, sn
FILL
index
FILL
name_string
Manual de Referencia GDL de ArchiCAD
235
Apéndice
FOR
varnam = initial_value TO end_value [STEP step_value]
FPRISM_
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
label
GOTO
label
HOTSPOT2 x, y IF
cond GOSUB
label
IF
cond GOTO
label
IF
cond THEN
label
IF
condition THEN statement [ELSE statement]
IF
condition THEN statements [ELSE statements] ENDIF
IND
(FILL, name_string)
IND
(LINE_TYPE, name_string)
IND
(MATERIAL, name_string)
IND
(STYLE, name_string)
IND
(TEXTURE, name_string)
INPUT
(channel, recordID, fieldID, var1 [, var2, . . .]
INT (x) LET LGT (x)
236
Manual de Referencia GDL de ArchiCAD
Apéndice
LIGHT
red, green, blue, shadow, radius, alpha, beta, angfalloff, dist1, dist2, distfalloff
LIN_
x1, y1, z1, x2, y2, z2
LINE_TYPE index LINE_TYPE name_string LINE2
x1, y1, x2, y2
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
MATERIAL
index
MATERIAL
name_string
MAX (x1,x2, . . . xn) MESH
a, b, m, n, mask, z11, z12, . . . z1m, z21, z22, . . . z2m, ... zn1, zn2, . . . znm
MIN (x1,x2, . . . xn) MOD MODEL
SOLID
MODEL
SURFACE
MODEL
WIRE
MUL
mx, my, mz
MUL2
x, y
MULX
mx
MULY
my
MULZ
mz
NEXT
varnam
NOT (x) Manual de Referencia GDL de ArchiCAD
237
Apéndice
NSP NTR ( ) OPEN
(filter, filename, paramstring)
OR OUTPUT
channel, recordID, fieldID, expr1 [, expr2, . . .]
PEN
n
PGON
n, ivect, status, edge1, edge2, . . . edgen
PI
238
PICTURE
filename, a, b, mask
PICTURE2
expression, a, b, mask
PIPG
filename, a, b, mask, n, ivect, status, edge1, edge2, . . . edgen
PLANE
n, x1, y1, z1, . . . xn, yn, zn
PLANE_
n, x1, y1, z1, mask1, . . . xn, yn, zn, maskn
POLY
n, x1, y1, . . . xn, yn
POLY_
n, x1, y1, mask1, . . . xn, yn, maskn
POLY2
n, framefill, x1, y1, . . . xn, yn
POLY2_
n, framefill, x1, y1, mask1, . . . xn, yn, maskn
POLY2_A
n, framefill, fillpen, x1, y1, mask1, . . . xn, yn, maskn
POLY2_B
n, framefill, fillpen, fillbkgdpen, x1, y1, mask1, . . . xn, yn, maskn
POSITION
position_keyword
PRINT
[expression] [, expression] . . .
PRISM
n, h, x1, y1, . . . xn, yn
PRISM_
n, h, x1, y1, mask1, . . . xn, yn, maskn
PROJECT2
projcode, angle, method
PUT
expression [, expression] . . .
PYRAMID
n, h, mask, x1, y1, s1, . . . xn, yn, sn
RADIUS
rmin, rmax
RECT
a, b Manual de Referencia GDL de ArchiCAD
Apéndice
RECT2
x1, y1, x2, y2
REF COMPONENT code [, num_expr [, keycode]] REF DESCRIPTOR code [, keycode] REPEAT statements UNTIL
condition
REQ (parameter_string) REQUEST
(question_name, name | index, var1 [, var2, . . .])
RESOL
n
RETURN REVOLVE
n, alpha, mask, x1, y1, s1, . . . xn, yn, sn
RND (x) ROT
x, y, z, alpha
ROT2
alphaz
ROTX
alphax
ROTY
alphay
ROTZ
alphaz
RULED
n, mask, u1, v1, s1, . . . un, vn, sn, x1, y1, z1, . . . xn, yn, zn
SET FILL
index
SET FILL
name_string
SET LINE_TYPE
index
SET LINE_TYPE
name_string
SET MATERIAL
ndex
SET MATERIAL
name_string
SET STYLE
index
SET STYLE
name_string
SGN (x) SHADOW
AUTO
SHADOW
OFF
SHADOW
ON
Manual de Referencia GDL de ArchiCAD
239
Apéndice
SIN (x) SLAB
n, h, x1, y1, z1, . . . xn, yn, zn
SLAB_
n, h, x1, y1, z1, mask1, . . . xn, yn, zn, maskn
SPHERE
r
SPLINE2
n, status, x1, y1, angle1, . . . xn, yn, anglen
SPLINE2_A
n, status, x1, y1, angle1, lenPrev1, lenNext1, ... xn, yn, anglen, lenPrevn, lenNextn
SPLIT
(string, format, var1 [, var2, . . . varn])
SPRISM_
topmat, botmat, sidemat, n, xb,yb, xe, ye, h, angle, x1, y1, mask1, . . . xn, yn, maskn
SQR (x) STR
(numeric_expression, len, frac)
STR
(formatstring, numeric_expression)
STRLEN
(string_exp)
STRSTR
(string_exp1, string_exp2)
STRSUB
(string_exp, begpos, numchars)
STW
(string_expression)
STYLE
index
STYLE
name_string
SURFACE3D ( ) SWEEP
n, m, alpha, scale, mask, u1, v1, s1, . . . un, vn, sn, x1, y1, z1, . . . xm, ym, zm
TAN (x)
240
TEVE
x, y, z, u, v
TEXT
d, 0, expression
TEXT2
x, y, string
TOLER
d
Manual de Referencia GDL de ArchiCAD
Apéndice
TUBE
n, m, mask, u1, w1, s1, . . . un, wn, sn, x1, y1, z1, angle1, . . . xm, ym, zm, anglem
TUBEA
n, m, mask, u1, w1, s1, . . . un, wn, sn, x1, y1, z1, . . . xm, ym, zm
USE (n) VALUES
name, val1 [, val2, . . . valn]
VECT
x, y, z
VERT
x, y, z
VOLUME3D ( ) WALLHOLE n, status, x1, y1, mask1, . . . xn, yn, maskn [, x, y, z] WHILE
condition DO statements ENDWHILE
XFORM
a11, a12, a13, a14, a21, a22, a23, a24, a31, a32, a33, a34
XWALL_
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
Manual de Referencia GDL de ArchiCAD
241
Apéndice
L
Extensión de Texto Esta es una extensión de ejemplo que demuestra las posibilidades de las operaciones de archivo I/O. Otras extensiones de este tipo están disponibles desde Graphisoft u otros vendedores. La extensión interpreta los textos en la lista de parámetros 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 extensión, en donde puede localizarse). Si esa carpeta no existe, la extensión crea una. La carpeta puede contener subcarpetas en donde la extensión busca archivos existentes. Los archivos de tipo TEXTO se pueden leer y escribir. 1. channel = OPEN (filter, filename, paramstring) filter : específico de la extensión, en el caso de la extensión de texto "TEXT" filename:
el nombre del archivo por abrir
paramstring: contiene los caracteres específicos de separación de la extensión 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 específico. Este valor será el futuro número de referencia del archivo. El paramstring puede contener lo siguiente: • SEPARATOR = después de la palabra clave entre comillas ('') puede asignar un carácter 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
Manual de Referencia GDL de ArchiCAD
Apéndice
• MODE = después de la palabra clave el modo de abertura a seguir. Sólo existen tres modos de abertura: RO (sólo lectura) WA (sólo escritura, añadir) al final del archivo WO (sólo escritura, re-escritura) ¡todos los datos del archivo se perderán! 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 separación son incorrectos o no hay nada en el string de parámetros, la extensión utilizará las definiciones por omisión: 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: número de columna (numérica o texto) fieldID:
índice de columna en la fila dada
El comando lee tantos valores dados desde la posición inicial del archivo, identificado por el valor de canal, como parámetros asignados tenga. En la lista de parámetros debe haber como mínimo un valor. La función coloca los valores leídos en los parámetros de la secuencia. Los valores pueden ser numéricos o de texto con independencia del tipo de parámetro definido para ellos. En el lugar del valor del archivo, también puede tener expresiones de tipo numérico o de texto, cada una conteniendo constantes numéricas o de texto así como llamadas a funciones matemáticas GDL. Estas expresiones se evalúan 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 número de valores leídos satisfactoriamente, para el final de archivo (-1). Tanto los números de columna como los de fila deben ser enteros positivos, de otra forma se mostrará un mensaje de error. Si el número de fila o de columna son incorrectos, la entrada no se realizará. (n = 0) Manual de Referencia GDL de ArchiCAD
243
Apéndice
En la identificación de fila y columna, se asignará el mismo número de valores desde la posición inicial dada que de parámetros, o si hay más parámetros que valores, los parámetros sin valor correspondiente se ajustarán a cero. Para las columnas vacías (no hay nada entre los caracteres de separación) los parámetros serán 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 irán 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 posición dada como expresiones definidas. Debe haber como mínimo una expresión. Los tipos de valor de salida son los mismos que los de las expresiones. Para una extensión de texto el OUTPUT, en secuencia (dependiendo del modo de abertura) colocará las expresiones dadas en posiciones consecutivas utilizando los caracteres de separación dados al abrir el archivo entre él mediante re-escritura o añadidura al final del archivo. En este caso la posición 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 irán seguidos de una nueva fila, de otra forma el último valor irá seguido por un carácter 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 ! carácter separador después de +2 sin fila nueva
244
Manual de Referencia GDL de ArchiCAD
Apéndice
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
Manual de Referencia GDL de ArchiCAD
245
Apéndice
246
Manual de Referencia GDL de ArchiCAD
Í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 5–20 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
Manual de Referencia GDL de ArchiCAD
247
Índice
C
E
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
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 definición de atributos 18 DEL 30 DEL TOP 30 descripciones 7 DESCRIPTOR 164 DIM 170 DO 183 DOORS 166 DRAWING2 132 DRAWING3 132 DXF 5
248
7
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
Manual de Referencia GDL de ArchiCAD
Índice
L
P
LET 144 LGT 174 LIGHT 96 LIGHTS 166 LIN_ 34 LINE_TYPE 150, 161, 191 LINE2 122 Línea 22 Lista de Componentes 166 lista de valores 18, 167 LOG 174
PARAMETERS 190 Parámetros 8, 24, 171 PEN 146, 191 PGON 104 PI 173 PICTURE 8, 99 PICTURE2 8, 128 pila de transformación 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
N NEXT 182 NOT 174 NSP 188 NTR 30
O OBJECTS 166 OPEN 193, 242 OR 172 origen global 16 OUTPUT 194, 244
Manual de Referencia GDL de ArchiCAD
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
249
Índice
S
U
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
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
Manual de Referencia GDL de ArchiCAD
Contenido
Contenido 1 Introducción
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
Bibliotecas en formato DXF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Uso de sus propias habilidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Modelar en otras aplicaciones 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Modelar con las herramientas propias de ArchiCAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Escritura en GDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Escritura en GDL _________________________________________________________ 7 Qué es GDL? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Estructura del Elemento de Biblioteca de ArchiCAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Analizar, descomponer y simplificar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Elaboración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Para empezar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Comandos de Nivel Básico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Comandos de Nivel Intermedio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Comandos y Características de Nivel Avanzado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Nivel Experto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4 Cómo genera ArchiCAD una imagen 3D __________________________________ 16 El espacio 3D en ArchiCAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 ¿ Porqué necesita transformaciones de coordenadas ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 El motor de intérprete GDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 El orden de análisis de los scripts GDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.5 Creación de objetos en ArchiCAD ________________________________________ 19 Manual de Referencia GDL de ArchiCAD
i
Contenido
2 Elementos de Sintaxis Básicos
21
3 Transformación de Coordenadas
25
3.1 Transformaciones en el espacio Tridimensional __________________________ 26 3.2 Transformaciones en el espacio Bidimensional ___________________________ 29 3.3 Manejo de la Pila de Transformación _____________________________________ 30
4 Formas Planas en 3D
33
5 Formas Tridimensionales
37
5.1 Formas básicas _________________________________________________________ 38 5.2 Formas generadas desde polilíneas ______________________________________ 67 5.3 Elementos para la Visualización __________________________________________ 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
121
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 _____________________________________________________
122 129 130 131 132
7 Códigos de status adicionales para polilíneas planas
133
8 Atributos
143
8.1 Directivas _____________________________________________________________ 144 Directivas Usadas en Scripts 3D y 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Directivas utilizadas sólo en scripts 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 Directivas usadas sólo en scripts 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 8.2 Definición de Atributos _________________________________________________ 150 Definición de materiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Definición de trama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 Definición de Trama Avanzada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
ii
Manual de Referencia GDL de ArchiCAD
Contenido
Definición de tipos de líneas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Definición de estilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
9 Scripts No Geométricos
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 aritméticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Operadores Relacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Operadores Booleanos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 10.3 Funciones ____________________________________________________________ 173 Funciones Aritméticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Funciones Circulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Funciones Trascendentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 Funciones Booleanas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 Funciones Estadísticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 Funciones de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 Funciones Especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
11 Declaraciones de Control 11.1 Declaraciones de control de flujo ______________________________________ 11.2 Manipulación del Buffer de Parámetros ________________________________ 11.3 Objetos Macro ________________________________________________________ 11.4 La Declaración de Salida _______________________________________________ 11.5 Operaciones de Archivo _______________________________________________
12 Instrucciones Especiales para Puertas y Ventanas
181 182 187 190 192 193
195
12.1 Reglas Generales ______________________________________________________ 196 12.2 Creación 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
Manual de Referencia GDL de ArchiCAD
iii
Contenido
Apéndice
207
A B C D E F G H I J K L
208 217 222 223 225 226 227 228 229 230 232 242
Variables Globales ____________________________________________________ Funciones Especiales _________________________________________________ GDL Creado desde la Planta ___________________________________________ Palabras Clave sólo para la Vista 3D ___________________________________ Palabras Clave sólo para el Símbolo 2D ________________________________ Palabras Clave para uso 2D y 3D ______________________________________ Palabras Clave para Scripts No Geométricos ____________________________ Palabras Clave Comunes ______________________________________________ Palabras Clave Reservadas ____________________________________________ Lista de Conversión de Antiguos Nombres de Variables Globales ________ Listado Alfabético Actual de Palabras Clave GDL ________________________ Extensión de Texto ___________________________________________________
Índice
iv
247
Manual de Referencia GDL de ArchiCAD