1. Trang chủ
  2. » Công Nghệ Thông Tin

AutoCAD 2010 Manual de personalización- P18 ppsx

30 334 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Introduction to Programming Interfaces
Chuyên ngành Computer Programming and AutoCAD Customization
Thể loại Manual
Định dạng
Số trang 30
Dung lượng 385,55 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Presentación general de ActiveX Puede crear y manipular objetos de AutoCAD desde cualquier aplicación quefuncione como controlador de Automation.. Puede utilizar estas aplicaciones u otr

Trang 1

Introducción a las

interfaces de programación

Las interfaces de programación que se presentan aquí son ActiveX® Automation, VBA (VisualBasic® for Applications), AutoLISP®, Visual LISP™ , ObjectARX™ y NET El tipo de interfazque se utilice dependerá de las necesidades de la aplicación y de la experiencia en programación

de cada usuario

ActiveX Automation

ActiveX Automation es una tecnología desarrollada por Microsoft® y basada en

la arquitectura COM (modelo de objetos componentes) Puede usarse parapersonalizar AutoCAD, compartir los datos de dibujo con otras aplicaciones yautomatizar tareas

Presentación general de ActiveX

Puede crear y manipular objetos de AutoCAD desde cualquier aplicación quefuncione como controlador de Automation Al hacerlo, Automation activa laprogramación de macros en todas las aplicaciones Esta función no existe enAutoLISP

Por medio de Automation, AutoCAD expone los objetos programables, descritospor AutoCAD Object Model, que se pueden crear, editar y manipular desde otrasaplicaciones Cualquier aplicación que pueda acceder a AutoCAD Object Model

es un controlador de Automation y la herramienta que se utiliza con másfrecuencia para manipular otra aplicación con Automation es Visual Basic forApplications (VBA) VBA es un componente en muchas aplicaciones de MicrosoftOffice Puede utilizar estas aplicaciones u otros controladores de Automation,como Visual Basic, NET, y Delphi, para controlar AutoCAD

7

501

Trang 2

La implantación de una interfaz ActiveX para AutoCAD ofrece dos ventajas:

■ El acceso programático a los dibujos de AutoCAD puede realizarse desdemuchos otros entornos de programación Antes de ActiveX Automation,los desarrolladores debían limitarse a una interfaz AutoLISP o C++

■ El uso compartido de datos con otras aplicaciones de Windows, comoMicrosoft Excel y Microsoft Word, resulta mucho más sencillo

Para obtener información detallada sobre la utilización de VBA para controlar

AutoCAD ActiveX Automation, véase el Manual del desarrollador de ActiveX y

VBA y ActiveX and VBA Reference en el sistema de Ayuda Si desea mostrar la

Ayuda del desarrollador, vaya a la barra de herramientas de InfoCenter, y, a

la derecha del botón Ayuda, haga clic en la flecha hacia abajo Cuando se abra

el menú, haga clic en Recursos adicionales ➤ Ayuda del desarrollador.Supongamos, por ejemplo, que desea solicitar la introducción de datos, definirpreferencias, crear un conjunto de selección u obtener datos de dibujo Puededecidir qué controlador se debe utilizar, en función del tipo de manipulaciónque se va a llevar a cabo

Con Automation, puede crear y manipular objetos de AutoCAD desde cualquieraplicación que sirva como controlador de Automation Al hacerlo, Automationactiva la programación de macros en todas las aplicaciones Esta función noexiste en AutoLISP Automation permite combinar las funciones de diversasaplicaciones en una sola

Los objetos mostrados se denominan objetos de Automation Los objetos de

Automation hacen que estén disponibles los métodos, las propiedades y los

eventos Los métodos son funciones que llevan a cabo una acción sobre un objeto Las propiedades son funciones que definen u obtienen información sobre el estado de un objeto Los eventos son acciones iniciadas por el usuario

u ocurrencias a las que responde un programa

Casi cualquier tipo de aplicación puede acceder a los objetos de Automationque aparecen dentro de AutoCAD Estas aplicaciones pueden ser ejecutablesindependientes, archivos de biblioteca de enlace dinámico (DLL) y macros deprogramas como Microsoft Word o Microsoft Excel De estas alternativas, lamás habitual es el ejecutable independiente Si trabaja con aplicaciones creadaspor desarrolladores, siga sus instrucciones para la instalación y utilización deesos productos

Véase también:

ActiveX Automation y VBA

Trang 3

Definición de un comando para iniciar la aplicación

Puede utilizar el archivo acad.pgp para definir un nuevo comando de AutoCADque ejecute un comando externo para iniciar la aplicación

Puede utilizar el archivo acad.pgp para definir un nuevo comando de AutoCADque ejecute un comando externo para iniciar la aplicación El siguiente ejemplo

define el comando EJECUTARAPL1, que ejecuta la aplicación apl1.exe del directorio c:\apsvb\ (Añada este código a la sección de comandos externos

de su archivo acad.pgp.)

EJECUTARAPL1, start c:\apsvb\apl1, 0

Si la aplicación requiere parámetros de línea de comando, utilice el códigosiguiente:

EJECUTARAP2, start c:\vbapps\app2, 0, *Parameters: ,Este ejemplo define el comando EJECUTARAPL2, que solicita la introducción

de parámetros y los traspasa a la aplicación

También puede usar la función startapp de AutoLISP para iniciar unaaplicación que utilice Automation Una vez que AutoLISP ha iniciado laaplicación externa, deja de tener control sobre sus acciones No obstante,puede utilizar AutoLISP para buscar y ejecutar diversas aplicaciones en función

de determinados parámetros

Definición de un comando para iniciar la aplicación | 503

Trang 4

Inicio de una aplicación desde un menú

Después de definir un nuevo comando para iniciar la aplicación, puede incluirdicho comando en un menú o una barra de herramientas para se pueda acceder

la creación, edición y carga de archivos de personalización, véase

Personalización de la interfaz de usuario en la página 101

Trang 5

se ejecuta en el mismo espacio de procesos que AutoCAD, con lo queproporciona un entorno de programación adaptado a AutoCAD y muy rápido.

Descripción general de AutoCAD VBA

VBA hace posible la integración de las aplicaciones con otras aplicaciones queadmiten VBA Esto significa que AutoCAD, con otras bibliotecas de objetos

de aplicación, puede funcionar como controlador de Automation para otrasaplicaciones como Microsoft Word o Excel

Las ediciones de desarrollo de Visual Basic 6 independientes, que se vendenpor separado, complementan AutoCAD VBA con componentes adicionalescomo un motor para bases de datos externas y funciones de creación deinformes

Desarrollo con AutoCAD VBA

VBA envía mensajes a AutoCAD mediante la interfaz de AutoCAD ActiveXAutomation AutoCAD VBA permite ejecutar el entorno de Visual Basic conAutoCAD y proporciona el control programático de AutoCAD a través de lainterfaz de ActiveX Automation Esta asociación de AutoCAD, ActiveXAutomation y VBA proporciona una interfaz de gran eficacia No sólo controlalos objetos de AutoCAD, sino también intercambia datos con otras aplicaciones

La integración de VBA en AutoCAD proporciona una herramienta visual deuso sencillo para personalizar AutoCAD Por ejemplo, puede crear unaaplicación que extraiga automáticamente la información sobre atributos,

AutoCAD VBA | 505

Trang 6

inserte directamente los resultados en una hoja de cálculo de Excel y lleve acabo todas las transformaciones de datos requeridas.

La programación con VBA en AutoCAD viene definida por tres elementosesenciales El primero de ellos es AutoCAD, que dispone de un extensoconjunto de objetos entre los que se incluyen entidades, datos y comandos

de AutoCAD AutoCAD es una aplicación de arquitectura abierta con variosniveles de interfaz Para utilizar VBA de manera eficaz, es recomendable estarfamiliarizado con la programación en AutoCAD Descubrirá, no obstante, que

el sistema basado en objetos de VBA difiere bastante del de AutoLISP

El segundo elemento es la interfaz AutoCADActiveX Automation, queintercambia mensajes (establece una comunicación) con los objetos deAutoCAD La programación en VBA requiere comprender los fundamentos

de ActiveX Automation Se puede encontrar una descripción de la interfaz

AutoCAD ActiveX Automation en el Manual del desarrollador de ActiveX y VBA

del sistema de ayuda Si desea mostrar la Ayuda del desarrollador, vaya a labarra de herramientas de InfoCenter, y, a la derecha del botón Ayuda, hagaclic en la flecha hacia abajo Cuando se abra el menú, haga clic en Recursosadicionales ➤ Ayuda del desarrollador

El tercer elemento que define la programación en este entorno es VBA Incluye

su propio conjunto de objetos, palabras clave, constantes, etc., que

