Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Macros de botón en AutoCAD versión 2009 (página 2)



Partes: 1, 2

^C^C_line;\;

  • Terminar en pausa para ingresar
    algún dato con barra invertida "":
    comando
    _circle que solicita indicar un objeto para poner el centro
    del circulo en su centro, y termina dejando una pausa para
    fijar el radio:

^C^C_.circle;_mid;

  • Terminar con salto de carro cada
    línea, de una macro con varias líneas,
    continuar la macro a una próxima línea con
    signo suma "+":

Siempre es conveniente escribir toda la cadena
macro en una sola línea pero esto es imposible en el
editor de macros de la
interfaz _CUI, la manera de hacer una macro con saltos de carro
es hacer una línea luego insertar símbolo de suma
"+" luego hacer salto a línea de abajo y continuar otra
línea que finaliza en el mismo signo "+" y otro salto a
línea de abajo y así hasta terminar la cadena
prevista en varias líneas, o sea con ese signo le indico
al AutoCAD que la
cadena continúa en línea de abajo, ejemplo de una
macro con saltos de líneas:

^P (setq p1(getpoint
"primer punto:"));+

(setq p2(getpoint
"segundo punto:"));+

^C^C_pline;!p1;!p2;;^P

Poner "^P" al comienzo y final me evita que
AutoCAD escriba las listas de autolisp en la ventana de comandos y
solicitudes que no requieren ser mostradas.

Caracteres
especiales de
control en macros

; ——————— punto y coma es un
ENTER^M —————— es un ENTER^I ——————– es
un TAB

[espacio en blanco] equivale a teclear barra
espaciadora ——————– pausa dentro de un comando para
ingresar datos

. ——————– punto ante el nombre de un
comando,

permite acceder a un comando de AutoCAD, incluso
si se

ha anulado su definición mediante el
comando ANULADEF

_comando ———– traduce los comandos y
opciones de AutoCAD a los del idioma actual, ejemplo si se
escribe _pline lo traduce a polilinea de version español.

Cada version de AutoCAD leerá las macros
en su idioma, y para poder
introducir nombres en ingles para que la macro sea legible en
cualquier version, antepongo al comando u opción de
comando el guion bajo.

-comando ———– signo menos delante de un
comando, evita aparición de cuadros de dialogo

"comando ———– apostrofo delante de un
comando, lo vuelve transparente, reemplaza a ^C^C

^C^C_select —— ejecuta comando _select para
generar una preselección aplicable para otro comando
posterior

+ ——————— signo suma, sirve para
hacer cadenas macro en varias líneas concatenandolas con
signo suma "+".

= *——————– Muestra el
menú contextual, de imágenes o
desplegable de nivel superior al actual

*^C^C ————— repite el ultimo comando$
———————- inicia una cadena DIESEL con $M=

^B——————— equivale a control+B
enciende o apaga los osnaps

^C ———————- es un COMMAND, termina
un comando activo o inicia otro si se duplica como ^C^C^D
———————-enciende o apaga el UCS dinamico, equivale
a control+D

^E ——————— inicia el siguiente
plano isometrico, como control+E

^G ——————— apaga o enciende la
grilla de puntos (control+G)

^H——————— equivale a paso
atrás o tecla BACKSPACE^O ——————— enciende o
apaga modo ORTHO

^P ———————- enciende o apaga
MENUECHO, duplicación de datos mostrados^Q
———————– control + Q, transmite prompts, listas de
estado, y
entradas a salida a impresora ^T
———————– activa o desactiva un tablero
digitalizador enlazado (CTRL+T)^V ———————– cambia
la ventana grafica actual ^Z ———————- carácter nulo que suprime la adición
automática del

SPACEBAR al final de una orden*
————————–es un Wildcard o comodín, se usa
para separar partes diferentes de la macro.

@; ———————— arroba y punto y coma
repite el ultimo punto insertado

~comando ————— Vuelve inutilizable un
comando

!.comando ————— Señala una orden
con una marca de
verificación o si un Icono es exhibido para la
opción del menú

&Ejemplo en menus —————Situado
directamente antes de un carácter, especifica el
carácter como la llave de acceso de atajo en un
menú subrayandolo

t ————————- tabula forzando todo
el texto entrado
después de estos caracteres hacia la derecha el lado del
menú

*Un ejemplo de cadena macro de botón,
¿Cómo la inicio?, elección de todos sus
caracteres y elementos a incluir, y ¿Cómo la
finalizo?, según el caso:

Caso 1: necesito hacer una macro de
botón, que al ser accionada, me pida objeto de origen de
propiedades, y una vez indicado, iguales las propiedades de todos
los demás objetos a ese primero:

*Lo primero es que ningún comando
esté previamente activo, entonces el comienzo es con ^C^C
…..Pero _painter puede ser usado como comando transparente como
"_painter……

*Luego llamo al comando igualar propiedades
_painter ……

*Luego de dar comando viene un ENTER con
";"…..

*Luego barra invertida "" para ingresar el dato
indicando origen de propiedades…

*Luego indico que los objetos destino son todos
con _all….

*Finalizo con dos ENTER con ";;"…

*Queda así:

^C^C_painter;_all;;

O puede quedar así:

"_painter;_all;;
…..para ser usada en medio de otro comando como el caso de
usarlo dentro de un trazado con _pline.

Caso 2: Necesito tener un comando que me
escriba un rótulo con nombre, dirección y fecha actual en distintas
líneas con _text:

^C^C_.text;;;nombre:
prexem;;;direccion: Av. Cabildo 1276;;;fecha:
$M=$(edtime,$(getvar,date),DD/MON/YY);

Caso 3: Quiero un comando que me pida
picar un objeto y apaga la capa de ese objeto pero solo hasta que
yo dé ENTER, luego de lo cual se re enciende la misma
capa.

^C^C_.layoff;;_.undo;

Caso 4: Quiero un comando que me pida
picar un objeto y cambia a la capa del mismo poniendola
actual.

^C^C^P(progn(vl-load-com)(terpri)(setq capa
(vlax-get (vlax-ename->vla-object (car(entsel "seleccione el
objeto de la capa requerida:"))) 'layer))(command "_layer" "_s"
capa "")(princ))^P;

Caso 5: Comando para hacer sombreados
sólidos directamente con color grisado

número 8.

(setvar "hpname"
"solid") ^C^C_-bhatch _change _l; _p _c 8;;

La interfaz de
personalización de AutoCAD, comando _cui

El comando que emplearemos principalmente
aquí es _CUI, es el que sirve para abrir la
interfaz de personalización del espacio de trabajo, y nos
servirá para crear barras de herramientas,
botones y poner macros asociadas a los mismos.

Para acceder al comando de personalización
de la interfaz hacemos:

Menu:  ?Tools  ? Customize ?
Interface Monografias.com

O ponemos en línea de comandos _CUI y
damos ENTER, entonces aparece una ventana como esta:

Monografias.com

En esta ventana de diálogo
puedo crear un nuevo botón de comando y una nueva barra de
herramientas, supongamos que deseo crear un nuevo comando que me
ejecute _audit, _regen y _purge en un solo botón.

Ejecuto _CUI y al abrir cuadro de diálogo
creo una barra de esta manera:

_cui
–>customizations in all CUI files –>click derecho en
toolbars –>new toolbar

Monografias.com

*A la nueva barra de herramientas le pongo por
nombre: "Limpieza1"…..

A cada cambio que
realizo en este cuadro de diálogo pulso botón
"Apply" para fijarlos……….

Monografias.com

*Armo la barra: arrastrando iconos desde lista de
comandos a la misma, y me queda así:

Monografias.com

*Luego, tengo dentro de mi barra de limpieza los
íconos de las macros:

^C^C_audit……………audita y corrige
errores de archivo

^C^C_erase;………….borrador de
objetos

^C^C_regen…………..regenera
corrigiendo modelo

^C^C_regenall……….regenera todo en un
archivo

^C^C_purge…………..purga lo que se
considera de más en un archivo

*Ahora bien deseo crear un nuevo botón con
una macro que me haga una limpieza general :

Dentro de la misma barra en el mismo cuadro de
diálogo, creo nuevo comando:

Monografias.com

Y le pongo por nombre "limpiezageneral" en
"Properties/Name", en

"Description" pongo —–>comando que engloba
audit, regen y purge…..,

en "Command Display Name" pongo
——>LIMPIEZAGENERAL…….,

Y en macro pongo:

^C^C_audit _y _regen
_purge _all _* _N

*La composición de esta macro DIESEL de
botón es simple, solamente
requiere:"^C^C"——>es ^C significa command
cierra cualquier comando en curso, el siguiente ^C inicia
el nuevo comando.

Luego inicia "_audit"……luego espacio
en blanco equivale a ENTER, luego

"_y" es dar un si, luego otro espacio en
blanco (ENTER), luego "_purge" + espacio en blanco +
"_all" indica todos + espacio en blanco + "_*" que
significa toda cadena de texto o nombre + espacio en blanco y
finalizo dando un no con "_N".

Es algo similar a realizar un script hasta
aquí, pero esto es lenguaje
DIESEL que puede tener otros embebidos como LISP……..

*Ahora en "Button Image" elijo el mismo
ícono de "_purge" y doy click en botón editar para
agregarle las letras "Lg" para que sea el botón de mi
nuevo comando, una vez que que tengo el nuevo ícono de
"LIMPIEZAGENERAL" en la lista de comandos, arrastro el mismo a ni
barra y doy "OK" saliendo de _CUI , entonces tengo la nueva barra
de limpieza.

Análisis
de macros de botón

Ejemplos sencillos:

*^C^C_.rectang;@500,500

Dibuja en forma repetitiva cuadrados de 500 de
lado, se sale con ESC.

Si en la macro solo
pongo——-^C^C_.rectang—–solo llamo al comando
rectángulo…..Pero si
pongo———-*^C^C_.rectang——-el asterisco vuelve
repetitivo al comando, y solo se sale con ESCAPE.

Si
pongo———*^C^C_.rectang;———además de lo
anterior se dá un

ENTER con el punto y coma ";" y se crea una pausa
con barra invertida

"" donde se ingresa primer corner…..

Si finalmente
pongo——–*^C^C_.rectang;@500,500—–además de lo
anterior se ingresa una coordenada relativa con "@500,500" que
define el cuadrado repetitivo.

Macros para hacer _slice por 3 puntos con
seleccion multiple:

^C(command "_slice"
(ssget) "" "_3" pause)

Partes:

^C ————- Cancela
cualquier comando en curso

(command "_slice" (ssget)
"" "_3" pause) —— lista autolisp que ejecuta

el comando _slice de una selección
de objetos indicando 3 puntos de un plano de

corte.

^C^C_select ^C^C_slice
_p; _3

^C^C ——————-
cancela cualquier comando y llama otro

_select —————–
comando _select para crear seleccion

————————– pausa para que se pueda hacer la
selección, si no

Estuviera, pasa directo al siguiente comando

^C^C ——————-
cancela cualquier comando y llama otro

_slice ——————-
comando _slice

_p; ———————–
seleccion previa y enter

_3 ————————
opcion de _slice indicar plano por 3 puntos

————————– pausa para terminar _slice

Macro que funciona bien en acad2009ing:

Cambia el ucs a la linea dada en el extremo
indicado y cambia la vista a superior:

Requiere pausa entre los dos comandos:

^C^C_ucs _ob
^C^C_-view _top

^C^C ——————-
cancela cualquier comando y llama otro

_ucs —————–
comando _ucs para establecer nuevo UCS sistema de
coordenadas

_ob —————–
opción para establecer ucs según un
objeto

————————– pausa para que se pueda hacer la
selección, si no estuviera, pasa directo al siguiente
comando

^C^C ——————-
cancela cualquier comando y llama otro

_-view ——————-
comando _view sin cuadro de diálogo para cambiar la
vista

_top
———————— opcion de _view pasa a vista
superior

Copia de objetos con preselección:

^C^C_select ^C^C_copy
_p;

^C^C ——————-
cancela cualquier comando y llama otro

_select —————–
comando _select para crear seleccion

————————– pausa para que se pueda hacer la
selección, si no estuviera, pasa directo al siguiente
comando

^C^C ——————-
cancela cualquier comando y llama otro

_copy —————–
comando _copy iniciado

_p; —————–
cuando pide seleccionar objetos le digo _p indica "previa" y toma
la selecciòn previa de _select y ENTER con ";"

————————– pausa para terminar de dar datos en
_copy

Poner todo en vista superior, _zoom extendido y
enciende 3dorbit free:

^C^C_-view _top _zoom _e
'_3Dforbit

^C^C ——————-
cancela cualquier comando y llama otro

_-view ——————-
comando _view sin cuadro de diálogo para
cambiar

la vista

_top
———————— opcion de _view pasa a vista
superior

_zoom
———————— llamo comando _zoom

_e ————————
opcion de _zoom extendido en todo lo dibujado

"_3Dforbit
———————— enciende la orbita 3d libre en modo
transparente

Comando que inicia la entrada dinámica, hace un segmento y lo acota:

^C(progn (command
"_dynmode" "3" "_line" (getpoint) (getpoint)
"")(vl-load-com)(command "_dimaligned" (vlax-curve-getstartpoint
(vlax-ename->vla-object (entlast))) (vlax-curve-getendpoint
(vlax-ename->vla-object (entlast)))))

Comando que crea un cuadrado dando valor de area
y punto inicio:

^C^C(progn (terpri)(setq
diag (sqrt (* (expt (sqrt (getreal "dar valor de area: ")) 2)
2)))(command "_.rectang" (progn (terpri) (setq p1 (getpoint "dar
punto inicio:"))) (polar p1 (/ pi 4)
diag))(princ))

Comando que sirve para abrir el Photoshop:

^C^C_start
photoshop;

Comando que abre el Flock y traslada a una pagina
de internet:

^C^C_start flock.exe
http://www.prexem.blogspot.com

Comando que abre la calculadora de expresiones
por línea de comandos:

^C^C_cal

Macro que hace un círculo en el punto
promedio de los puntos medios de dos
lineas o polilineas y el radio es
elegible:

^C^C_circle 'cal
(mid+mid)/2;

Cuando pide el centro se inicia el comando "cal
en modo transparente dentro de otro comando.

Comando para exportar la ventana modelo como
imagen
*.jpg:

^C^C_jpgout

Comando que exporta la ventana modelo como imagen
*.jpg dando camino

Del archivo:

^C^C_jpgout
c:/foto23.jpg;;

Simil al anterior pero eligiendo objetos a ser
exportados:

^C^C_jpgout
c:/foto23.jpg

Comando que sirve para cambiar el espesor de una
linea o polilinea:

^C^C_pedit _w
;

Comando que sirve para trazar muros en ejes
ortogonales con entrada dinámica y en un forzado de cursor
cada 0.1 (snap), se puede usar con mouse
solo:

'_orthomode 1 '_dynmode
3 '_snap 0.1; ^C^C_pline

Comando que apaga todo lo anterior si no hay
comando activo:

$(if,$(getvar,cmdactive),~) _dynmode -3 _ortho off
_snap off

Hace una nube de revisión rectangular:

^C^C_rectang;\_revcloud;_O; _L;;

Hace una nube de revisión circular:

^C^C_circle;\_revcloud;_O; _L;;

Hace un triángulo que es nube de
revisión:

^C^C_.polygon
3;_c;_.revcloud;_O; _L;;

hace una seleccion de n objetos, y cambia su
color a azul:

^C^C_select;_change;_p;;_properties;_C;blue;;

hace una seleccion de objetos y los transforma en
anotativos:

^C^C_select;_change;_p;;_properties;_a;_y;;

Macro que funciona bien en acad2009ing:

Cambia el ucs a la linea dada en el extremo
indicado y cambia la vista a superior:

Requiere pausa entre los dos comandos:

^C^C_ucs _ob
^C^C_-view _top

Si está en espacio modelo, pasa
directamente a layout2 con una lista LISP:

(if (eq(getvar
"tilemode")1)(command "_layout" "set" "layout2"))

Selecciona previamente un objeto, luego lo mueve
y lo puede rotar:

^C^C_select;_move;_p;;\_rotate;_p;;@0,0;_reference;@

Hace copiado de un objeto y rotación de la
copia sobre si misma:

^C^C_select;_copy;_p;;\_rotate;_l;;@

Circulo por 3 puntos tangentes:

^C^C_circle _3p _tan
_tan _tan

Circulo por dos puntos entre la mitad de una
linea y la mitad de otra:

^C^C_circle _2p _mid
_mid

Hace un arbolito genérico en planta dando
centro y radio:

^C(progn (terpri)(setq
p(getpoint "dar centro:"))(terpri)(setq r(getdist p "dar
radio:"))(command "_circle" p r )(command "_line" p (polar p (/
pi 4) (* r 1.1)) "")(command "_-array" "l" "" "_p" p 8 150
"_y")(princ))

Hace sombreado gouraud sin aristas visibles en
modelado 3d:

^C^C_-shademode
_g

Resetea al original la lista de escalas:

^C^C_-scalelistedit _r
_y _e

Unión de sólidos con
preselección:

^C^C_select;_union;_p;;

Personalización del comando _extrude para
que solo pida el path o trayectoria:

^C^C_select;_extrude
_p; _p;;;

Barrido repetitiva, se sale con ESC:

*^C^C_sweep

Personalización del comando _sweep para
que salga un sólido no alineado

con el path:

^C^C_select;(command
"_sweep" "_p" "" "_A" "_N" pause)

Numerador secuencial usando la variable de
sistema "USERI1" aumenta de 1 en 1, se sale con ESC:

*^C^C_.text;;;$M=$(getvar,USERI1);setvar;USERI1;$(+,1,$(getvar,USERI1))

Numerador cada 2 unidades:

*^C^C_.text;;;$M=$(getvar,USERI1);setvar;USERI1;$(+,2,$(getvar,USERI1))

Volver el numerador a cero:

^C^C_setvar;USERI1;0

Indicando dos poligonos a distintas alturas,
obtiene el volumen existente
entre ambos haciendo un _loft:

^C^C_select ^C^C_.loft
_p; _c;(vl-load-com)(alert(strcat "volumen: "(rtos(vlax-get
(vlax-ename->vla-object (entlast)) "volume") 2 2)))
_.undo;1;

Macro para guardar una vista con un nombre:

^C^C_-view
_s;

Macro para volver a una vista guardada dando el
nombre:

^C^C_-view
_r;

Y de esta manera, se pueden crear infinitas
macros de botón incluíbles en AutoCAD por medio de
la interfaz del comando _CUI

Es conveniente experimentar largamente con
esto para encontrar su mecanismo.

 

 

 

 

Autor:

Víctor Adolfo Bracamonte

Arquitecto.

Concepción, Tucumán,
Argentina.

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter