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: <espacio> _ (subrayado) ! : , ; . + – * / ^ = < > # ( ) |(barra vertical) “ ‘ ` ´ ” “ ’ ‘ <fin_de_línea> 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