proporcionan el flujo de programación y funciones de control, limpieza yejecución AutoCAD VBA incluye un sistema de ayuda exhaustivo de Microsoftpara AutoCAD VBA

La interfaz de AutoCAD ActiveX/VBA proporciona varias ventajas en relacióncon otros entornos API de AutoCAD:

Velocidad Cuando se realiza una ejecución en proceso con VBA, las

aplicaciones de ActiveX son más rápidas que las de AutoLISP

Facilidad de uso El lenguaje de programación y el entorno de desarrollo son

fáciles de utilizar y se suministran instalados con AutoCAD

Funcionamiento conjunto con Windows ActiveX y VBA están diseñados para

su uso con otras aplicaciones de Windows y constituyen una excelente víapara la comunicación de información entre distintas aplicaciones

Rápida creación de prototipos El rápido desarrollo de interfaz de VBA

proporciona el entorno perfecto para las aplicaciones de prototipos, incluso

si esas aplicaciones se van a desarrollar en otros lenguajes

Base para programadores Los programadores ya utilizan Visual Basic 6.

AutoCAD ActiveX/VBA ofrece posibilidades de desarrollo de aplicaciones

Trang 7

y personalización de AutoCAD tanto a estos programadores como a todosaquellos que aprenderán Visual Basic 6 en el futuro.

Utilización de aplicaciones de AutoCAD VBA

Para cargar un proyecto de VBA debe utilizar el comando VBACARGAR Unavez cargado, sus módulos y macros estarán disponibles en el cuadro de diálogoMacros

Utilización de aplicaciones de AutoCAD VBA | 507

Trang 8

Aunque las aplicaciones de Microsoft almacenan los programas, macros yproyectos de VBA en un documento concreto, AutoCAD utiliza un archivo

independiente con la extensión dvb De esta forma, VBA se comunica con

AutoCAD de manera similar a la que utilizan AutoLISP y ObjectARX Dadoque los proyectos de VBA se guardan en un archivo independiente, un proyecto

de VBA puede abrir y cerrar diferentes dibujos de AutoCAD durante una sesión

de este programa

NOTA Los proyectos de AutoCAD VBA no tienen el mismo patrón binario que los

proyectos independientes de Visual Basic 6 (archivos VBP) Sin embargo, losformularios, los módulos y las clases se pueden intercambiar entre proyectosdiferentes utilizando los comandos IMPORT y EXPORT de VBA en el entorno dedesarrollo integrado (IDE, Integrated Development Environment) de VBA.Para cargar un proyecto de VBA debe utilizar el comando VBACARGAR Unavez cargado, sus módulos y macros estarán disponibles en el cuadro de diálogoMacros Para ejecutar el módulo VBA debe utilizar el comando VBAEJECUTAR

Si no se ha cargado ningún proyecto de VBA, las opciones no estarándisponibles Los procedimientos incluidos en la lista del cuadro Nombre demacro presentan la siguiente sintaxis:

módulo.macro

En el cuadro de diálogo Macros, elija el valor de ámbito de macro y seleccioneuno de los módulos de la lista

Uso de la solicitud de comando para ejecutar una macro VBA

El comando -VBAEJECUTAR se puede utilizar para ejecutar una macro desde

la solicitud de comando Esto le permite ejecutar macros VBA desde la solicitud

de comando, archivos de comando y otros entornos de programación deAutoCAD El único argumento del comando es el nombre del módulo escritocon la sintaxis módulo.macro La sintaxis es la siguiente:

-vbaejecutar <módulo.macro>

Dado que diferentes módulos pueden incluir macros con el mismo nombre,

la sintaxis módulo.macro permite distinguir la macro y realizar una selecciónúnica

Trang 9

Carga y ejecución automáticas de los proyectos de VBA

Es posible cargar los proyectos de VBA automáticamente cada vez que ejecuteAutoCAD

Si ha creado diversos proyectos de VBA, puede cargarlos automáticamentecada vez que ejecute AutoCAD Las macros de estos proyectos quedarándisponibles inmediatamente Además, el comando APPLOAD proporcionauna opción Cargar al inicio que carga automáticamente las aplicacionesespecificadas

Carga y ejecución automáticas de los proyectos de VBA | 509

Trang 10

acvba.arx: carga automática de VBA

No podrá cargar VBA hasta que haya ejecutado un comando de AutoCADVBA Si desea cargar VBA automáticamente cada vez que inicie AutoCAD,

incluya la línea siguiente en el archivo acad.rx:

acvba.arx

