Referencia a menús desplegables o contextuales (Concepto)

AutoCAD

 
Referencia a menús desplegables o contextuales
Concepto Referencia rápida
 
 
 

Utilizando un método similar al que se usa para activar submenús puede activar o desactivar otro menú desplegable o contextual. Esto se denomina hacer referencia a un menú.

Existen dos métodos para hacer referencia a un menú desplegable o contextual: relativo y absoluto. La referencia relativa utiliza el grupo de personalización y el ID de elemento. La referencia absoluta utiliza la posición absoluta de un elemento de menú en la jerarquía del menú. Es más recomendable la referencia relativa debido a su naturaleza dinámica, que le permite funcionar independientemente del estado actual de un menú.

Referencia relativa de comandos desplegables y contextuales

Para hacer referencia a un elemento de un menú desplegable o contextual basándose en su grupo de personalización e ID de elemento, utilice la función menucmd de AutoLISP. La sintaxis siguiente hace referencia a un elemento de menú en función de su ID de elemento.

(menucmd "Ggrupo_menús.id_elemento=value") 

El ejemplo siguiente utiliza la sintaxis de referencia relativa para desactivar el elemento de menú ID_Line almacenado en el grupo de personalización sample. Funciona independientemente de la ubicación del elemento de menú en el menú.

(menucmd "Gsample.ID_Line=~")

Si conoce el contenido del archivo CUI principal, puede crear un archivo CUI parcial con un elemento de menú adicional que haga referencia al archivo principal. De este modo, los archivos CUI parciales y determinados archivos base pueden funcionar conjuntamente.

Referencia absoluta a los elementos de los menús desplegables y contextuales

Además de hacer referencia a un elemento de menú, puede activar y desactivar un elemento de menú mediante la sintaxis $Pn=xxx. El formato es el siguiente:

$Pn.i=xxx

El $ carga una sección de menú, Pn indica la sección de menú activa (los valores válidos son de 0 a 16), i especifica el número de elemento de menú y xxx (si existe) precisa una cadena de caracteres inactivos o marcados.

Utilizando la sintaxis $Pn=xxx, el ejemplo siguiente añade una marca de verificación al elemento 1 de la sección POP7.

$P7.1=!.

El siguiente ejemplo utiliza la función menucmd de AutoLISP para hacer referencia a un elemento de menú desplegable o contextual. Puesto que los archivos de personalización son dinámicos(mediante la carga de archivos CUI parciales), la siguiente sintaxis no funcionará en todos los casos.

(menucmd "P10,2=~")

Esta sintaxis se basa en la ubicación del elemento de menú y no funciona si el comando CARGARIUP inserta un elemento nuevo antes de POP1.

La numeración de elementos de menú es consecutiva, independientemente de la jerarquía del menú.

Para facilitar que un elemento pueda hacerse referencia a sí mismo independientemente de su ubicación en la jerarquía del menú, utilice las formas siguientes:

$P@.@= xxx

Hace referencia al comando actual o al último elegido.

$P@. n = xxx

Hace referencia al elemento n del menú actual o del último elegido.

Acceso de AutoLISP al estado del rótulo

La función menucmd de AutoLISP acepta las cadenas de comandos $Pn=xxxsin el carácter inicial $. En estas funciones, la parte xxx de la cadena de comandos puede contener valores especiales.

P n . i =?

Devuelve el estado desactivado y marcado actual del elemento especificado con una cadena (por ejemplo, ~ para un elemento desactivado, !. para un elemento con una marca de verificación y "" para un elemento que no está atenuado ni marcado).

P n . i =#?

Devuelve el mismo tipo de cadena que se ha descrito para Pn.i=?, pero con el prefijo Pn.i=. Resulta de gran utilidad cuando se usa junto con las formas @, porque devuelve el menú y el número de elemento reales.

Por ejemplo, si el elemento 5 de la sección POP6 está desactivado, el siguiente código menucmd devuelve los siguientes valores de cadena.

(menucmd "P6.5=?") devuelve "~" 
(menucmd "P60,5=#?") devuelve "P6.5=~"