|
|
PARTE PRIMERA
MÓDULO UNO
Personalización de menús
UNO.1. INTRODUCCIÓN
Un menú de AutoCAD es una secuencia de órdenes del programa agrupadas en un archivo de texto que podemos visualizar con cualquier editor ASCII. Los archivos de menú, en principio, tienen la extensión .MNU, además existen otros que ya se comentarán más adelante. El archivo de menús que proporciona AutoCAD es el llamado ACAD.MNU, que se encuentra en el directorio \SUPPORT\ del programa. En él residen todas las definiciones necesarias para el funcionamiento de los menús desplegables de AutoCAD, de las barras de herramientas, el menú de pantalla, los botones del ratón (o los del dispositivo señalador correspondiente), menús de imágenes, textos auxiliares de ayuda y algunas teclas rápidas. Este menú es susceptible de ser editado y alterado al gusto, así como también tenemos la posibilidad de crear nuestros propios menús personalizados para AutoCAD.
La mejor forma de aprender cómo funcionan estos menús es recurriendo al ya proporcionado por Autodesk es su programa estrella. Para ello, únicamente debemos abrir ACAD.MNU, como ya se ha dicho con cualquier editor ASCII. Recordemos que se encuentra en el directorio \SUPPORT\ de AutoCAD 14.
UNO.2. EL ARCHIVO ACAD.MNU
Como podemos apreciar, lo primero que nos encontramos en este archivo de menú, es una serie de líneas en las que Autodesk explica la forma de proveer este archivo y que es posible modificarlo a nuestro gusto. Generalmente, este texto estará escrito en inglés. Pero fijémonos en los dos primeros caracteres impresos en cada línea ( //). Estos dos caracteres de barra seguidos indican que lo que viene a continuación es un texto explicativo o una aclaración que no debe ser procesada por AutoCAD. Todo lo que se escriba tras // será ignorado por el programa. Además, también podemos introducir líneas blancas completas para separar sin que AutoCAD interprete nada en ellas. Pero ojo, no deberemos abusar de ello ya que, en estas explicaciones entre secciones no significan nada, pero más adelante, bajo cada sección, pueden significar mucho. Es decir, abusar si se quiere, pero con control de dónde. Deberemos tener también en cuenta que un alto contenido de explicaciones o líneas blancas aumentará el tamaño del fichero y, por lo tanto, el tiempo empleado por AutoCAD para procesarlo.
La primera línea que, podríamos decir, tiene sentido para AutoCAD es la que dice ***MENUGROUP=ACAD. Los caracteres *** son indicativo de categoría sección. Un archivo .MNU de AutoCAD puede tener hasta 31 secciones distintas. Los 31 nombres que adoptan esta serie de secciones son normalizados y no pueden alterarse. Cada uno de ellos hace referencia a un dispositivo y debe ocupar una sola línea en el archivo.
Concretamente, este ***MENUGROUP= especifica el nombre de grupo de archivos de menú, en este caso ACAD (nombre del archivo). Este nombre es una cadena de 32 caracteres como máximo y que no puede contener ni espacios ni signos de puntuación. Su nombre no ha de coincidir obligatoriamente con el nombre del archivo que lo contiene, pero es conveniente para evitar fallos o equivocaciones por nuestra parte.
UNO.2.1. Las secciones ***BUTTONS y ***AUX
Las cuatro secciones siguientes, desde ***BUTTONS1 hasta ***BUTTONS4, definen la actuación de los pulsadores del dispositivo señalador de AutoCAD (ratón, lápiz óptico o digitalizador de tableta). Concretamente ***BUTTONS1 define el modo de actuar de todos los botones del dispositivo. Bajo esta sección se escribe una línea por cada botón configurado, además de la acción que debe realizar al ser pulsado. Esto a partir del segundo pulsador, ya que el primero es reservado para la entrada de datos y elección de órdenes y es el pulsador principal por defecto del sistema. Esto nos lleva a pensar que, en el caso de un dispositivo tipo lápiz digitalizador, el cual sólo posee un pulsador, todas las demás definiciones de botones serán ignoradas.
Lo demás que encontramos bajo esta sección son las referencias a submenús o a alias necesarias para que los pulsadores funcionen. Estas referencias serán explicadas más adelante. Por lo general, esta sección de ***BUTTONS1 en concreto, y también las siguientes secciones ***BUTTONS, no han de ser modificadas por el usuario, ya que puede ser molesto tener que acostumbrarse a un nuevo juego con los pulsadores diferente al actual.
***BUTTONS2 a ***BUTTONS4, por su lado, especifican la acción combinada de ciertas teclas con los pulsadores del dispositivo. Concretamente sus definiciones son las siguientes:
***BUTTONS2 ------> SHIFT + botón
***BUTTONS3 ------> CTRL + botón
***BUTTONS4 ------> CTRL + SHIFT + botón
Las secciones siguientes que nos encontramos en ACAD.MNU son las cuatro que van desde ***AUX1 hasta ***AUX4. El funcionamiento de ellas es exactamente el mismo que el de las secciones ***BUTTONS, pero con las particularidad de que están orientadas a los dispositivos señaladores de entornos Macintosh y estaciones de trabajo.
UNO.2.2. Menús desplegables (secciones ***POP)
A continuación topamos con las secciones ***POP. Las secciones ***POP definen la apariencia de los menús desplegables y de cascada de AutoCAD 14, así como las órdenes que se ejecutarán al hacer clic en cada elemento.
Las secciones ***POP1 a ***POP16 guardan las definiciones de los menús desplegables de la barra de menús de AutoCAD (Archivo, Edición, Ver,... ,?). En el archivo ACAD.MNU están definidas de la ***POP1 a la ***POP10, correspondiéndose con cada uno de los elementos que nos encontramos en dicha barra de menús. Podemos definir, entonces, hasta un máximo de ***POP16. Además de esto, disponemos de otras dos secciones especiales: ***POP0, que define el menú de cursor de referencia a objetos (el que aparece al pulsar el botón central del ratón o SHIFT + botón derecho o CTRL + botón derecho) y ***POP17, que define el menú de cursor contextual de pinzamientos (el aparecido al pulsar botón derecho tras mostrar los puntos de pinzamiento).
Después del indicativo de sección, podemos apreciar otro que comienza con dos asteriscos ( **). El indicativo ** es categoría de submenú, pero en este caso, en la sección ***POP, es lo que se denomina alias. Estos alias definen un nombre para el menú desplegable según su función (no son obligatorios). Después, podremos referenciar dicho menú desplegable por su identificador de sección o por su alias (ya se verá más adelante).
Lo siguiente que vemos, la primera línea tras el indicativo de sección —o tras el de sección y alias si lo hubiera— es el título del menú desplegable. Para este título se permiten 14 caracteres como máximo, pero es conveniente limitar este número debido a la posterior alineación en la barra de menús de AutoCAD. Si esta línea en la que se indica el título no existiera, el menú no funcionaría. Además, ha de ser la inmediatamente posterior al indicativo de sección o alias, esto es, no puede haber un espacio en blanco. Decir también que, este título, no puede contener comandos asignados, esto es, no se puede utilizar como una opción —lo que se explica a continuación—.
Tras el título del desplegable se describen las diferentes opciones que se desplegarán. Como vemos, el título de cada una de ellas, lo que se verá en pantalla, va encerrado entre corchetes, aunque esto no es estrictamente necesario. La diferencia estriba en que la colocación de corchetes permite la introducción de un máximo de 78 caracteres para el primer menú (el situado más a la izquierda). Al desplegarse los nombres aparecen alineados por la izquierda. Si no se escribieran los corchetes, AutoCAD truncaría todos los nombres a 8 caracteres. Por supuesto, la opción más larga determina el ancho de persiana desplegada.
Los títulos de opciones pueden contener una letra subrayada, la cual será el acceso a la opción por medio del teclado. Así mismo, el nombre de título puede contener también una letra subrayada para acceder a él mediante ALT + letra. Este carácter subrayado se consigue anteponiendo el símbolo & (ampersand) al carácter en cuestión. Así:
[&Archivo] Archivo
[&Nuevo] Nuevo
[C&oordenada] Coordenada
[Al&tura] Altura
NOTA: Existía antiguamente otra forma de indicar el subrayado de una de las letras de la cadena, y era especificar cuál de ellas iba a ser la subrayada, de la siguiente forma: [/AArchivo]. Cuidado, porque esto ya no funciona (o no debería).
Debemos tener muy en cuenta no repetir dentro de un mismo menú desplegable la misma letra subrayada para dos opciones diferentes, ya que, en el peor de los casos, sólo funcionaría la opción que antes se encuentre, y eso no nos interesa. Lo mismo ha de comprobarse con los desplegable dentro de un mismo archivo de menú, e incluso en diversos archivos de menú parciales cargados al mismo tiempo.
La sintaxis de estas opciones no es complicada. Veamos un ejemplo:
ID_Line [&Línea]^C^C_line
Lo situado más a la izquierda ( ID_Line) es una simple etiqueta que después utilizaremos para referenciar determinados textos de ayuda rápida que aparecen en la barra o línea de estado (en la sección ***HELPSTRING) y para referenciar teclas rápidas (en la sección ***ACCELERATORS). No es necesario incluir esta etiqueta, pero puede servir como veremos.
Tras ello, y luego de un espacio o tabulador (da igual el número de espacios, todos se interpretan como uno), aparece la definición textual (entre corchetes) que será la visualizada en pantalla ( [&Línea]). Como podemos apreciar, aparecerá con el primer carácter subrayado.
Por último, se escribe la orden en cuestión de AutoCAD que será ejecutada al pinchar con el cursor del dispositivo señalador en la opción correspondiente. Además, suelen incluirse dos caracteres CTRL+C seguidos (^C^C) para anular cualquier orden anterior en proceso no terminada (tecla ESC en Windows), excepto en comandos transparentes.
La orden que se ejecutará podrá indicarse en castellano —si trabajamos con la edición española de AutoCAD— o con su equivalente inglesa antecedida por un guión de subrayado ( _) —tanto si trabajamos con la versión española como con la inglesa—. Téngase en cuenta que lo que se indica tras el último corchete de cierre es lo mismo que si se escribiera en la línea de comandos de AutoCAD. Así, las siguientes órdenes son análogas:
[&Círculo]^C^Ccirculo (sólo versión castellana)
[&Círculo]^C^C_circle (versiones castellana e inglesa)
[&Círculo]^C^Ccircle (sólo versión inglesa)
Existe la posibilidad de presentar alguna de estas opciones, en algún momento, con un tono apagado (gris claro), con el fin de indicar que, en ese momento, la opción no está disponible. Para realizar esto deberemos escribir una tilde ( ~) antes del nombre propio de la opción. Por ejemplo:
[~A&tributos nuevos]
Recordemos que el carácter tilde se corresponde con el código ASCII 126 y se escribe manteniendo pulsada la tecla ALT y tecleando 126 en el teclado numérico.
Este tipo de opciones apagadas han de ir envueltas bajo una condición, es decir, la opción estará apagada siempre y cuando se cumpla determinada condición y si, por el contrario, no se cumple, se encenderá —o viceversa—. Este tipo de ordenes aprenderemos a realizarlas más adelante.
También podemos introducir una línea separadora entre grupos de comandos. Esta línea podemos conseguirla añadiendo una opción de menú que sea exclusivamente dos guiones entre corchetes, esto es [--]. Una igual la podemos observar en ACAD.MNU, en la sección ***POP1, entre la opción [&Abrir] y [&Guardar]. Esta línea, luego en pantalla, tendrá una longitud igual a la opción más larga, siempre que ésta no sobrepase los 39 caracteres.
A veces, es conveniente indicar al lado del nombre de opción, y con un espacio tabulado, la combinación de teclas (si las hubiere) rápidas para acceder a dicha opción de una forma acelerada. Esto se consigue con el mecanismo \t de la forma que vemos a continuación como ejemplo del archivo que estamos estudiando:
[&Nuevo...\tCtrl+N]^C^C_new
De esta manera (sin incluir ningún espacio) se indica que la combinación CTRL+N también accede al cuadro de diálogo Nuevo. Esta combinación de teclas rápidas puede ser definida en la última sección de un archivo de menús, llamada ***ACCELERATORS (explicada más adelante).
NOTA: Apréciese que, en los menús desplegables, a las opciones que abren cuadros de diálogo se les suelen añadir tres puntos suspensivos detrás del nombre. Esto no es obligatorio, pero se ha convertido en un estándar de Windows para discriminar este tipo de opciones de las que se ejecutan nada más seleccionarlas. En AutoCAD tampoco es así exactamente, ya la inmensa mayoría de las órdenes no se ejecutan directamente y piden opciones en la línea de comandos, pero la técnica se utiliza de todos modos para las que abren cuadros de diálogo.
En este archivo ACAD.MNU también podemos apreciar otro juego de caracteres propios de las secciones ***POP de los archivos de menú de AutoCAD. Estos caracteres son: ->, que indica el principio de un menú de cascada y <-, que indica el final del menú de cascada. Es el caso siguiente del ACAD.MNU:
[->Fi<ros para puntos]
[.X].X
[.Y].Y
[.Z].Z
[--]
[.XY].XY
[.XZ].XZ
[<-.YZ].YZ
...
NOTA: Como podemos comprobar en este ejemplo, las órdenes invocadas ( .X, .Y...) no son antecedidas por caracteres ^C. Esto se debe a que son comandos transparentes de AutoCAD y no sería conveniente cerrar el proceso de la orden en curso para ejecutarlos, sino todo lo contrario. Cuidado con los comandos transparentes que son precedidos de apóstrofo (’) y su correspondiente no transparente no lo lleva; hay que utilizarlos tal y como se utilizarían en la línea de comandos.
Los dos caracteres de apertura -> (guión y mayor que) indican el título de una opción de menú que se desplegará en menú de cascada. Al representarse en los menú de AutoCAD, aparecerá una pequeña flecha negra, indicando hacia la derecha, que muestra la presencia de un menú de cascada posterior y que se despliega a partir de ahí. Los dos caracteres de final de menú de cascada <- (guión y menor que) han de colocarse en la última opción de dicho submenú de cascada e indican la vuelta al menú desplegable.
Se pueden anidar (meter unos dentro de otros) diversos menús de cascada, pero con la particularidad de que, al final, deberán aparecer tanto caracteres <- como niveles de anidamiento se hayan producido. Veamos otro ejemplo del archivo por defecto de menús de AutoCAD:
[->Ay&udas al dibujo]
[&Revisar]^C^C_audit
[R&ecuperar]^C^C_recover
[--]
[->L&impiar]^C^C_purge
[&Todo]^C^C_purge _a
[--]
[&Capas]^C^C_purge _la
[Tipos &línea]^C^C_purge _lt
[&Estilos de texto]^C^C_purge _st
[Estilos de &acotación]^C^C_purge _d
[Estilos línea &múltiple]^C^C_purge _m
[&Bloques]^C^C_purge _b
[<-<-&Formas]^C^C_purge _sh
...
Como podemos apreciar, al existir un doble anidamiento, hemos de cerrarlo al final con dos grupos de caracteres de cierre (<-<-). En conclusión, deberá haber tantos <- como -> haya. Además conviene terminar cualquier menú o submenú con una línea en blanco, de esta forma, cualquier menú que se referencie (ya lo veremos) se superpondrá totalmente al anterior.
NOTA: Nótese que, a partir de la siguiente línea al segundo anidamiento, cada comando _purge está separado de su parámetro u opción (_a, _lt, _m...) por un espacio blanco. Como ya se dijo, escribir las órdenes aquí es como hacerlo en la línea de comandos, y en ella, escribiríamos el comando, pulsaríamos INTRO (= Barra Espaciadora o carácter espacio) y escribiríamos la abreviatura de la opción correspondiente. Tras esto, volveríamos a pulsar INTRO. Este último INTRO se corresponde con el último carácter de retorno de carro de cada línea, es decir, al acabar de escribir cada una de las líneas hay que pulsar ENTER (también en la última del archivo si fuera una instrucción u orden).
En conclusión, podríamos decir que las diversas sintaxis que se inscriben bajo esta sección se pueden generalizar como las que siguen:
etiqueta [nombre_del_desplegable]
etiqueta [opción_de_menú]^C^Corden_de_AutoCAD
etiqueta [->entrada_a_menú_de_cascada]
etiqueta [<-salida_de_menú_de_cascada]
[--]
UNO.2.3. Las barras de herramientas (la sección ***TOOLBARS)
La sección ***TOOLBARS describe el aspecto y función de todas las barras de herramientas incluidas en ACAD.MNU. Nosotros podremos modificarlas o crear nuevas barras, ya sea dentro de este archivo de menús o dentro de uno propio. Cada barra de herramientas se define como un submenú de la sección ***TOOLBARS, es decir, con el indicativo de submenú (**).
Es posible especificar cinco tipos distintos de elementos en la creación de barras de herramientas. La sintaxis general de dichos tipos es que sigue (lo indicado en letra itálica se corresponde con variables que se sustituirán por valores o palabras claves):
etiqueta [_Toolbar("nombre_barra", _orient, _visible, valx, valy, filas)]
etiqueta [_Button("nombre_botón", id_pequeño, id_grande)]macro
etiqueta [_Flyout("nombre_botón_desplegable", id_pequeño, id_grande,
_icono, alias)]macro
etiqueta [_Control(_elemento)]
[--]
La etiqueta realiza la misma función explicada en las secciones ***POP de menús desplegables, es decir, es un identificador para referenciar pequeños textos de ayuda que aparecen en la línea de estado de AutoCAD y que se definen en los archivos de menús en la sección ***HELPSTRINGS, que veremos posteriormente. También se utiliza en la sección ***ACCELERATORS. Esta etiqueta de referencia puede incluirse o no.
Tras la etiqueta aparece el tipo de elemento, con sus modificadores o parámetros entre paréntesis, entre corchetes. Vamos a explicar cada uno de ellos por separado y en el orden indicado.
El primero, _Toolbar, establece las características de la definición de barra de herramientas. Sus opciones tienen el siguiente significado:
· "nombre_barra". Cadena alfanumérica que define el nombre de la barra de herramientas. Se permiten espacios y caracteres de guión (-) y guión de subrayado (_) como únicos símbolos de puntuación. Debe ir encerrada entre comillas dobles ("").
· _orient. Es una palabra clave de orientación. Puede ser _Floating, _Top, _Bottom, _Left o _Right. Indica dónde aparece la barra de herramientas al arrancar AutoCAD: flotando sobre el área de dibujo, en la parte superior, en la inferior, a la izquierda o a la derecha. Aunque todo depende de la siguiente opción. Puede ser escrito en mayúsculas o minúsculas.
· _visible. Debe ser una palabra clave de visibilidad. Puede ser _Show o _Hide, según se quiera visible u oculta. Mayúsculas o minúsculas.
· valx. Es un valor numérico que especifica la coordenada X (en pixeles) desde el lado izquierdo de la pantalla hasta el lado izquierdo de la barra de herramientas.
· valy. es otro valor numérico que indica la coordenada Y (en pixeles) desde el lado superior de la pantalla hasta la parte superior de la barra.
· filas. Un valor que indica el número de filas de la barra de herramientas.
Unos ejemplo de ACAD.MNU son los siguientes:
ID_TbDimensi [_Toolbar("Acotar", _Floating, _Hide, 100, 130, 1)]
ID_TbDraw [_Toolbar("Dibujo", _Left, _Show, 0, 0, 1)]
ID_TbModifII [_Toolbar("Modificar II", _Floating, _Hide, 100, 270, 1)]
ID_TbModify [_Toolbar("Modificar", _Left, _Show, 1, 0, 1)]
NOTA : No olvidar los espacios tras las comas.
El segundo elemento es _Button. Éste define un botón de la barra de herramientas. Sus opciones tienen el significado siguiente:
· "nombre_botón". Es una cadena alfanumérica que define el nombre del botón; se permiten el guión (-) y el guión de subrayado (_) como únicos caracteres de puntuación. Esta cadena es la que se muestra como pista o tip amarillo cuando el cursor se sitúa encima del botón. Entre comillas.
· id_pequeño. Es una cadena alfanumérica que define el recurso de imagen pequeña (mapa de bits de 16 ´ 15), esto es, cuál es el icono que se representará en el botón. Podemos crear iconos nuevos en formato .BMP y referenciarlo, pero esto ya lo veremos más adelante, desde el propio AutoCAD. La cadena en cuestión puede contener los caracteres – y _.
· id_grande. Cadena que define el recurso de imagen grande (24 ´ 22). Por lo demás, igual al anterior.
· macro. es la macroinstrucción o, instrucción simple, que ejecuta los comandos, o el comando, en cuestión de AutoCAD asignada al botón.
Los ejemplos siguientes son definiciones de botones en ACAD.MNU:
ID_Line [_Button("Línea", ICON_16_LINE, ICON_24_LINE)]^C^C_line
ID_Arc [_Button("Arco", ICON_16_ARC3PT, ICON_24_ARC3PT)]^C^C_arc
ID_Image [_Button("Imagen", ICON_16_IMAGE, ICON_24_IMAGE)]^C^C_image
ID_Xref [_Button("RefX", ICON_16_XREATT, ICON_24_XREATT)]^C^C_xref
NOTA : No olvidar los espacios tras las comas.
El tercer elemento que vamos a explicar es _Flyout, que define un botón desplegable en una barra de herramientas. Las opciones y su significado son las que siguen:
· "nombre_botón_desplegable". Cadena alfanumérica que define el nombre del botón desplegable; puede contener como únicos caracteres de puntuación el guión normal (-) y el guión de subrayado (_). Este nombre es el que aparece como pista o tip amarillo al situar el cursor encima del botón. Entre comillas.
· id_pequeño. Es una cadena alfanumérica que define el recurso de imagen pequeña (mapa de bits de 16 ´ 15), esto es, cuál es el icono que se representará en el botón. Podemos crear iconos nuevos en formato .BMP y referenciarlo, pero esto ya lo veremos más adelante, desde el propio AutoCAD. La cadena en cuestión puede contener los caracteres – y _.
· id_grande. Cadena que define el recurso de imagen grande (24 ´ 22). Por lo demás, igual al anterior.
· _icono. Debe ser una palabra clave que controla si en el botón principal (el que siempre está a la vista) debe visualizarse el icono propio o el último seleccionado. Acepta sólo _OwnIcon (icono propio) u _OtherIcon (otro icono), ya sea en mayúsculas o minúsculas.
· alias. Hace referencia a la barra de herramientas que debe mostrarse tras el desplegado. El alias referencia a un submenú de barra de herramientas definido con la sintaxis estándar **nombre_submenú. Este submenú, evidentemente, puede ser uno de AutoCAD o uno propio creado por el usuario. El nombre del alias estará formado por el nombre del grupo de menús, seguido de un punto y del propio nombre del submenú. Por ejemplo, ACAD.TB_ZOOM.
· macro. Cadena de comando. No es imprescindible si en el submenú referenciado están todos los botones definidos. De todas formas, aún así, puede interesar ejecutar uno o varios comandos.
Ejemplos del tipo _Flyout son (de ACAD.MNU):
ID_TbZoom [_Flyout("Zoom", ICON_16_ZOOM, ICON_24_ZOOM, _OtherIcon, ACAD.TB_ZOOM)]
ID_TbInsert [_Flyout("Bloque", ICON_16_BLOCK, ICON_24_BLOCK, _OtherIcon, ACAD.TB_INSERT)]
ID_TbUcs [_Flyout("SCP", ICON_16_UCS, ICON_24_UCS, _OtherIcon, ACAD.TB_UCS)]
ID_TbInquiry [_Flyout("Consultar", ICON_16_LIST, ICON_24_LIST, _OtherIcon, ACAD.TB_INQUIRY)]
NOTA : No olvidar los espacios tras las comas.
Como cuarto elemento en la creación de barras de herramientas tenemos _Control. _Control define un elemento de control especial. El único parámetro modificador es:
· _elemento. Puede tener tres valores, ya sea en mayúscula o en minúscula: _Layer, _Linetype o _Color.
_ Layer especifica el elemento de control de capas. Este elemento es una lista desplegable desde la cual se controlan las capas actuales del dibujo. _Linetype, por su lado, especifica el elemento de control de tipo de línea, que es una lista desplegable que controla los tipos de línea. Y _Color es el elemento de control de color. Despliega una lista desde la que se controlan los colores de los objetos (ejecuta el comando de AutoCAD DDCOLOR).
Estos tres elementos son los típicos que aparecen en la barra de herramientas de Propiedades de objetos. Sus definiciones en ACAD.MNU son las siguientes:
ID_CtrlLayer [_Control(_Layer)]
ID_CtrlColor [_Control(_Color)]
ID_CtrlLinet [_Control(_Linetype)]
El quinto y último elemento es [--]. Al igual que en los menús desplegables, lo que hace este elemento es separar grupos, en este caso, de botones. Ahora, en lugar de ser una línea divisoria, es un pequeño intersticio o espacio vacío entre botones de iconos —ya sea en horizontal o vertical, dependiendo de la posición que adopte la barra de herramientas—.
UNO.2.4. La sección ***IMAGE de menús de imágenes
Los menús de imágenes de AutoCAD son aquellos que se nos presentan en una ventana en la que podemos elegir una imagen, o icono, o su correspondiente nombre. Un ejemplo, de los tres que incluye AutoCAD en ACAD.MNU, es el cuadro de objetos 3D predefinidos (cubo, cono, cuña, etc.) y que podemos abrir bajo Dibujo>Superficies>Superficies 3D...
Las especificaciones necesarias para la creación de este tipo de menús se encuentran recogidas en la sección ***IMAGE. La manera general de crear este tipo de menús es similar a la que se ha estudiado en la sección de desplegables ***POP, la diferencia reside en la presentación de las opciones, ya que en estos menús el proceso que realizará una opción se representa mediante un elemento gráfico. Dicho elemento no es otro que un archivo de foto de AutoCAD o un elemento de una fototeca (la creación de bibliotecas de fotos se explica en el MÓDULO NUEVE de este curso).
Estos menús de iconos son visualizados en una ventana dividida en dos partes en la que se muestra, por un lado y a la izquierda, una lista de los términos correspondientes a los iconos y, por otro lado y a la derecha, los iconos propiamente dichos. Esta parte derecha la componen cinco filas de cuatro iconos cada una. Evidentemente, si incluimos más iconos tenemos la posibilidad de visualizar otras ventanas más navegando con los botones creados a tal efecto.
Veamos un ejemplo del ACAD.MNU:
[acad(Box3d,Prisma rectang.)]^C^Cai_box
El texto que se presenta entre corchetes ( []) corresponde a la llamada a la foto —en este caso dentro de una fototeca— que, además, permite incluir una cadena que será la que se presente el la zona izquierda del menú de imagen. Lo que sigue a todo ello, como sabemos ya, es la orden o comando de AutoCAD que debe ejecutarse. Así, las opciones de sintaxis, en cuanto al texto entre corchetes, que podemos utilizar bajo esta sección y su resultado en pantalla son las siguientes:
Sintaxis ------------ Área de iconos ------------ Área de texto
[nombre_de_foto] ------- foto ------------------- nombre del fichero
[nombre_de_foto,texto] - foto ------------------- texto
[fototeca(foto)] --------- foto ------------------- nombre de la foto
[fototeca(foto,texto)] - foto ------------------- texto
[espacio_blanco] --------- vacío ------------------ espacio blanco
[texto] ------------------- vacío ------------------ texto
El caso anterior expuesto se correspondería con la cuarta sintaxis de la lista.
El título del menú será visualizado en la barra de título de la ventana de menú con un máximo de 40 caracteres. Este título se corresponde con la primera línea de la sección o submenú (entre corchetes) tras el propio indicador de sección o submenú. Ejemplo:
**image_poly
[Definición de variables Spline]
[acad(pm-quad,Malla cuadrática)]'_surftype 5
[acad(pm-cubic,Malla cúbica)]'_surftype 6
[acad(pm-bezr,Malla Bézier)]'_surftype 8
[acad(pl-quad,Polilínea cuadrática)]'_splinetype 5
[acad(pl-cubic,Polilínea cúbica)]'_splinetype 6
El texto [Definición de variable Spline] es el título de cuadro de menú.
UNO.2.5. El arcaico menú de pantalla de AutoCAD bajo la sección ***SCREEN
En los "tiempos heroicos" de AutoCAD, el único acceso a los comandos del programa, aparte de la línea de comandos, era un menú formado por una columna de órdenes, que se iban superponiendo mientras las ejecutábamos, y sito en la parte derecha del área de dibujo del programa. Hoy en día, para nostálgicos de aquellas versiones, seguimos disponiendo de una parte configurable en archivos de menú con el fin de utilizar éste de pantalla. Por defecto, al correr AutoCAD 14, no se muestra dicho menú, sin embargo, podemos visualizarlo desde Herr.>Preferencias..., en la pestaña Visual., activando la opción Mostrar menú de pantalla de AutoCAD en la ventana de dibujo.
La sección ***SCREEN, podríamos decir que es la opción "por defecto" en un archivo de menús. Esto significa que, si al principio de un fichero .MNU no aparece un indicativo de sección, todas las opciones sin especificador de sección (hasta que aparezca uno) son asignadas al identificador de pantalla ***SCREEN.
La sintaxis es muy parecida a la de los menús desplegables, obviando la etiqueta que aquí no se puede utilizar:
[ texto]comando
El primer submenú que se presenta bajo el identificador de sección es el que aparecerá primero al cargar el archivo de menú. Obviamente, éste ha de ser el que contenga las referencias más generales, si es que hay otros submenús. Así, el primer submenú que incorpora ACAD.MNU es:
**SCREEN
[AutoCAD ]^C^C^P(ai_rootmenus) ^P
[* * * * ]$S=ACAD.OSNAP
[ARCHIVO ]$S=ACAD.01_FILE
[EDICIÓN ]$S=ACAD.02_EDIT
[VER 1 ]$S=ACAD.03_VIEW1
[VER 2 ]$S=ACAD.04_VIEW2
[INSERTAR]$S=ACAD.05_INSERT
[FORMATO ]$S=ACAD.06_FORMAT
[HERRAM 1]$S=ACAD.07_TOOLS1
[HERRAM 2]$S=ACAD.08_TOOLS2
[DIBUJO 1]$S=ACAD.09_DRAW1
[DIBUJO 2]$S=ACAD.10_DRAW2
[ACOTAR ]$S=ACAD.11_DIMENSION
[MODIF 1 ]$S=ACAD.12_MODIFY1
[MODIF 2 ]$S=ACAD.13_MODIFY2
[AYUDA ]$S=ACAD.14_HELP
Desde él se hacen referencia a los otros submenús incluidos (veremos esto al hablar de submenús). Los demás submenús mantienen la sintaxis indicada, por ejemplo:
[Nuevo ]^C^C_new
[Abrir ]^C^C_open
[Guardar ]^C^C_qsave
[Guarcomo]^C^C_saveas
[Exportar]^C^C_export
[Config ]^C^C_config
...
El texto entre corchetes es el que se presentará en pantalla. Este texto está limitado, bajo esta sección de menú, a ocho caracteres.
Como hemos dicho, los comandos se colocan en formato de columna. El número de líneas permitidas en dicha columna dependerá del monitor de vídeo y, evidentemente, de la tarjeta gráfica instalada en el equipo. De esta forma, el fichero suministrado por Autodesk con AutoCAD prevé un máximo de 26 líneas. Cuando no se puedan introducir todas las opciones necesitadas en una sola columna, se introducen referencias a diferentes páginas del mismo submenú para poder visualizar todo.
La siguiente tabla muestra una relación entre las tarjetas de vídeo y el número de líneas máximo permitido:
Tarjeta ----------> Líneas
CGA color --------> 21
CGA monocromo --> 22
EGA -------------> 21
VGA -------------> 26
Los sistemas SuperVGA y otros de alta resolución permite mayor número de líneas en pantalla.
Un menú de pantalla se despliega sobre el anterior visualizado. En principio, lo hace desde la primera línea útil, superponiendo sus opciones a todas las anteriores. Si deseamos que esta superposición comience desde otra línea, para dejar opciones generales al descubierto por ejemplo, únicamente deberemos indicar tras el submenú, y luego de un espacio en blanco, el número de línea desde el que queremos que empiece a desplegarse. Este es el caso de todos los submenús incluidos en ACAD.MNU (excepto el primero) que comienzan su visualización en la línea 3. Veamos algún ejemplo:
**ASSIST 3
**06_FORMAT 3
**101_SOLIDS 3
**AREA 3
De esta forma se impide sobreescribir las dos primeras líneas del menú general: AutoCAD y * * * *, que hacen referencia al propio submenú principal o general y al submenú de modos de referencia a objetos, respectivamente.
Repasando el archivo ACAD.MNU, podemos apreciar también unos grandes espacios en blanco entre un submenú y otro. El objeto de este espaciado se corresponde con la necesidad de tapar las opciones de un submenú anterior cuando otro, más corto, se superpone. Como norma general, se ampliarán los submenús con tantas líneas blancas como sean necesarias para completar el cómputo total de líneas. De esta manera, nos aseguramos de que ninguna opción de ningún submenú permanezca visible al llamar a otro submenú.
Apreciamos también en este archivo, que todos los submenús se completan con líneas blancas, pero no hasta la última (26) sino hasta la antepenúltima (24). La misión de esta táctica consiste en que las dos últimas opciones del submenú general ( ASISTIR y ÚLTIMO) queden, también, siempre visibles.
De la misma forma, se hace conveniente rellenar con espacios blancos todos los nombres de opciones dentro de los corchetes has ocho caracteres. Así evitamos la desagradable visión de comandos "montados" sobre otros, y todas las opciones taparán a las anteriores perfectamente:
[VER 1 ]
[AYUDA ]
[DESDE ]
[Redibuj ]
[RefX ]
Por último, decir que toda sección ***SCREEN ha de terminar con un indicador de submenú **ENDSCREEN para que todo funcione correctamente y el último submenú real no tenga problemas en saber dónde termina.
UNO.2.6. Configuración del tablero digitalizador bajo las secciones ***TABLET
Bajo las cuatro secciones posibles del menú de tableta, ***TABLET1 a ***TABLET4, se encuentran las definiciones necesarias para el funcionamiento de la tableta o tablero digitalizador.
Las casillas o celdas de la plantilla suministrada con AutoCAD 14 deberán coincidir con las especificaciones de estas secciones. Esta plantilla la podemos encontrar, preparada para imprimir o trazar a escala natural y pegar o fijar a la tableta, bajo el nombre de archivo TABLET14.DWG en el directorio \SAMPLE\ de AutoCAD 14. Aún así, podemos modificar los términos de funcionamiento del tablero.
NOTA: Modificar estas secciones, así como las que hacían referencia a los pulsadores del dispositivo señalador, no es buena idea, ya que cambiaría la forma y el hábito adquirido de trabajar con AutoCAD. En el caso de la sección que nos ocupa, habría que variar hasta los iconos de sitio en la plantilla —por ello nos la entregan como fichero de dibujo— o modificarla por completo. No tiene mucho sentido, a no ser que sean cambios justificados y que reviertan comodidad y productividad en el dibujo y diseño.
En las áreas del tablero digitalizador, la configuración de cada una de ellas (comando TABLERO de AutoCAD, opción CFG) determina el número de casillas en que se encuentra dividida (número de filas ´ número de columnas). Internamente, estas casillas se ordenan de izquierda a derecha y de arriba abajo. El orden en que se encuentran las opciones en las secciones ***TABLET en el archivo de menú es lo que determina a qué casilla concreta del tablero se asocia. Basta con pinchar en dicha casilla para que se ejecute el contenido de la línea del archivo de menú asociado.
Bajo ***TABLET1 se encuentran las definiciones del primer menú de tableta, esto es, el correspondiente al área superior de la plantilla; concretamente englobado por 25 columnas (1 a 25) y 9 filas (A a I). Bajo ***TABLET2, las definiciones del menú segundo, el del extremo izquierdo de 11 columnas (1 a 11) y 9 filas (J a R). Bajo ***TABLET3, las de menú tercero; las que se corresponden con 3 columnas (23 a 25) y 9 filas (J a R). Lo que queda en la plantilla corresponde al área gráfica de dibujo.
Por lo demás, decir que su funcionamiento es igual al de los demás menús, con la particularidad de que, en éste, los textos entre corchetes no tienen ningún efecto visual en pantalla, por lo que sólo se escriben —sin ser necesario— como referencias o aclaraciones de posición.
Hoy día, con el uso del ratón y la versatilidad de los menús desplegables y la barras de herramientas, el uso de las tabletas digitalizadoras se reduce escasamente a la digitalización o al "calcado" de planos y poco más.
UNO.2.7. ***HELPSTRINGS; las cadenas de ayuda
Si seguimos examinando detenidamente ACAD.MNU, nos encontramos, casi al final del mismo, con la sección ***HELPSTRINGS. Esta sección es la encargada de recoger todos aquellos pequeños textos de ayuda a comandos que son identificados por su etiqueta ID. Esta línea de ayuda es la que se presenta en la línea de estado de AutoCAD cuando nos posicionamos con el cursor sobre un botón de barra de herramientas o sobre una opción de menú desplegable. La etiqueta ID es la que se ha comentado al hablar de la sección ***POP y de la sección ***TOOLBARS. Estas secciones, además de ***ACCELERATORS, ***SCREEN y ***TABLET, son las únicas donde tienen sentido las etiquetas identificadoras.
La sintaxis bajo la sección ***HELPSTRINGS es asaz sencilla:
etiqueta [texto_de_ayuda]
Así, los siguientes ejemplos son lo suficientemente demostrativos:
ID_Line [Crea segmentos de línea recta: linea]
ID_Pan [Desplaza la vista del dibujo en la ventana gráfica actual: encuadre]
ID_Replay [Visualiza una imagen BMP, TGA o TIFF: reproducir]
ID_Rotate [Desplaza los objetos alrededor de un punto base: gira]
La etiqueta ID ha de coincidir, evidentemente, con la que señalemos antes de los comandos correspondientes tanto en menús desplegables como en barras de herramientas. De este modo, la etiqueta ID_Line (helpstring de la orden de dibujo de líneas simples) del primer ejemplo, coincide exactamente con las etiquetas que se corresponden con la orden LINEA de la sección ***POP: ID_Line [&Línea]^C^C_line y con el botón análogo de la sección ***TOOLBARS: ID_Line [_Button("Línea", ICON_16_LINE, ICON_24_LINE)]^C^C_line.
Como vemos en estos casos del archivo de menús por defecto de AutoCAD, la cadena de ayuda está formada por un pequeño texto aclaratorio de la función del comando, además del correspondiente comando textual que habríamos de introducir por teclado para obtener el mismo efecto. Nosotros podemos escribir el texto que deseemos, siempre teniendo en cuenta no sobrepasar el ancho de la pantalla. Además, decir también que no es obligatorio que las etiquetas comiencen por ID_, pero que aclaran mucho la interpretación general de un archivo de menús si así lo hacen, ya que podríamos confundir comandos con líneas y etcétera.
UNO.2.8. Teclas rápidas bajo ***ACCELERATORS.
Bajo esta última sección del ACAD.MNU se encuentra la definición de teclas rápidas o aceleradoras Windows. El uso de estas combinaciones —o no— de teclas proporcionan al usuario un rápido acceso a los comandos más utilizados de AutoCAD 14.
Como sabemos, por ejemplo, la combinación CTRL+A produce los mismos efectos que el comando ABRE en la línea de comandos. También podemos acceder a este comando mediante el menú desplegable Archivo>Abrir... o a través del botón correspondiente en la barra de herramientas Estándar o en la tableta (casilla T-25).
La manera en que está especificada esta combinación de teclas rápidas en la sección ***ACCELERATORS del archivo de menús ACAD.MNU es la siguiente:
ID_Open [CONTROL+"A"]
Hay dos modos de definir teclas aceleradoras. La primera consiste en utilizar un identificador de etiqueta ya existente seguido de un título, entre corchetes, formado por uno o varios modificadores (separados mediante el símbolo de adición +) un símbolo + y carácter único o una cadena de tecla virtual especial entre comillas dobles. Es decir, con las siguientes sintaxis:
etiqueta [modif+modif...+"carácter"]
etiqueta [modif+modif...+"tecla_virtual"]
Algunos ejemplos son los siguientes:
ID_Line [CONTROL+"L"]
ID_Circle [CONTROL+SHIFT+"C"]
ID_Cancel ["ESCAPE"]
ID_Ellipse [SHIFT+"F11"]
La segunda forma consiste en utilizar un título con un modificador y una cadena de tecla seguido de una secuencia de comandos. Podemos definir así, combinaciones de teclas que no tienen referencia de etiqueta. Sus sintaxis generales podrían ser las siguientes:
[modif+modif...+"carácter"]^C^Ccomando_de_AutoCAD
[modif+modif...+"tecla_virtual"]^C^Ccomando_de_AutoCAD
Algunos ejemplos:
[CONTROL+"Q"]^C^C_quit
[SHIFT+CONTROL+"HOME"]^C^C_move
["ESCAPE"]^C^C_quit
De esta forma indicamos el comando que queremos que se ejecute tras la pulsación de la combinación de teclas.
Los modificadores aceptados son los que se ven en la tabla siguiente:
Cadena ----------> Descripción
CONTROL ----------> Tecla Control de la mayoría de los teclados
SHIFT ------------> Tecla Mayúsculas, izquierda o derecha
COMMAND ----------> Tecla APPLE de los ordenadores Macintosh
META -------------> Tecla META en teclado UNIX
Y las teclas virtuales especiales son las siguientes:
Cadena ----------> Descripción
F1 ----------------> Tecla F1
F2 ----------------> Tecla F2
F3 ----------------> Tecla F3
F4 ----------------> Tecla F4
F5 ----------------> Tecla F5
F6 ----------------> Tecla F6
F7 ----------------> Tecla F7
F8 ----------------> Tecla F8
F9 ----------------> Tecla F9
F10 ---------------> Tecla F10
F11 ---------------> Tecla F11
F12 ---------------> Tecla F12
HOME --------------> Tecla Inicio
END ---------------> Tecla Fin
INSERT ------------> Tecla Insert
DELETE ------------> Tecla Supr
NUMPAD0 -----------> Tecla 0 del teclado numérico
NUMPAD1 -----------> Tecla 1 del teclado numérico
NUMPAD2 -----------> Tecla 2 del teclado numérico
NUMPAD3 -----------> Tecla 3 del teclado numérico
NUMPAD4 -----------> Tecla 4 del teclado numérico
NUMPAD5 -----------> Tecla 5 del teclado numérico
NUMPAD6 -----------> Tecla 6 del teclado numérico
NUMPAD7 -----------> Tecla 7 del teclado numérico
NUMPAD8 -----------> Tecla 8 del teclado numérico
NUMPAD9 -----------> Tecla 9 del teclado numérico
UP -----------------> Tecla cursor Arriba
DOWN ---------------> Tecla cursor Abajo
LEFT ---------------> Tecla cursor Izquierda
RIGHT --------------> Tecla cursor Derecha
ESCAPE -------------> Tecla Esc
NOTA : Como veremos mucho más adelante, las etiquetas o identificadores ID también sirven para poder cambiar el estado de una opción de menú (activado/desactivado o marcado/no marcado) desde macros de menús o mediante AutoLISP. También para su utilización como argumento en el acceso a archivos de ayuda personalizados (también se verá).
UNO.3. SUBMENÚS
Un submenú, como ya se ha comentado, es aquel que, debajo de una sección, define un nuevo menú o subsección. Estos submenús son identificables por comenzar con dos asteriscos (**) en lugar de tres (***), que era categoría de sección. A este identificador le sigue un nombre que identifica al submenú. Este nombre puede contener hasta 33 caracteres alfanuméricos, además de algunos especiales como $ (símbolo de dólar), - (guión) o _ (guión de subrayado). El identificador debe estar en una sola línea del archivo de menú y puede contener espacios en blanco.
Todas las opciones que se escriban tras el identificador de submenú —hasta el siguiente identificador de submenú o de sección— pertenecen a dicho submenú. Los nombres de submenú habrán de ser únicos; no puede haber dos repetidos. Es posible, sin embargo, dar varios nombres a un mismo submenú.
En el archivo ACAD.MNU podemos identificar muchos submenús como los siguientes:
**SNAP
**INSERT
**TB_INQUIRY
**image_poly
**01_FILE
Todos ellos se encuentran en diferentes secciones de menú y tienen la propiedad de dividir la información en grupos de características homólogas. Así, bajo la sección ***TOOLBARS, cada barra de herramientas definida se encuentra bajo un submenú.
Esto, en principio, no es obligatorio, pero es que la característica más importante de la división en submenús, reside en la posibilidad de hacer referencia a ellos desde cualquier punto del archivo de menús. Esto varía un poco en la secciones ***POP, ***AUX y ***BUTTONS, ya que ellas no admiten submenús; los títulos que comienzan con ** bajo estas secciones no son submenús, sino una especie de nombres mnemotécnicos para su mejor comprensión llamados, como ya se comentó, alias. Sin embargo pueden ser referenciadas, desde la versión 14 de AutoCAD, las propias secciones o, incluso, el nombre de alias.
UNO.3.1. Referencias a submenús
Como hemos apuntado, se puede llamar (activar) a un submenú desde cualquier punto del archivo de menú. La forma de hacerlo responde a la siguientes sintaxis:
$inicial=nombre_grupo_menús.nombre_submenú
Esto es, primero el símbolo de dólar ($) seguido de la inicial del identificador de sección al que pertenece el submenú, el símbolo de igual (=), el nombre del grupo de menús (identificador ***MENUGROUP=), un punto (.) y, por último, el nombre completo del submenú referenciado.
Las iniciales de los identificadores de sección son las siguientes:
Iniciales ----------> Sección
B1 – B4 -----------> ***BUTTONS1 a ***BUTTONS4 (menús de pulsadores)
A1 – A4 -----------> ***AUX1 a ***AUX4 (menús auxiliares)
P0 ----------------> ***POP0 (menú de cursor)
P1 – P16 ----------> ***POP1 a ***POP16 (menús desplegables)
S -----------------> ***SCREEN (menú de pantalla)
I -----------------> ***IMAGE (menús de imágenes)
T1 – T4 -----------> ***TABLET1 a ***TABLET4 (menús de tableta)
Así, si quisiéramos realizar una llamada al submenú **Bloques_Sanitarios situado bajo la sección ***IMAGE de un archivo del menús con nombre de grupo ***MENUGROUP=BLOQUES, escribiríamos lo siguiente:
$I=BLOQUES.Bloques_Sanitarios
Las mayúsculas y minúsculas son indiferentes en todo el archivo .MNU, ya que AutoCAD convierte todo a mayúsculas —excepto contenidos textuales que serán mostrados como tales— al compilar el archivo (se explicará más adelante), pero es conveniente realizar distinciones entre secciones y submenús únicamente para obtener mayor claridad.
NOTA: Antiguamente no era necesario indicar el nombre de grupo en una llamada a un submenú, hoy sí. La razón estriba en que, como ya veremos, AutoCAD 14 puede tener más de un archivo de menú cargado y, al referenciar un submenú, deberemos indicarle en qué archivo de menú de los cargados se encuentra. Si únicamente existiera un menú cargado, no haría falta indicar este nombre de grupo, pero siempre conviene hacerlo por los futuros menús parciales que se puedan cargar; evitando así errores venideros.
Cada vez que se activa un submenú (sólo los de pantalla), AutoCAD guarda en una pila el menú o submenú desde el cual se ha llamado al nuevo. Si se desea salir del nuevo submenú para volver al anterior (proceso muy frecuente), basta introducir en el archivo una llamada sin identificador de submenú. De esta forma, si se encontrara activado un submenú y se produjera una llamada a un nuevo submenú así:
$S=COTAS_HOR
el nuevo submenú queda activado y el anterior se almacena en pila. Si entre las opciones de este nuevo submenú se encuentra una llamada del tipo:
$S=
en el momento en que esa llamada es leída por el programa (al ejecutar la opción en que se encuentre), se abandona el submenú correspondiente mostrándose el anterior.
UNO.3.1.1. Llamadas a los submenús de las distintas secciones
Las referencias a los submenús se realizan de forma muy parecida en cada una de las secciones de un archivo de menú. Lo único que diferencia los procesos son pequeñas variaciones que vamos a comentar ahora.
Cuando se invoca a un submenú que se encuentra bajo la sección ***SCREEN de menú de pantalla, se da lugar a un despliegue en persiana que superpone al menú anterior. Por defecto, este despliegue se realiza desde la primera línea válida del menú, visualizándose los textos de las opciones, uno debajo de otro, en el orden en que fueron escritos. Si se quiere que esto no suceda así —esto ya se comentó— se puede especificar el número de línea donde queremos que empiece, después del identificador de submenú y tras un espacio:
**Ins_Bloq 3
De esta manera, si quisiéramos llamar a este submenú desde otro punto del archivo .MNU, normalmente desde una opción del propio menú de pantalla, podríamos hacer lo siguiente:
[Insertar]$S=BLOQUES.Ins_Bloq
Según este método, y siempre que el nombre de grupo del archivo de menús que contiene dicho submenú tuviera por nombre BLOQUES, al seleccionar (pinchar) la opción Insertar se activaría (se mostraría) el submenú **Ins_Bloq a partir de la tercera línea.
Podemos también realizar varias llamadas que, en el caso del menú de pantalla, habrán de superponerse sin taparse —añadiendo las líneas en blanco pertinentes— y, a la vez, ejecutar un comando:
[MATRIZ:]$S=X $S=ARRAY ^C^C_ARRAY
Las llamadas a submenús en el menú de tablero, secciones ***TABLET, se utilizan de igual modo, pero hay existe una pequeña puntualización que se explica en la sección UNO.4.3.3.
Por su parte, los menús desplegables bajo las secciones ***POP, tienen un tratamiento especial. No se admiten submenús en secciones ***POP, pero se puede hacer referencia a la sección propiamente dicha, de la siguiente forma:
$Pn=*
siendo n el número de la sección ***POP. Un ejemplo puede ser el siguiente:
[Desplegar Menú Herramientas]$P6=*
De esta forma, al seleccionar esta opción, se desplegará el menú correspondiente y se esconderá el actual (si se llama desde otra parte de una sección ***POP).
NOTA: También podemos referenciar el alias de la sección.
Una línea en blanco después de cada submenú anula todas las opciones que puedan quedar del menú anterior. Para que todo menú referenciado anule completamente al anterior es buena costumbre incluir, al final de cada sección o submenú, la citada línea en blanco. Ejemplo:
***MENUGROUP=BLOQUES
***POP1
**Princ
[BLOQUES]
[Mecánica]$P2=*
[Electricidad]$P3=*
[Piping]$P4=*
***POP2
**Meca
[MECÁNICA]
[Tornillo]^C^C_insert Tornillo
[Tuerca]^C^C_insert Tuerca
[Arandela]^C^C_insert Arandela
***POP3
**Elec
[ELECTRICIDAD]
[Trafo]^C^C_insert Trafo
[Diodo]^C^C_insert Diodo
[Conmutador]^C^C_insert Conmut
***POP4
**Pip
[PIPING]
[Válvula]^C^C_insert Valvul
[Soplador]^C^C_insert Soplador
[Tubería]^C^C_insert Tubo
NOTA: Recordar dos cosas ya explicadas. La primera que es conveniente teclear las órdenes en inglés con el carácter de subrayado delante; de esta forma podrá ser interpretado por cualquier versión de AutoCAD cualquiera que sea su idioma. Y la segunda, distinguir secciones de submenús, o caracteres de control, de comandos, etcétera, con mayúsculas y minúsculas a nuestro gusto, por dar mayor claridad y comprensión. Por último, decir que ejemplos como el anterior no son muy utilizados, pero son perfectamente lícitos.
En los menús de imágenes bajo la sección ***IMAGE las referencias a submenús se realizan de la forma siguiente. Para llamar a un submenú de imagen desde otro cualquiera (imagen, desplegable, pantalla...) hay que referenciarlo y después activarlo para que se visualice. Lo más lógico parece ser referenciar un menú de imagen desde un desplegable o un botón de barra de herramientas; de la siguiente manera, por ejemplo:
***MENUGROUP=ROCA
***POP1
**Sanitarios
[Sanitarios de Roca]
[Bloques]$I=ROCA.Bloques $I=ROCA.*
***TOOLBARS
**TB_Sanitarios
[_Button("Bloques", "ICON1.BMP", "ICON2.BMP")]$I=ROCA.Bloques $I=ROCA.*
***IMAGE
**Bloques
[Rocafot(foto-1,Lavabo)]^C^C_insert lavabo
[Rocafot(foto-2,Bañera)]^C^C_insert bañera
[Rocafot(foto-3,Bidé)]^C^C_insert bide
[Rocafot(foto-4,Inodoro)]^C^C_insert inodoro
Bajo las secciones ***BUTTONS (menú de pulsadores) las llamadas a submenús se utilizan de igual modo, teniendo en cuenta, que si llamamos a un alias o una sección que esté bajo ***POP o a un submenú que esté bajo ***IMAGE, habremos de activarlos con los métodos explicados. En estas secciones de ***BUTTONS no se admiten submenús.
Una clara referencia a submenús en el menú de pulsadores lo observamos en el archivo ACAD.MNU (el siguiente ejemplo puede variar en dicho archivo, ya que para el botón derecho se establece una condicional en DIESEL):
***BUTTONS1
;
$P0=*
Como ya hemos comentado, bajo ***BUTTONS1 se establecen las funciones de todos los pulsadores accionados de manera sencilla —comenzando por el segundo; el primero es para aceptar datos y no se puede redefinir—. En este caso del ratón del sistema, el segundo pulsador (botón derecho) realiza un INTRO —carácter punto y coma (;)— y, el tercero (botón central) llama a la sección ***POP0 (con alias **SNAP); menú de cursor de modos de referencia a objetos.
Como vemos, en ***BUTTONS2 y ***BUTTONS3 se hace referencia al mismo submenú en la primera, y única, probablemente, línea; ciertamente, al pulsar SHIFT + botón derecho o CTRL + botón derecho se activa el menú de cursor. ***BUTTONS4, normalmente, estará vacío.
Además, en los menús de pulsadores podemos utilizar la contrabarra para introducir las coordenadas del cursor automáticamente. Por ejemplo:
***BUTTONS2
_line \
La forma de actuar en menús bajo ***AUX es la misma.
UNO.4. CARACTERES ESPECIALES, DE CONTROL Y OTROS MECANISMOS
A parte de todo lo estudiado, existen otro tipo de caracteres especiales, caracteres de control y otros mecanismos de edición de menús que se indican a continuación.
UNO.4.1. Caracteres especiales
En todas las secciones de un archivo de menú podemos incluir diversos caracteres especiales que AutoCAD reconoce como tales. Estos caracteres especiales son:
; ----------> igual a un INTRO o a un espacio blanco
+ ----------> determina la continuidad en otra línea del archivo ASCII de una opción
\ ----------> interrumpe la opción para que el usuario introduzca un dato
_ ----------> antepuesto a un comando en inglés, hace que se admita el comando en cualquier versión idiomática de AutoCAD
<< ----------> ángulos en grados sexagesimales
* ----------> repetición de opciones completas de menú
AutoCAD añade automáticamente a cada opción de menú un espacio en blanco al final. Esto lo realiza para aceptar la orden como si hubiera sido introducida por teclado. Los espacios en blancos pueden ser sustituidos por caracteres punto y coma ( ;), siendo a veces necesaria esta elección. Por ejemplo, la siguiente opción de menú escribe un texto en pantalla:
[ACABADO]^C^C_text;80,20;3.5;0;Exento de rebabas;;;en cara vista;
El texto en cuestión comienza con el comando _text. Tras él, escribimos un ; para aceptar el comando (=INTRO), luego las coordenadas del punto de inicio y otro ; para entrarlas. Después, la altura del texto y la rotación con sus correspondientes ; detrás de cada uno para aceptar. Más tarde, el texto en cuestión. Los tres caracteres ; que le siguen son tres INTROS para, primero, entrar el texto; segundo, repetir la orden TEXTO y, tercero, situar el punto de inicio bajo el anterior (formato párrafo alineado a la izquierda). Introducimos el final del texto y, luego, un ; para acabar la orden.
De esta forma, vemos que se hace necesario la introducción de un carácter ; al final de la opción, ya que, al estar escribiendo texto, AutoCAD interpretaría un espacio en blanco como lo que es: un espacio en blanco. Lo mismo ocurre con los tres ; seguidos.
NOTA: Como vemos, estos caracteres nos permiten crear verdaderas macroinstrucciones en opciones de menú. Es muy importante conocer bien las órdenes de AutoCAD y qué es exactamente lo que solicita el programa, así como el orden en el cual lo solicita, en cada momento. Por supuesto, es necesario dominar los comandos de teclado del programa, esto es, aquellos que sólo pueden ser introducidos por teclado o aquellos que, teniendo varios formatos, tienen un modo de teclado en el que se nos solicitan todos los datos en la línea de comandos.
Los caracteres ; del ejemplo anterior podían haber sido sustituidos por espacios blancos (excepto el último y los tres seguidos). Lo que ocurre es que se suelen alternar ambos métodos para dar mayor claridad a la macro.
Por su parte, el carácter +, se utiliza para separar macros u opciones de menú complicadas en varias líneas. Así, el ejemplo anterior podría haberse escrito:
[ACABADO]^C^C_text;80,20;3.5;0;+
Exento de rebabas;+
;;en cara vista;
El carácter \ detiene la ejecución de la macro y solicita un dato al usuario en un momento dado. Si en el ejemplo anterior queremos dejar a elección del usuario la entrada de un valor para las coordenadas de inicio del texto y otro para el ángulo de rotación, la macro habría quedado de la siguiente forma:
[ACABADO]^C^C_text;\3.5;\Exento de rebabas;;;en cara vista;
De esta manera, y tras ejecutarse la orden TEXTO, AutoCAD se detendría a preguntarnos por el dato donde esté el carácter contrabarra (\), es decir, las coordenadas de inicio. Nosotros, introduciríamos las coordenadas y pulsaríamos ENTER; la macro continúa y da el valor de 3.5 a la altura de texto, lo introduce o acepta (;) y vuelve a detenerse para preguntarnos el ángulo de rotación. Lo introducimos y pulsamos INTRO y, la macroinstrucción, continúa hasta el final como anteriormente.
Por último, decir que la introducción de los caracteres <<, precediendo al valor de un ángulo, hace que éste se tome en grados sexagesimales, con el origen y sentido normales de la trigonometría plana, independientemente de lo establecido con el comando UNIDADES de AutoCAD. Por ejemplo:
[ACABADO]^C^C_text 80,20 3.5 <<135 Exento de rebabas;;;en cara vista;
También existe el carácter * (asterisco) que repite la opción completa de un menú de forma automática —hasta que se pulsa ESC—. Es muy poco utilizado; la forma de manejarlo es la siguiente:
[Polilínea]*^C^Cpol
NOTA: Del carácter de subrayado ( _) ya se ha hablado ampliamente, por ello, no se explicará de nuevo aquí.
NOTA: En la líneas del archivo que terminan con un carácter de control (que veremos ahora), una contrabarra ( \), un signo más (+) o un punto y coma (;), AutoCAD no añade espacios en blanco.
UNO.4.2. Caracteres de control
Además de los caracteres especiales, podemos incluir en archivos de menús diversos caracteres de control ASCII. Estos caracteres se introducen mediante el acento circunflejo —o signo de intercalación para AutoCAD— ^, seguido del carácter correspondiente. El carácter ^ representa la tecla CTRL, por ello se llaman caracteres de control a los formados por dicho símbolo y un carácter.
Nosotros ya conocemos uno, que es ^C. ^C representa un ESC o cancelación (viene de los tiempos de MS-DOS). Esta combinación anula órdenes en curso; algunas órdenes necesitan de dos cancelaciones para ser anuladas, por eso es conveniente, como ya hemos explicado, la introducción de ^C^C en todas las opciones de menú para que, de este modo, anulen por completo cualquier comando anterior, sea cual sea. Otros comandos, los cuales permiten una introducción transparente (ZOOM, ENCUADRE, CAL...) no necesitarán de estos caracteres y sí del oportuno de transparencia ’.
Existen otros caracteres de control, como ^H que representa un retroceso de cursor, esto es, borra el último carácter introducido. Puede ser necesario en opciones que no deseemos que AutoCAD coloque un espacio blanco al final de la línea, y también en otros casos. Seguidamente se muestra una lista con todos los caracteres de control posibles:
^B ----------> activa/desactiva el Forzcursor
^C ----------> cancela el comando en curso (ESC)
^D ----------> activa/desactiva coordenadas (CTRL+D)
^E ----------> define el siguiente plano isométrico (CTRL+E)
^F ----------> activa/desactiva la referencia a objetos (CTRL+F)
^G ----------> activa/desactiva el modo Rejilla.
^H ----------> ejecuta retroceso
^I ----------> ejecuta un tabulado (TAB)
^M ----------> ejecuta entrada de datos (INTRO)
^O ----------> activa/desactiva el modo Orto (CTRL+O)
| |