Puede ejecutar automáticamente una macro en el archivo acad.dvb

denominándola AcadStartup Las macros del archivo acad.dvb con este nombre

se ejecutan de manera automática cuando se carga VBA

acad.dvb: carga automática de un proyecto de VBA

El archivo acad.dvb resulta útil si se desea cargar un proyecto de VBA que

contiene macros cada vez que se inicia AutoCAD Cada vez que se inicia una

nueva sesión de dibujo en AutoCAD, AutoCAD busca acad.dvb y lo carga.

Si desea que una macro del archivo acad.dvb se ejecute cada vez que se inicia

un dibujo nuevo o se abre uno ya existente, añada el siguiente código al archivo

acaddoc.lsp:

(defun S::STARTUP()(command "_-vbarun" "actualizarbloquetítulo"))

El nombre del proyecto del ejemplo es actualizarbloquetítulo

Trang 11

AutoLISP y Visual LISP

AutoLISP se basa en el lenguaje de programación LISP, sencillo de aprender ymuy eficaz AutoCAD incluye un intérprete de LISP integrado, de manera quepuede introducir el código de AutoLISP en la solicitud de comando o cargarlodesde archivos externos Visual LISP (VLISP) es una herramienta de softwarediseñada para agilizar el desarrollo de programas en AutoLISP

Presentación general de AutoLISP y Visual LISP

AutoLISP se ha mejorado con la incorporación de Visual LISP (VLISP), queofrece un entorno de desarrollo integrado (IDE) con herramientas decompilación, limpieza y desarrollo que ayudan a aumentar la productividad.VLISP añade nuevas funciones y amplía el lenguaje para permitir la interaccióncon objetos a través de ActiveX VLISP también activa en AutoLISP la respuesta

a eventos por medio de reactores de objetos

A diferencia de lo que ocurre en ObjectARX o VBA, cada documento abierto

en el entorno de múltiples diseños (MDE, Multiple Design Environment) tiene

su propio espacio de nombre y entorno de Visual LISP Un espacio de nombre

es un entorno aislado que impide que las rutinas de AutoLISP específicas de

un documento tengan conflictos de valor o nombre de variable o de símbolo

AutoLISP y Visual LISP | 511

Trang 12

con las de otros documentos Por ejemplo, la línea de código siguiente establece

un valor diferente del símbolo a para los distintos documentos

(setq a (getvar "DWGNAME"))Visual LISP proporciona mecanismos para cargar los símbolos y variables de

un espacio en otro Puede encontrar más información sobre espacios de nombre

en AutoLISP Developer's Guide en el sistema de ayuda Si desea mostrar la Ayuda

del desarrollador, vaya a la barra de herramientas de InfoCenter, y, a la derechadel botón Ayuda, haga clic en la flecha hacia abajo Cuando se abra el menú,haga clic en Recursos adicionales ➤ Ayuda del desarrollador

Las aplicaciones o rutinas de AutoLISP pueden interactuar con AutoCAD demuchas formas Pueden pedir al usuario que introduzca información, accederdirectamente a los comandos integrados de AutoCAD, y modificar o crearobjetos en la base de datos de dibujo Mediante la creación de rutinas deAutoLISP pueden añadirse a AutoCAD comandos específicos para cadadisciplina Algunos de los comandos estándar de AutoCAD son en realidadaplicaciones de AutoLISP

Visual LISP ofrece tres opciones de formato de archivo para las aplicaciones

de AutoLISP:

Lectura de un archivo LSP (.lsp), un archivo de texto ASCII que contiene

el código de programa de AutoLISP

Lectura de un archivo FAS (.fas), versión binaria compilada de un único

archivo de programa LSP

Lectura de un archivo VLX (.vlx), un conjunto compilado de uno o varios

