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&ltros 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)

^P ----------> activa/desactiva el eco de mensajes (MENUECHO)

^Q ----------> transmite todos los mensajes, listas de estado y datos de entrada a la impresora (CTRL+Q)

^T ----------> activa/desactiva la tableta (CTRL+T)

^V ----------> cambia la venta gráfica actual (CTRL+V)

^Z ----------> carácter nulo que suprime la adición automática de un

espacio en blanco al final de un elemento de menú

Existe otro modo de activar o desactivar modos si no conocemos su carácter de control, y es introduciendo el comando en forma de macro (quizá no lo podamos hacer en una sola opción). Es decir, los dos grupos de opciones siguientes realizan la misma acción:

[Cambia Orto]^O

[Cambia Orto ON]_ortho _on

[Cambia Orto OFF]_ortho _off

NOTA: Como veremos, tenemos otros métodos condicionales para poder realizar lo mismo en una sola línea.

 

UNO.4.3. Otros mecanismos y apuntes

UNO.4.3.1. Opciones de menú mediante DIESEL

Sobre el lenguaje DIESEL hablaremos ampliamente en el MÓDULO ONCE del presente curso, sin embargo, existe una forma de definir opciones de menú —casi siempre mediante métodos condicionales— por medio de este lenguaje. Estudiemos la siguiente proposición condicional:

[$(if,$(getvar,tilemode),~) Esp. Papel]espaciop

La opción propiamente dicha podría reducirse a: [Esp. Papel]espaciop, es decir, al pinchar sobre ella cambiaríamos al Espacio Papel de AutoCAD. El problema es que, como deberíamos saber, la posibilidad de cambiar de modo de espacio depende del valor de la variable TILEMODE (mantenida en esta versión del programa por razones de compatibilidad con versiones antiguas).

Lo que nos dice la condición es que, si TILEMODE tiene valor 1, se cumple y, entonces, se incluye el carácter tilde (~) que, como estudiamos, hace que la opción quede inutilizada y la escribe en un tono gris "apagado".

NOTA: No debemos ahora preocuparnos por la sintaxis de la línea, ya que se estudiará a fondo en su parte correspondiente.

Existe la posibilidad de visualizar en las opciones de un menú una señal o marca indicativa (típica de Windows) de que está activada esa opción (P ). Para ello deberemos incluir en dicha opción el carácter de cerrar exclamación (!) seguido de un punto (.), de la siguiente manera:

[!.texto_de_la_opción]

En dispositivos gráficos que no admiten la señal o marca mencionada, se puede incluir otro carácter, por ejemplo:

[!ctexto_de_la_opción]

que visualizará una señal con forma de letra "c".

La forma de utilizar esta señal consiste en incluirla en una condicional DIESEL que establezca o no su visualización. Por ejemplo:

[$(if,$(getvar,gridmode),!.)Rejilla]^G

[$(if,$(getvar,orthomode),!.)Orto]^O

[$(if,$(getvar,snapmode),!.)Forzcursor]^B

que visualizará una señal de activación en cada modo cuando se seleccione o esté activado.

Se puede combinar la utilización de !. y ~ para mostrar señales en opciones no disponibles de la siguiente forma:

[~!.texto_de_la_opción]

La visualización de opciones no disponibles y marcas aparecerá siempre qué se despliegue el menú que las contiene. Cuando interesa que esa visualización se haga desde una llamada determinada a menú, y no en las demás, se debe indicar en la línea de llamada de la siguiente forma:

$Pn.i=opciones

$Pn es la abreviatura del desplegable; i es el número de orden de la opción cuya visualización se va a cambiar; opciones es el tipo de visualización: ~ o !. o ambas. El número de orden (i) empieza a contar desde el nombre del submenú, el cual tendrá el número 1, hacia abajo, siendo las opciones consiguientes 2, 3, 4... En el siguiente submenú, por ejemplo, el número de orden de la opción [TC] es el 5. **Bloques
[Ladrillo]
[Roblón]
[TAR]
[TC]
[Arandela]
...

Por ejemplo, una llamada $P4.6=~!. visualiza como no disponible la opción numerada con el 6 del desplegable ***POP4 y le añade una señal. Para eliminar marcas y visualizaciones como no disponible, se incluirán llamadas de la forma, siguiendo con el anterior ejemplo:

$P4.6=

Si en vez de una llamada a un submenú concreto se desea llamar al último submenú o a la última opción utilizada, se puede emplear el carácter arroba (@) así:

$P@.@=opciones

que se refiere a la última opción de menú desplegable utilizada, o así:

$P@.i=opciones

que se refiere a la opción de número i en el último menú desplegable utilizado (aunque no sea la última opción usada).

 

UNO.4.3.2. Variable MENUCTL

Si la variable de sistema MENUTCL tiene valor 1, se establece que, cuando se utilice una orden de AutoCAD, automáticamente en el menú de pantalla aparezca el submenú que corresponde a dicha orden.

 

UNO.4.3.3. Creación y uso de menús de macros

Ocurre con frecuencia que, en un archivo de menú, se repiten constantemente determinadas cadenas de texto a lo largo del mismo. El empleo de macros de texto permite abreviarlos definiendo una especie de abreviatura para que luego, cuando aparezca dicho texto en el menú, se sustituya por el nombre de la macro.

El archivo de menú que contiene macros es esencialmente igual que el .MNU, pero debe ser forzosamente guardado con la extensión .MND. Después habremos de compilarlo con la utilidad MC.EXE que proporciona AutoCAD y que trocará dicho archivo en otro del mismo nombre pero con extensión .MNU, esto es, apto para ser manejado por AutoCAD 14.

NOTA: MC.EXE se encuentra en el directorio \SAMPLE\ de AutoCAD 14.

La manera de definir una macro de texto es la siguiente:

{nombre_macro}=texto

