Cómo crear rutinas LISP para la configuración del dibujo.
BricsCAD Lisp
Migración desde AutoCAD®
Cuando comience a migrar a BricsCAD, descubrirá que prácticamente no hay diferencias en BricsCAD LISP frente a OtherLISP. Su código se carga y se ejecuta, y la funcionalidad es idéntica. Las principales diferencias al “portar" tus aplicaciones serán algunos pasos de configuración menores, la estructura de la línea de comandos y, posiblemente, las ubicaciones de los archivos. " Para comenzar, revise la configuración y el inicio de sus programas existentes en BricsCAD.
Si está iniciando automáticamente sus programas usando Acad.lsp o Acaddoc.lsp, Deberá cambiarles el nombre a on_start.lsp o on_doc_load.lsp respectivamente. La mejor solución es usar on_doc_load.lsp, en lugar de on_start.lsp.
Configuraciones BricsCAD
Para habilitar el inicio automático de su programa, establezca la variable de sistema ACADLSPASDOC en 1 o simplemente active la opción en Configuración / Opciones del programa / Sistema:
También es recomendable que dedique un poco de tiempo a familiarizarse con el menú Opciones/Configuración de BricsCAD, ya que hay configuraciones y opciones específicas del entorno de BricsCAD.
El siguiente paso en el cuadro de diálogo de configuración sería agregar sus carpetas de soporte a la ruta de búsqueda Archivos, que se encuentra en Configuración / Opciones del Programa / Archivos:
Se recomienda usar las rutas de soporte agregadas de la manera anterior y/o ubicada un nivel por debajo de la carpeta del proyecto actual. Es una buena práctica usar una función findfile para validar que el archivo existe antes de continuar con sus comandos, como en el método a continuación:
Este es uno de los métodos que puede utilizar para cargar bajo demanda sus funciones dentro del archivo on_doc_load.lsp :
Este es uno de los métodos que puede utilizar para cargar sus funciones bajo demanda dentro del archivo on_start.lsp :
El comando DEFUN (DEfine FUNction) tiene el mismo nombre que la función dentro del archivo on_doc_load.lsp y esa función redefine la función de llamada cuando se inicia.
Configuración de dibujo Lisp Rutinas para BricsCAD
Ejemplo de código
La siguiente rutina de configuración de dibujo simple podría adaptarse a sus necesidades con cambios mínimos.
(defun C: MYSETUP ( / ) ;definir la función de línea de comandos "mysetup"
(setvar "cmdecho" 0)
(comando "_audit" "_y") ;auditar el dibujo actual
(comando "_-purge" "_all" "*" "_n") ;purgar todos los estilos no utilizados, etc
(comando "_-layer" "_m" "1" "_c" "1" "" "") ; crear capa "1" color "1"
(comando "_-capa" "_m" "2" "_c" "2" """)
(comando "_-capa" "_m" "3" "_c" "3" """)
(comando "_-capa" "_m" "4" "_c" "4" """)
(comando "_viewres" "_y" "20000") ; establecer la resolución de la vista al máximo
(setvar "filedia" 1) ;activar los diálogos de archivos
(setvar "attdia" 1) ;activar los diálogos de atributos
(setvar "attreq" 1) ;activar la edición de atributos en la colocación
(setvar "cecolor" "bylayer") ; fijar el color actual bylayer
(setvar "clayer" "0") ;fijar la capa actual en "0"
(setvar "maxsort" 5000) ;fijar la ordenación máxima de la capa en 5.000
(command "_zoom" "_e" "_zoom" "0. 95x") ;amplía la extensión, luego se aleja un poco
(setvar "cmdecho" 1)
(princ)
)
Cada línea individual de esta rutina de configuración de dibujo podría haberse escrito en la línea de comandos en BricsCAD. Al envolverlos en una rutina de Lisp, la función defun (definir función) hace que la rutina de configuración del dibujo sea "callable" desde un menú o escribiendo su nombre en la BricsCAD línea de comandos.
Si no incluyes defun, el programa se ejecutará una vez, cuando lo cargues por su nombre de archivo. El uso de defun y la carga de esta rutina dentro de su lsp, hará que la función esté disponible en cualquier momento escribiendo su nombre de función: mysetup.
Los comandos con guiones precedentes (por ejemplo. -capa y -limpia) se utilizan para evitar que se inicien los cuadros de diálogo del comando.
Nota: Utilice siempre los nombres de los comandos y opciones en inglés para evitar fallos en las versiones localizadas (no inglesas) de BricsCAD.
Una buena práctica al abrir archivos de otros es ejecutar una auditoría seguida de una purga para eliminar los elementos no utilizados.
El comando Limpia se puede ejecutar varias veces para eliminar los elementos anidados. Consulte el siguiente ejemplo:
(repetir 3 (comando "-purge" "all" "*" "n"))
Nota:Limpia se realiza antes de agregar las nuevas capas vacías, ya que se eliminarían si lo hiciéramos después.
Los comandos para establecer capas se pueden combinar en una sola instrucción de comando, pero es más fácil de leer cuando cada línea es independiente.
El setvar llama a establecer una variable del sistema en un valor especificado, p. ej. ajustes de estilo para cotas y texto, ajustes de unidad, etc.
La configuración maxsort se introdujo por dos razones.
Maxsort controla el número máximo de entradas del cuadro de diálogo que se ordenarán.
El valor predeterminado de maxsort es 1.000. Con las computadoras de hoy en día y, a menudo, se encuentran archivos de proyectos más grandes, ese número puede ser demasiado bajo.
Si abre dibujos en los que los nombres de las capas no se ordenan alfabéticamente, el valor maxsort predeterminado podría ser el motivo.
Un Layer Maker más versátil para su rutina de configuración de planos
Se podría agregar el siguiente ejemplo a su versión de mysetup.lsp. Creando un archivo de texto simple «Layers.txt» con un editor como Notepad, puedes añadir una lista de nombres de capas que se crearán cuando se ejecute la rutina. Esta es una alternativa al proceso de codificación rígida que se muestra arriba. Al usar la función findfile, BricsCAD primero buscará en el directorio actual, luego secuencialmente a través de sus carpetas de soporte definidas para encontrar el archivo Layers.txt. Puede colocar su archivo de texto de configuración de capas predeterminado en la ruta de soporte y colocar versiones alternativas del mismo en carpetas de proyectos individuales.
(si (no (busque el archivo" Layers.txt")) ;" not" = no se busca ningún resultado en findfile
(alerta) ¡No" puedo encontrar Layers.txt! ") ;¿Sin archivo? ¡Grita al usuario y sal!
(progn ; De lo contrario, haz las cosas del grupo progn
(establezca un archivo de capa (abrir) (busque el archivo" Layers.txt") "r")) ;abrir layers.txt para "leer"
(while (setq layername (read-line layerfile)) ;mientras se lee cada línea, almacenar el texto en layername
(command "-layer" " m" layername "" ) ;hacer capa con el layername
) ;terminar el bucle while
(close layerfile) ;cerrar el archivo Layers.txt
) ;finaliza el progn
) ;finaliza el if
Lisp - BricsCAD Lite & Pro | Centro de ayuda de Bricsys