archivos LSP o DCL (Dialog Control Language, Lenguaje de control dediálogos

NOTA Los archivos de aplicación de AutoLISP con nombres similares se cargan

en función del sello horario modificado; se carga el archivo LSP, FAS o VLX con elsello horario más reciente a menos que se especifique el nombre de archivocompleto (incluida la extensión)

Puesto que AutoCAD puede leer el código de AutoLISP directamente, no serequiere compilación Aunque Visual LISP proporciona un IDE, puede probar

a introducir el código en la solicitud de comandos, que permite ver losresultados inmediatamente Estas características hacen de AutoLISP un lenguajefácil de utilizar, con independencia de la experiencia en programación de cadausuario

Trang 13

Incluso si no necesita escribir aplicaciones en AutoLISP, el paquete de AutoCADincluye muchas rutinas de utilidad Algunas compañías de desarrollo desoftware también ponen otras rutinas a disposición de los usuarios a través de

su shareware Aprender a cargar y utilizar estas rutinas puede aumentar suproductividad

NOTA Cuando la entrada de comandos se hace mediante la función command deAutoLISP, se asume que los parámetros de las variables de sistema PICKADD yPICKAUTO son, respectivamente, 1 y 0 Esto garantiza la compatibilidad con lasversiones anteriores de AutoCAD y facilita la personalización (porque no es necesariocomprobar los valores de esas variables)

Para obtener información sobre la programación de AutoLISP véase AutoLISP

Developer's Guide y para obtener información sobre las funciones de AutoLISP

y Visual LISP, véase AutoLISP Reference en el sistema de ayuda Si desea mostrar

la Ayuda del desarrollador, vaya a la barra de herramientas de InfoCenter, y,

a la derecha del botón Ayuda, haga clic en la flecha hacia abajo Cuando seabra el menú, haga clic en Recursos adicionales ➤ Ayuda del desarrollador.Los programas de AutoLISP pueden utilizar cuadros de diálogo con sus

aplicaciones Los cuadros de diálogo programables sólo se describen en AutoLISP

Controla el sistema de ventanas automático en la solicitud Designar objetos

Presentación general de AutoLISP y Visual LISP | 513

Trang 14

No hay entradas

Modificadores de comandos

No hay entradas

Uso de las aplicaciones de AutoLISP

Las aplicaciones de AutoLISP se almacenan en archivos de texto ASCII que sepueden editar Para utilizar una aplicación de AutoLISP, debe cargarse primero.Las aplicaciones de AutoLISP se almacenan en archivos de texto ASCII con la

extensión lsp Normalmente, estos archivos tienen una porción de encabezado

que describe la rutina y su uso y proporciona instrucciones específicas Esteencabezado también puede incluir comentarios con el nombre del autor einformación legal sobre la utilización de la rutina Los comentarios comienzancon un punto y coma (;) Es posible visualizar y editar estos archivos con uneditor o procesador de texto que pueda generar un archivo de texto ASCII.Para utilizar una aplicación de AutoLISP, debe cargarse primero Para cargaruna aplicación se puede utilizar el comando APPLOAD o la función load deAutoLISP Al cargar una aplicación de AutoLISP, el código de AutoLISP delarchivo LSP se carga en la memoria del sistema

Para cargar una aplicación con la función load es necesario introducir el código

de AutoLISP en la solicitud de comandos Si la función load se ejecutacorrectamente, muestra el valor de la última expresión del archivo en lasolicitud de comando Éste suele corresponder al nombre de la última funcióndefinida en el archivo o a instrucciones sobre el uso de la función que se acaba

de cargar Si load falla, devuelve un mensaje de error de AutoLISP load puedefallar a causa de un código incorrecto en el archivo o de la introducción de

un nombre de archivo erróneo en la solicitud de comando La sintaxis de lafunción load es

(load nombrearchivo [onfailure])

Esta sintaxis muestra que la función de carga tiene dos argumentos:

nombrearchivo, que es obligatorio, y onfailure, que es opcional Cuando secarga un archivo de AutoLISP en la línea de comando, normalmente sólo seproporciona el argumento nombrearchivo En el ejemplo siguiente se carga el

archivo de AutoLISP nuevoarchivo.lsp.

Command: (load "nuevoarchivo")

Trang 15

La extensión de nombre de archivo lsp Este formato sirve para todos los

archivos LSP de la ruta de biblioteca actual

Para cargar un archivo de AutoLISP que no está en la ruta de biblioteca, debeindicar el nombre completo y la ruta de archivo como argumento

nombrearchivo

Command: (load "d:/archivos/maslisp/nuevoarchivo")

NOTA Al especificar la ruta de un directorio, debe utilizar una barra oblicua (/) o

dos barras invertidas (\) como separador, ya que una única barra invertida tiene

un significado concreto en AutoLISP

Carga y ejecución automáticas de las rutinas de AutoLISP

Puede cargar las rutinas de AutoLISP cada vez que ejecute AutoCAD Tambiénpuede cargar ciertos comandos o funciones en momentos concretos de unasesión de dibujo

Carga y ejecución automáticas de las rutinas de AutoLISP | 515

Ngày đăng: 02/07/2014, 08:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm