CorelCAD y la programación con AutoLisp/VisualLisp

01/07/2017

PROGRAMACIÓN DE
RUTINAS Y PROGRAMAS EN AUTOLISP

Si deseas modificar esta rutina para que se adapte a tus necesidades o deseas el desarrollo de una parecida, puedes solicitar el desarrollo de una nueva rutina contactándote conmigo desde aquí.

CorelCAD, en estos últimos años se está abriendo camino entre los usuarios de CAD y se está convirtiendo en una interesante alternativa a AutoCAD, por ejemplo.

  • CorelCAD y la programación con AutoLisp/VisualLisp

Aunque su uso aun no es tan popular, según mi punto de vista cuenta con características muy comunes a AutoCAD y por lo tanto muy productivas, en este post no me encargaré de compararlo con AutoCAD, tu personalmente si llegas a usarlo podrás ver todas estas similitudes y diferencias con respecto al programa estrella de Autodesk.

Una de las características que más se le agradece a CorelCAD es que brinde soporte para la automatización, soporta aplicaciones creadas con el lenguaje de programación AutoLisp además de soporte para crear macros realizadas con VSTA (Visual Studio Tools for Applications).

Sin embargo, a pesar de tener soporte para VisualLips, CorelCAD no tiene soporte para varias funciones que derivan de la creación del objeto ACAD, por ejemplo empezando por aquí:

(vlax-get-acad-object)

Entonces, por lo tanto, no podemos continuar usando más funciones a partir del objeto acad-object, por ejemplo:

(vla-get-activedocument (vlax-get-acad-object))

La línea superior de código obtiene el documento actual (dibujo) y si lo almacenamos en una variable, podemos acceder a varios objetos de ese documento, por ejemplo, los layouts (hojas del archivo).

Es por ello, que en CorelCAD no es posible llegar a los objetos layouts por esta vía (aquí es necesario que Corel trabaje más optimizando el código VisualLisp), sin embargo, se puede llegar con el propio lenguaje AutoLisp nativo llamado también Vanilla Lisp o sólo AutoLisp.

Para los usuarios de CorelCAD, esta es una gran esperanza de escribir código Lisp y optimizar sus procesos, quizá en algunos casos un poco más laborioso que otros, pero igual de eficaz, se podría comparar un poco a programar al estilo de AutoCAD para MAC que no acepta VisualLisp de ninguna forma.

A continuación, podrás ver código de ejemplo de cómo recorrer los layouts existentes de un dibujo y mostrar un mensaje de alerta con el nombre respectivamente.

Con ambos ejemplos podremos realizar una comparación de código escrito para AutoCAD y CorelCAD.

 

Visual Lisp (AutoCAD)

(defun c:rlac()
	(vl-load-com)
	(setq AcadObj (vlax-get-acad-object))
	(setq AcadDocument (vla-get-activedocument AcadObj))
	(setq layouts (vla-get-layouts AcadDocument))
	(setq actlay (vla-get-activelayout AcadDocument))
 
	(vlax-for itm layouts
		(if (/= (strcase (setq Nombre (vla-get-name itm))) "MODEL")
			(progn
				(vla-put-ActiveLayout AcadDocument itm)
				(alert (strcat "\nNombre del Layout [" Nombre "]."))
			)
		)
	)
	(vla-put-ActiveLayout AcadDocument actlay)
)

Código para mostrar los nombre de cada Layout (AutoCAD)

 

AutoLisp (CorelCAD)

(defun c:rlcc ( / dbLayout)
	(setq actlay (getvar "ctab"))
 
	(while (setq dbLayout (tblnext "LAYOUT" (null dbLayout)))
		(setq dbLayoutNom (member (assoc 1 dbLayout) dbLayout))
		(setq dbLayoutNomSig (cdr dbLayoutNom))
		(if (/= (strcase (setq Nombre (cdr (assoc 1 dbLayoutNomSig)))) "MODEL")
			(progn
				(setvar "CTAB" Nombre)
				(alert (strcat "\nNombre del Layout [" Nombre "]."))
			)
		)
	)
	(setvar "CTAB" actlay)
	(princ)
)

Código para mostrar los nombre de cada Layout (CorelCAD)

Como puedes ver, en el código de ejemplo para CorelCAD, no existe ni una línea de VisualLisp, sin embargo, logramos conseguir el mismo resultado.

Corel al parecer es consciente de que la programación con AutoLisp/VisualLisp es un gran punto para AutoCAD, que lo sitúa en ventaja por decirlo de cierta manera, es por ello que incluso en la instalación de CorelCAD, se instala por defecto un acceso directo para acceder a un archivo de ayuda denominado "Lisp reference".

Ayuda de AutoLisp CorelCAD

En este archivo, brindan al usuario información acerca de AutoLisp y detallan que el "Lisp proporciona una herramienta compleja para mejorar la potencia de su aplicación de muchas maneras". Además, hacen mención su propio interprete de AutoLisp incorporado, "El intérprete Lisp incorporado le permite agregar funciones y rutinas adaptadas a sus necesidades individuales".

Ahora, todo depende Corel, si desea que CorelCAD se logre posicionar en los exigentes usuarios de CAD, tendrá que recurrir a los recursos que sean necesarios para lograrlo.

  • Este tema tiene 0 comentarios
    • Compartir: