Tanto la sintaxis descrita como el archivo de texto donde se utiliza se denominarán presentación de plóter o simplemente presentación.
Una presentación [layout] típica contiene de una a varias páginas [page] de descripción de un dibujo de plóter.
La descripción de la página [page] solo especifica:
Atributos de página: formato de papel en milímetros (unidad de longitud global) y márgenes que determinan el área de trabajo de una página.
Posición, tamaño y otros atributos de campos rectangulares denominados ventanas gráficas [view], donde se ubicarán los dibujos. Las ventanas gráficas pueden contener textos adicionales (que se abordarán más adelante). Estos textos deben estar situados cerca del borde de una vista, ya que su centro se rellenará con un dibujo.
Las tablas [table], organizadas en filas [row], formadas por celdas [cell] que, a su vez, suelen estar rellenadas con textos [text].
Posición y atributos de los textos [text]. El texto que se va a incluir en un dibujo se puede definir como una cadena de caracteres sencilla entre comillas ("...") o como las llamadas expresiones, que se enumeran en el módulo de dibujo. Las expresiones tienen su propia sintaxis. Pueden adoptar el formato de fecha, nombre de proyecto, etc. También pueden adoptar formas más complejas en función del contenido de los dibujos de una página; por ejemplo, la escala de dibujo en una vista, el peso o masa del acero de refuerzo en una viga o un tramo, etc.
Ejemplo:
El siguiente ejemplo es un extracto de las presentaciones reales que se encuentra en la carpeta de archivos de configuración de Robot. Contiene la descripción del dibujo de una viga de hormigón armado.
# Las líneas que comienzan con este signo pertenecen al comentario.
# Por supuesto, el comentario puede insertarse con una sangría.
# Los comentarios ubicados al principio de un archivo deben contener un resumen de las características del contenido del archivo.
# Este sería un encabezado idóneo:
# Dibujo de viga (cada tramo en una nueva página):
# tramo simple + dos secciones + lista de armaduras
# Tabla (que contiene datos típicos del hormigón armado) en la parte inferior de una página
# (Formato recomendado: A4)
[LAYOUT]
[page]
format = 297, 210 # formato de papel
margins = left 7, right 7, bottom 7, top 7
[view]
label = @elev # etiqueta @elev, usada en expresiones de texto
pos = 3, 97 # esquina inferior izquierda: 3 mm desde la izquierda, 97 mm desde la parte inferior
size = 213, 95 # tamaño: 213 x 95 mm
type = "beam/bay" # tramo de viga simple
[view]
label = @sec1 # etiqueta de la primera sección
pos = 3, 29
size = 105, 65
type = "beam/bay/section"
[view]
label = @sec2 # etiqueta de la segunda sección
pos = 111, 29
size = 105, 65
type = "beam/bay/section"
[view]
pos = right 0, top 0 # esquina superior derecha: 0 mm desde la derecha, 0 mm desde arriba
size = 65, 169
type = "beam/bay/steel" # lista de armaduras en un tramo de viga
[table]
pos = 0,0
# aunque el usuario cambie el formato de papel, debe mantener
# los márgenes izquierdo y derecho (aquí: cero) y la altura de toda la tabla
fixed = left right, vertical
# primero, debe determinar la anchura de las columnas de tabla sucesivas
col = 100
col = 100
col = 83
# a continuación, debería describir cada fila
[row]
row = 4 # debe determinar la altura de la fila
# puede describir las celdas de cada fila
[cell]
colspan = 2 # 2 columnas se fusionan en esta celda
[text]
pos = 3,50% # 3 mm desde la izquierda y a media altura
font = height 2 # altura de fuente 2 mm
text = "Firm"
[text]
pos = 25%,50% # a 1/4 de la distancia completa desde la izquierda y a media altura
font = height 2
text = "Address"
[text]
pos = 65%,50%
font = height 2
text = "Telephone"
[text]
pos = 82%,50%
font = height 2
text = "Fax"
[cell]
rowspan = 2 # 2 columnas se fusionan en esta celda
[text]
pos = 3,top 25% # 3 mm desde la izquierda y a 1/4 de la altura completa desde la parte superior
font = height 2
# A continuación, puede ver un ejemplo de una expresión de texto, donde:
# puntos: funcionan como operadores para fusionar varios textos en un solo texto
# @elev: objeto que se será necesario para ejecutar
# un servicio (una etiqueta de una ventana gráfica en la página)
# "steel" (acero): el primer argumento de la lista siempre
# determina el tipo de servicio (aquí: peso de acero).
# El formato (inscripción/número) de los siguientes argumentos depende
# estrictamente del tipo de servicio.
# NOTA:
# Si se utiliza la subexpresión @elev(...), se puede producir un error. En tal caso, la expresión completa
# falla y, por ello, se obtiene una cadena vacía, y no
# "Ribbed steel = kg" (barras corrugadas = kg) o "Ribbed steel = 0kg" (barras corrugadas = 0 kg)
text = " Ribbed steel = " . @elev("steel","kg","L") . "kg"
[text]
pos = 50%,top 25%
font = height 2
text = "Concrete = " . @elev("concrete","m^3") . "m3"
[text]
pos = 3,bottom 25%
font = height 2
text = "Plain steel = " . @elev("steel","kg","T") . "kg"
[text]
pos = 50%,bottom 25%
font = height 2
text = "Formwork = " . @elev("formwork","m^2") . "m2"
[row]
row = 5
[cell]
rowspan = 3
[cell]
rowspan = 3
[text]
pos = 3,bottom 25%
font = height 5
text = "Section " . @elev("section","cm","x")
[row]
row = 9
[cell]
[text]
pos = 3,top 25%
font = height 2
text = "Lower cover " . @elev("cover","cm","B") . "cm"
[text]
pos = 3,bottom 25%
font = height 2
text = "Lateral cover " . @elev("cover","cm","L") . "cm"
[text]
pos = right 25,50%
font = height 5
text = ""
[row]
row = 9
[cell]
[text]
pos = 3,top 25%
font = height 2
text = "Elevation scale " . @elev("scale","m/m","/")
[text]
pos = 3,bottom 25%
font = height 2
text = "Section scale " . @sec1("scale","m/m","/")
[text]
pos = right 25,50%
font = height 4, aspect 0.7
text = "Page"
[end]
Conclusiones:
Las palabras clave se utilizan siempre en inglés. La misma regla se aplica a los servicios ("scale", "steel", "section", etc.). En ambos casos, el programa no distingue entre mayúsculas y minúsculas. Es posible utilizar abreviaturas en las palabras clave; por ejemplo, "Pos", que se refiere a "posición".
Cada página de una presentación tiene siempre un tamaño. Esto no significa que una página solo se pueda utilizar para el formato de papel determinado. El módulo de dibujo aumentará o reducirá la página de presentación en proporción a la configuración actual del dispositivo de impresión (impresora/plóter). Sin embargo, si crea una presentación que se va a utilizar con diferentes formatos de papel, se recomienda definirla para el formato de papel más pequeño posible, pero viable.
Una presentación tiene una estructura jerárquica, basada en la dependencia entre elementos principales y secundarios. La posición y el tamaño de un elemento secundario siempre se expresan en relación al elemento principal. La posición estándar de un elemento secundario (o el borde inferior izquierdo de elemento secundario) se establece con respecto al lado izquierdo de la página y la parte inferior del elemento principal, a menos que el comando pertinente indique lo contrario; por ejemplo, "pos = right 3, 50%" (posición = derecha 3, 50%). Al determinar la posición y el tamaño de un elemento secundario, puede utilizar números absolutos (interpretados como milímetros) o porcentajes del tamaño del elemento principal en la dirección correspondiente (la selección de una de estas opciones es importante en caso de modificación del formato de papel).
Los objetos se pueden dividir en los que tienen cotas (representados como formas rectangulares) y los que no las tienen (actualmente, solo hay uno: el texto). Para acortar, se pueden denominar objetos 1D y objetos 2D. En el caso de elemento principales que tienen ambos tipos de objetos secundarios, primero se deben especificar los elementos sin cotas y, a continuación, los objetos espaciales.
[page], [area] y [cell] pueden contener ambos tipos de objetos, mientras que [view] solo puede contener objetos 1D. Obviamente, las celdas [cell] pertenecen exclusivamente a las filas de tabla, mientras que las páginas [page] pertenecen exclusivamente a una presentación [layout].
Los atributos (posición, tamaño, etc.) se asignan a los objetos mediante los comandos relevantes que se escriben, entre corchetes [...], directamente después de la palabra clave que inicia la definición de un objeto.
Se puede asignar el atributo de orientación a una tabla [table]. Esta acción se realiza mediante el comando: "orientation = ...". En la configuración estándar, las tablas "se mantienen", es decir, el programa acepta el comando por defecto "orientation = top" (orientación = arriba). Si desea, por ejemplo, situar una tabla a lo largo del borde derecho de la página, debe escribir "orientation = left" (orientación = izquierda).
El ejemplo anterior no ilustra las posibilidades de definición de áreas [area]. Un área tiene los atributos de posición y tamaño. Se utiliza para organizar otros objetos en un dibujo. Puede tener consecuencias para la modificación del formato de página, pero solo en el caso de que una presentación contenga fórmulas "fixed = ...". Las áreas pueden utilizarse en situaciones excepcionales. Por supuesto, son invisibles en los dibujos proyectados.
La sintaxis presentada es una sintaxis relativamente "a prueba de errores", pero debe prestar especial atención al hecho de que la descripción de una tabla [table] o un área [area] siempre termina con [end].
No es necesario especificar las celdas de tabla vacías si finalizan una fila descrita y su tamaño es 1x1.
El tipo de letra estándar en las celdas de la tabla coincide con la siguiente descripción: "font = height 3, align left middle, angle 0" (fuente = altura 3, alineación centrada a la izquierda, ángulo 0). La posición de la fuente estándar se define mediante "pos = 3, 50%".
Tipos de dibujos
Se supone que las presentaciones de plóter no deben contener información detallada sobre el contenido de los dibujos que llenan las ventanas gráficas. Si contienen dicha información, esta debe minimizarse y ser transparente para el módulo de dibujo, que nunca utiliza este tipo de información. Esta información se introduce a menudo en forma de comando "type = ..." (tipo = ...) dirigido a una ventana gráfica. La información la utilizan módulos de Robot que son clientes del módulo de dibujo y la activan mediante un archivo por lotes. Los módulos pueden leer una presentación y, gracias a la información de tipo, pueden obtener orientación sobre los requisitos del autor de la presentación. Después de leer una presentación, los módulos de Robot pueden modificarla, normalmente añadiendo más páginas. Esto explica por qué la presentación del ejemplo anterior produce resultados como, por ejemplo, dos páginas para una viga de dos tramos, a pesar de que la presentación contiene una descripción de una sola página.
Tipos de dibujos en módulos de hormigón armado
"beam" (viga) |
viga completa en un alzado |
"beam/bay" (viga/hueco) |
tramo de viga simple |
"beam/bay/section" (viga/hueco/sección) |
sección de tramo de viga |
"beam/steel" (viga/acero) |
lista de acero para toda la viga |
"beam/bay/steel" (viga/hueco/acero) |
lista de acero para un tramo |
"column" (pilar) |
pilar en un alzado |
"column/section" (pilar/sección) |
sección del pilar |
"column/steel" (pilar/acero) |
lista de armaduras de pilar |