Las definiciones deben ocupar una sola línea y comenzar por el primer carácter de la primera línea del archivo. El nombre de la macro debe ir encerrado entre llaves ({}) y puede contener de uno a 31 caracteres en mayúsculas o minúsculas. texto es la cadena de caracteres que la macro sustituye.

La macro puede albergarse en cualquier punto del archivo de menús. En dicho punto, al ser compilado el archivo, se sustituirá por el texto completo con el que se ha definido. Un ejemplo de definición puede ser:

{imp}=capa;def;0;co;porcapa;tl;porcapa;

Se pueden definir, las macros, de forma recursiva, es decir, anidar unas dentro de otras, de la siguiente forma:

{rep}=zoom;e;{imp}

De esta forma, todas las macros anidadas se sustituirán por sus textos equivalentes, formado una macroinstrucción (no confundir con la macro de texto) de longitud variable.

Existe otra característica del compilador de menús muy importante, además del uso de las macros. Es la posibilidad de indicar el número de línea o líneas del archivo de menú en que se desea colocar una opción concreta. Esto es particularmente útil en las secciones de menú de tablero ***TABLET. Como se ha explicado ya, una vez configurada cada área de tablero en un determinado número de casillas, será el orden en que aparecen las opciones en el archivo lo que determina a qué casilla concreta corresponde cada opción. Esto implica que si una orden debe ocupar más de una casilla en el tablero, toda la instrucción de menú se deba repetir en las líneas del archivo que correspondan.

También se puede evitar el tener que contar las líneas del archivo para saber a qué casilla corresponden. Para ello, basta con indicar al principio de cada opción la línea o líneas en que se desea situarla, de la forma siguiente:

<número,número...>instrucción

Por ejemplo, si se desea situar la orden REDIBUJA en las casilla 20, 21, 22, 98, 99 y 100 de un área de menú de tableta, se puede poner en cualquier lugar dentro de la sección ***TABLET:

<20,21,22,98,99,100>redibuja

o

<20,21,22,98,99,100>_redraw

Al compilar el archivo .MND, el comando en cuestión se situará automáticamente en todas y cada una de las líneas especificadas por sus números de orden.

El archivo de menú suministrado por AutoCAD 14 contiene un submenú alternativo llamado **TABLET1ALT perteneciente al área primera del tablero (***TABLET1) sin aplicaciones, totalmente reservado para opciones de menú que sean creadas por el propio usuario. La plantilla está pensada en principio para una configuración de 25 columnas por 9 filas, y una utilización prevista de 200 casillas.

El usuario puede personalizar esta área de menú editando el archivo ACAD.MND y modificando las líneas del submenú correspondiente. También se podría editar el ACAD.MNU, pero es preferible el .MND por la posibilidad comentada de referir casillas por sus números de orden.

El submenú **TABLET1ALT presenta en principio el siguiente aspecto: <1>[T1-1]
<2>[T1-2]
<3>[T1-3]
<4>[T1-4]
...
<200>[T1-200]

Para incluir opciones de menú propias, basta con introducirlas a continuación de los números de casilla que interesen. Por ejemplo, si se desea que la casilla 176 contenga la orden REGEN, entonces la línea correspondiente del archivo quedará como sigue:

<176>[T1-176]^C^Cregen

Esto puede hacerse con todas las casillas necesarias. Una vez modificado el .MND, será preciso compilarlo de nuevo.

Por otro lado, el empleo de submenús de tablero es una característica que brinda grandes posibilidades a la hora de personalizar el tablero digitalizador para aplicaciones específicas. Es habitual encontrar un campo del diseño en el que se requiera el empleo de amplias bibliotecas de bloques para ser insertados. Es el caso, por ejemplo, de dibujos de electrónica, electricidad, piping, etc..., y, en general, todos los dibujos de circuitería. En estos casos resulta particularmente útil el uso de submenús de tablero. Con ellos se puede habilitar por ejemplo el área de tableta primera, citada anteriormente, para diversos submenús.

Supongamos, por ejemplo, que se va a utilizar la primera área de tablero del menú suministrado por AutoCAD, con vistas a su empleo en diseños electrónicos. En primer lugar, se utilizarán las 200 casillas previstas para las opciones y procedimientos generales (control específico de capas, instrucciones espaciales de dibujo, de edición, de visualización, utilidades de AutoLISP, etcétera).

Una plantilla colocada encima de esa área informará con texto o símbolos de la opción contenida en cada casilla. En el momento en que se precise insertar un bloque predefinido de una biblioteca de bloques (un transistor, un diodo, una puerta lógica, etc.), se puede llamar a un submenú, dentro de esa misma sección, que habilite otras 200 casillas para nuevas opciones de inserción de bloques.

Supongamos que el nombre del submenú es BL-ELEC y la opción que permite llamarlo se sitúa en la casilla 200. Habrá que escribir en esa línea del submenú **TABLET1ALT lo siguiente:

<200>[T1-200]$T1=bl-elec

Cada vez que sea seleccionada la casilla 200, se activará el submenú BL-ELEC que, en este caso, habilitará las casillas para insertar bloques de la biblioteca. Bastará entonces colocar una nueva plantilla sobre el área de menú, con los dibujos o los nombres de los bloques impresos en ella, para que se sepa en qué casilla se inserta cada uno.

El submenú creado BL-ELEC se situará en el archivo de menú al final de la sección ***TABLET1 y contendrá todas las opciones de inserción de bloques. Por ejemplo: **BL-ELEC
<1,2,26,27>^C^C_insert;trans \l;;0
<3,4,28,28>^C^C_insert;diodo;\l 0
<5,6,7,8,30,31,32,33>^C^C_insert nano \l;;0
...

Lógicamente, cada submenú llamado debe contener opciones que permitan pasar de un submenú a otro y, también, al principal. Si se utilizan las últimas casillas, éstas podrían contener, por ejemplo: <199>$T1=
<200>$T1=princ

de forma que, pinchando sobre la casilla 199 se volverá al submenú precedente y, sobre la 200, al principal. Para ello es preciso añadir inmediatamente después del identificador de sección ***TABLET1 la línea **PRINC.

Sería útil que en la pantalla se visualizara un mensaje que indicara cuándo se ha entrado en un nuevo submenú de tablero, como advertencia para cambiar de plantilla. Esto lo podemos realizar con una instrucción de AutoLISP (ALERT) que ya se estudiará en el momento adecuado.

 

UNO.4.3.3.1. Funcionamiento de MC.EXE

El compilador MC.EXE (en \SAMPLE\) se emplea desde MS-DOS. Su sintaxis es la siguiente:

MC [opciones] nombre_archivo

nombre_archivo es el nombre del fichero .MND que contiene las macros de texto (no hay que especificar la extensión). Las opciones del comando no son obligatorias y son las que siguen:

-D Lista definiciones de macros

-I Lista texto de entrada

-M Desactiva característica de macro

Indicar solamente MC da como resultado un texto de ayuda explicativo.

Ejemplos:

MC TOPOGRAF

MC C:\ACAD\MIPRO\MEN\BLOQUES

MC –D PIPING

MC –D –M A:\MENÚS\CARTOG

 

UNO.4.4. Uso de la orden externa EDIT

Esta orden permite el uso del editor del sistema operativo MS-DOS (Edit) sin interrumpir la edición del dibujo en curso. Es muy útil para la edición de menús de forma ágil.

 

UNO.5. CARGA Y DESCARGA DE MENÚS EN AutoCAD

Como hemos aprendido, un archivo de menú de AutoCAD consiste en una serie de secuencias de comandos que se ejecutan según determinadas condiciones. Existen diversos archivos de menú, algunos ASCII que podemos modificar y otros no. Los diversos archivos son los siguientes:

.MNU Llamado menú de plantilla por ser el archivo de menús base. Es

un archivo ASCII y podemos generarlo o modificarlo a nuestro

gusto pero, al tenerlo totalmente terminado, es preferible no

volver a tocarlo por si deshacemos algo importante, y realizar

las subsiguientes pruebas en el .MNS.

.MNS Archivo de menú fuente. Generado por AutoCAD con el mismo

nombre que el .MNU y muy parecido a éste. Lo único que varía

es la falta de la mayoría de los comentarios y de las secciones no utilizadas.

Es el archivo que debemos modificar al realizar las

pruebas y el que modifica AutoCAD al, por ejemplo, crear una

barra de herramientas o un botón desde el propio programa.

.MNC Archivo compilado (por lo tanto no es ASCII) directamente del

.MNU, que crea AutoCAD al cargar un .MNU para manejarlo más

rápidamente.

.MNR Archivo llamado de recursos de menú. En él se albergan todos los

mapas de bits que utiliza el menú en cuestión, por ejemplo, los

de los iconos creados para botones de barras de menús.

.MNL Archivo ASCII de menú con rutinas en AutoLISP que necesita el

archivo de menú en cuestión creado.

.MND Archivo ASCII de definición de menús. Contiene macros para

utilizar con el menú creado. Debe ser compilado externamente mediante la utilidad MC.EXE.

La secuencia de carga y obtención de los diferentes archivos de menú por parte de AutoCAD, al indicarle un nombre de archivo, es la siguiente:

  1. AutoCAD empieza buscan el archivo fuente .MNS. En caso de localizarse, busca a continuación el archivo de menú compilado .MNC con el mismo nombre. Si su fecha y hora es posterior al .MNS, se carga. En caso de no encontrarse, o de ser su fecha y su hora anterior, se compila automáticamente y se obtiene un menú .MNC actualizado, que es el que carga.
  2. Si AutoCAD no ha podido encontrar el nombre de menú .MNS especificado, intenta localizar un archivo .MNC con el mismo nombre y lo carga.
  3. Si AutoCAD no encuentra ningún menú .MNS ni .MNC con el nombre especificado, busca un archivo de plantilla .MNU con el mismo nombre. Si lo encuentra, crea un .MNS y compila un .MNC, cargando este último.
  4. Una vez cargado un archivo .MNC con cualquiera de los procedimientos anteriores, AutoCAD genera el archivo de recursos .MNR y busca un archivo .MNL con el mismo nombre (si se necesita). Si lo encuentra evalúa las expresiones AutoLISP contenidas en él.
  5. Si AutoCAD no encuentra ningún archivo .MNS, .MNC o .MNU con el nombre especificado muestra un mensaje de error y solicita otro nombre de menú para cargar.

Tenemos dos métodos para cargar un menú: realizar una carga completa o una carga parcial. La carga completa se realiza con el comando MENU de AutoCAD desde la línea de comando. Por defecto AutoCAD buscará archivos .MNS o .MNC. Podemos indicarle el tipo .MNU en la casilla del cuadro de diálogo Archivos del tipo:. Al cargar un archivo de menú con esta orden, el nuevo menú sustituirá por completo al actual. Si cargamos un archivo de menús de plantilla (.MNU), AutoCAD muestra una advertencia sobre la necesidad de sobreescribir y redefinir el archivo fuente .MNS. Si aceptamos, este archivo de renovará y perderemos los cambios realizados en él.

Esto nos lleva a recordar que el archivo .MNS es en el que podemos realizar todos los cambios y modificaciones que deseemos en un menú. Si perdemos este fichero o lo modificamos de forma que no es de nuestro agrado, siempre tendremos en archivo de plantilla .MNU para recuperar el original. Debemos advertir también que, las modificaciones de barras de herramientas realizadas desde AutoCAD (que ya veremos) se guardan, como ya explicamos, en el archivo .MNS, por ello, al cargar el .MNU se perderán. Si queremos conservarlas deberemos escribirlas (copiar/cortar y pegar) en el archivo de plantilla .MNU.

Por su lado, el método de carga parcial de menús proporciona un mayor control a la hora de cargar un archivo. Este método se realiza con el comando CARGARMENU (MENULOAD en inglés) desde la línea de comando, desde Herr.>Personalizar menús... o pinchando en la casilla Y-9 del tablero digitalizador.

De esta forma se carga un menú parcial que se añade al menú actual base (ACAD.MNU u otro cargado mediante la orden MENU). Las secciones de estos menús (***POP, ***TOOLBARS, ***IMAGE o ***HELPSTRINGS) permiten añadir o reorganizar los menús del menú base sin modificar el resto de secciones de éste.

El comando visualiza un cuadro de diálogo con dos pestañas que permiten gestionar los menús que serán cargados. El procedimiento que debemos seguir para cargar un menú es el siguiente:

  1. En la pestaña Grupos de menús pinchar en Examinar... y buscar el archivo que queramos cargar. Por defecto se buscan archivos .MNS y .MNC. Podemos cambiar esto, con las mismas consecuencias explicadas en la carga de menús base.
  2. Una vez elegido el fichero, pinchar en Cargar para cargar el menú. Debe aparecer en el cuadro superior que lleva por título Grupos de menús: (con el nombre del ***MENUGROUP=).
  3. Pasar a la siguiente pestaña (Barra de menús) y elegir, si no estuviera ya, el menú cargado elegido en la lista desplegable Grupo de menús:.
  4. Bajo el cuadro Menús: escoger el/los que deseamos incluir en la barra de menús.
  5. Bajo el cuadro Barra de menús: escoger el menú de la barra actual delante del cual queremos insertar el elegido en el punto anterior (normalmente irá antes del último, el de ayuda, ?).
  6. Pinchar en Insertar>>.
  7. Pinchar en Cerrar.

Tras todo este proceso, el menú estará cargado y operativo.

La manera de descargar un menú es análoga. El comando por teclado de DESCARGARMENU (MENUUNLOAD en inglés). Desde la barra de menús y demás se accede de igual forma que para cargar un menú parcial.

Para descargar un menú deberemos designarlo bajo Grupo de menús: en la pestaña Grupo de menús y pinchar en Descargar. Podemos también suprimir ciertas porciones de menús desde la otra pestaña pinchando en <<Suprimir.

La finalidad de que existan dos comandos por teclado para el mismo cuadro de diálogo es para su utilización en línea de comandos (por el usuario, macros, rutinas AutoLISP...).

NOTA: Si queremos cargar un menú que ya está cargado, hemos de descargarlo antes.

NOTA: Podemos especificar o cambiar los caminos de búsqueda o rutas de acceso a archivos de menú desde Herr.>Preferencias..., en la pestaña Archivos y bajo Archivos de menú, ayuda, registro y otros>Archivo de menús.

 

UNO.6. EJEMPLOS PRÁCTICOS DE MENÚS

UNO.6.1. Menú desplegable simple ***MENUGROUP=SIMPLE

***POP1
[Me&nú Simple]
[->&Dibujo]
[&Línea]^C^C_line
[&Polilínea]^C^C_pol
[&Círculo]^C^C_circle
[&Arco]^C^C_arc
[P&olígono]^C^C_polygon
[&Elipse]^C^C_ellipse
[&Spline]^C^C_spline
[Pu&nto]^C^C_point
[<-&Texto]^C^C_mtext
[--]
[->&Edición]
[&Borra]^C^C_erase
[Co&pia]^C^C_copy
[&Simetría]^C^C_mirror
[&Equidistancia]^C^C_offset
[&Matriz]^C^C_array
[&Desplaza]^C^C_move
[&Gira]^C^C_rotate
[&Recorta]^C^C_trim
[&Alarga]^C^C_extend
[C&haflán]^C^C_chamfer
[E&mpalme]^C^C_fillet
[<-Desco&mponer]^C^C_explode
[--]
[->&Visualización]
[->&Zoom]
[&Ventana]'_zoom _w
[&Dinámico]'_zoom _d
[&Todo]'_zoom _a
[&Extensión]'_zoom _e
[<-Tiempo &Real]'_zoom ;
[--]
[<-&Encuadre Tiempo Real]'_pan

 

NOTAS INTERESANTES:

  1. Nótese que no importa que el desplegable se llame ***POP1 aunque exista un ***POP1 en el menú base y éste lo carguemos como parcial. Cada ***POP1 corresponde a su menú y no habrá conflictos.
  2. La opción Tiempo real del comando ZOOM se ejecuta con el propio comando (_zoom), un espacio para aceptar el comando y un ; (que podría ser otro espacio) como INTRO para aceptar la opción por defecto de ZOOM, que es Tiempo real.
  3. Pruébese a cambiar la opción [<-Tiempo &Real] por [<-<-Tiempo &Real] para diferenciar el efecto y comprender el mecanismo perfectamente.
  4. Si no se incluye un ***MENUGROUP= —aunque sugerimos incluirlo siempre, y a veces es necesario— se tomará, como nombre de grupo, la ruta y nombre de archivo de menú.

 

UNO.6.2. Menús desplegables ***MENUGROUP=DESPLEG

***POP1
**Bloques
[&Bloques]
[->&Puertas]
ID_phj1 [&1 Hoja]^C^C_insert hj1.dwg
ID_phj2 [<-&2 Hojas]^C^C_insert hj2.dwg
[->&Ventanas]
ID_vhj1 [&1 Hoja]^C^C_insert hj1.dwg
ID_vhj2 [<-&2 Hoja]^C^C_insert hj2.dwg
[->&Mobiliario]
ID_silla [&Silla]^C^C_insert silla.dwg
ID_mesa [&Mesa]^C^C_insert mesa.dwg
ID_camilla [Mesa &Camilla]^C^C_insert camilla.dwg
ID_sofa [So&fá]^C^C_insert sofa.dwg
ID_armar [<-&Armario]^C^C_insert armar.dwg

***POP2
**Modificar
[Herramientas B&loques]
ID_crea [&Crear bloque...]^C^C_bmake
ID_limpia [&Limpiar bloque]^C^C_purge b \_n;
[--]
[->&Otras]
ID_Edatr [Definir a&tributos...]^C^C_ddattdef
[->&Base]
ID_base00 [Base en el &0,0]^C^C_base 0,0;
ID_baseus [<-<-Base de &usuario]^C^C_base
[--]
ID_borrtd [&Borrar todo]^C^C_erase _all;;

***HELPSTRINGS
ID_phj1 [Inserta una puerta de 1 hoja.]
ID_phj2 [Inserta una puerta de 2 hojas.]
ID_vhj1 [Inserta una venta de 1 hoja.]
ID_vhj2 [Inserta una venta de 2 hojas.]
ID_silla [Inserta una silla.]
ID_mesa [Inserta una mesa cuadrada.]
ID_camilla [Inserta una mesa camilla.]
ID_sofa [Inserta un sofá.]
ID_armar [Inserta un armario empotrado.]
ID_crea [Define un bloque.]
ID_limpia [Limpia el bloque o los bloques especificados.]
ID_Edatr [Define atributos para un bloque.]
ID_base00 [Sitúa el punto base de inserción en el 0,0,0.]
ID_baseus [Sitúa el punto base de inserción en el indicado por el usuario.]
ID_borrtd [Borra todos lo objetos del dibujo actual.]

 


NOTAS INTERESANTES:

  1. Evidentemente, los bloques habrán de estar en alguno de los directorios de soporte de AutoCAD o en algún otro especificado en alguna de las rutas de búsqueda bajo Herr.>Preferencias..., en la pestaña de Archivos. Se puede añadir un directorio a estas rutas de búsqueda (normalmente a los archivos de soporte).
  2. Nótese que se pueden ordenar las diferentes opciones de menú mediante tabuladores y/o espaciados, pero las etiquetas siempre han de estar a partir del primer carácter de línea de menú. (En el ejemplo no están ordenadas, pero debería hacerse así).
  3. No es necesario que las etiquetas de un menú comiencen por ID_ (de IDentificador), pero parece una forma lógica y simple de distinguirlas a simple vista y, así, llevar una mejor organización del archivo de menú.
  4. Revísense y asimílense las tres pequeñas macroinstrucciones (que casi ni lo son) de este menú. Para realizarlas hay que seguir estrictamente la secuencia que se reproduciría al introducir las órdenes y opciones por teclado (INTROS incluidos).

 

UNO.6.3. Menú de imagen y desplegable

//Aquí comienza el archivo de menús. ***MENUGROUP=MOBIL

//Ahora sigue el menú desplegable.

***POP12
[&Mobiliario]
[->&Cocina]
[&Mesas]$I=MOBIL.CocinaMesa $I=MOBIL.*
[&Sillas]$I=MOBIL.CocinaSilla $I=MOBIL.*
[<-M&uebles]$I=MOBIL.CocinaMueble $I=MOBIL.*
[->&Salón]
[&Sofás]$I=MOBIL.SalónSofá $I=MOBIL.*
[&Mesas] $I=MOBIL.SalónMesa $I=MOBIL.*
[<-M&uebles]$I=MOBIL.SalónMueble $I=MOBIL.*
[->&Baño]
[&Lavabos]$I=MOBIL.BañoLavabo $I=MOBIL.*
[&Bañeras]$I=MOBIL.BañoBañera $I=MOBIL.*
[Bi&dés]$I=MOBIL.BañoBidé $I=MOBIL.*
[&Inodoros]$I=MOBIL.BañoInodoro $I=MOBIL.*
[<-&Muebles]$I=MOBIL.BañoMueble $I=MOBIL.*
[->Habitación]
[&Mesillas]$I=MOBIL.HabitaciónMesilla $I=MOBIL.*
[&Camas]$I=MOBIL.HabitaciónCama $I=MOBIL.*
[<-<-M&uebles]$I=MOBIL.HabitaciónMueble $I=MOBIL.*

//Lo que viene ahora es el menú de imagen.

***IMAGE
**CocinaMesa
[Mesas de cocina]
[mobfot(mesc01,Mesa cuadrada)]^C^C_insert C:/BIBLIO/BLOQ/COCINA/MESA/mesc01.dwg
[mobfot(mesc02,Mesa rectag.)]^C^C_insert C:/BIBLIO/BLOQ/COCINA/MESA/mesc02.dwg
[mobfot(mesc03,Mesa circular)]^C^C_insert C:/BIBLIO/BLOQ/COCINA/MESA/mesc03.dwg
[mobfot(mesc04,Mesa extens.)]^C^C_insert C:/BIBLIO/BLOQ/COCINA/MESA/mesc04.dwg

**CocinaSilla
[Sillas de cocina]
[mobfot(silc01,Silla 1)]^C^C_insert C:/BIBLIO/BLOQ/COCINA/SILLA/silc01.dwg
[mobfot(silc02,Silla 2)]^C^C_insert C:/BIBLIO/BLOQ/COCINA/SILLA/silc02.dwg
[mobfot(silc03,Silla 3)]^C^C_insert C:/BIBLIO/BLOQ/COCINA/SILLA/silc03.dwg

**CocinaMueble
[Muebles de cocina]
[mobfot(mobc01,Mueble 1)]^C^C_insert C:/BIBLIO/BLOQ/COCINA/MUEBL/mobc01.dwg
[mobfot(mobc02,Mueble 2)]^C^C_insert C:/BIBLIO/BLOQ/COCINA/MUEBL/mobc02.dwg

**SalónSofá
[Sofás]
[mobfot(sofs01,Sofá dos piezas)]^C^C_insert c:/BIBLIO/BLOQ/SAL/SOF/sofs01.dwg
[mobfot(sofs02,Sofá una pieza)]^C^C_insert c:/BIBLIO/BLOQ/SAL/SOF/sofs02.dwg
[mobfot(sofs03,Sofá en ángulo)]^C^C_insert c:/BIBLIO/BLOQ/SAL/SOF/sofs03.dwg
[mobfot(sofs04,Esquinero)]^C^C_insert c:/BIBLIO/BLOQ/COCINA/SOF/sofs04.dwg

**SalónMesa
[Mesas de salón]
[mobfot(mess01,Mesa ovalada)]^C^C_insert c:/BIBLIO/BLOQ/SAL/MESA/mess01.dwg
[mobfot(mess02,Mesa rectang.)]^C^C_insert c:/BIBLIO/BLOQ/SAL/MESA/mess02.dwg

**SalónMueble
[Muebles de salón]
[mobfot(mobs01,Mueble telev.)]^C^C_insert c:/BIBLIO/BLOQ/SAL/MUEBL/mobs01.dwg
[mobfot(mobs02,Mueble 3 módul.)]^C^C_insert c:/BIBLIO/BLOQ/SAL/MUEBL/mobs02.dwg

**BañoLavabo
[Lavabos]
[mobfot(lavb01,ROCA-1)]^C^C_insert c:/BIBLIO/BLOQ/BAÑO/LAV/lavb01.dwg
[mobfot(lavb02,ROCA-2)]^C^C_insert c:/BIBLIO/BLOQ/BAÑO/LAV/lavb02.dwg
[mobfot(lavb03,ROCA-3)]^C^C_insert c:/BIBLIO/BLOQ/BAÑO/LAV/lavb03.dwg

**BañoBañera
[Bañeras]
[mobfot(bañb01,ROCA-1)]^C^C_insert c:/BIBLIO/BLOQ/BAÑO/BAÑERA/bañb01.dwg
[mobfot(bañb02,ROCA-2)]^C^C_insert c:/BIBLIO/BLOQ/BAÑO/BAÑERA/bañb02.dwg
[mobfot(bañb03,ROCA-3)]^C^C_insert c:/BIBLIO/BLOQ/BAÑO/BAÑERA/bañb01.dwg

**BañoBidé
[Bidés]
[mobfot(bidb01,ROCA-1)]^C^C_insert c:/BIBLIO/BLOQ/BAÑO/BID/bidb01.dwg
[mobfot(bidb02,ROCA-2)]^C^C_insert c:/BIBLIO/BLOQ/BAÑO/BID/bidb02.dwg
[mobfot(bidb03,ROCA-3)]^C^C_insert c:/BIBLIO/BLOQ/BAÑO/BID/bidb03.dwg

**BañoInodoro
[Inodoros]
[mobfot(inob01,ROCA-1)]^C^C_insert c:/BIBLIO/BLOQ/BAÑO/INOD/inob01.dwg
[mobfot(inob02,ROCA-2)]^C^C_insert c:/BIBLIO/BLOQ/BAÑO/INOD/inob02.dwg
[mobfot(inob03,ROCA-3)]^C^C_insert c:/BIBLIO/BLOQ/BAÑO/INOD/inob03.dwg

**BañoMueble
[Muebles de baño]
[mobfot(mobb01,Mueble 1)]^C^C_insert c:/BIBLIO/BLOQ/BAÑO/MUEBL/mobb01.dwg
[mobfot(mobb02,Mueble 2)]^C^C_insert c:/BIBLIO/BLOQ/BAÑO/MUEBL/mobb02.dwg

**HabitaciónMesilla
[Mesillas de noche]
[mobfot(mesh01,Mesilla cuadrada)]^C^C_insert c:/BIBLIO/BLOQ/HAB/MESA/mesh01.dwg
[mobfot(mesh02,Mesilla circular)]^C^C_insert c:/BIBLIO/BLOQ/HAB/MESA/mesh02.dwg

**HabitaciónCama
[Camas]
[mobfot(camh01,Cama 1.20)]^C^C_insert c:/BIBLIO/BLOQ/HAB/CAMA/camh01.dwg
[mobfot(camh02,Cama 1.60)]^C^C_insert c:/BIBLIO/BLOQ/HAB/CAMA/camh02.dwg
[mobfot(camh03,Cama 1.90)]^C^C_insert c:/BIBLIO/BLOQ/HAB/CAMA/camh03.dwg
[mobfot(camh04,Cama 2.10)]^C^C_insert c:/BIBLIO/BLOQ/HAB/CAMA/camh04.dwg

**HabitaciónMueble
[Muebles de habitación]
[mobfot(mobh01,Mueble 1)]^C^C_insert c:/BIBLIO/BLOQ/HAB/MUEBL/mobh01.dwg
[mobfot(mobh02,Mueble 2)]^C^C_insert c:/BIBLIO/BLOQ/HAB/MUEBL/mobh02.dwg

//Fin del archivo de menús.

 

NOTAS INTERESANTES:

  1. En este ejemplo vemos claramente la utilización de llamadas a submenús de imágenes, con su correspondiente activación. Pruébese a quitar dicha activación de alguna de las llamadas para comprobar el resultado.
  2. Las llamadas a los diferentes submenús de imágenes se realizan desde un menú desplegable. Es posible, también, llamar a un menú de imágenes desde otro menú de imágenes. Para hacer esto, en lugar de asociar a cada imagen un comando de inserción de bloque, como en este ejemplo, debemos asociarle una referencia a otro submenú; sencillo.
  3. Los comentarios con las dos barras inclinadas (//) pueden incluirse en cualquier punto del archivo de menú, como podemos apreciar.
  4. En el menú de imagen y según lo estudiado, mobfoto es la librería de fotos, o fototeca, donde se encuentran todas las fotos guardadas; la siguiente cadena (tras la apertura de paréntesis) es el nombre de la foto incluida en la fototeca (mesc01, mess02, mobs02, camh04...); la cadena siguiente (tras la coma) es el nombre que veremos en la lista de la izquierda del menú de imagen. Después de todo esto, viene el comando de inserción de bloques con la ruta de acceso y el bloque propiamente dicho que se insertará. En este caso, se han hecho las fotos con el mismo nombre que los bloques a los que corresponden, pero, evidentemente, con extensión .SLD. Véase el MÓDULO NUEVE, el cual se refiere a la obtención de fotos y a la creación de bibliotecas de fotos.
  5. Apréciese que los caminos o rutas de acceso a archivos deben introducirse con barras inclinadas normales (/), y no con barras inversas o contrabarras (\) como es habitual en sistemas MS-DOS y Windows. Esta notación —que recuerda a UNIX y, por ende, a la manera de indicar URLs en los navegadores Web, direcciones FTP, etcétera— se debe aquí a la necesidad de la contrabarra o barra inversa (\) como símbolo especial para entrada de datos por parte del usuario en una macroinstrucción (ya estudiado).
  6. Evidentemente, tanto archivos .DWG como la fototeca .SLB deberán estar el los directorios indicados, en el directorio actual o en algún directorio o ruta de soporte de AutoCAD 14.

 

UNO.6.4. Menú completo de cartografía

//

// AutoCAD archivo de menús - C:\MENÚS\CARTOGR.MNU //

// NOTA IMPORTANTE:
// Para garantizar el acceso a los archivos de soporte de este menú,
// por medio del comando PREFERENCIAS del menú HERR, en la pestaña
// ARCHIVOS se debe añadir como CAMINO DE BÚSQUEDA DE ARCHIVO DE SOPORTE
// el siguiente:
// C:\MENÚS

***MENUGROUP=CARTOGR

***POP1
[Utils-Carto]
ID_Pol_Grosor [Polilínea grosor 0]^C^C_pline \_w 0 0
ID_Pol_Cur1 [Pol curvas1]^C^C_layer _set curvas1;;_pline \_w 0 0
ID_Pol_Cur10 [Pol curvas10]^C^C_layer _set curvas10;;_pline \_w .5 .5
[--]
ID_Borrar1 [Borrar 1]*^C^C_erase \;
ID_Editpol1 [Editpol]^C^C_pedit $s=editpol
ID_Curva_B [Curva B]^C^C_pedit \_s;;
ID_Copias [Copias]$S=X $s=designa ^C^C_select \_copy _p;;_m
ID_Parte1 [Parte @]*^C^C_break \_f \@
[->Cambiar]
ID_Cambiar [Cambiar]$S=X $s=designa ^C^C_change
ID_Cambiar_col [Cambiar color]$S=X $s=designa _select \_change _p;;_p _col;\;
ID_Cambiar_txt [Cambiar texto]*^C^C_change;\;;;;;;
ID_Cambiar_capa [<-Cambiar capa]$S=X $s=designa ^C^C_select \_change _p;;_p _layer;\;
[--]
ID_ayuda_cart [Ayuda]^C^C(help "c:/menús/cartograf.ahp")

[Bloques-Carto]
ID_Insertar [INSERTAR]^C^C_DDINSERT
[ banco]^C^C_insert banco
[ farola]^C^C_insert farola
[ quiosco]^C^C_insert kiosko
[ pozo]^C^C_insert pozo
[ árbol]^C^C_insert arbol
[ cabina]^C^C_insert cabina
[ fuente]^C^C_insert fuente
[ caseta]^C^C_insert caseta
[ torre]^C^C_insert torre
[ poste]^C^C_insert poste
[ ermita]^C^C_insert ermita

***POP3
[Capas-Carto]
ID_Capas [Gestión de Capas]^C^C_DDLMODES
[ Edificios]^C^C_layer _set edificios;;
[ Medianerías]^C^C_layer _set medianerias;;
[ Aceras]^C^C_layer _set aceras;;
[ Curvas1]^C^C_layer _set curvas1;;
[ Curvas10]^C^C_layer _set curvas10;;
[ Carreteras ]^C^C_layer _set carreteras;;
[ Caminos]^C^C_layer _set caminos;;
[ Ferrocarril]^C^C_layer _set ferrocarril;;
[ Ríos]^C^C_layer _set rios;;
[ Arroyos]^C^C_layer _set arroyos;;
[ Arbolado]^C^C_layer _set arbolado;;
[ Cultivos]^C^C_layer _set cultivos;;
[ T. eléctrico]^C^C_layer _set t_electrico;;

***TOOLBARS
**CARTOGRAFIA
**CARTOGRAFíA
ID_Cartografía [_Toolbar("Cartografía", _Floating, _Show, 238, 156, 1)]
ID_Línea_1 [_Button("Línea", "ICON_16_LINE", "ICON_24_LINE")]^C^C_line
ID_Centro_Radio_1 [_Button("Centro Radio", "ICON_16_CIRRAD", "ICON_24_CIRRAD")]^C^C_circle
ID_Polilínea_1 [_Button("Polilínea", "ICON_16_PLINE", "ICON_24_PLINE")]^C^C_pline
[--]
ID_Borrar_1 [_Button("Borrar", "ICON_16_ERASE", "ICON_24_ERASE")]^C^C_erase
ID_Editar_polilínea_1 [_Button("Editar polilínea", "ICON_16_PEDIT", "ICON_24_PEDIT")]^C^C_pedit
ID_Equidistancia_1 [_Button("Equidistancia", "ICON_16_OFFSET", "ICON_24_OFFSET")]^C^C_offset
[--]
ID_inser_cart [_Button("Símbolos", "ICON5705.bmp", "ICON_24_BLANK")]^C^C$I=cartogr.Simb_carto $I=*
[--]
ID_ayuda_cart [_Button("Ayuda", "ICON4464.bmp", "ICON_24_BLANK")]^C^C(help "c:/menús/cartograf.ahp")
[--]
ID_Ctrl_Lyr_1 [_Control(_Layer)]

***IMAGE
**SIMB_CARTO
[Bloques de Cartografía]
[simbcart(banco,Banco)]^C^C_insert banco
[simbcart(farola,Farola)]^C^C_insert farola
[simbcart(quiosco,Quiosco)]^C^C_insert kiosko
[simbcart(pozo,Pozo)]^C^C_insert pozo
[simbcart(arbol,Árbol)]^C^C_insert arbol
[simbcart(cabina,Cabina)]^C^C_insert cabina
[simbcart(fuente,Fuente)]^C^C_insert fuente
[simbcart(caseta,Caseta)]^C^C_insert caseta
[simbcart(torre,Torre)]^C^C_insert torre
[simbcart(poste,Poste)]^C^C_insert poste
[simbcart(ermita,Ermita)]^C^C_insert ermita

***HELPSTRINGS
ID_POL_GROSOR [Dibuja una polilínea de grosor 0]
ID_POL_CUR1 [Dibuja una polilínea en la capa Curvas1 con grosor 0]
ID_POL_CUR10 [Dibuja una polilínea en la capa Curvas1O con grosor 0.5]
ID_BORRAR1 [Suprime un único objeto del dibujo cada vez]
ID_EDITPOL1 [Edita polilíneas y mallas poligonales tridimensionales: editpol]
ID_CURVA_B [Convierte una polilínea en curva B]
ID_COPIAS [Realiza varias copias de los objetos designados]
ID_PARTE1 [Parte un objeto por un sólo punto]
ID_CAMBIAR [Comando Cambia]
ID_CAMBIAR_COL [Cambia el color de los objetos designados]
ID_CAMBIAR_TXT [Modifica un texto insertado en el dibujo]
ID_CAMBIAR_CAPA [Cambia la capa de los objetos designados]
ID_INSERTAR [Permite la inserción de bloques en el dibujo]
ID_CAPAS [Accede al cuadro de diálogo para la gestión de capas: Ddlmodes]
ID_CARTOGRAFíA [Menú específico para la aplicación de cartografía]
ID_LíNEA_1 [Crea segmentos de línea recta: línea]
ID_CENTRO_RADIO_1 [Crea círculos mediante el centro y el radio: círculo]
ID_POLILíNEA_1 [Crea polilíneas bidimensionales: pol]
ID_BORRAR_1 [Suprime objetos de un dibujo: borra]
ID_EDITAR_POLILíNEA_1 [Edita polilíneas y mallas poligonales tridimensionales: editpol]
ID_EQUIDISTANCIA_1 [Crea círculos concéntricos y líneas y curvas paralelas: eqdist]
ID_INSER_CART [Inserción de simbología mediante un menú de iconos]
ID_AYUDA_CART [Ayuda sobre la aplicación de cartografía]
ID_CTRL_LYR_1 [Gestión de capas mediante botón desplegable especial]

//
// Final de AutoCAD archivo de menús - C:\MENÚS\CARTOGR.MNU
//

 

NOTAS INTERESANTES:

  1. Este es un ejemplo muy jugoso de menú parcial para AutoCAD. En él están incluidos tres menús desplegables, un menú de imágenes o iconos, la definición de una barra de herramientas y una sección ***HELPSTRINGS.
  2. Nótese que todos los elementos de este menú deberán estar almacenados en disco, para su correcto funcionamiento, y en la carpeta actual o en alguna de soporte, ya que no se indican rutas de acceso a archivos en casi ningún punto del archivo.
  3. Algunos de los conceptos aún no han sido estudiados, como la personalización y creación de archivos de ayuda tipo Windows, o ciertas notaciones que podemos encontrar en el ejemplo. No hay que preocuparse por esto, ya se verá en su momento todo.

 

UNO.FIN. EJERCICIOS PROPUESTOS

  1. Revísese el último ejemplo explicado (menú de cartografía) y analícense ciertos espacios en blanco incluidos en algunas líneas. ¿Que ocurriría si no existieran dichos espacios?
  2. Crear un archivo de menú de AutoCAD 14 que, mediante menús desplegables y de persiana, permita la inserción de bloques —cualesquiera— en un dibujo, con la escala predeterminada para todos ellos de 1:5.
  3. Realizar un archivo de menús en el que, desde un menú desplegable, se llame a un menú de imagen y, desde éste, a otros menús de imagen (más de cuatro). Contemplar la posibilidad de retornar al menú principal desde cada uno de ellos. NOTA: Al no haber sido estudiado el apartado de fotos y fototecas, los menús de imagen pueden quedar vacíos, pero sólo en sus cuadros de iconos.
  4. Modificar el menú de pantalla de AutoCAD 14 añadiéndole nuevas opciones que permitan el cambio interactivo de los modos ortogonal (Orto), forzado de cursor (Forzcursor) y la rejilla (Rejilla) del programa, así como el cambio de valores de la variable TILEMODE y la permutación entre Espacio Modelo Mosaico y Espacio Papel/Modelo Flotante de AutoCAD 14. Pemitir la vuelta al menú anterior.
  5. Modificar las definiciones de las secciones ***BUTTONS (o ***AUX) del archivo de menús de AutoCAD 14 para permutar o variar al gusto las funciones de los pulsadores del dispositivo señalador actual del sistema.
  6. Crear un archivo de menú con las definiciones de una barra de herramientas que contenga cuatro botones, los cuales realizarán las siguientes funciones respectivamente: dibujar polilíneas (por el usuario) con grosor 3; dibujar rectángulos de tamaño variable y achaflanados en sus cuatro esquinas; limpiar bloques sin pedir confirmación; dibujar una polilínea (por el usuario), copiar el resultado múltiples veces a los puntos indicados (por el usuario) y realizar una regeneración del dibujo.
  7. Crear un botón desplegable con la barra de herramientas anterior.
  8. Crear una serie de teclas rápidas que ejecuten diversos comandos de AutoCAD que carezcan de ellas.
  9. Modificar la sección ***TABLET del archivo de menús de AutoCAD 14 asignando la inserción de bloques a diferentes casillas.
  10. Crear un archivo de menú completo con todas las definiciones necesarias para un oficina técnica de calderería y piping.

 

Autor: Jonathan Préstamo Rodríguez

Para: La Web del Programador