AutoCAD. Menú Personalizado (Parte 2)

martes, 4 de agosto de 2015

En esta entrega(parte 2) veremos el archivo de recursos de lisp para nuestro menú (LaMarmita.mnl).
El archivo de recursos MNL es en realidad un archivo de lisp, que en lo único que cambia es en la extensión del archivo.
La ventaja del archivo de recursos MNL es que se carga automáticamente con nuestro menú, de manera que podemos incluir en en este funciones, comandos, variables, etc, que queramos que se ejecuten, carguen o modifiquen en cada sesión y/o documento.


Creación del archivo de recursos de menú (MNL)
Podemos usar cualquier editor de textos que usemos a menudo para nuestra programación en lisp o usar el IDE de VisulaLisp (comando VLIDE o VLISP) para crear y editar el archivo MNL.
Yo personalmente prefiero este último ya que tenemos todas las ventajas del editor y podemos hacer pruebas de carga de código parciales o totales para comprobar, pero podemos usar editores como EditPadPro o UltraEdit que contienen plantillas personalizadas para editar en lisp y otros lenguajes.
VLIDE tiene muchas ventajas, ademas del resaltado de sintaxis como pueden tener otros editores, tiene concordancia entre paréntesis, sangría automática y terminación/búsqueda de palabras clave. Cuenta también con depuración y demanda de carga parcial o total, consola de pruebas y enlace directo a la ayuda.

Vamos a incluir en el archivo MNL solo un poco de código para lo que tenemos hasta ahora publicado en La Marmita y en este tutorial.
Una parte donde crearemos un comando nuevo para acceder al blog de La Marmita desde el propio menú:
;;Nuevos comandos:
;;Function to open blog La Marmita on internet
(defun c:OpenBlog ()
 (command "._browser" "http://lamarmitadelcad.blogspot.com.es")
 (princ)
)
Otra parte en la que cargaremos nuestros archivos lisp con funciones auxiliares y comandos nuevos:
;;Carga de funciones de La Marmita:
(setq MiListLISP
      '("jlgg_Auxiliares.lsp"
 "Simbolos\\InsertEscalasGRP.lsp"
 "Simbolos\\SimbDetallesSecciones.lsp"
 )
)
(mapcar
 (function
   (lambda (MiProgFile / PathTmp)
     (if (setq PathTmp (findfile MiProgFile))
       (load PathTmp)
       (prompt (strcat "\nNo se encontro [" MiProgFile "]."))
     )
   )
 )
 MiListLISP
)
(setq MiListLISP nil)
Y por último un mensaje de que nuestras utilidades de menú se cargaron correctamente:
;;Mensaje de carga:
(prompt "\n*Utilidades de menu de LaMarmita...Cargadas.")
(princ)
Podéis probar a cambiar variables del sistema que siempre utilicéis con un determinado valor. Ejemplo:
 ;;Zona cambio de variables:
 (setvar "HIGHLIGHT" 1)
 (setvar 'cmdecho 0)

Código completo del programa


Select all
;;*******************************************************************************;;
;;     _           __  __                _ _                                     ;;
;;    | |   __ _  |  \/  |__ _ _ _ _ __ (_) |_ __ _                              ;;
;;    | |__/ _` | | |\/| / _` | '_| '  \| |  _/ _` |                             ;;
;;    |____\__,_| |_|  |_\__,_|_| |_|_|_|_|\__\__,_|                             ;;
;;                                                                               ;;
;;********************************* LaMarmita.mnl *******************************;;
;;Revisiones:                                                                    ;;
;; 05/2015:                                                                      ;;
;; José Luis García Galán 05/2015 para LaMarmita                                 ;;
;;                                                                               ;;
;; Puede modificar este archivo para uso propio.                                 ;;
;; Se recomienda hacer copia de seguridad antes de modificarlo.                  ;;
;;                                                                               ;;
;;*******************************************************************************;;

;;Nuevos comandos:
;;Function to open blog La Marmita on internet
(defun c:OpenBlog ()
 (command "._browser" "http://lamarmitadelcad.blogspot.com.es")
 (princ)
)

;;Carga de funciones de La Marmita:
(setq MiListLISP
      '("jlgg_Auxiliares.lsp"
 "Simbolos\\InsertEscalasGRP.lsp"
 "Simbolos\\SimbDetallesSecciones.lsp"
 )
)
(mapcar
 (function
   (lambda (MiProgFile / PathTmp)
     (if (setq PathTmp (findfile MiProgFile))
       (load PathTmp)
       (prompt (strcat "\nNo se encontro [" MiProgFile "]."))
     )
   )
 )
 MiListLISP
)
(setq MiListLISP nil)

;;Mensaje de carga:
(prompt "\n*Utilidades de menu de LaMarmita...Cargadas.")
(princ)

Descarga

Podeis descargar los archivos del tutorial completo desde Archivos de personalización de La Marmita de la Parte 1 publicada de este tutorial.

Un saludo a tod@s desde España.

No hay comentarios:

Publicar un comentario