MÓDULO SIETE
Creación de órdenes externas, redefinición y abreviaturas a comandos
SIETE.1. INTRODUCCIÓN
En este MÓDULO se van estudiar varias características de AutoCAD que nos permitirán acceder desde la línea de comandos a las llamadas órdenes externas, es decir, a la ejecución de comandos que nada tienen que ver con AutoCAD 14. Estos comandos pueden llamar a aplicaciones externas como un editor de texto o una base de datos de Windows, o incluso a comandos a nivel de sistema operativo MS-DOS, los cuales pueden resultarnos útiles en determinados momentos de la edición de un dibujo. Y todo ello desde el propio AutoCAD.
Asimismo se explicará la forma simple sobremanera de redefinir los comandos del programa, esto es, de asignar a las propias órdenes de AutoCAD 14 funciones diferentes o ampliadas con respecto a las que ya poseen. De la misma manera veremos la posibilidad de seguir accediendo a la definición antigua de dichas órdenes, así como de anular la nueva definición creada.
Por último veremos la característica de creación de abreviaturas desde el teclado a los comandos más usados de AutoCAD. Podremos crear nuestros propios alias, modificar los existentes y/o añadir más definiciones a los actuales. Todo ello, acompañado de los habituales ejemplos explicativos, así como de los ejercicios de autoevaluación, nos ocupará la extensión de este MÓDULO SIETE.
SIETE.2. DEFINICIÓN DE COMANDOS EXTERNOS
Como ya se ha dicho, desde AutoCAD tenemos la posibilidad de realizar llamadas a comandos de MS-DOS y a utilidades y aplicaciones Windows, todo ello en tiempo de ejecución. Para que esas llamadas, escritas en la línea de comandos de AutoCAD 14, surtan el efecto deseado, deberemos definir un código que las realice efectivas. Las definiciones de llamadas a comandos externos se realizan en un archivo llamado
ACAD.PGP, el cual se encuentra en el directorio \SUPPORT\ del programa.ACAD.PGP
es un archivo ASCII, por lo que resulta fácilmente modificable y personalizable. Este archivo se busca en los directorios de soporte del programa y se carga (el primero que se encuentra si hay varios) cada vez que comenzamos un dibujo nuevo, abrimos uno existente o, evidentemente, arrancamos AutoCAD. En él se encuentran ya definidos los comandos externos que por defecto se suministran con AutoCAD 14, así como las abreviaturas a comandos que más adelante, y en este mismo MÓDULO, estudiaremos. Al abrir este archivo con cualquier editor ASCII, encontraremos primero la típica presentación de Autodesk, seguida primeramente de las definiciones de comandos externos. Se proporciona también una pequeña explicación para la creación de estos.
Una de las línea primeras de definición que podemos encontrar puede ser la siguiente:
CATALOGO, DIR /W, 0,Especificación de archivos: ,
Pero, ¿qué significa todo esto? ¿Cómo se definen estos comandos realmente? Vamos pues a explicar los diferentes parámetros de la definición.
Lo primero que tenemos que comentar es la posibilidad de introducir comentarios en este archivo, recurriendo, como en otros muchos casos de archivos de definición de AutoCAD, al carácter punto y coma (
;) al principio de la línea. Al igual que en otros casos, con un solo punto y coma es suficiente. Las líneas que comiencen con ; serán ignoradas por AutoCAD a la hora de leer el archivo ACAD.PGP. Además, disponemos también de la ventaja de introducir líneas blancas como separadores interlineales para imprimir claridad a los textos, sin que esto afecte tampoco a su posterior proceso.La sintaxis de definición de comandos externos MS-DOS en el archivo
ACAD.PGP es la siguiente:Nombre_comando
,[solicitud_DOS],Indicador_bit,[*][Mensaje],Pasaremos ahora a comentar cada uno de los parámetros incluidos.
NOTA: Las comas (
,) son todas obligatorias.·
Nombre_comando. Es el nombre que le asignamos al comando que estamos creando. Este nombre será posteriormente reconocido por AutoCAD (como comando externo), por lo que no debe coincidir con el nombre de ningún comando inherente al programa.·
Solicitud_DOS. Se refiere al comando a nivel MS-DOS que se ejecutará el llamar desde AutoCAD a Nombre_comando. Es el nombre de una orden, proceso o programa con sus parámetros y modificadores si los necesitara. Es un parámetro opcional (ya veremos por qué).·
Indicador_bit. Es un bit con los siguientes significados base:Algunos valores de bit pueden ser sumados, integrándose así unas acciones con otras. De esta forma, un valor de bit de
Todos los valores indicados (
0, 1, 2 y 4) más las combinaciones expuestas (3 y 5) representan todos los valores posibles que podemos dar a Indicador_bit, ya que no se pueden realizar más combinados porque los bits 2 y 4 se excluyen mutuamente. Además, estos dos valores suelen evitarse, ya que hacen que AutoCAD no se encuentre disponible hasta que la aplicación haya finalizado.·
Mensaje. Permite definir un mensaje para la línea de comandos de AutoCAD que se mostrará al llamar a la orden externa. Lo que se escriba como respuesta a dicho mensaje será pasado como parámetro adicional al comando de DOS que se ejecutará. Es por ello, que dicho mensaje ha de ser claro en su petición. Es opcional, aunque casi siempre necesario.Si se prevé que en algún momento, los modificadores que introduzca el usuario en línea de comando como respuesta a dicho mensaje pueden incluir algún espacio en blanco entre ellos, habremos de preceder el parámetro
Mensaje con un asterisco (*). Éste va marcado como opcional en la sintaxis porque únicamente se utiliza en estos casos.NOTA: La última coma (
,) tras Mensaje, al igual que las demás, es obligatoria. Esta coma se escribe al final por compatibilidad con antiguas versiones de AutoCAD. En dichas versiones se incluía un parámetro más que era un código de retorno interno.Una vez visto esto, vamos a estudiar algunos ejemplos.
La siguiente línea en el archivo
ACAD.PGP define un nuevo comando FORMATO que permite dar formato a una unidad de disco desde AutoCAD:FORMATO, FORMAT, 0, Unidad a la que dar formato: ,
NOTA
: Como vemos se pueden incluir espacios entre los parámetros para dar claridad a la línea. El espacio tras el mensaje lo que hace es dejar un espacio en la línea de comandos después del mensaje; así no se juntará éste con lo que escribamos después. Con los demás parámetros no se pueden incluir espacios blancos antes de la siguiente coma (sólo después).El comando nuevo de AutoCAD 14 será FORMATO; la llamada a MS-DOS es FORMAT (comando que da formato a discos); el indicador de bit es 0; el mensaje va al final seguido de la última coma.
El siguiente comando externo elimina el archivo indicado desde AutoCAD:
BORRA, DEL, 4, Archivo que se eliminará: ,
Se indica el indicador de bit NOTA: La utilización de mayúsculas o minúsculas en la sintaxis es indiferente.
Veamos un último ejemplo:
SHELL, , 1, *Comando Sistema Operativo: ,
Este ejemplo de De esta forma sencilla podemos definir una serie de comandos externos DOS que nos interese particularmente para trabajar.
NOTA: Aunque no se incluya un parámetro opcional, hay que especificar la coma correspondiente.
NOTA: Como comentario de paso, decir que existe una aplicación ARX denominada SIETE.2.2. Reiniciar el archivo Cada vez que editemos y modifiquemos el archivo Así pues, únicamente debemos escribir el comando, activar la casilla de verificación Archivo PGP en el cuadro de diálogo y pulsar el botón Aceptar. SIETE.2.3. Comandos externos Windows
De parecida forma a los comandos MS-DOS, las aplicaciones Windows pueden ser ejecutadas desde AutoCAD mediante un comando externo.
La sintaxis de creación de estas definiciones en Nombre_comando Como se puede observar los parámetros son parecidos a los ya explicados para comandos MS-DOS. La única diferencia es que el nombre de la aplicación Windows ( START Cuando existe un mensaje casi siempre habremos de especificar el asterisco. Esto es debido a que hasta una simple ruta de acceso puede incluir espacios blancos en Windows.
NOTA: Como vemos esta definición es un caso particular de la anterior personalizada para aplicaciones Windows.
Veamos algunos ejemplos:
BLOC, START NOTEPAD, 1, *Archivo que editar: ,
CALC, START CALC, 1,,
PAINT, START PBRUSH 1,,
NOTA
SIETE.3. ABREVIATURAS A COMANDOS
Además de poder definir órdenes externas, en el archivo
ACAD.PGP se definen también las abreviaturas que utilizamos comúnmente en línea de comandos. Así, el poder escribir L en lugar de LINEA, C en vez de CIRCULO o RR en lugar de recorta, obedece a una línea de definición en el archivo ACAD.PGP.La sintaxis para la creación de estas abreviaturas es:
Abreviatura
,*Comando_equivalenteAsí por ejemplo, la abreviatura de la orden
LINEA viene definida así:L, *LINEA
Como se ve, se pueden incluir espaciados o tabulaciones tras la coma para mayor legibilidad. La coma (
,) y el asterisco (*) son obligatorios.Veamos otros ejemplos que se podrían incluir en el archivo:
TX, *TEXTODIN
VM, *VMULT
RT, *REDIBT
RN, *REINICIA
Evidentemente, bajo aplicaciones de AutoCAD en inglés, el comando deberá ser el correspondiente anglosajón.
NOTA: Existe un truco para poder introducir comandos en castellano en una versión de AutoCAD en inglés. Precisamente consiste en definir, en el
ACAD.PGP, los comandos en castellano como abreviaturas de los comandos en inglés, por ejemplo: CIRCULO,*CIRCLE; LIMPIA,*PURGE; ACERCA,*ABOUT... Esto hace que AutoCAD tenga que procesar un ACAD.PGP muy grande, pero en un equipo medianamente rápido no se nota falta de velocidad alguna. Además, los comandos transparentes los podremos ejecutar en castellano sin más, colocando el apóstrofo de rigor delante de la equivalencia en castellano, por ejemplo 'ACERCA.Unos consejos para crear abreviaturas son:
No crear abreviaturas de más de tres caracteres; no merece la pena.
Procúrese indicar la primera letra del comando, a poder ser, si no las dos primeras, las tres primeras, etcétera.
También conviene indicar letras que recuerden al comando.
Óbviense las letras
Una abreviatura o alias deberá acortar el comando en al menos dos caracteres si dicho comando tiene 4 ó 5, y cuatro o cinco en comandos largos.
Los comandos con tecla aceleradora asignada, tecla de función o acceso en la barra de estado no necesitan abreviaturas.
Utilizar el guión (
-) para diferenciar entre comandos del mismo nombre que ejecuten órdenes de línea de comandos y de letrero de diálogo.NOTA: Se pueden indicar también en estas abreviaturas comandos definidos mediante AutoLISP o ADS, así como órdenes propias del gestor gráfico que se esté utilizando.
Existe una pequeña utilidad denominada AutoCAD Alias Editor que se proporciona con las rutinas de Bonus. Se puede ejecutar desde el menú desplegable (si está cargado) Bonus>Tools>Command Alias Editor..., y el ejecutable (
ALIAS.EXE) se puede encontrar en el directorio \BONUS\CADTOOLS\ de la carpeta donde se haya instalado AutoCAD 14.Esta utilidad propone una interfaz gráfica para la creación de alias o abreviaturas de comandos y de órdenes externas. Digna de tener en cuenta.
NOTA: En el archivo
ACAD.PGP da lo mismo definir antes las abreviaturas que los comandos externos, que al revés.
SIETE.4. REDEFINICIÓN DE COMANDOS DE AutoCAD
NOTA
: Esta última parte de este MÓDULO no tiene nada que ver con el archivo ACAD.PGP, pero por similitud temática con las definiciones que en él se encuentran (sobre creación de comandos y abreviaturas, como hemos visto) se ha incluido aquí.Existe la posibilidad de redefinir cualquiera de la órdenes o comandos inherentes de AutoCAD 14, es decir, de proporcionar una definición totalmente diferente a la actual a un comando y hacer que al escribir su nombre realice la nueva función. Esto es lo que se conoce como redefinición de comandos.
De esta forma, podríamos "decirle" a AutoCAD que el comando
LINEA ya no dibuje líneas como hacía, sino que haga lo que a nosotros nos interese. Al escribir la orden en la línea de comandos, o acceder a ella desde menús, macros o cualquier otro método válido, el efecto será el nuevo aplicado. De la misma manera, podremos eliminar la definición creada o, también, continuar accediendo a la definición base del comando aunque esté redefinido.La definición nueva para un comando de AutoCAD ha de ser un programa AutoLISP o ADS. Es por ello que aquí explicaremos el método, pero no podremos darle una aplicación real hasta dominar, por ejemplo, la programación en AutoLISP, cosa que se aprenderá en su momento (MÓDULO ONCE).
El proceso de redefinición de un comando pasa por la anulación de la definición actual base. Para ello se utiliza el comando
ANULADEF de AutoCAD (UNDEFINE para las versiones sajonas). Al teclear este comando se nos solicitará el nombre del comando de AutoCAD que queremos redefinir. Una vez introducido dicho nombre, el comando en cuestión estará inoperativo.Antes o después de anular una definición deberemos cargar en memoria (mediante
APPLOAD) el programa que sustituirá a la definición base. Este programa deberá contener una función de usuario con el mismo nombre que el comando que redefiniremos. Así por ejemplo, para anular la orden LINEA con una rutina AutoLISP, ésta deberá tener una función C:LINEA. De esta manera, al llamar a LINEA se ejecutará el programa implícito.A pesar de todo ello, siempre es posible acceder a la antigua y habitual definición de un comando de AutoCAD redefinido. Para esto, únicamente deberemos escribir un punto (
.) delante del comando en cuestión a la hora de llamarlo (desde línea de comandos, menús...), así por ejemplo:.LINEA
NOTA
: Esta forma de llamar a comandos, junto con el guión bajo que hace que se acepte en cualquier versión idiomática del programa, es la típica que ha de utilizarse en la creación de macros, programas AutoLISP y demás. De esta forma, nos aseguramos la compatibilidad en cualquier ordenador del mundo; sea cual fuere la versión idiomática de AutoCAD que se utilice y aunque los comandos en ella estén redefinidos. Por ejemplo: _.LINEA.Para volver a la definición habitual de un comando redefinido, utilizaremos la orden
REDEFINE (igual en inglés) de AutoCAD. A la pregunta del nombre de la orden, introduciremos el nombre de la anulada anteriormente mediante ANULADEF.A partir de este momento, la orden funciona de forma habitual y el programa que sustituía su acción queda sin efecto.
NOTA: La manera de comportarse un programa AutoLISP, a la hora de abrir un dibujo nuevo o de rearrancar AutoCAD que redefine un comando es igual a la de las aplicaciones externas en general. Por ello, al cerrar AutoCAD la redefinición se perderá, así como puede perderse al abrir nuevos dibujos si un parámetro de configuración del programa está establecido con un determinado valor. Todo ello y las maneras de evitarlo se estudiará oportunamente más adelante.
SIETE.5. EJEMPLOS PRÁCTICOS DE COMANDOS
EXTERNOS Y ABREVIATURAS
SIETE.5.1. Comandos externos MS-DOS
CREADIR, MKDIR, 1, *Ruta y nombre: ,
OCULTAR, ATTRIB +H, 4, Nombre del archivo: ,
DIRACAD, DIR "C:\AutoCAD R14, 0,,
SMART, C:\DOS\STARTDRV, 4, Unidad: ,
SETIME, TIME, 0, Hora: ,
SIETE.5.2. Comandos externos Windows
ESPACIO, START CLEANMGR, 1,,
PAINT, START PBRUSH, 1, *Archivo de mapa de bits: ,
IMAGEN, START C:\ACD\ACDSEE32, 1, *Directorio: ,
VB, START C:\VB\VB5, 1, *Archivo de proyecto: ,
C:, START C:, 1,,
ACAD, START "C:\AutoCAD R14", 1,,
SIETE.FIN. EJERCICIOS PROPUESTOS
EJERCICIOS RESUELTOS DEL MÓDULO SEIS
NOTA
: Se utilizan las mismas convenciones de sintaxis explicadas en el MÓDULO anterior: ® para las tabulaciones y ¶ para los INTRO; en el final de línea sin este último símbolo no se da un salto de línea con retorno de carro.EJERCICIO I
\#rutinas¶
\$Rutinas ExtraBonus¶
\KRutinas ExtraBonus 2000;ExtraBonus;2000;ORBITA;GIRATR;DESPLAZATR;ANULASOL;
CAMBIASOL¶
¶
Biblioteca de rutinas ExtraBonus 2000\¶
-------------------------------------¶
Las nuevas rutinas ExtraBonus 2000 añadidas han sido diseñadas para realizarle
más fácil su trabajo diario en 3D con AutoCAD. En la biblioteca podemos
encontrar cinco comandos nuevos añadidos, todos ellos formados por otros tantos
programas en AutoLISP y Visual C++. El acceso a estos programas se realiza
mediante los nuevos comandos diseñados o mediante los menús nuevos
desplegables y/o barras de herramientas.¶
¶
A continuación se presenta una lista con las diferentes nuevas rutinas,
indicando el nombre del nuevo comando asociado a la derecha:¶
¶
RUTINA
EJERCICIO II
\#purge¶
\$Limpieza del dibujo actual desde la línea de comandos¶
\KLimpia;Purge;Limpieza;Máscara;Filtro;Comodín¶
¶
Primer paso
EJERCICIO III
\#bloques¶
\$Diálogo de inserción de bloques¶
\KDiálogo de inserción de bloques;Inserción;Bloque¶
¶
EJERCICIO IV
\#ayuda¶
\$Ayuda de AutoCAD¶
\KAyuda de AutoCAD;Ayuda;AHP;HLP;HTML¶
¶
enriquecido>>rtf] .RTF. Para ello, es necesario un programa llamado "Microsoft
Help Workshop", el cual realiza la compilación y nos ayuda a mejorar el
documento, añadiendo imágenes, <<enlaces de hipertexto>>hiper] o índices de
contenidos, por ejemplo.¶
EJERCICIO V
(Ejercicio completo para resolver por técnicos y/o especialistas).
Autor: Jonathan Préstamo Rodríguez |
Para: La Web del Programador |