Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EN LA BASE DE DATOS
(setq a (entlast))
Esto recuperará los datos de la entidad. Debería verse algo como esto:
Antes de escribir las siguientes líneas, asegúrese de que su ajuste esté desactivado.
Command: circle
3P/2P/TTR/<Center point>: !c
Diameter/<Radius> <10.0>: 20
Echemos un vistazo a una rutina de AutoLisp que se puede usar, como una especie de plantilla
que se puede aplicar a numerosas aplicaciones similares. Echa un vistazo de cerca a esta
codificación:
(setq a1 (ssget))
(setq index 0)
(repeat n
(entmod b3)
);repeat
(princ)
);defun
(princ)
Esta rutina le permite seleccionar cualquier número de objetos y cambiarlos a una capa diferente.
La capa de destino se elige simplemente apuntando a un objeto en la capa deseada. (Para probar
esta rutina, deberá crear un dibujo con objetos en diferentes capas). Veamos línea por línea:
Solicita al usuario.
(setq a1 (ssget))
(setq a2 (entsel))
(setq index 0)
(repeat n
Esto comienza el ciclo que las páginas a través del conjunto de selección.
Sustituye la nueva capa 'd2' por la capa antigua 'd1' en la lista de entidades 'a1', y la asigna a la
nueva lista de entidades 'b3'.
(entmod b3)
);repeat
(princ)
Terminar limpiamente.
);defun
Cierra la función.
(princ)
Limpieza de carga.
(setq a (ssget))
(setq index 0)
(repeat n
(progn
(entmod b2)
);progn
);if
);repeat
(princ)
);defun
(princ)
La base de datos de AutoCad no solo consta de entidades, sino que también incluye varias otras
secciones, como la SECCIÓN DE TABLAS.
Las tablas almacenan información sobre entidades que se mantienen globalmente dentro del
dibujo. Por ejemplo, cuando inserta un bloque en un dibujo, ¿cómo sabe AutoCAD cómo se ve el
bloque? La definición de un bloque se almacena en la tabla de bloques. ¿Qué sucede, por ejemplo,
si necesita crear una capa? Debe saber si la capa ya existe porque si intenta crear una capa que ya
existe, su programa se bloqueará. Por lo tanto, primero debe buscar en la Tabla de capas para ver
si existe la capa.
Una tabla se divide en 2 partes: los 'nombres' de las entradas en la tabla y los 'detalles' de cada
entrada. Por ejemplo, en la Tabla de capas, el nombre de las entradas serían los nombres de las
capas que existen. Los detalles de una capa individual serían color, tipo de línea, encendido,
apagado, congelado, descongelado, bloqueado, desbloqueado o actual.
Para acceder a una tabla usaríamos la función (tblsearch). Echemos un vistazo a un ejemplo:
Suponga que desea saber si existe una capa llamada ACERO en su dibujo. Primero crea la capa
ACERO y luego escribe lo siguiente:
A veces no sabes el nombre de una capa o un bloque, pero necesitas una lista
de ellos. Esto es cuando la función (tblnext) entra en juego.
Supongamos que existen 4 capas en su dibujo. Los nombres de las capas son
MECH, ACERO, TUBO y TXT. Introduzca la siguiente :
(tblnext "Layer")
} //end list
;define funcion
(setvar "cmdecho" 0)
;switch off command echo
(setq userclick T)
;set flag
(setq f 1)
;rewind pointer
(while
;start while loop
(setq f nil)
;reset pointer
);if
);while
);not
(exit)
;if problem exit
);if
(start_list "sel1")
;start the list
(end_list)
;end the list
(action_tile
"cancel"
);action_tile
;if cancel set flag to nil
(action_tile
"accept"
(strcat
"(progn
);strcat
);action tile
;if OK get the layer selected
(start_dialog)
(unload_dialog dcl_id)
(if userclick
;if flag true
(progn
);end progn
);end if
(princ)
);defun C:getlay
(princ)
Si desea la codificación de origen para esta rutina de AutoLisp, simplemente haga clic aquí. Saludos
y mantengan bien ...