ARCHIVOS
DE MENÚ
Los menús se definen mediante archivos de menús. Es posible modificar archivos de menús o crear uno propio. Puede definir el aspecto y la posición de los elementos de menú editando el texto contenido en un archivo de menús. A continuación, puede asignar las macros de menú que ejecuten acciones específicas cuando se selecciona un elemento de menú.
Las macros de menú pueden constar de grabaciones simples de pulsaciones de teclas para efectuar tareas o de una combinación compleja de comandos y código de programación de AutoLISP® o DIESEL. Las macros de menú más complejas tienen cierta capacidad de decisión. Una macro de menú se asemeja a un archivo de comandos en cuanto a que ejecuta una serie de comandos. Sin embargo, los archivos de comandos no tienen capacidad de decisión y no pueden detenerse para crear menús personalizados que complementen a los menús suministrados con AutoCAD.
Los archivos de menú definen la funcionalidad y el aspecto de áreas de menú, distintas partes de la interfaz de AutoCAD que facilitan el acceso y la documentación sobre la funcionalidad del programa. Los elementos de menú de cada área de menú contienen cadenas de comandos de AutoCAD y sintaxis de macros que definen la acción que se ejecuta al seleccionar el elemento de menú. Las siguientes áreas se definen mediante archivos de menú:
Menús de botones del dispositivo señalador
Menús desplegables y contextuales
Barras de herramientas
Menús de símbolos
Menús de pantalla
Menús de tablero digitalizador
Cadenas de ayuda e información de herramientas
Teclas rápidas
Archivos de Menú
Tipo de archivo |
Descripción |
MNU |
Archivo de menús de plantilla.
|
MNC |
Archivo de menús compilado. Este archivo binario contiene las cadenas de comando y la sintaxis de menú necesarias para definir la funcionalidad y el aspecto del menú. |
MNR |
Archivo de recursos de menú. Este archivo binario contiene los mapas de bits utilizados por el menú. |
MNS |
Archivo de menús fuente (generado por AutoCAD). |
MNL |
Archivo de menús
LISP. Este archivo contiene expresiones de AutoLISP utilizadas por el archivo de menú, y se cargan en la memoria al abrir un archivo de menú con el mismo nombre. |
Procedimiento de Carga de Menú
AutoCAD busca y carga el archivo especificado de acuerdo con la siguiente secuencia. (Esta secuencia se utiliza también cuando AutoCAD carga un menú nuevo con el comando
MENU.)
- AutoCAD busca un archivo de fuentes de menú (MNS) con el nombre proporcionado,
si encuentra un archivo MNS, AutoCAD busca un archivo de menú compilado (.mnc) con el mismo nombre y en el mismo directorio. Si AutoCAD encuentra el archivo MNC con el mismo nombre y con una fecha y hora igual o posterior a la del archivo MNC, carga el archivo MNC. De lo contrario, compila el archivo MNS para generar otro MNC nuevo en el mismo directorio, y lo carga.
Si AutoCAD no encuentra un archivo MNS, busca un archivo de menús compilado (.mnc) con el nombre proporcionado siguiendo el procedimiento de búsqueda de biblioteca. Si AutoCAD encuentra el menú MNC, lo carga.
Si AutoCAD no encuentra un archivo MNS ni tampoco un archivo MNC, buscará en la ruta de la biblioteca un archivo de plantillas de menú (.mnu) con el nombre proporcionado. Si encuentra este archivo, compila un archivo MNC y un MNS y, a continuación, carga el archivo
MNC.
Si AutoCAD no encuentra ningún archivo de menús con los nombres proporcionados, aparece un mensaje de error y solicita otro nombre de archivo de menús.
- Una vez encontrado, compilado y cargado el archivo MNC, AutoCAD busca un archivo de menús LISP (.mnl), siguiendo el procedimiento de búsqueda
habitual. Si AutoCAD encuentra este archivo, calcula las expresiones de AutoLISP contenidas en el mismo.
El archivo acad.mnl contiene código de AutoLISP que utiliza el archivo de menús estándar, acad.mnu. El archivo acad.mnl se carga cada vez que se carga el archivo acad.mnu.
Cada vez que AutoCAD compila un archivo MNC, genera un archivo de recursos de menú (MNR) que contiene los
mapas de bits utilizados por el menú. El archivo MNS es un archivo ASCII inicialmente idéntico al archivo MNU (sin comentarios ni atributos de formato especiales). AutoCAD modifica el archivo MNS siempre que se realizan cambios en el contenido del archivo de menús mediante la interfaz (por ejemplo, al modificar el contenido de una barra de herramientas).
Aunque la posición inicial de las barras de herramientas se define en el archivo MNU o MNS, los cambios realizados en el estado visible/oculto y fijo/flotante o en las posiciones de la barra de herramientas se graban en el registro del sistema. Una vez creado el archivo MNS, éste se utiliza como fuente para la generación de archivos MNC y MNR posteriores. Si modifica el archivo MNU después de generar un MNS, debe usar el comando MENU para cargar explícitamente el archivo MNU con el fin de que AutoCAD genere nuevos archivos MNS y MNC, y reconozca los cambios.
NOTA: Si has modificado las barras de herramientas mediante la interfaz, deberás cortar y pegar las partes editadas del archivo MNS en el archivo MNU antes de borrar el primero.
Ejemplo de Acad.MNU
Ejemplo de
Acad.MNS
Estructura de los archivos de Menú
Los archivos de menús se dividen en secciones relacionadas con áreas específicas de la interfaz de AutoCAD. Dependiendo de su función, cada área de menú puede estar definida por una o varias secciones. Cada sección contiene elementos de menú, que proporcionan instrucciones sobre el aspecto y la acción relacionada con la opción de menú. Los elementos de menú se componen de los siguientes componentes:
un identificador de nombre, una etiqueta y una macro de menú. Si bien los elementos de menú tienen una estructura y funcionalidad similares, cada sección utiliza una sintaxis especial para sus etiquetas de elemento de menú.
No es necesario que un archivo de menús contenga entradas para cada sección de menú. Sólo se precisan las que están relacionadas con la aplicación. Es recomendable dividir los menús en varios archivos más pequeños que se puedan cargar y descargar cuando se desee (con el comando
CARGARMENU). Esto no sólo proporciona mayor control de los recursos del sistema, sino que facilita el desarrollo y el mantenimiento, puesto que permite trabajar con piezas más pequeñas.
Las secciones de los archivos de menús se identifican mediante etiquetas de sección, que utilizan el formato ***nombre_sección. Las etiquetas de sección y sus áreas de menús asociadas aparecen en la tabla siguiente.
Etiquetas de sección y menús asociados
Etiqueta de sección |
Área de menús |
***MENUGROUP |
Nombre de grupo de archivo de menús |
***BUTTONSn |
Menú de botón de dispositivo señalador |
***AUXn |
Menú de dispositivo señalador del sistema |
***POPn |
Áreas de menú desplegable y contextual |
***TOOLBARS |
Definiciones de barra de herramientas |
***IMAGE |
Área de menús de símbolos |
***SCREEN |
Área de menús de pantalla |
***TABLETn |
Área de menús de tablero
|
***HELPSTRINGS |
El texto que aparecen en la barra de estado al resaltar un menú desplegable o contextual, o cuando el cursor está sobre un botón de barra de herramientas |
***ACCELERATORS |
Definiciones de teclas rápidas
|
Puedes incluir comentarios en archivos de menús para utilizarlos como advertencias de copyright, documentación o notas. El compilador de menú ignora cualquier línea que comience con dos barras oblicuas (//), como se indica en el ejemplo:
//Esta línea es un comentario
Ejemplo:
Un elemento de menú se encuentra normalmente en una línea del archivo y emplea el formato siguiente:
identificador_de_nombre etiqueta macro_de_menú
El siguiente código de ejemplo para un menú desplegable (Pop) ilustra un elemento de menú sencillo:
ID_Quit [Salir]^C^C_quit
El primer elemento ID_Quit es el identificador de nombre y la etiqueta [Salir] muestra Salir en el menú. Cuando un usuario selecciona un elemento de menú, se ejecuta la macro de menú ^C^C_quit.
Cuando se selecciona un elemento de menú, AutoCAD añade un espacio en blanco al final de la macro antes de procesar la secuencia de comandos. AutoCAD procesa el siguiente elemento de menú como si hubiera tecleado
línea + Barra espaciadora.
[Línea]línea
Sin embargo, algunos comandos, como TEXTO, deben terminar con INTRO, no con espacio. Algunas veces es necesario utilizar varios espacios (o INTRO) para terminar un comando, pero algunos editores de texto no permiten crear una línea con espacios de relleno. Dos convenciones especiales permiten resolver estos problemas:
Cuando aparece un punto y coma (;) en una macro de menú, AutoCAD lo sustituye por un INTRO.
Si una línea termina con un carácter de control, una contrabarra (\), un signo más (+) o un punto y coma (;), AutoCAD no añade un espacio en blanco a continuación.
Observar el elemento de menú Borra 1 en el siguiente ejemplo:
[Borra 1]borra \;
Si este elemento sólo terminara con una contrabarra (para indicar datos de usuario), la operación BORRA no se efectuaría correctamente, ya que AutoCAD no añade espacios en blanco después de la contrabarra. Por ello, la macro de menú utiliza un punto y coma (;) para forzar un INTRO después de los datos introducidos por el usuario. Estos son otros ejemplos:
[SCP ]scp
[SCP U ]scp ;
[Asignatura]texto \.4 0 Proyectos de Estructuras 1;;;E.T.S.A.;;;La
Coruña;
Al seleccionar el primer elemento, se escribe scp y Barra espaciadora en la línea de comando y aparece este mensaje:
Indique una opción [Nuevo/Desplazar/ortoGonal/Prev/Rest/Guardar/Supr/Aplicar/?/Univ] <Univ>:
Al seleccionar el segundo elemento se introduce scp, Barra espaciadora y ; (interpretado como INTRO) en la línea de comando, lo que acepta el valor por defecto, Universal. En la pantalla no se observará ninguna diferencia entre el primer elemento y el segundo; naturalmente, no va a poner ambos en el mismo menú.
Al seleccionar el tercer elemento, se muestra un mensaje solicitando un punto inicial y, a continuación, la dirección en tres líneas. De los tres puntos y coma (;;;), el primero termina la cadena de texto, el segundo vuelve a ejecutar el comando TEXTO y el tercero solicita la posición por defecto debajo de la línea anterior.
A veces resulta útil aceptar datos del teclado o del dispositivo señalador en medio de un elemento de menú, para lo cual
se debe colocar una contrabarra (\) en el punto donde han de aparecer los datos.
[Círculo-1]circulo \1
[Descapa ]capa des \;
Círculo-1 se detiene para pedir al usuario el punto central y, a continuación, lee un radio de valor 1 del menú. Observe que no hay ningún espacio después de \.
Descapa se detiene para pedir al usuario el nombre de la capa, después desactiva dicha capa y sale del comando CAPA. Normalmente, el comando CAPA pregunta si desea realizar otra operación y sólo sale si se pulsa Barra espaciadora (espacio) o INTRO (;).
Normalmente, la macro de menú continúa después de introducir un elemento. Por lo tanto, no es posible construir una macro de menú que acepte un número variable de entradas (como en una selección de objetos) y que, después, continúe. No obstante, se produce una excepción con el comando
DESIGNA; una contrabarra detiene la macro de menú hasta que se haya terminado la selección de objetos. Tenga en cuenta este elemento de menú:
[Poner rojo]designa \cambia previo ;propiedades color rojo ;
Este elemento utiliza el comando DESIGNA para crear un conjunto de selección de uno o varios objetos. A continuación, ejecuta el comando CAMBIA, hace referencia a este conjunto de selección con la opción Previo y cambia el color de todos los objetos seleccionados a rojo.
NOTA Dado que el carácter de contrabarra (\) hace que la macro de menú se detenga para recibir datos del usuario, no puede usarlo para ningún otro fin en la macro. Cuando precise la ruta de un directorio, utilice una barra oblicua (/) como delimitador de ruta: por ejemplo, /direct/archivo.
Es posible desarrollar menús que pueden utilizarse con versiones de AutoCAD en otros idiomas. Los comandos estándar de AutoCAD y las palabras clave se traducen automáticamente si antepones a cada uno de ellos un carácter de subrayado (_). El archivo acad.mnu utiliza esta función con frecuencia.
El siguiente ejemplo muestra parte de un menú POP.
[->Arco]
[3 puntos]^C^C_arc
[Inicio, Cen, Fin]^C^C_arc;\_c
[Inicio, Cen, Ángulo]^C^C_arc;\_c;\_a
[Inicio, Cen, Longitud]^C^C_arc;\_c;\_l
[Inicio, Fin, Ángulo]^C^C_arc;\_e;\_a
[Inicio, Fin, Radio]^C^C_arc;\_e;\_r
|