Ordenación y carga de nuestros archivos de programación en AutoCAD

lunes, 27 de abril de 2015


Antes de empezar a usar archivos de programación, vamos a ordenarnos un poco para que luego, a la larga, no tengamos problemas de carga de los archivos de personalización y aplicaciones que  usemos con Autocad.
Esta puede no ser la manera que guste a todo el mundo de ordenar los archivos de programación, pero es la que he usado durante mucho tiempo, creo que es buena y ademas es mejor un criterio malo que ningún criterio.

Lo primero que haremos sera crear un directorio y sus respectivos sub-directorios para catalogar nuestros archivos de programas, en mi caso al directorio principal lo he llamado "LaMarmita" (imaginareis porque), el resultado puede ser algo como esto:


De manera que en el directorio principal (en mi caso LaMarmita) pondremos los archivos principales de personalización, como archivos de menú (mnl,cuix,..), archivos de carga al inicio (jlgg_Auxiliares.lsp)(lsp,vlx,fas,dvb) con funciones que serán comunes para otros programas, etc y en el resto de directorios incluiremos los programas relativos a sus nombres, programas para bloques en la carpeta bloques, para capas en la carpeta capas, etc.
Como veremos ahora, de esta manera sabremos exactamente donde están cada uno de nuestros programas y los podremos llamar (cargar y ejecutar) desde autocad mas sencillamente.

El siguiente paso es incluir en autocad nuestra ruta principal, para ello nos vamos a las opciones de Autocad (opciones u _options) y en la ficha "Archivos" desplegamos pulsando en "+" el item "Ruta de búsqueda de Archivos de soporte" y añadir la ruta:

Rutas de Archivos de soporte

Y para no tener problemas de seguridad en versiones de Autocad 2014 y superiores añadiremos también nuestra ruta a "Ubicaciones de confianza":

Ubicaciones de confianza

En este punto es importante añadir a nuestra ruta "\..."(barra invertida y tres puntos) para que nos reconozca tambien como archivos de confianza, no solo los archivos alojados en el directorio principal, sino todos los archivos en los sub-directorios dentro de el principal (Capas, Bloques,..).

Una vez hecho esto podremos usar funciones de lisp como "findfile" para obtener nuestras rutas completas:
(findfile "jlgg_Auxiliares.lsp")
Devuelve: "E:\\PROGRAMACION\\LaMarmita\\jlgg_Auxiliares.lsp"
(findfile "Simbolos\\Simbolos1.lsp")
Devuelve: "E:\\PROGRAMACION\\LaMarmita\\Simbolos\\Simbolos1.lsp"

Podremos usar por ejemplo un archivo de recursos de menu (mnl) para cargar nuestros archivos de la siguiente manera:

(load "jlgg_Auxiliares.lsp")

(load "Simbolos\\Simbolos1.lsp")

Pero sera mejor asegurarse de que existen nuestros archivos:

(if (setq PathTmp (findfile "jlgg_Auxiliares.lsp"))
 (load PathTmp)
 (prompt "\nNo se encontro [jlgg_Auxiliares.lsp]")
)
(if (setq PathTmp (findfile "Simbolos\\Simbolos1.lsp"))
 (load PathTmp)
 (prompt "\nNo se encontro [Simbolos1.lsp]")
)
....
....
(setq PathTmp nil)

Si se tienen muchos archivos de programación se pueden cargar sin repetir lo mismo tantas veces:

(setq MiListLISP
       '("jlgg_Auxiliares.lsp"
  "Simbolos\\Simbolos1.lsp"
  "Capas\\IsolateLayers.fas"
  "Bloques\\ReplaceBlocks.lsp"
 )
)
(mapcar
 (function
   (lambda (MiProgFile / PathTmp)
     (if (setq PathTmp (findfile MiProgFile))
       (load PathTmp)
       (prompt (strcat "\nNo se encontro [" MiProgFile "]."))
     )
   )
 )
 MiListLISP
)
(setq MiListLISP nil)

Ejemplo de carga de programas en VBNet, ARX y VBA:

NET: (command "_.NETLOAD" (findfile "topografia\\PerfilTopo.dll"))
VBA: (vl-vbaload (findfile "registro\\MultipleAudit.dvb"))
ARX: (arxload (findfile "Polilineas\\SplineToPoly20.x64.arx")


Un saludo a tod@s desde España.

No hay comentarios:

Publicar un comentario