Modemacro y
DIESEL.
Dentro de la personalización de AutoCAD existe la
posibilidad de añadir información personalizada en la “Línea de Estado”.
Recordando uno de los primeros temas del blog, la línea
de estado es aquella que se muestra en el borde inferior de la pantalla, y en
su configuración incluye de izquierda a derecha, las coordenadas de posición
del cursor, ya sea con actualización dinámica según el movimiento del cursor, o
estática cada vez que señalamos un punto en el área gráfica de la pantalla. A
continuación un conjunto de pulsadores que controlan distintos estados de
funcionamiento, como los modos “orto”, “snap”, “refent”, “grid”, etc., y en el
lado derecho se incluyen otros tipos de pulsadores con una lista desplegable al
final, con el control sobre la posibilidad de mostrar/ocultar estos conjuntos.
Mediante el mecanismo de una variable interna
identificada como “MODEMACRO” se puede añadir información personalizada, que se
sitúa en el extremo izquierdo de esta línea. La variable se puede invocar desde
la línea de estado, y a continuación escribir un texto. El tamaño máximo es de
4.096 caracteres, aunque obviamente se desbordaría mucho antes el tamaño máximo
de la pantalla, desplazando fuera los pulsadores y paneles que se muestran
normalmente y cuya configuración junto con el tamaño y resolución de la
pantalla son los que en la práctica limita el tamaño máximo del texto.
Dentro de esa nueva línea podemos mostrar por ejemplo
nuestro nombre, o el de la empresa aunque esa sea una información poco útil. Para
ello solo habría que escribir en la línea de órdenes:
MODEMACRO: Julio AR
A partir de ese momento veremos que el nombre “Julio
AR” se muestra siempre al comienzo de la línea de estado, bien hasta que
volvamos a modificar la variable, o hasta que cerremos la sesión, ya que el
contenido de la variable es volátil y no se guarda en el archivo de dibujo.
Lógicamente esa información “fija” es poco relevante,
pero el programa dispone a su vez de un lenguaje de macros conocido como
“DIESEL”, que permite ampliar esa información de una manera mucho más útil,
como puede ser el nombre de la capa actual, del color, del tipo de línea, del estilo
de texto o de la acotación, y en general cualquier valor contenido en alguna
variable interna del programa.
El lenguaje de macros “DIESEL” se explica en la
ayuda, y básicamente permite escribir expresiones basadas en el repertorio de
funciones que se enumeran, las cuales tienen un formato similar al LISP aunque
precedidas por el símbolo “dólar”, de la siguiente forma.
$( funcion, variable1, variable2, ..
)
Una función interesante para este uso es “ $(getvar,
variable) “ que es la que permite consultar en cada momento el contenido de las
variables del programa, en particular para mostrar el color actual, tipo de
línea, estilo etc.
Concretamente vamos a ampliar la información de la
línea de estado, incluyendo el color, la escala de tipo de línea y el estilo de
texto actuales. Esa infamación si consultamos las variables del sistema a
través de la ayuda correspondiente, se encuentra en las variables: “CECOLOR”,
“LTSCALE”, y “TEXTSTYLE”.
Por tanto tendremos que escribir un valor para
“modemacro” que incluya el texto de referencia y en su lugar las llamadas a las
funciones capaces de mostrar sobre esa línea de texto, los valores
correspondientes. Esto sería algo así como:
MODEMACRO: Color Actl: $(getvar, cecolor) – Estilo
Texto: $(getvar, textstyle) – Escala de tipo de Línea: $(getvar, ltscale)
Evidentemente esta configuración se pierde cuando
cerramos el programa, pero nada impide escribir esa macro en alguna opción particular
de menú personalizada mediante la interfaz CUI que habíamos comentado en las
entradas anteriores.
Fotos y
Archivos de Comando.
En el momento actual, el problema de realizar
“presentaciones” sobre cualquier contenido, ya sea de “AutoCAD” o de otros
programas, ha cambiado notablemente con respecto a las primeras versiones, que
ya disponía de una difusión universal y generalizada desde mediados de los años
80s, cuando el uso de programas como “Power Point” o los formatos PDF
resultaban inimaginables.
En aquellas primeras versiones, el programa disponía
de un sistema propio, que lógicamente se ha mantenido por compatibilidad hacia
atrás, y que en la actualidad se
encuentra en desuso. El sistema propio se basa en la posibilidad de “capturar”
imágenes asiladas, exclusivamente del área gráfica de la pantalla, y
posteriormente poder mostrarlas mediante una secuencia escrita en un archivo de
comandos, que el propio programa puede ir mostrando paulatinamente con retardos
programados, de una forma completamente “desatendida” lo cual podría resultar
útil en ciertos entornos como ferias o exposiciones.
Esa secuencia de “imágenes” previamente guardadas en
archivos independientes se muestran en la pantalla gráfica superpuestos a la
imagen actual, pero cualquier acción sobre el teclado, ratón, o menús o la
ejecución de otro comando, hacen que la pantalla se actualice y por tanto se
pierde la imagen mostrada.
Las imágenes o capturas se denominan “slides” y el
programa dispone de un par de comandos, que sirven para realizar o mostrar la
captura de esa imagen gráfica. Estas son “SACAFOTO(_MSLIDE)” y
“MIRAFOTO(_VSLIDE)”. Estas órdenes se pueden ejecutar desde línea de órdenes, de
forma que en el primer caso nos pedirá una carpeta o dirección para situar el
nuevo archivo, y en el segundo el nombre del archivo que se quiere mostrar.
El archivo de comandos no es más que un archivo de
texto plano (formato ASCII puro), con la extensión “*.SCR” (script) en el que
se va escribiendo cada comando en una línea diferente. El archivo puede
contener cualquier comando salvo aquellos que despliegan un cuadro de diálogo,
aunque normalmente estos suelen disponer de versiones alternativas sin el
cuadro de diálogo.
Existe además algún comando como “RETARDA(_DELAY)”,
que resulta bastante útil en este tipo de archivos ya que provoca un retardo en
milisegundos igual a la cifra que se incluya, hasta que se procesa el siguiente
comando de la lista. A continuación se muestra como ejemplo, un fragmento de un
archivo que muestra las imágenes empaquetadas en t61(b100) .. b101) .. b102)
con retardos de 1 segundo.
_vslide
t61(b100)
_delay 1000
_vslide
t61(b101)
_delay 1000
_vslide t61(b102)
_delay 1000
No hay comentarios:
Publicar un comentario