You are on page 1of 112

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

El objetivo general del curso "Diseo Asistido por Computador" consiste en desarrollar en el alumno conocimiento, comprensin y destreza en el uso de sistemas computacionales, con nfasis en diseo grfico aplicado a problemas de ingeniera. Para lograrlo se abordarn los siguientes objetivos especficos: Concepto de diseo asistido (CAD) Lograr destreza en uso de software grfico tipo CAD Desarrollar aplicaciones para la automatizacin de procesos Las actividades para el desarrollo de los objetivos planteados son los siguientes: 1: Presentacin 2: Conocimientos bsicos de herramientas grficas tipo CAD 2.1) Ambientes CAD y Manejo de archivos 2.2) Comandos de Visualizacin 2.3) Organizacin de un Dibujo (Propiedades y Layers) 2.4) Comandos Bsicos de Dibujo / Seleccin de objetos / Edicin 2.5) Los Bloques y Atributos 2.6) Dimensionamiento automtico (DIM) 2.7) Edicin y Ploteo de Planos (Paper space / Model space o Layaut) 2.8) Coordenadas (UCS) y Vistas (View) 3: Procesos de Automatizacin y Programacin 3.1) SCRIPT : Archivos de Comandos (SCRIPT) 3.2) DXF : Archivos DXF + Visual Basic 3.3) LISP : AutoLISP + Personalizacin + Programacin DCL 4: Sistema de Informacin Geogrfico (SIG o GIS) 4.1) Definicin de un SIG 4.2) Funciones Bsicas de un SIG 4.3) Aplicaciones de un SIG
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

Se debe destacar que la orientacin de las actividades anteriores ser para estudiantes de ingeniera, por lo que no se caer en detalles de comandos o funciones especficas, salvo que sea necesario para alguna aplicacin particular. Lo anterior es fundamental para desarrollar (materia y ejercicios) plenamente los objetivos en el transcurso del semestre, preferentemente en horas de clases de ctedra y auxiliares. EVALUACIN: Se desarrollarn tres tareas formales, ejercicios evaluados en clases (normalmente avance de tareas) y el examen de fin de semestre. Eventualmente se realizarn controles parciales. U-CURSO: Se emplear esta herramienta con carcter de oficial para la publicacin de apuntes, tareas y notas.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

1.. PRESENTACIIN 1 PRESENTAC N 1.1 GENERAL Antes de iniciar el desarrollo de las actividades, es importante mencionar que la mayora de los programas grficos que se emplean normalmente en consultoras y empresas de ingeniera, requieren equipos potenciados, bsicamente en lo referente al procesamiento de la informacin (velocidad, magnitud, calidad, seguridad, etc.), capacidad grfica y edicin de planos (velocidad y calidad). Sin embargo, a pesar que el apoyo de computadores y programas especializados facilitan el desarrollo de estas actividades, el tiempo involucrado en desarrollarlos sigue siendo considerable y se necesita de personal capacitado (dibujantes, proyectistas, diagramadores, etc.) que colaboren en la ejecucin de tareas voluminosas y repetitivas, las que consumen muchas horas hombre. Por lo anterior, es necesario que el alumno (futuro Ingeniero) tome conciencia y pueda evaluar las potencialidades tanto a nivel de software como hardware disponible, con el motivo de optimizar los procedimientos durante el desarrollo de un proyecto real; definiendo equipos, programas, personal, capacitaciones, automatizacin de procesos, etc. que permitan en conjunto lograr un producto que cumpla los requerimientos demandados a un bajo costo, lo que se reduce en mejorar la rentabilidad de un proyecto. Luego, con la ayuda en ejemplos simples y reales, apoyados en un software grfico (CAD o similar), computadores personales y demostraciones de aplicaciones existentes en el mercado (estructura, vialidad, geomensura, transporte y otros.), los objetivos del curso apuntan fundamentalmente a que el alumno logre dimensionar lo que significa proyectar con la ayuda de un computador (Diseo Asistido por Computador) en forma eficiente. Evitando situaciones como el empleo de programas o equipos sub utilizados o mal configurados, automatizacin de procedimientos tradicionales que ya estn desarrollados en el mercado a un bajo costo, uso de hardware poco potenciado para las exigencias de un determinado software, inexistencia de procedimientos durante la edicin y ploteo de planos (definicin de formatos, revisin, cantidad, suministro de materiales, calidad, etc.) y otras dificultades de diverso ndole que puedan surgir.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 1-1

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

Antes de seguir, es necesario precisar el concepto de diseo asistido por computador: "Se entiende como Diseo Grfico (dibujo) Asistido por Computador (CADD) al uso de un tablero de dibujo electrnico con varias facilidades adicionales tendientes al aumento de la productividad, mientras que Diseo Asistido por Computador (CAD) aborda el concepto del proyecto desde un punto de vista integral, por ejemplo, incorporando un modelo de comportamiento (Procesos) anexo a la presentacin grfica". Adems del concepto de diseo asistido, por analoga, se ha estimado necesario introducir al curso elementos de Sistemas de Informacin Geogrficos (SIG) dado el auge en su uso y aplicaciones en las diferentes reas de la ingeniera, complementados incluso con aplicaciones (modelos) especializados. 1.2 IMPORTANCIA DEL SISTEMA GRAFICO EN DISEO ASISTIDO 1.2.1 INTRODUCCIN El diseo Asistido por Computador (CAD), es hoy da, una herramienta imprescindible para lograr un diseo competitivo. Hasta hace muy pocos aos, el CAD era una tecnologa reservada a las grandes empresas, o a aquellas que tenan un elevado potencial econmico y humano. Sin embargo, los continuos avances en la electrnica y desarrollo de software, ha permitido que esta tecnologa est tambin al alcance de las posibilidades de las pequeas y medianas empresas, llegando al extremo de tener entrada a hogares de particulares, los que se pueden conectar desde y hacia los lugares de trabajo. 1.2.2 EL COMPUTADOR EN EL DISEO Al hablar de diseo, antiguamente la imagen que se tena era la de un hombre frente a un papel en un tablero de dibujo, y en el papel, una serie de rayas que nos transmiten su idea; es decir, una mente creativa, un papel y un lpiz, como medio de comunicacin. Sin embargo, actualmente, esta imagen es muy poco frecuente y el proyectista actual est sentado frente a un computador sobre cuya pantalla se ve una imagen perfecta, como una fotografa que se mueve y aparece desde distintos puntos de vista, de diferentes tamaos y colores. Es decir, la misma mente creativa del diseador, dispone y utiliza una herramienta mucho ms poderosa para su trabajo, que le permite visualizar perfectamente su diseo, hasta el ms mnimo detalle, sin necesidad de fabricar ningn prototipo. Puede analizar, estudiar, calcular y comprobar;
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 1-2

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

en una palabra, optimizar su proyecto y dejarlo perfectamente definido, disminuyendo la posibilidad de error en la interpretacin de planos. 1.2.3 EL SISTEMA GRFICO EN DISEO ASISTIDO Dentro del diseo asistido, una necesidad fundamental corresponde al empleo y conocimiento de un sistema grfico, del que se pueden distinguir tres etapas relacionadas con su uso dentro de una organizacin. La primera es una etapa de aprendizaje, en la cual nos familiarizamos con una nueva herramienta, adquirimos destreza en su uso y reconocemos sus capacidades y limitaciones. La siguiente etapa consiste en reestructurar nuestras actividades en relacin al sistema grfico, separamos funciones (ingreso de planos iniciales, revisiones, correcciones, respaldos, etc.) y establecemos procedimientos de trabajo. El propsito de esta reestructuracin es impedir que el desorden y desorganizacin naturales anulen los beneficios potenciales asociados al sistema grfico. Finalmente, la tercera etapa se inicia en presencia de una organizacin con procedimientos claros y un aprovechamiento adecuado de las capacidades del sistema grfico. Pero adecuado no es sinnimo de satisfactorio. Se comienzan a escuchar mltiples sugerencias acerca de mejoras que deberan ser incorporadas al software y no a los procedimientos. Sera beneficioso automatizar una serie de tareas repetitivas y caractersticas de la organizacin, esto permitira reducir an ms los tiempos y los costos, as como aumentar la calidad de los productos. Como es natural pensar, un sistema grfico general no puede considerar todas las necesidades de todos los posibles usuarios, la alternativa escogida por muchos productos de software (entre estos AutoCAD) consiste en incorporar elementos que permitan al usuario especificar las extensiones que se requiera, actividad que se denomina personalizacin. Los sistemas de dibujo asistido para el uso en computadores, al emplearlos crean mucho ms que un dibujo, generan una base da datos (modelo) que contiene el desplazamiento, tamao, colores y atributos

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 1-3

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

especficos del objeto dibujado, informacin que puede recuperarse y analizarse para generar una gran variedad de documentos y reportes especficos. La tendencia de los paquetes CAD es permitir al usuario la generacin de un modelo de elemento a disear con la ayuda del computador, este modelo debe ser fcil de establecer y modificar y debe contemplar las variables de inters para el diseo. En el caso de diseo grfico, contempla un modelo que slo contempla variables grficas (coordenadas, dimensiones, formas, etc.). En la medida que se pueda enriquecer el modelo con otro tipo de variables y el computador permita estudiar el comportamiento del modelo frente a distintas elecciones de variables, se podr hablar de diseo asistido en un sentido ms amplio. Dentro de las principales caractersticas de estas herramientas se pueden enumerar las siguientes: a) Versatilidad Aplicaciones de distintas reas pueden realizarse con el mismo software. Gran compatibilidad con otros programas, bases de datos, procesadores de textos, etc. Facilidad de adaptacin a nuevas normas. b) Facilidad de Uso Ofrece un conjunto ordenado de comandos de fcil memorizacin (intuitivos y amigables). Archivos de ayuda con descripcin detallada de comandos, opciones vlidas, datos, etc. Su aprendizaje es posible realizarlo en forma independiente (autodidacta) e inclusive profundizar ms sin ayuda externa. c) Disminucin de Costos Un mismo equipo puede ser empleados por diferentes usuarios. Se pueden realizar diferentes aplicaciones de manera paralela. Se requieren menos horas hombre para desarrollar un producto determinado. Reduce el nmero de errores y el tiempo destinado a corregirlos. No requiere mayores gastos de mantencin.
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 1-4

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

Las modificaciones son rpidas de efectuar manteniendo el resto del dibujo intacto. Evita clculos y minimiza errores relativo a factores de escala. Es posible obtener copias impresas a cualquier escala. Disminuyen los costos de materiales asociados a errores, cambios de especificaciones, etc. Evita la reprogramacin de herramientas ya desarrolladas y permite la interaccin entre stas. Un nico modelo grfico genera imgenes distintas (plantas, cortes, perspectivas, etc.) que no requieren ser dibujadas separadamente.

d) Descentralizacin de Funciones y Orden Permite la redistribucin de personas hacia otras labores. Libera equipos computacionales grandes de tareas que requieran de sus capacidades slo en las ltimas etapas del trabajo. Los resultados estn siempre disponibles, los respaldos no requieren de muebles especiales, catlogos costosos ni de gran espacio. Induce a utilizar estructuras de trabajo que facilitan el orden y reducen el tiempo de bsqueda de la informacin. Estandariza las herramientas de trabajo de manera de facilitar la informacin a personas nuevas. e) Personalizacin Es fcil confeccionar bibliotecas de smbolos, tipos de lneas y patrones de achurado, fonts de texto, etc., que se requieran en los diseos. Es posible programar funciones o comandos que realicen automticamente (y de forma rpida) un conjunto de tareas repetitivas. Personas ms interiorizadas pueden programar sesiones de entrenamiento para las menos preparadas, generando ambientes especiales de trabajo. Mediante tcnicas sencillas se maneja la calidad del producto.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 1-5

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

f) Aumento de Productividad Reduccin del tiempo de revisiones y actualizaciones. Facilita el trabajo independiente de distintas personas y el posterior montaje (superposicin) en una sola lmina de los dibujos efectuados. Permite montar "demos" rpidos y atrayentes con material ya confeccionados. Aumenta la precisin de resultados, generando dibujos de gran resolucin. Permite fcilmente adaptarse a cualquier formato de salida. Faculta el estudio de soluciones alternativas a partir de un modelo inicial, evitando la construccin de prototipos. Permite vender herramientas ya desarrolladas para aplicaciones especficas. g) Portabilidad El software y aplicaciones desarrolladas con l, pueden trasladarse a otros equipos. Algunas herramientas grficas que se pueden emplear para procesos de diseo asistido por computadores son las siguientes: Autocad en todas alternativas y versiones Microstation Intellicad Easy CAD

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 1-6

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

INDICE CAPITULO 2
2. CONOCIMIENTOS DE AUTOCAD ....................................................................... 2 2.1 AMBIENTE AUTOCAD Y MANEJO DE ARCHIVOS ............................................... 2 2.1.1 Ambiente Estndar de AUTOCAD .............................................................. 2 2.1.2 Perifricos Usados en Autocad ................................................................... 8 2.1.3 Coordenadas.................................................................................................. 8 2.1.4 Unidades de Dibujo ........................................................................................ 8 2.1.5 Principios de Autocad .................................................................................. 8 2.1.6 Elementos Bsicos de CAD: Entidades ...................................................... 9 2.1.7 Comandos Para Comenzar una Sesin ........................................................ 9 2.1.8 Comandos para Finalizar y/o Grabar una Sesin ......................................... 9 2.2 COMANDOS DE VISUALIZACIN ........................................................................ 10 2.3 ORGANIZACIN DE UN DIBUJO ......................................................................... 13 2.3.1 Los Layers (capas)....................................................................................... 13 2.3.2 Colores y Tipos de Lneas (Propiedades) ................................................... 15 2.4 COMANDOS BSICOS DE AUTOCAD................................................................ 17 2.4.1 Dibujo ........................................................................................................... 17 2.4.2 Seleccin de Objetos ................................................................................... 25 2.4.3 Comandos Bsicos de Edicin .................................................................... 26 2.5 BLOQUES Y ATRIBUTOS .................................................................................. 31 2.5.1 Bloques ........................................................................................................ 31 2.5.2 Atributos ....................................................................................................... 33 2.6 DIMENSIONAMIENTO AUTOMTICO EN AUTOCAD (DIM) ................................. 35 2.7 EDICIN Y PLOTEO DE PLANOS (PAPER SPACE / MODEL SPACE O LAYAUT) ....... 38 2.7.1 Introduccin .................................................................................................. 38 2.7.2 Paper Space (PS) ........................................................................................ 38 2.7.3 Proceso de Laminacin ............................................................................... 41

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 1

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

2.. CONOCIIMIIENTOS DE AUTOCAD 2 CONOC M ENTOS DE AUTOCAD En este punto se vern las definiciones, instrucciones y comandos mnimos necesarios para poder introducirse al software Autocad, IntelliCAD u otro, orientados fundamentalmente a desarrollar los talleres computacionales que son parte obligatorio del curso. Esta actividad es fundamental para tener las herramientas grficas que permitan posteriormente desarrollar aplicaciones de diseo asistido 2.1 AMBIENTE AUTOCAD Y MANEJO DE ARCHIVOS 2.1.1 AMBIENTE ESTNDAR DE AUTOCAD En general Autocad permite ingresar sus comandos de varias maneras alternativas, dependiendo del dispositivo que se utilice, las ms importantes son Mens colgantes (superior), Iconos o directamente desde el teclado tipiando el nombre en la lnea de comandos. La lnea de comandos (ventana tipo Windows que se activa y desactiva con la tecla F2) que normalmente se presenta en una ventana en la parte inferior de la pantalla de Autocad es muy importante por que sta se comporta como un cuadro de dilogo con la que interacta el usuario, los cuales van indicando o preguntando cada una de las opciones a seguir o dato a ingresar.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 2

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

Ejemplo de la pantalla de Autocad Versin 14

Identificacin Barra de Mens Lnea de Propiedades

Area Grfica

Area de Comandos Lnea de Estado

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 3

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

Pantalla tpica de Autocad LT + Toolkit Max

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 4

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

Pantalla tpica de Autocad 2000

Zona de trabajo Barras de herramientas

Modos de presentacin

Barra de estado

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 5

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

Ejemplo Pantalla Tipo de Autocad 2000 + CIVIL (Autodesk Land Desktop)

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 6

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

Pantalla Tipo de IntelliCAD

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 7

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

2.1.2 PERIFRICOS USADOS EN AUTOCAD Corresponden a los aparatos que se conectan exteriormente al computador y se utilizan para comunicarse con el programa Ingresar y Extraer informacin Dentro de estos elementos se encuentran el ratn, la tableta, el monitor y los ploters. 2.1.3 COORDENADAS Corresponde a los sistemas de referencias que se utilizan para situar los elementos de un dibujo, basados en un sistema de coordenadas x,y,z. Sistemas de coordenadas universal Sistema de coordenadas locales (UCS) 2.1.4 UNIDADES DE DIBUJO Las unidades de dibujo corresponden a las dimensiones que Autocad emplea para ingresar coordenadas (universales, relativas y polares) de los diferentes elementos de dibujo. Emplearemos preferentemente milmetros (mm) 2.1.5 PRINCIPIOS DE AUTOCAD Editor de dibujos: Acceso al dibujo mediante rdenes desde la pantalla grfica. Base de Datos: Informacin de las entidades componentes de un dibujo. Entrada de Informacin: Teclado, Coordenadas (universales, relativas y polares), referencia a entidades, mediante teclas de cursor, dispositivos especiales.
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 8

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

2.1.6 ELEMENTOS BSICOS DE CAD: ENTIDADES Elementos bsicos de dibujo (lneas, arcos, crculos, textos, polgonos, etc.). Se generan de variadas maneras en CAD, pero la forma de la base de datos es nica para cada entidad, se indica la geometra elemental para su posterior despliegue en pantalla, propiedades (color y tipo de lnea) y la capa a la que pertenecen. 2.1.7 COMANDOS PARA COMENZAR UNA SESIN NEW: OPEN: Crea un archivo nuevo, preguntando el nombre con el que se desea guardar y se puede indicar el archivo de referencia (prototipo) sobre el que se dibujar. Permite abrir un archivo dwg existente mediante un cuadro de dilogos.

2.1.8 COMANDOS PARA FINALIZAR Y/O GRABAR UNA SESIN END: Finaliza la sesin retornando a Windows, actualizando el archivo de dibujo e incorporando todas las modificaciones realizadas durante la edicin. En caso que sea un dibujo nuevo sin haber asignado un nombre inicialmente, en este momento se puede nombrar. Retorna a Windows sin actualizar el archivo de dibujo. Como esto podra significar la prdida de las ltimas modificaciones, solicita una confirmacin. Actualiza el archivo de trabajo sin salirse del mismo, permite seguir realizando nuevas modificaciones. Es recomendable utilizar este comando cada vez que se realice una modificacin importante, o las modificaciones realizadas sean suficientes como para no querer perder ese trabajo ante una posible interrupcin del sistema.

QUIT: SAVE:

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 9

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

2.2 COMANDOS DE VISUALIZACIN Corresponden a los comandos que controlan la forma en que el dibujo es desplegado en la pantalla. Con ellos se puede especificar la porcin de la pantalla en la que se quiere ver desplegado un dibujo, controlar la posicin y magnificacin de la ventana, especificar en que grado efectuar funciones elaboradas y demorosas, redibujar, etc. Para Autocad, una zona de visualizacin (o viewport), es una regin rectangular de la pantalla grfica, que despliega una porcin del dibujo. El manejo (e interpretacin) de estas zonas est ligado a la variable TILEMODE, cuyo valor por defecto es 1 (On). Tambin, la pantalla puede dividirse en mltiples zonas de visualizacin que no se traslapan, cada una de las cuales puede desplegar una porcin distinta del dibujo o la misma porcin del dibujo vista desde distintos puntos del espacio (objetos tridimensionales), este comando se denomina VPORTS. Los modos de Snap y Grid pueden establecerse a distintos valores para cada uno de estas zonas. Aunque pueden tener varias zonas de visualizacin desplegadas en la pantalla, en cada momento, slo hay una activa (zona de visualizacin activa). Esta se despliega con un marco ms oscuro. El cursor se despliega de la manera usual slo dentro de la zona de visualizacin activa y cambia a una pequea flecha al moverse fuera de ella. Para activar otra zona de visualizacin, basta mover el cursor sobre el recuadro deseado y dar un "pik". En muchos casos este cambio se puede hacer incluso al interior de un comando. Hay algunos casos en los cuales el cursor queda momentneamente restringido a moverse slo en la zona de visualizacin activa. Estos casos estn relacionados con los siguientes comandos: SNAP, GRID, ZOOM, PAN, VPOINT, DVIEW, VPORTS y VPLAYER. Si la variable TILEMODE vale 0 (Off), es posible desplegar distintas combinaciones de layers (o bien congelar/descongelar distintos layers) en cada zona de visualizacin.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 10

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

A una cierta configuracin de zonas de visualizacin se le puede dar un nombre y quedar as almacenada para un uso futuro. Este nombre almacena el nmero de zonas de visualizacin definidas, la posicin de cada una de ellas en la pantalla y el valor de varios parmetros de visualizacin. Los comandos de visualizacin ms usuales son los siguientes: ZOOM: Acta como el lente ZOOM de una cmara, permitiendo aumentar o disminuir el tamao aparente de los objetos visibles en la zona de visualizacin activa (su tamao real permanece constante). Al aumentar el tamao aparente se ve un rea menor del dibujo, pero con gran detalle, al disminuir el tamao aparente se ve un rea mayor del dibujo. Se debe responder ingresando un factor de magnificacin o una de las siguientes opciones: A (All): Muestra el dibujo completo en la zona de visualizacin activa. En vista plana, se extiende hasta los lmites definidos o la extensin mxima (lo que sea mayor). En una vista 3D es equivalente a ZOOM Extents. C (Center): Pregunta por el punto del centro a la altura de la ventana (en unidades de dibujo). D (Dynamic): Permite definir dinmicamente, mediante una caja de visualizacin que aparece en la pantalla, la posicin y el tamao de la parte del dibujo que se desea ver desplegada. E (Extents): Pregunta por el extremo inferior (hasta la extensin actual del dibujo). P (Preview): Reestablece la vista interior (almacena hasta 10 vistas anteriores). W (Window): Pregunta por el rectngulo que rodea a la parte a ser aumentada y desplegada. Scale (X): Se ingresa un factor de escala. Por ejemplo:2 duplica el tamao (relativo a la visin total) y 2x duplica el tamao (relativo a la visin actual). Esta es la opcin por omisin.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 11

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

PAN:

Permite "mover" la hoja de dibujo tras la pantalla (o de la zona de visualizacin activa) y ver una porcin diferente del dibujo sin cambiar de magnificacin.

REDRAW: Aunque muchos comandos redibujan la pgina, a veces es til hacerlo explcitamente, para eliminar marcas para "limpiar la imagen". Esto se hace con el comando REDRAW. El comando REDRAW afecta normalmente slo a la zona de visualizacin activa. Si la pantalla est dividida en mltiples zonas de visualizacin, se puede usar el comando REDRAWALL para forzar el redibujo en todas ellas. REGEN: A veces se requiere una regeneracin y posterior reconstruccin de un dibujo, esta tarea, bastante ms larga que un simple REDRAW, se hace mediante el comando REGEN (en el cual ciertos clculos son necesarios).

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 12

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

2.3 ORGANIZACIN DE UN DIBUJO 2.3.1 LOS LAYERS (CAPAS) Los layers o capas (transparentes) de dibujo, son un mecanismo a travs del cual se pueden asociar grupos de elementos relacionados entre s. Cada layer tiene un nombre que lo identifica, y para todos ellos se aplican los mismos lmites de dibujo, sistema de coordenadas y factores de amplificacin. Por ejemplo, para cierto dibujo, quizs convenga tener en el layer 1 (o Planta) el plano de una casa, en el layer 2 (Tuberas) la distribucin de tuberas, en el layer 3 (o elctrico) los circuitos elctricos en el layer 4 (o Muebles) los elementos que componen el mobiliario y en el layer 5 (o Cotas) todas las cotas y dimensiones necesarias. De este modo, se puede activar slo los layer 1 y 2 para modificar y completar el sistema de alcantarillado sin que aparezcan otros elementos o desplegar cualquier otra combinacin deseada de ellos. Un punto en un layer coincide perfectamente con el mismo punto en cualquier otro layer. No hay lmites para el nmero de layers en un dibujo ni para el nmero de entidades que cada uno puede contener. Los layers y sus propiedades son partes del dibujo y como tales se almacenan en la misma base de datos del dibujo. 2.3.1.1Propiedades Asociadas a Cada Layer Nombre: Color: Nombre del layer. Pueden usarse letras, nmeros y los caracteres $,-,.No diferencia maysculas de minsculas. Cdigo del color asociado. Son nmeros enteros entre 1 y 255.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 13

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

Tipo de Lnea: Puede elegirse de entre los tipos de lneas estndares presentes en la biblioteca que viene con Autocad, o ser creada segn nuevos patrones. Se aplica slo a lneas, crculos, arcos y polilneas. Visibilidad: Estado: Switch de on/off. Los layers no visibles an son parte del dibujo, pero no son desplegados ni ploteados. Switch de on/off. El congelamiento de uno o ms layers aumenta la velocidad del proceso de regeneracin. Al regenerar un dibujo, las entidades pertenecientes a layers congelados no son tomadas en cuenta. Estos layers tampoco son desplegados no ploteados.

Los nombres y propiedades de cada layer pueden ser modificados en cualquier momento. Tambin se pueden eliminar los layers innecesarios a travs de las opciones de los comandos PURGE y RENAME. El layer de trabajo no puede ser congelado, aunque si se puede apagar, y en este caso las acciones no se vern reflejadas de manera visible en el dibujo. Las entidades pueden tener individualmente un color y tipo de lnea diferente de aquellos establecidos para el layer al que pertenecen. El layer 0 (cero), layer de trabajo por omisin, no se puede eliminar ni se le puede cambiar de nombre. Lo mismo ocurre con el tipo de lnea: "CONTINUOUS". 2.3.1.2Opciones Asociadas al Comando LAYER ?: Make: Set: Entrega una lista de las layers definidos, junto con su estado, color, tipo de lnea asociado, etc. Corresponde a usar las opciones New y Set simultaneamente Permite seleccionar el layer sobre el cual se trabajar. Slo puede haber un layer de trabajo en cada momento. Sobre l se sitan las nuevas entidades, con el color y el tipo de lnea especificados anteriormente para ese layer.
Pg 14

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

New:

Define el o los layers nuevos, para los cuales se deber dar un nombre.

Estado: Indica el estado actual en que se encuentra alguna capa del dibujo, pueden ser las siguientes. On: Off: Color: Freeze: Thaw: Lock: Enciende el o los layers que se sealen a continuacin. Apaga el o los layers que se sealen a continuacin. Asocia el color elegido a uno ms layers. Congela el o los layers que se sealen a continuacin. Descongela el o los layers que se sealen a continuacin. Las entidades de capas bloqueadas son visibles en pantalla pero no pueden editarse, de esta manera se evita, por ejemplo, modificar accidentalmente su contenido. Unlock: Permite desbloquear capas previamente bloqueadas.

2.3.2 COLORES Y TIPOS DE LNEAS (PROPIEDADES) Aparte de las opciones del comando LAYER, que asocian colores y tipos de lneas a las distintas entidades, existen dos comandos que permiten modificar estas propiedades: COLOR: Establece el color que se asociar a todas las entidades que se dibujen a continuacin. La respuesta puede ser: Nmero: de 1 a 255, que corresponden a diferentes colores. Color: (por ejemplo RED) BYLAYER: los objetos que se dibujen a continuacin tendrn el color definido en el layer en que se est dibujando. BYBLOCK los objetos dibujados con este color sern momentneamente de color blanco hasta que sean agrupados dentro de un bloque. Al insertarse el bloque, quedarn con el color establecido por las reglas de insercin.
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 15

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

LINETYPE: Permite asociarle un tipo de lnea a los objetos que se dibujarn de ahora en adelante (predominando por sobre la definicin dada en le layer correspondiente). Establece el tipo de lnea con que se dibujarn los siguientes elementos. Tambin permite cargar definiciones de tipos de lneas desde un archivo biblioteca y/o crear nuevas definiciones y almacenarlas en dichos archivos para su uso posterior. Aunque toda entidad de dibujo tiene asociado un tipo de lneas, arcos, crculos y polilneas 2D se vern afectadas por este comando. Los dems objetos se dibujarn siempre con lnea continua. La definicin de un tipo de lnea debe existir en el archivo biblioteca antes de poder ser cargada en el dibujo. Del mismo modo, un tipo de lnea debe estar cargado antes de poder ser usado o asignado a un layer (si el tipo de una lnea est en la biblioteca estndar "acad.lin", el comando "LAYER Ltype", puede cargarla automticamente). De la misma manera que para el comando COLOR, hay cuatro opciones posibles BYLAYER: Los objetos que se dibujen heredarn el tipo de lnea asociado al layer activo (al cual esos objetos pertenecern). i se cambian posteriormente de layer, su tipo de lnea tambin cambiar. BYBLOCK: Los objetos se dibujarn temporalmente con lnea continua, y cuando se agrupen en un bloque heredarn el tipo de lnea establecido por las reglas de insercin. ?: Despliega una lista con los nombres de los tipos de lneas actualmente disponibles. Nombre: Los objetos se dibujarn con el tipo de lnea deseado, siempre que ste haya sido cargado con anterioridad.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 16

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

2.4 COMANDOS BSICOS DE AUTOCAD 2.4.1 DIBUJO LINE: La entidad de dibujo ms sencilla es la lnea. Para dibujar una, se ingresa el comando LINE. A continuacin se deben identificar los puntos iniciales de ella. Ellos pueden ser (X,Y) o 3D (X,Y,Z). Si slo se especifican 2 coordenadas, el valor de Z se saca de la variable ELEVATION. Al sealar, por medio del mouse, el punto inicial de la lnea, aparecer una lnea punteada que acta como un elstico, adems del smbolo usual que indica la posicin actual del cursor. Este "elstico" permite visualizar cmo quedar la lnea que une al ltimo punto ingresado con la posicin actual del cursor. A menos que se ingrese un blanco o se presione la tecla RETURN, el comando LINE seguir pidiendo puntos, lo que generar una serie de lneas conectadas. Cada lnea as creada se considera una entidad independiente. Opciones de respuesta: U: (Undo) Esto elimina el ltimo segmento creado y contina la formacin de lneas conectadas desde el segmento anterior. Ingresar varias "U" equivale a ir eliminando sucesivamente los ltimos segmentos creados. C: (Close) Autocad conecta automticamente el primer y ltimo segmento, de modo que el primer y ltimo punto coinciden exactamente. Se obtiene as, el dibujo de un polgono cerrado. <ptos>: Pueden usarse coordenadas absolutas, relativas o polares. RETURN: Termina la ejecucin del comando LINE. Si se responde con un RETURN a la pregunta "From Point", el primer punto de la lnea queda especificado como el punto final de la ltima lnea o arco creado.
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 17

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

Esto permite continuar con un comando LINE que fue interrumpido por alguna razn y simplifica la construccin de lneas y arcos conectados tangencialmente. Si lo ltimo creado fue un arco, slo se necesita especificar la longitud de la nueva lnea deseada, pues la direccin de ella queda determinada por la tangente al arco en este punto. POINT: Para situar un punto en el dibujo, se utiliza el comando POINT, y se especifica la posicin del punto en la pantalla. Los puntos actan como nodos para otros comandos (OSNAP). El control sobre la forma y tamao de los puntos, est dado por las variables PDMODE y PDSIZE. CIRCLE: Los crculos puede dibujarse de varios modos, a travs del comando CIRCLE, a continuacin se indican los ms usuales: a) Centro y Radio o Dimetro (opcin por omisin), En este caso, se indica el centro de la circunferencia y su radio o dimetro. R (Radius) Permite especificar el radio de la circunferencia. Esta es la opcin por omisin. D (Diameter) Se puede especificar el dimetro en lugar de radio de la circunferencia. A continuacin Autocad pide el valor de dicho dimetro. b) Tres Puntos (3P) Una circunferencia se puede especificar a travs de tres puntos (no colineales) situados sobre ella, y cuyos valores sern pedidos a continuacin. c) Dos puntos (2P)

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 18

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

Si esta es la respuesta dada a la primera pregunta del comando, Autocad entiende que se le especificarn los dos extremos de un dimetro a partir del cual se debe construir la circunferencia. d) Tangente, Tangente y Radio (TTR) Permite dibujar crculos especificando dos lneas y/o crculos a los cuales debe ser tangente, y un radio. ARC: Los arcos son trozos de circunferencia y se dibujan a travs del comando ARC. Hay varios mtodos diferentes para hacer esto, dependiendo de la preferencia personal o de las circunstancias en las cuales los arcos sean necesarios. Las opciones estn asociadas a letras, cuyos significados son: A (Angle) C (Center) D (Direction) E (End) L (Length) R (Radio) S (Start) Los modos son: 3P: 3 puntos sobre el arco. Funciona de manera anloga a la opcin 3P del comando CIRCLE. Esta es la opcin por omisin. SCE,SCA,SCL,SEA,SED,SER: Cualquiera de estas opciones dibuja un arco con base en los valores que se ingresen a continuacin (que dependern de la opcin especificada de acuerdo a la lista anterior). Angulo includo Centro Direccin inicial Punto final Longitud de la cuerda Radio Punto inicial

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 19

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

RETURN: Funciona de manera similar al comando LINE, el punto inicial y la direccin quedan datos por el punto final y la direccin final del ltimo arco o lnea dibujado. FILLET: Sirve para unir dos entidades con un arco de radio determinado, de forma tangente a ambas. Las entidades a procesar por esta orden tienen que ser lneas, arcos, crculos o polilneas. TEXT: Para incluir textos en dibujo, se usa el comando TEXT. Las entidades del texto o caracteres pueden dibujarse de acuerdo a una variedad de patrones (o fonts), y pueden ser estiradas, comprimidas, inclinadas o reflejadas, aplicando un estilo (o style) al font. Cada cadena de caracteres (o string) puede ser de cualquier tamao, rotado y justificado segn se desee. Presenta la opcin J (Justificacin) que permite seleccionar desde distintas posibilidades de alineado, aquella que controlar la posicin del texto. Las alternativas bsicas son: A (Aligned) Pregunta por los dos puntos extremos de la lnea base y ajusta el texto para que calce entre ellos.(La altura del texto es variable) C (Centered) Pide un punto y centra la lnea base (y el texto) con respecto a l. R (Right) Pide un punto y justifica el texto a la derecha de l. F (Fit) Similar a Aligned, pero la altura del texto es fija. Se modifica el ancho de las letras para que el texto quepa entre los puntos sealados. M (Middle) Similar a Center, pero centra el texto tanto horizontal como verticalmente con respecto al punto sealado. Con ellas se construyen las siguientes modalidades: TL Top-Left
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 20

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

TC Top-Center TR Top-Right ML Middele-Left MC Middle-Center MR Middle-Right BL Bottom-Left BC Bottom-Center BR Bottom-Right Adems contempla la opcin S (Style), que permite cambiar el estilo de texto y vuelve al inicio ("Start Point") La opcin por default, Start point, justifica la lnea de base de texto a la izquierda del punto indicado. Una vez que se ha ingresado la informacin anterior, Autocad pide los siguientes valores: Height: Tamao de la letra. RETURN implica usar el valor por omisin que se encuentra entre corchetes. Rotation Angle: Angulo (con respecto a la horizontal) de rotation del texto. Text: El texto deseado ERASE: Permite indicar entidades que sern eliminadas de manera permanente del dibujo. El mensaje que aparece al invocar este comando (Select Objects") ser visto en detalle ms adelante, por ahora slo diremos que al ir sealando entidades, stas adquirirn un color.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 21

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

OOPS: Trae de vuelta a la pantalla a todos los objetos eliminados con el ltimo ERASE. Tambin permite traer nuevamente a la pantalla los elementos que componen un bloque y que desaparecieron de ella en el momento de su definicin. UNDO: Permite deshacer todo lo que fue con el ltimo comando (o con el nmero de comandos que se indique). Si se elimin, por ejemplo, un paso ms de lo deseado, el comando REDO permite recuperar lo eliminado. Se pueden definir marcas a lo largo del trabajo y volver hasta alguno de esos estados posteriormente, as como tratar a todo un grupo de comandos como si fuera uno slo, revirtiendo su accin mediante un nico UNDO. Presenta las siguientes opciones: A (Auto) Permite considerar cualquier tem seleccionado del men como un nico comando. B (Back) Lleva el dibujo al estado en que estaba cuando se defini la marca ms reciente. C (Control) Limita el nmero de operaciones a deshacer o deshabilitar completamente el comando UNDO y las variables y marcas asociadas a l. E (End) Termina la seleccin de comandos que sern agrupados (mediante Group) y considerados como uno para los propsitos de UNDO. G (Group) Inicia la seleccin de comandos a agruparse. M (Mark) Crea una marca especial en la informacin para recuperar este estado del dibujo posteriormente (usando la opcin Back). <nmero> Indica el nmero de operaciones que se desea deshacer. TRACE: Usualmente se desea que las lneas tengan un cierto "espesor". Para Autocad estas lneas se llaman trazas (Trace). Ellas se ingresan igual que las creadas con LINE, solo que mediante el comando TRACE
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 22

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

se les define un ancho. Todas las trazas conectadas tendrn el ancho especificado para la primera. Los ngulos correctos para la conexin de un segmento con el siguiente son calculados automticamente. Por esta razn, las trazas no se dibujan hasta que el siguiente punto sea dado, o se d un Return para terminar. Tambin, debido a esto no se dispone de una opcin UNDO. Las trazas son rellenadas a menos que el modo FILL est desactivado. SOLID: El comando SOLID permite dibujar regiones rellenas a modo se superficies, ingresndolas como cuadrilteros o secciones triangulares. Al igual que las trazas, las regiones sern rellenadas a menos que el modo FILL sea activado. Una vez ingresados los dos puntos iniciales, solicita sucesivamente dos puntos ms; donde se entiende que se desea un tringulo, se responde con un RETURN al mensaje que solicita un cuarto punto. Las regiones se pueden ir conectando sucesivamente, tomando como primer y segundo punto a los ltimos dos puntos de la regin anterior. Para terminar se presiona RETURN a la solicitud por un tercer punto. Es importante notar que los puntos deben ser ingresados en forma cruzada (es decir, formando una Z), para que el slido se dibuje correctamente y no se produzca una torsin del dibujo. PLINE: Una polilnea en 2D es un secuencia conectada de lneas y arcos, que son tratados por Autocad como una sola entidad. Una vez que se ingrese el punto inicial, el ancho de lnea vigente ser desplegado y se usar en todos los segmentos a menos que se especifique otro. Las principales opciones asociadas a este comando son similares a otros comandos ya vistos. Sin embargo, algunas de ellas producen un mensaje con nuevas opciones. A continuacin se describe, de manera general, este primer conjunto de opciones: A (Arc) Ingresa a una modalidad en la cual se presentan diversas alternativas para dibujar arcos.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 23

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

C (Close) Esta opcin traza una lnea o un arco desde la posicin actual hasta el punto inicial de la polilnea, creando un polgono cerrado. El ancho de la lnea de cierre ser el que est vigente al seleccionar la opcin. L (length) Permite dibujar un segmento de lnea con el mismo ngulo que el segmento anterior (tangente, si el ltimo elemento era un arco), especificando slo la longitud de la lnea. U (Undo) Elimina el ltimo arco o lnea agregado a la polilnea. Se puede utilizar para eliminar sucesivamente cualquier nmero de elementos de la polilnea. W (Width) Permite especificar el ancho del (de los) siguiente(s) segmento (s) de la polilnea. Pueden especificarse distintos valores para el ancho inicial y final de cada segmento. Un ancho igual a 0 produce una lnea con el mnimo ancho desplegable (como las LINES). H (Halfwidth) De manera similar a la opcin anterior, permite definir el ancho de un segmento en trminos de la distancia desde el centro hasta uno de sus extremos. El "elstico" asociado al cursor siempre est definido con respecto al centro de una lnea (sin importar su ancho), por lo que esta opcin puede resultar ms cmoda que la anterior. Este comando es de mucha utilidad por la gran variedad de elementos que se pueden crear con l. Posee una opcin propia, con la cual se pueden efectuar varias acciones dentro de un mismo ambiente. Es posible reagrupar varias entidades, generadas de distintas maneras y redefinidas como una sola polilnea (entidad), de modo de aplicar sobre ella algunos de los comandos de edicin. Base de Datos: Polyline, polgono pesado LWPolyline, polgono liviano Plinetype, variable de sistema que controla el tipo de polgono que se crea.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 24

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

2.4.2 SELECCIN DE OBJETOS En general, dado que los comandos de edicin permiten modificar una parte del dibujo, lo primero que se deber indicar despus de invocar al comando es la parte especfica que se desea afectar. Pueden presentarse variaciones en algunos comandos, pero en general, a la pregunta: "Selec object:" se puede contestar con: (Un pick): Mediante el cursor se indican uno a uno los objetos a considerar. W (Window): Se indica un rectngulo mediante dos puntos sucesivos (los puntos corresponden a la diagonal) seleccionndose entonces todos los objetos completamente incluidos en l. L (Last): Equivale a seleccionar el ltimo objeto creado y actualmente visible. C (Crossing): Se indica un rectngulo en forma anloga a la opcin Window, pero son seleccionados esta vez, todos los objetos incluidos total o parcialmente en l. P (Previous): Selecciona al ltimo conjunto de objetos elegidos con un comando de edicin. Mediante este proceso, se pueden agregar sucesivamente objetos o grupos de objetos a la lista de objetos a modificar. En caso que se requiera descartar objetos de la lista, pueden usarse las opciones: R (Remove) Permite pasar desde un estado de agregar, a un estado de remover objetos de la lista. A (Add) Vuelve al estado de agregar objetos a la lista. U (Undo) Descarta el ltimo grupo de objetos agregados. Por ltimo, al ingresar RETURN se termina el proceso de seleccin, quedando especificada as una lista de objetos a ser afectados por la modificacin que se haya indicado. Es importante notar que, hasta el momento, los nicos objetos compuestos que se han visto son las polilneas y los bloques, que estn formados a su vez por objetos simples (lneas, arcos). Sin embargo, salvo que se indique lo contrario, los comandos de edicin afectarn a la polilnea y a los bloques como a un todo. Se recomienda no dar un pick en intersecciones de 2 o ms entidades, pues es "impredecible", cual de ellas ser la seleccionada.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 25

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

2.4.3 COMANDOS BSICOS DE EDICIN ERASE: Elimina del dibujo los objetos seleccionados. MOVE: Permite desplazar a todos los objetos seleccionados de manera unitaria, esto es, todos sufrirn desplazamientos paralelos de un mismo tamao. El desplazamiento puede indicarse mediante dos puntos sucesivos (que no requieren estar sobre los objetos seleccionados) o mediante un par de nmeros, separados por comas, que indican respectivamente los desplazamientos segn el eje X, Y o Z. COPY: Anlogo a MOVE, slo que en este caso, los objetos quedarn duplicados. El estado final consistir en que cada objeto aparecer en su posicin inicial y duplicado en la posicin final. Provee adems la opcin M (Mltiple) que permite indicar varios desplazamientos sucesivos, lo que produce mltiples copias. SCALE: Permite amplificar o reducir el tamao de cada uno de los objetos seleccionados en un cierto factor de escalamiento. Se le debe entregar un punto de base (es el punto que se mantiene fijo despus de escalar) y el factor de escala. La opcin R (Reference) permite indicar el factor de escala mediante dos nmeros, indicndose un largo de referencia (primer nmero) y el largo correspondiente deseado (segundo nmero) despus del SCALE. El factor de escala es uniforme para los ejes X e Y, por lo que los objetos no se deformarn. Nmeros mayores que 1 agrandarn el objeto y nmeros entre 0 y 1 lo reducirn. ROTATE: Este comando permite rotar uno o ms objetos en un cierto ngulo. Para estos objetos, la transformacin equivale a rotar la hoja en ese ngulo. Se debe indicar el punto base (en torno al cual se efectuar la rotacin) y el ngulo. El ngulo puede indicarse en forma numrica o bien mediante dos puntos, en cuyo caso se considerar el ngulo formado entre la horizontal y la recta que definen estos dos puntos. Tambin se permite la opcin R (Reference) con la cual se deben entregar dos ngulo (ngulo inicial y final). MIRROR: Provee el efecto de espejo con respecto a una lnea en posicin arbitraria que se especifica indicando dos puntos de ella. Existe la opcin de mantener ambos estados de los objetos, antes y despus de la
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 26

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

reflexin (Delete old objects?). La variable MIRRTEXT permite eliminar la reflexin para el caso de textos y atributos. ARRAY: Este comando efecta un COPY mltiple, de modo de obtener un arreglo rectangular o circular de objetos. Arreglo Rectangular (R) Primero se pedir especificar el nmero de filas (Row, horizontales) y el nmero de columnas (Column, verticales). Y a continuacin, se deben especificar las distancias entre filas y columnas. Esto se puede realizar entregando los valores para cada distancia, o bien, ingresando dos puntos con el cursor, lo que genera un rectngulo que servir de base para las copias. Un valor negativo para las distancias indicar que las copias se deben efectuar hacia la izquierda o hacia abajo del objeto original. Para obtener arreglos rectangulares con distinta orientacin (ngulos cualquiera), basta rotar la grilla en el ngulo deseado (ver SNAP Rotate). Arreglo Circular o Polar (P) En este caso se deber indicar el centro del arreglo circular y dos entre los siguientes tres datos: nmero de tems en el arreglo (contando el objeto inicial), ngulo a ser llenado por el arreglo y/o ngulo entre los tems (para el dato que no se utilice, basta dar un RETURN). Finalmente pedir especificar si se deben rotar o no los objetos. La opcin de rotar significa aplicar una rotacin a cada objeto replicado de forma que su orientacin con respecto a un radio permanezca constante. El punto con respecto al cual se rotar cada rplica depende del objeto. CHANGE: El comando CHANGE es muy til pues permite modificar algunas de las caractersticas de las entidades existentes. Sus distintas opciones actan dependiendo del conjunto de objetos seleccionados. P (Properties): Permite modificar ciertas propiedades de los objetos seleccionados. Estas propiedades son Color, Layer en que fue definido, LType (tipo de lnea usado) y Thickness (en relacin a 3D).
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 27

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

(Change Point): Se selecciona al ingresar un punto como respuesta. La accin que se efecte depender del tipo de objetos seleccionado. BREAK: Permite borrar una parte de una lnea, traza, arco, crculo o polilnea (2D), indicndose dos puntos del objeto. Se puede seleccionar el objeto deseado usando cualquiera de los mtodos de seleccin (Window, Last, etc.), pero lo ms aconsejable es usar <pick> o Last. Si se usa una opcin de seleccin mltiple (Window, Crossing, etc.), slo el ltimo objeto creado es seleccionado. Si este no pudiera ser fraccionado, se repetir la peticin por un objeto. En cualquiera de estos casos, o al sealar una entidad por medio del cursor, aparece el siguiente mensaje: "Enter second point (or F for first point)". Autocad asume, que el punto usado para seleccionar el objeto es tambin el punto a partir del cual se desea romper el objeto y procede, por lo tanto a pedir el segundo punto. Si ste no es el caso, se ingresa "F" para indicarle que no se ha ingresado el primer punto y que por lo tanto debe solicitarlo nuevamente. Debe tenerse cuidado al romper crculos y arcos, pues el corte se efecta siempre en contra de los punteros del reloj, eliminndose el trazo que va desde el primer punto hacia el segundo. TRIM: Similar al BREAK, pero en lugar de indicar la parte a borrar mediante dos puntos, este comando permite usar otros objetos presentes en el dibujo para definir el corte en forma exacta (calcula las intersecciones que se producen). Para elegir los bordes que definen el corte ("Cutting Edges") se puede usar cualquier mtodo de seleccin. Slo lneas, arcos, crculos, polilneas 2D y Viewports sirven para estos efectos. Al seleccionar una polilnea, se ignora su ancho (si es distinto de cero) y se corta a lo largo del eje central. Una vez seleccionados todos los bordes, se presiona RETURN, para indicar que ahora comienza la seleccin de objetos a ser cortados. A esta ltima solicitud ("Select object to Trim") slo se puede responder mediante picks, los otros mtodos de seleccin son invlidos. El pick se debe dar sobre la parte del objeto que se desea que desaparezca.
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 28

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

EXTEND: Permite extender lneas o arcos hasta que se intersecten con el borde de otro objeto. Este comando funciona de manera similar a TRIM. Primero se seleccionan todos los bordes hasta los cuales se desea extender otras entidades. Al finalizar esta seleccin se da un RETURN, y se comienza a seleccionar, mediante picks, los objetos que se quiere extender. Una respuesta en blanco finaliza el comando. Los picks se deben dar sobre el extremo ms cercano, al borde hacia el cual se extender. DDEDIT: El comando DDEDIT tambin permite la edicin de textos, va caja de dilogos. Puede usarse adems para la modificacin de atributos. Con este comando es posible corregir errores cometidos al tipiar un texto, sin tener que re-digitarlo completamente. En el caso de que un texto, por su longitud, no quepa dentro del recuadro diseado en la caja de dilogo, es posible hacer que el texto se desplace hacia el lado adecuado. Para ello basta con dar uno o ms picks en las llaves que aparecern a ambos lados del recuadro del texto y se tendr acceso a la parte del texto inicialmente invisible. Los mecanismos de seleccin para este comando se reducen a hacer un <pick> sobre el texto o atributo deseado y a la opcin LAST. La opcin UNDO, permite cancelar la modificacin efectuada y recuperar el texto en su estado original. HATCH: En muchas aplicaciones es usual rellenar algn rea con un patrn de achurado. Esto puede ayudar a diferenciar los distintos componentes de un objeto tridimensional, o reflejar distintos materiales. Autocad provee una biblioteca con aproximadamente 40 patrones estndares y se pueden definir ms para satisfacer necesidades particulares. Los patrones de achurado consisten en lneas, puntos y espacios en blanco, los que son tratados por Autocad como un nico objeto (un bloque). Como tales, se puede especificar el ngulo en que se desea el patrn, as como algn factor de escala que amplifique o concentre los elementos. Para el caso de figuras anidadas (objetos completamente incluidos en otros) se consideran tres estilos de achurado, si la regin fue seleccionada con un Window:
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 29

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

N (Normal) Achura de manera alternada (desde el exterior hacia el interior) las distintas figuras, es decir, se enciende o apaga al pasar de una frontera a otra, de modo de reflejar los niveles de anidamiento. Esta es la opcin por omisin. O (Outermost) Achura solamente el rea ms externa de la figura seleccionada, sin modificar toda la estructura interior. I (Ignore) Se achura toda el rea seleccionada, ignorando cualquier estructura interna. PURGE: Permite eliminar elementos que no se estn empleando en el dibujo, recuperando as espacio desaprovechado. En Autocad 12, solamente puede ser empleada como primera orden despus de la entrada en el editor de dibujo, o bien si despus de esta entrada no se ha modificado la base de datos de Autocad. Se pueden eliminar, layers, bloques, estilos de fonts, lneas y dimensionamiento, entre otros. OFFSET: Se utiliza para generar una entidad equidistante en todos sus puntos de la sealada, y con una distancia de separacin determinada. Las entidades slo pueden ser lneas, arcos, crculos o polilneas. EXPLODE: Se utiliza para llevar a entidades ms bsicas un elemento compuesto por entidades agrupadas o compuestas, ejemplo: bloque, polgonos, etc. RENAME: Permite modificar nombre de bloques, capas, y otros elementos de CAD PEDIT: Edita polgonos

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 30

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

2.5 BLOQUES Y ATRIBUTOS 2.5.1 BLOQUES Un bloque es un conjunto de entidades agrupadas y que conforman un objeto complejo. Una vez agrupadas, se les asocia un nombre: el BLOCK NAME, a travs del cual ese bloque podr ser invocado e insertado cuando desee. Cada copia del bloque en el dibujo puede realizarse con diferentes factores de escala y distintos ngulos de orientacin. Un bloque es tratado como un slo objeto por Autocad, se puede mover, borrar, listar, etc, sealando para ello, a cualquiera de sus entidades componentes. As, es considerado igual que si fuera por ejemplo, una lnea y puede ser manipulado como tal por cualquiera de los comandos de edicin y consulta. Se dispone especficamente de dos comandos fundamentales para definir y manipular bloques, los cuales se vern a continuacin. Tambin se puede usar RENAME y PURGE para cambiar el nombre o eliminar bloques existentes u otras objetos que tengan asociado un nombre. Los bloques pueden estar compuestos por entidades pertenecientes a distintos layers y conservar la informacin asociada a ellos (color, tipo de lnea, etc.) Hay, sin embargo, ciertas condiciones sobre el lugar en que el bloque ser insertado, as como sobre las relaciones de anidamiento entre distintos bloques que hay que tomar en consideracin. a) Ventajas del uso de bloques: Reduccin de trabajo Mayor organizacin Construccin de bibliotecas de smbolos los cuales se pueden compartir entre varios dibujos. Facilidades para la redefinicin de bloques y actualizacin automtica a todas sus referencias. Ahorro de espacio de almacenamiento (si no se usa INSERT*).
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 31

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

Definicin de atributos para cada bloque, que corresponden a cierta informacin que puede variar con cada insercin del bloque y que puede ser extrada del dibujo y transferida a una base de datos. b) Definicin de Bloques Para definir un bloque se usa el comando BLOCK ( WBLOCK), donde se debe especificar lo siguiente: Un nombre para el nuevo bloque (permite redefinicin si ya exista un bloque con ese nombre). Un punto base, que ser usado como referencia para insertar posteriormente el bloque. Puntos base tpicos son el centro de bloque o su extremo inferior izquierdo. Tambin es el punto con respecto al cual se podrn efectuar las rotaciones al ser insertado. Las entidades que conformarn el bloque. c) Insercin de bloques Para insertar previamente definidos en un dibujo se utiliza el comando INSERT, donde se debe especificar: Nombre del bloque a ser insertado. Punto de insercin (punto de la pantalla sobre el que se desea que est el punto base del bloque). Factores de escala, pueden ser diferentes para cada eje. Un factor de escala negativo indicar que se desea una imagen reflejada en esa direccin, anlogo a lo que se puede obtener con un espejo situado perpendicularmente a ese eje. Angulo de rotacin, con el que se desea insertar el bloque. Tambin puede especificarse mediante un punto, en cuyo caso Autocad calcula el ngulo entre la horizontal y la lnea definida por el punto base y el punto dado.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 32

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

2.5.2 ATRIBUTOS Un atributo es una entidad de dibujo que contiene texto y est enlazada a un Bloque. Puede contener todo tipo de informacin acerca del Bloque: nmeros de artculos, precios, comentarios, el nombre del comerciante, etc. La informacin de los Atributos puede mostrarse o no como parte de dibujo pero siempre est disponible. Pueden definirse Atributos que siempre tengan el mismo valor, denominados Atributos constantes, o que precisen la introduccin de un valor cada vez que se inserta un Bloque. Los Atributos pueden extraerse de una base de datos del dibujo y utilizarse como entradas en una hoja electrnica para generar documentos tales como catlagos o listas de materiales. Los Atributos pueden utilizarse, por ejemplo, en la administracin de instalaciones para listar las direcciones, costos e inventarios para un dibujo Autocad de una oficina. Las aplicaciones, como sistemas de informacin geogrfica, bibliotecas de smbolos y estimaciones de materiales, en los que los principios bsicos de la extraccin de Atributos pueden combinarse con los programas ADS y AutoLISP son un ejemplo del uso avanzado de Atributos. Los Atributos se definen en los comandos ATTDEF o DDATTDEF. Las definiciones y seales para cada Atributo se seleccionan y almacenan durante los comandos BLOCK y WBLOCK. Usted puede definir Atributos que tengan siempre el mismo valor, denominados Atributos constantes, o Atributos para los que haya que ingresar un valor cada vez que se insertan en un Bloque. a) Modos de atributos: Invisible: Si se selecciona este cuadro, el texto del Atributo no aparece despus de, insertado el Bloque. Puede desactivar esto con el comando ATTDISP. Constant: Si se selecciona este cuadro, el Atributo tiene un valor fijo para todas las inserciones de Bloques que no pueden modificarse en ninguna fase.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 33

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

Verify: Si se selecciona este cuadro, el programa pide que se verifique si el valor predeterminado del Atributo es correcto cuando se inserta un Bloque. Preset: Si se selecciona este cuadro, el Atributo se define como un valor predeterminado que no permite modificaciones por parte del usuario. Esta opcin slo es vlida para la introduccin de informacin en la lnea de comandos, pero no a travs de un cuadro de dilogo. b) Area Attributo: contiene los siguientes cuadros de edicin. Tag: Contiene el encabezamiento o nombre de campo de un Atributo. Prompt: Contiene el texto que aparece cuando Autocad solicita la introduccin de un valor o una cadena de texto de un Atributo. Value: Contiene el valor predeterminado de un Atributo. Puede dejarse vaco. El Insertion Point indica el comienzo de la definicin de un Atributo en trminos de las coordenadas X, Y y Z. El rea Text Options controla la forma en que aparece el texto. Se define un solo Atributo por vez, Cada Atributo de un Bloque puede tener diferentes valores y propiedades. Pueden Definirse tantos Atributos para un Bloque como se desee. Otros comandos asociados a atributos ATTEXT: Permite extraer atributos a un archivo ATTDIA: Permite introducir atributos mediante un cuadro de dilogo ATTEDIT: Permite modificar el valor de un atributo (Edita)

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 34

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

2.6 DIMENSIONAMIENTO AUTOMTICO EN AUTOCAD (DIM) En muchas aplicaciones, un dibujo preciso, hecho a escala y luego reproducido en papel no es suficiente para entregar toda la informacin deseada. Se deben agregar anotaciones que muestren el tamao de los objetos o las distancias y ngulos entre ellos. Se llama dimensionamiento al proceso de agregar estas anotaciones al dibujo. El dimensionamiento puede realizarse "a mano", usando comandos como DIST y LIST para obtener la informacin relevante y despus dibujar las lneas, arcos, flechas y textos. Sin embargo, Autocad provee de un ambiente especial que hace de este proceso algo mucho ms sencillo. Autocad provee de cinco tipos bsicos de dimensionamiento: lineal, ordinal, angular, dimetros y radios. Para el uso de cada uno de ellos, hay algunos trminos que se supondrn conocidos y que sern solicitados en el momento de efectuar el dimensionamiento, los principales son: Lneas de Dimensin: Es una lnea con flechas en los extremos, sobre la cual se sita el texto de la dimensin. Su posicin debe ser dada por la persona que dibuja, pero su orientacin est dada por el tipo de dimensionamiento que se efecte. Generalmente, la lnea de dimensin est al interior del rea medida, como se ve en el primer conjunto de las figuras. Cuando no cabe, dos lneas cortas se dibujan por afuera de la zona medida, con las fechas apuntando hacia el interior (ver la figura de FECHAS). Para el dimensionamiento angular, la lnea de dimensin es en realidad, un arco. Lneas de Extensin: Son las que delimitan a ser dimensionado. Si la lnea de dimensin se sita fuera del objeto medido, estas lneas de extensin se dibujan desde el objeto, perpendicularmente a la lnea de dimensin. Estas lneas se usan slo en el tipo de dimensionamiento lineal y angular. Es posible suprimir una ambas, si resultan superfluas o si entorpecen la comprensin del dibujo.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 35

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

Texto de la Dimensin: Es la cadena de caracteres que indica la medicin efectuada. Se puede usar el dato calculado automticamente por Autocad, entregar otra cifra, o suprimirlo completamente. Este texto se escribe usando el estilo de texto activo. El formato que se emplea est gobernado por el comando UNITS. Los smbolos especiales f y R son agregados automticamente para el caso de dimensionamiento de dimetros y radios respectivamente. Se le pueden agregar diferentes prefijos, tolerancias, lmites, etc. Esto se especifica mediante las variables de dimensionamiento. Para entrar al ambiente de dimensionamiento propiamente tal, se usa el comando DIM y una vez realizados todos los dimensionamientos necesarios, se abandona el ambiente mediante la opcin EXIT. Tipos de Dimensionamiento: Dimensionamiento Lineal. Se entiende por dimensionamiento lineal, la generacin de lneas verticales, horizontales, paralelas a alguna lnea inclinada o en un ngulo arbitrario. Se puede elegir un dimensionamiento continuado con respecto al anterior, o una serie de dimensionamientos con respecto a una lnea base. Dimensionamiento Ordinal o por Coordenadas Esta tcnica es usada con frecuencia en dibujos asociados y aplicaciones mecnicas cuya descripcin de partes es leda directamente por herramientas de control numrico. Permite anotar la coordenada X o Y de un punto (extremos o intersecciones de entidades) mediante una lnea gua simple, estas distancias (en X e Y) se miden con respecto al origen del UCS activo. Las distancias se especifican siempre en cantidades absolutas desde el punto de origen. Dimensionamiento Angular Los Tipos y Variables de Dimensionamiento, esta modalidad genera un arco para el ngulo comprendido entre dos lneas no paralelas.
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 36

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

Los mecanismos que permiten especificar el ngulo a ser dimensionado son 3: - Seleccionando 2 lneas no paralelas - Seleccionando un arco o crculo y un punto auxiliar. - Seleccionando 3 puntos. Opcionalmente se pueden agregar lneas de extensin. Dimensionamiento de Dimetros y Radios El dimensionamiento de dimetros y radios en crculos y arcos se muestran en la figura que da comienzo a esta seccin. Se tiene la opcin de agregar marcas o lneas centrales.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 37

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

2.7 EDICIN Y PLOTEO DE PLANOS (PAPER SPACE / MODEL SPACE O LAYAUT) 2.7.1 INTRODUCCIN Cuando se realiza un dibujo en AutoCad, este es por defecto ejecutado en el denominado Espacio Modelo. Este Espacio Modelo o Model Space (MS) es el ambiente original del editor grafico de AutoCad. Existe otro espacio denominado Espacio Papel o Paper Space (PS) y corresponde al ambiente en el cual se pueden distribuir, mediante ventanas, distintas vistas del espacio modelo. Para versiones de CAD actuales (sobre 2000) se denominan LAYAUT y se presentan como hojas de trabajo. Al trabajar en Espacio Modelo (MS) se puede realizar la distribucin de ventanas en mosaico que ocuparan zonas no superpuestas de la pantalla. Estas ventanas se activan mediante el comando Vports y sern vistas siempre activas del espacio modelo. La diferencia entre este tratamiento de vistas y el que se puede generar en PS, es que en este ltimo las ventanas son elementos grficos, tangibles para algunos comandos de edicin como; copy, move o stretch, lo que implica que estas ventanas se pueden distribuir a gusto, superponer e imprimir en combinacin, lo que no es posible con el trabajo en MS y el comando Vports. La activacin del espacio papel se realiza seteando la variable Tilemode en cero, originalmente esta se encuentra en 1, definiendo solo el espacio modelo. 2.7.2 PAPER SPACE (PS) Para trabajar en Espacio Papel (PS), la variable Tilemode (Ti) debe ser ajustada en 0. Al realizar este ajuste, la pantalla cambiara levemente, presentndonos el espacio en blanco donde podremos realizar la distribucin de ventanas para visualizar lo dibujado en el espacio modelo (MS). La generacin de ventanas se realiza mediante el comando Mview:

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 38

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

MVIEW: Permite generar ventanas en espacio papel Specify corner of viewport or [ON/OFF/Fit/Hideplot/Lock/Object/Polygonal/Restore/2/3/4] <Fit>: Enter an option or specify a point La opcin activa al entrar a este comando, es la generacin de una ventana mediante la definicin de los vrtices opuestos del rectngulo que definir la ventana. Como la Mview es un elemento grfico (a diferencia del Vports) esta definicin de los dos vrtices se puede realizar mediante el clic con el Mouse, el ingreso de pares coordenados, el clic del primer punto y la diferencia de coordenadas con el segundo, entre otras formas. Tambin se puede generar una ventana mediante la especificacin a un polgono cerrado o circulo cualquiera, de que sea considerado como ventana. Esto se logra mediante el dibujo anterior del elemento, con las caractersticas que se quiera y posteriormente con el submen Object se le define como Mview. La lnea de submens de Mview se completa con los siguientes sub-comandos: On/Off Fit Hideplot Lock Object Restore 2/3/4 Activa o desactiva ventanas existentes. Genera una ventana ajustada a todo el espacio papel. Especifica la remocin de lneas ocultas al momento de imprimir. Bloque una ventana existente para que no pueda ser modificada su escala, si pudindose modificar las caractersticas fsicas de ella (move, stretch, copy). Transforma un polgono cerrado, circulo o elipse en una ventana del modelo. Regenera una definicin anterior de ventana Distribuye una combinacin de 2, 3 o 4 ventanas en un rectngulo definido por el usuario.

Polygonal Construye una ventana no rectangular de varios vrtices

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 39

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

Al realizar el ajuste de la variable Tilemode a cero (0) y entrar al modo de espacio papel, en este se pueden utilizar todas las herramientas de dibujo de AutoCad, sin que sea necesario realizar la construccin de Mviews. Es decir, en espacio papel se puede dibujar de la misma manera que en espacio modelo. Una vez construida una ventana en espacio papel, se puede saltar dentro de ella y editar el espacio modelo, mediante al switch MS en la lnea de comando. Para volver al espacio papel, se llama al switch PS. De existir varias ventanas, se activar (remarcndose) la ltima ventana activa. Para saltar de una ventana a la otra se puede cickear con el mouse o presionar repetidamente Ctrl.+R. Al construir una ventana mediante el comando Mview, la escala inmediata de representacin del espacio modelo en la mview, depender del tamao de la ventana y de la extensin de trabajo que se ha desarrollado en model space, realizndose automticamente un zoom extents. ZOOM: Para ajustar la vista dentro de la ventana, se debe activar esta, ejecutar el comando Zoom e ingresar la relacin de vista entre el espacio modelo y el espacio papel con el sufijo XP. Specify corner of window, enter a scale factor (nX or nXP), or [All/Center/Dynamic/Extents/Previous/Scale/Window] <real time>: 1xp Al ingresar, como en el ejemplo, el valor 1xp, se est indicando que la relacin de vista entre papel y modelo, segn las unidades definidas en el seteo, es 1=1. Si se ingresa 0.5xp, la instruccin equivale a decir que en el espacio papel se debe representar en la mitad de unidades lo que se representa en el espacio modelo. 2xp indicara que en el espacio papel se debe representar al doble lo que est en el espacio modelo. Lo anterior supone que si en el MS estamos trabajando a escala 1:1000, al definir una mview con Zoom 2xp, entonces la escala vista en PS sera de 1:500.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 40

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

2.7.3 PROCESO DE LAMINACIN Para realizar la impresin de detalles o laminacin de un dibujo general, se pueden enumerar los siguientes pasos. a) En Tilemode 1, espacio modelo (MS), distribuir la posicin, tamao y orientacin de los cuadros de impresin, detalle o laminacin que se quieran. Se debe tener en cuanta el tamao de impresin de cada cuadro y la escala de salida (considerar para este caso impresiones 1 a 1). b) Si se quiere un cuadro impreso de 200x200 a escala 1:500, siendo la escala de trabajo de 1:1.000 en MS, entonces el cuadro que se ubicar sobre el dibujo, enmarcndolo en el espacio modelo, tendr 100x100 pues la ventana de Mview quedar definida con Zoom 2xp, siendo ampliado al doble. c) Si el cuadro no tiene orientacin ortogonal, se puede definir un sistema arbitrario de orientacin, mediante la aplicacin del comando UCS / e y seleccionar el borde inferior del cuadro para fijar la orientacin relativa. Luego aplicar el comando Plan para que el dibujo adopte la nueva orientacin. d) Con la nueva orientacin se puede definir una View / New / Define window y guardar con el nombre del detalle. e) Posteriormente, ya en PS (Tilemode 0) construir el cuadro de 200 x 200 que ser definido como Mview. f) Activar la Mview y llamar la View con el nombre que se le fij. Como la primera es de 200x200 y la segunda se defini de 100x100, entonces la escala que adoptar la ventana ser de Zoom 2xp lo que podr ser verificado haciendo un List sobre la Mview. g) El procedimiento se puede realizar sin la necesidad de establecer los cuadros en MS, sino que generando inmediatamente los encuadres en PS, en el tamao que se quiera, establecer la escala mediante el Zoom y luego desplazar el dibujo, mediante el comando Pan, hasta fijar la posicin del encuadre.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 41

APUNTES DE CLASES CI55D, SEMESTRE 2010-2

Agosto 2010

h) La ventaja de fijar la posicin de las ventanas en Tilemode 1, MS, es que de esta forma se pueden determinar precisamente las zonas de traslape, la orientacin o empalme entre una ventana y otra, asegurando que la cobertura es la que se requiere. i) Es recomendable que una vez construidas las ventanas Mview en PS, estas sean bloqueadas para que no se modifique el Zoom al activarlas y trabajar en ellas. Mediante el Sub-comando Lock, se puede bloquear la escala y posicin del espacio modelo, pudiendo saltar sucesivamente de PS a MS y viceversa sin riesgo de errar el formato de salida fijado.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 42

APUNTES DE CLASES CI55D, SEMESTRE 2010-1

Abril 2010

3.. AUTOMATIIZACIIN Y PROGRAMACIIN EN AUTOCAD 3 AUTOMAT ZAC N Y PROGRAMAC N EN AUTOCAD 3.1 ARCHIVOS SCRIPT En AutoCAD se pueden manejar archivos de comandos, que corresponden a archivos ASCII con un listado de comandos de AutoCAD que se ejecutan secuencialmente, con los que se pueden automatizar procesos repetitivos. Estos se asemejan a las macros que se emplean en planillas electrnicas como lotus, quatro o excel. Estos archivos son de extensin SCR y se ejecutan en cualesquier momento desde AutoCAD con el comando SCRIPT Tambin se pueden correr desde DOS escribiendo la siguiente instruccin acad archivo1.dwg archivo2.scr, donde acad ejecuta el AutoCAD desde DOS, archivo1 indica el nombre del dibujo que se debe abrir a iniciar AutoCAD, y archivo2 corresponde a un archivo de comandos con una lista de instrucciones de AutoCAD que se ejecutan sobre el archivo abierto. Una vez efectuados todos los comandos incluidos en el archivo, se vuelve al modo de comandos normal. Para que funcione desde DOS se debe tener configurada la opcin en el archivo de inicio de AutoCAD. Las instrucciones que se pueden dar dentro de un archivo de comandos son todas las de AutoCAD, pero se debe tener mucho cuidado con la secuencia en la entrada de datos o de respuesta a las consultas de AutoCAD, es decir, se debe conocer muy bien el comando que ser indicado. Es decir, hay que estar muy familiarizado con la secuencia de promts (preguntas) de AutoCAD para entregar la secuencia de respuestas correctas en el archivo de comandos. En este archivo los blancos son significativos, que para AutoCAD los blancos y RETURN son seal de fin de comando o delimitadores de datos. Para crear un archivo de comandos se puede emplear cualesquier editor de textos, pero no se debe dar formatos al archivo (mrgenes, cabeceras, pi de pginas, u otros), este solamente debe tener la secuencia de comandos como un archivo de textos tipo ASCII.
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 3-1

APUNTES DE CLASES CI55D, SEMESTRE 2010-1

Abril 2010

3.1.1 COMANDOS ESPECIALES DE ARCHIVOS SCR Adems de los comandos de AutoCAD que se pueden indicar en un archivo de comandos, estos tienen instrucciones especiales que permiten dar mayor flexibilidad a la programacin o automatizacin mediante el uso de estos archivos. Estas instrucciones son las siguientes: DELAY nnn: Produce una pausa de tiempo en la ejecucin de los comandos. La duracin de la pausa depende del equipo, pero debera ser del orden de 1 milisegundo por unidad. Por ejemplo, DELAY 1000 debera producir una pausa de un segundo. Permite retomar la ejecucin de un archivo de comandos que fue interrumpido. (La ejecucin de un archivo de comandos se puede interrumpir con CTRL C o Backspace). Permite que un archivo de comandos se ejecute una y otra vez (til par demostraciones). Deja la pantalla en modo texto. Deja la pantalla en modo grfico.

RESUME: RSCRIPT: TEXTSCR: GRAPHSCR:

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 3-2

APUNTES DE CLASES CI55D, SEMESTRE 2010-1

Abril 2010

3.1.2 SLIDES O VISTAS Una vista es una foto de la pantalla grfica, la cual se puede ver, en forma rpida, en cualquier instante. Esta queda almacenada en un archivo con extensin sld. MSLIDE: Para crear un slide primero que nada se debe tener diseado el dibujo y luego se crea a travs del comando MSLIDE. Al ejecutar el comando msilde de AutoCAD, este pregunta por el nombre con el cual se desea que se conozca el slide, la que se crea con extensin sld. El nombre por omisin es el nombre del archivo actual. La vista ocupa toda el rea de dibujo. Las partes del dibujo que quedan fuera del rea de dibujo, as como los layers que estn apagados o congelados, no aparecen en ella. VSLIDE: Para ver una vista se usa el comando VSLIDE, en este caso se solicita el nombre de la vista. Si la vista es simple, se indica el nombre del archivo (opcionalmente con el driver y directorio). Si la vista est en una biblioteca es el nombre de la biblioteca, opcionalmente con driver y directorio, y nombre-vista es el nombre de la vista Una vista cargada se despliega en el rea de dibujo. Para volver al dibujo de trabajo debe ejecutarse un REDRAW. Si se desea ver una serie de vistas, se puede precargar una mientras se est viendo la anterior, lo cual hace ms rpido el paso de una vista a la siguiente. Para ello, se agrega un * al nombre de la vista en el comando VSLIDE. La siguiente vez que se invoque al comando VSLIDE, este se dar cuenta que hay una vista precargada y la desplegar, sin preguntar por su nombre. Para el buen uso de las vistas se recomienda tener presente las siguientes observaciones:

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 3-3

APUNTES DE CLASES CI55D, SEMESTRE 2010-1

Abril 2010

Las vistas no pueden editarse. Si se ejecutan comandos normales de dibujo que est abajo. Los nicos comandos que se recomienda usar, mientras se ve una vista, son: VSLIDE, para ver otra vista DELAY, para dar tiempo de leer la vista REDRAW, para volver al editor grfico Otros comandos, como MENU y SCRIPT, que afecten tanto la vista como el archivo de dibujo. Si se necesita modificar una vista, debe editarse el archivo desde el cual fue creada y crearla de nuevo. Las relaciones de Layer/color, zoom, etc. no afectan la vista. Esta es slo una foto de la pantalla. Si se genera una vista en un dispositivo de baja resolucin, y luego desea verse en uno de alta resolucin, AutoCAD ajusta el tamao de la vista, pero no la resolucin. Para ello, hay que generar la vista en el dispositivo de alta resolucin.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 3-4

APUNTES DE CLASES CI55D, SEMESTRE 2010-1

Abril 2010

3.2 AUTOMATIZACIN MEDIANTE EMPLEO DE ARCHIVOS DXF 3.2.1 LOS ARCHIVOS DXF Dentro de los archivos de intercambio que usa AutoCAD con otros programas grficos, se encuentran los denominados archivos de extensin DXF. Estos son archivos de texto (ascii) con una codificacin o sintaxis bien definida que permiten ser usados para ser almacenados como dibujos con formato vectorial, y no solamente imgenes, en casi todos los softwares con alguna capacidad de dibujo. Estos archivos se podran denominar como el archivo estndar de intercambio de dibujos con formato vectorial. El uso de estos archivos en procesos de automatizacin de dibujos, provenientes de una salida de otro programa u obtenidos como el resultado de algn proceso o modelamiento complejo, consiste en la realizacin de un programa que transforma los datos existentes en archivos grficos, o que a partir de datos iniciales realiza los procesos necesarios, obteniendo resultados y finalmente todos ellos vaciados en un archivo que posteriormente se representar grficamente en AutoCAD. Se debe destacar que los archivos dxf tienen la gran ventaja que al ser ingresados a AutoCAD u otro programa con capacidades grficas, genera archivos vectoriales, es decir cada uno de los elementos dibujados se transforma en una entidad, la que mediante herramientas de edicin o de dibujo, pueden ser tratadas con algn fin especfico.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 3-5

APUNTES DE CLASES CI55D, SEMESTRE 2010-1

Abril 2010

3.2.2 FORMATO "ESTANDAR" DE UN ARCHIVOS DXF Un archivo de intercambio dxf es un archivo ascii con un formato muy especfico y su estructura general se conforma por cinco secciones: 1) Seccin HEADER: Contiene la informacin general del dibujo. Esta seccin se puede omitir. 2) Seccin TABLES: Contiene la definicin de algunos elementos empleados en AutoCAD, como por ejemplo: tipos de lneas, definicin de layer, estilos de textos, estilos de lneas, estilos de dimensiones, definiciones de vistas y definiciones de coordenadas locales. Esta seccin se puede omitir. 3) Seccin BLOCKS: En esta seccin se definen los bloques con sus respectivas entidades y puntos caractersticos. Esta seccin se puede omitir. 4) Seccin ENTITIES: Contiene todas las entidades que definen un dibujo. Esta seccin es obligada si se desean dibujar elementos. 5) Seccin END OF FILE: Permite cerrar el archivo, y es de carcter obligado. La informacin que contiene cada una de las secciones anteriores se ingresa con un formato especial, con codificacin especfica que permiten definir cada uno de los elementos a dibujar o definir.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 3-6

APUNTES DE CLASES CI55D, SEMESTRE 2010-1

Abril 2010

El formato general de un archivo dxf, donde se definen cada una de sus secciones es la siguiente:
0 SECTION 2 HEADER ...(Definicin de variables) 0 ENDSEC 0 SECTION 2 TABLES 0 TABLE 2 VPORT, DIMSTYLE, LTYPE, LAYER, STYLE, UCS o VIEW ...(Datos que definen los elementos anteriores) 0 ENDTAB 0 ENDSEC 0 SECTION 2 BLOCKS ...(Definicin de bloques con sus respectivas entidades) 0 ENDSEC 0 SECTION 2 ENTITIES ...(Definicin de entidades) 0 ENDSEC 0 EOF

... (Fin de archivo)

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 3-7

APUNTES DE CLASES CI55D, SEMESTRE 2010-1

Abril 2010

3.2.3 RELACIN CON AUTOCAD Los archivos dxf son archivos de textos con una codificacin especial que al ser cargados al AutoCAD, transforman su contenido en una representacin grfica con todas las entidades y propiedades definidas. Solamente, los comandos que relacionan AutoCAD y los archivos indicados son los siguientes: DXFOUT: DXFIN: Desde AutoCAD, se transforman las entidades de un dibujo con todas sus propiedades en una archivo de texto con formato dxf. Permite ingresar un archivo dxf externo y transformarlo en un archivo grfico, que contiene cada entidad definida con sus respectivas propiedades y caractersticas.

Una vez almacenado y transformado el dibujo, este pasa a ser un archivo tipo de AutoCAD, el que puede ser manipulado desde ste con todas sus herramientas, y al grabarlo se transforma en un archivo dwg. Algunas veces, desde una hoja de trabajo de AutoCAD, no es posible cargar un archivo dxf, por lo que se recomienda abrir una hoja en blanco, cargar el archivo dxf y posterior insertar como bloque los otros archivos dwg que se requieran. Cuando este problema sucede, normalmente AutoCAD emite un mensaje bastante claro.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 3-8

APUNTES DE CLASES CI55D, SEMESTRE 2010-1

Abril 2010

3.2.4 PROCESO DE AUTOMATIZACIN En resumen, las caractersticas fundamentales de un archivo DXF que permiten pensar en un proceso de automatizacin son los siguientes. Un archivo de textos (ascii o plano), puede ser editado o generado con cualesquier herramienta computacional. Un archivo de Intercambio grfico universal, puede ser generado o ingresado a cualesquier software con capacidades grficas Un documento grfico vectorial puede ser editado en el software empleado (AutoCAD, Word, SIG, etc.) Cdigos o sintaxis con formato rgido y estructurado, se pueden generar sin grandes dificultades con algn programa computacional con capacidades de manejar archivos (basic, fortran, pascal, visual basic, turin, etc). Con las caractersticas anteriores, el proceso de automatizacin se define generando un interfaz grfico que permita crear archivos con formato dxf, al que adems se pueden incorporar soluciones de procesos o clculos de acuerdo a los problemas que se requieran resolver. Por lo anterior, este mtodo no tiene grandes restricciones a su aplicabilidad, y solamente depender del software de programacin que se emplee (basic, pascal, c, visual basic u otro) en relacin a la capacidad de clculos, manejo de archivos, velocidad o uso de memoria, en funcin de las necesidades que se presenten. Finalmente, en el diagrama siguiente se ilustra el proceso de Diseo Asistido Por Computador (CAD) mediante el uso de archivos dxf y un software de programacin cualesquiera:

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 3-9

APUNTES DE CLASES CI55D, SEMESTRE 2010-1

Abril 2010

Archivo de Intercambio Grfico Universal "dxf" (DXFOUT)

Software de Programacin (Visual Basic EXCEL)

Interfaz Frfico (Genera entidades en formato DXF)

Problema de Ingeniera u Otro (PROCESO)

Ingreso a AutoCAD u Otro (DXFIN)

FIN del Proceso (Archivo "dwg")

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 3-10

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

NDICE CAPTULO DE AUTOMATIZACIN AUTOLISP 3.3 AUTOMATIZACIN MEDIANTE PROGRAMACIN EN AUTOLISP ................................................................. 2

3.3.1 Introduccin ........................................................................................................................................................ 2 3.3.2 Personalizacin ................................................................................................................................................... 3 3.3.3 Programacin Mediante AutoLISP .................................................................................................................... 4
3.3.3.1 3.3.3.2 3.3.3.3 3.3.3.4 3.3.3.5 3.3.3.6 3.3.4.1 3.3.4.2 Caractersticas de AutoLISP ................................................................................................................................ 4 Tipos de Objetos en Autolisp ............................................................................................................................... 4 Convenciones de Autolisp.................................................................................................................................... 6 Definicin de un Programa en Autolisp ................................................................................................................ 7 Principales Instrucciones de Autolisp ................................................................................................................... 9 Ejemplos ............................................................................................................................................................ 32 Carga, muestra, inicio, fin y descarga ................................................................................................................ 36 Gestin de elementos del letrero ....................................................................................................................... 40

3.3.4 Interaccin con letreros en DCL ...................................................................................................................... 36

3.3.5 Anexo Programacin DCL................................................................................................................................ 52

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 1

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

3.3

AUTOMATIZACIN MEDIANTE PROGRAMACIN EN AUTOLISP

3.3.1 INTRODUCCIN
Dentro de lo que es la programacin existen diversas interfaces para crear programas para AutoCAD, el ms antiguo y, quizs el ms utilizado hasta ahora, es AutoLISP, el que corresponde a una adaptacin del lenguaje de programacin LISP que forma parte integrada con AutoCAD. LISP (LISt Processing) es un lenguaje de programacin que se remonta a los aos cincuenta y que fue desarrollado para la investigacin de inteligencia artificial, la base de su funcionamiento es el manejo de listas, en lugar de datos numricos como otros lenguajes. El lenguaje LISP est basado en lo que se denominan listas de smbolos, es un lenguaje de alto nivel y es un lenguaje evaluado, es decir, est a un paso entre los lenguajes interpretados y los lenguajes compilados. Los lenguajes interpretados son ledos palabra a palabra por el computador, al ser introducidas, y cada una de ellas convertida a lenguaje mquina. Esto hace que sea sencilla su edicin y deteccin de errores de sintaxis u otros; por el contrario, hace que sean muy lentos. Los cdigos de los lenguajes compilados son escritos por completo y, antes de su ejecucin final, es necesario compilarlos, convirtindolos as en cdigo fuente ejecutable y comprensible por la mquina. Este tipo de lenguajes hace que su ejecucin sea ms rpida y pura pero, en contra, resulta ms difcil su depuracin. Los lenguajes evaluados estn montados entre unos y otros, no son tan rpidos como los compilados pero son ms flexibles e interactivos que estos, es posible, por ejemplo, construir un programa con AutoLISP que sea capaz de modificarse a s mismo bajo determinadas circunstancia; sta es la base de los llamados Sistema Expertos. AutoCAD provee al usuario de un propio intrprete de AutoLISP interno. Este intrprete, al que habra que llamarle evaluador, se encarga precisamente de evaluar las expresiones incluidas en el cdigo fuente de un programa. Estos programas pueden introducirse directamente desde la lnea de comandos de AutoCAD, o bien cargarse en memoria a partir de un programa completo escrito es un archivo de texto ASCII. Dichos archivos tendrn habitualmente la extensin LSP. Para programar en AutoCAD, este lenguaje proporciona una serie de posibilidades como la facilidad para manejar objetos heterogneos (nmeros, caracteres, funciones, entidades u objetos de dibujo, etctera) Luego, a travs del lenguaje AutoLisp, se pueden definir nuevos comandos, nuevas opciones y todas las extensiones necesarias para satisfacer los requerimientos del usuario, adems se pueden crear archivos de comandos que interacten con el dibujo. La capacidad para hacer un programa nos lleva mucho ms all de la
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 2

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

simple personalizacin de mens o patrones de sombreado, nos lleva a un mundo totalmente integrado en AutoCAD desde donde podremos disear nuestros propios comandos, manipular dibujos o incluso acceder a la Base de Datos interna del programa. Para administrar las aplicaciones desarrolladas con AutoLisp, los programas CAD mediante herramientas de "personalizacin" permiten incorporarlos en los mens desplegables del programa, tambin se pueden asignar aplicaciones directamente a conos definidos por el usuario. A partir de la Versin 14 existe un nuevo entorno de desarrollo denominado Visual Lisp que permite realizar aplicaciones en AutoLISP de una manera ms rpida y efectiva. Este entorno proporciona herramientas para desarrollar y depurar las rutinas y compilarlas como aplicaciones ARX. Tambin dispone de su propio evaluador, que emula al de AutoLISP, adems de un completo control de codificacin y seguridad de las rutinas creadas. El entorno de Visual Lisp es un mdulo que se carga bajo demanda. No est incluido en el propio ncleo de AutoCAD, como ocurre con el evaluador de AutoLISP. El nuevo conjunto de funciones incorporadas en Visual Lisp permite trabajar en diferentes reas y niveles que incluyen funciones aadidas de AutoLISP, funciones de acceso al sistema operativo y E/S de archivos, funciones de carga y vinculacin de objetos y bases de datos, almacenamiento directo de listas en un archivo de dibujo, acceso al conjunto de objetos ActiveX de AutoCAD y tecnologa basada en ObjectARX que no necesita la presencia de AutoCAD para su ejecucin.

3.3.2 PERSONALIZACIN
Para poder administrar adecuadamente las funciones o programas que se ejecuten con AutoLISP, es necesario manejar herramientas de personalizacin propias de los programas CAD, este proceso consiste en configurar mens y archivos de autocad de manera que facilite la operacin de las herramientas estndar o especialmente desarrolladas por el usuario (programacin AutoLISP), mediante AutoCAD. Es decir uno puede adaptar las funciones de autocad para presentarlas en mens especficos o crear funciones y/o comandos en LISP, los que tambin pueden ser incorporados a nuestros menus particulares. Los archivos tradicionales de AutoCAD involucrados en los procesos de personalizacin son: nombre.mnu nombre.pgp nombre.lsp Contiene definicin de menus colgante, de barras, conos y ratn. El formato y sintaxis de este archivo se puede observar directamente en el que presenta por defecto AutoCAD. Contiene fundamentalmente la configuracin de alias (nombre abreviados de comandos). El formato y sintaxis de este archivo se puede observar directamente en el que presenta por defecto AutoCAD. Contiene rutinas lisp que se cargan en forma automtica al momento de iniciar una sesin de AutoCAD.
Pg 3

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

NOTAS:

Al crear los propios menus, es necesario que se generen archivos con nombres personales para no afectar la configuracin estndar de AutoCAD. En este caso se debe direccionar adecuadamente la carpeta de estos archivos de tal manera que al iniciar una sesin autocad no existan problemas de bsqueda. Se habla de archivos tradicionales dado que las versiones nuevas en general se manejan interactivamente desde el programa con herramientas de personalizacin tipo windows y no directamente de los archivos fuente. Adems, las configuraciones se guardan en archivos personalizados por tipo de usuario.

3.3.3 PROGRAMACIN MEDIANTE AUTOLISP


3.3.3.1 CARACTERSTICAS DE AUTOLISP Los programas en AutoLISP son simples archivos de texto, con la extensin obligatoria LSP, donde el usuario escribe uno a varios programas contenidos en ese archivo. Una vez hecho esto, basta cargar el archivo desde el editor del dibujo de AutoCAD para poder acceder directamente a todos los programas contenidos en l. Incluso el usuario puede definir rdenes propias personalizadas para ejecutar programas en AutoLISP. Una vez que la nueva orden est definida, se aade a las existentes en AutoCad para que funcionen de manera diferente de la habitual. Por ejemplo, en un dibujo en que interesa que todas las entidades sean polilneas, es posible redefinir las rdenes LINEA y ARCO para que dibujen directamente polilneas. Una de las ms importantes potencialidades de AutoLISP es el acceso directo a la Base de Datos de un dibujo en AutoCad. Toda la informacin del dibujo se encuentra en ella; capas, estilos de texto, tipos de lneas, sistemas de coordenadas o vistas almacenadas, atributos con sus diferentes valores en cada insercin, etc., as como todas las entidades contenidas en el dibujo. Toda la informacin de un dibujo, como deberamos saber, no se guarda como objetos de dibujo en s, o sea, cuando salvamos un dwg en disco no se guardan los crculos, lneas, etc., sino una relacin o base de datos donde se dice dnde aparece un crculo o una lnea, con qu coordenadas de origen y final, con qu radio o dimetro, tipo de lnea, color y cualquier otra variable de inters. Luego, se puede utilizar AutoLISP para modificar esa Base de Datos o para extraer la informacin que interese de ella con objeto de exportarla, por ejemplo, en una base de datos de atributos asociados a bloques. 3.3.3.2 TIPOS DE OBJETOS EN AUTOLISP Los objetos en AutoLISP representan todos los tipos de componentes de un programa. En esencia son dos, como ya se ha dicho: listas y smbolos. Adems es posible incluir como elementos de listas valores concretos ("constantes"), ya sean numricos o textos.
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 4

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

Atendiendo a sus caractersticas se pueden definir varios tipos de objetos en AutoLISP: Lista: es un objeto compuesto de: parntesis de apertura, uno o ms elementos separados por al menos un espacio en blanco y parntesis de cierre. Los elementos de la lista pueden ser smbolos, valores concretos ("constantes" numricas o textos), o tambin otras listas incluidas. Elemento: Atomo: Smbolo: Enteros: cualquiera de los componentes de una lista. representa una informacin indivisible. Un valor concreto o un smbolo de variable que contiene un valor son tomos. Una lista o una funcin definida por el usuario no son tomos. cualquier elemento de lista que no sea un valor concreto. El smbolo puede ser un nombre de variable, un nombre de funcin definida por el usuario o un nombre de comando de AutoLISP. valores numricos enteros, ya sean explcitos o contenidos en variables. Los enteros son internamente nmeros de 32 bits con signo. Sin embargo, en la transferencia de datos con AutoCad, se delimitan a valores de 16 bits con signo, es decir, comprendido entre -32768 y +32767. valores numricos con precisin de como flotante. valores textuales que contienen cadenas de caracteres (cdigo ASCII). Deben ir entre comillas. valores que presentan un archivo abierto para lectura o escritura desde un programa en AutoLISP. Por ejemplo, <File:#5c90>. valores que representan el "nombre" de una entidad en la Base de Datos. Por ejemplo <Entety name:60000A56>. valores que representan una designacin de entidades de dibujo. Por ejemplo, <Selection set:3>. es un smbolo que representa el nombre de una funcin definida por el usuario.
Pg 5

Reales: Cadenas:

Descripcin de fichero o archivo: "Nombres" de entidades de AutoCad: "Conjuntos designados" de AutoCad: Funcin de usuario:
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

Funcin inherente o Comando: Funciones ADS o Subrutinas externas: 3.3.3.3 CONVENCIONES DE AUTOLISP

es un smbolo con el nombre de un comando predefinido de AutoLISP. A veces se les llama Subrutinas o Funciones predefinidas. son smbolos con aplicaciones de ADS en Lenguaje C, cargadas desde AutoLISP.

Las expresiones contenidas en un programa de AutoLISP pueden introducirse directamente desde el teclado durante la edicin de un dibujo de AutoLISP de esas expresiones, que se pueden resumir en los siguientes puntos: Los nombres de smbolos pueden utilizar todos los caracteres imprimibles (letras, nmeros, signos de puntuacin, etc.), salvo los prohibidos, ( ) . ' " ; Los caracteres que terminan un nombre de smbolo o un valor explcito (una constante numrica o de texto) son, ( ) ' " ; (espacio en blanco) (fin de lnea) Una expresin puede ser tan larga como se quiera. Puede ocupar varias lneas del archivo de texto. Los espacios en blanco de separacin entre smbolos son interpretados como un solo espacio entre cada par de smbolos. Conviene no usar tabuladores. Para los nombres de smbolos, las maysculas y minsculas son indiferentes en AutoLISP. Los valores explcitos (constantes) de nmeros pueden empezar con el carcter + o -, que es interpretado como el signo del nmero. Los valores de constantes de nmero reales deben empezar con una cifra significativa. El carcter se interpreta como el punto decimal. Tambin se admite + o - para el signo y "e" o "E" para notacin exponencial (cientfica). No es vlida la coma decimal ni tampoco se puede abreviar, como en ".6" (hay que poner 0.6) Se pueden incluir comentarios en un archivo con programas en AutoLISP, comenzando con un punto y coma, ";" . A partir de donde encuentre un punto y coma hasta el final de la lnea, AutoLISP considera que son comentarios y nos los tiene en cuenta. Existen unos valores de smbolos de AutoLISP predefinidos que se deben respetar, estos son los siguientes:
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 6

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

PI: PAUSE: T: Nil:

Es el valor del nmero real PI, es decir: 3,141592653589793. Es una cadena de texto que consta de un nico carcter contrabarra. Se utiliza para interrumpir un comando de AutoCAD despus de haberlo llamado mediante la funcin de AutoLISP COMMAND. Esto permite al usuario introducir algn dato. Es el smbolo de True, es decir, cierto o verdadero (valor 1 lgico). Se utiliza para establecer que determinadas condiciones se cumplen. Por ltimo el valor de nada, vaco o falso (0 lgico) se representa en AutoLISP por nil. Este valor aparece siempre en minsculas y no es propiamente un smbolo, ya que no est permitido acceder a l.

3.3.3.4 DEFINICIN DE UN PROGRAMA EN AUTOLISP Los programas en AutoLISP son archivos de texto con la extensin "lsp". Por tanto, se crean directamente con cualquier editor de textos en modo ASCII. Lo importante siempre es grabar sin formatos especiales el archivo, se debe hacer solamente como texto de DOS. Un archivo ASCII puede contener varios programas o funciones de usuario en AutoLISP. Se suelen escribir procurando no sobrepasar los 80 caracteres por lnea para su edicin ms cmoda y, adems, se suelen sangrar en mayor o menor medida las entradas de algunas lneas, dependiendo de la funcin para dar claridad al programa. Las expresiones contenidas en un programa de AutoLISP pueden introducirse directamente desde el teclado durante la edicin de un dibujo de AutoCAD, escribirlas en un fichero de texto ASCII o ser suministradas por una variable del tipo cadena, como ya se ha dicho varias veces. Un programa de AutoLISP se compone de una serie de funciones AutoLISP que se ejecutan una detrs de la otra produciendo diferentes resultados. El caso sera el mismo que ir introduciendo rengln a rengln en la lnea de comandos. Pero en un archivo ASCII hay que introducir todas las funciones dentro de la lista de argumentos de otra que las engloba. Esta funcin es DEFUN y su sintaxis es: (DEFUN <simb> <lista argum> <expr>...) En AutoLISP, una funcin es directamente un programa, pues su evaluacin ofrece resultado una vez cargado el archivo de definicin. As, un archivo LSP puede contener muchos programas, segn el nmero de funciones definidas en l. Para evaluarlas no es necesario volver al archivo que las contiene; basta con cargarlo una sola vez. El comando (DEFUN) se utiliza precisamente para definir funciones o programas de AutoLISP. Va seguido de <simb>, que es el smbolo o
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 7

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

nombre de la funcin a definir. Conviene que los nombres de smbolos contengan como mximo seis caracteres, por razones de espacio ocupado en la memoria. A continuacin se especifica la lista de argumentos (al ser lista debe ir entre parntesis) que puede estar vaca o contener varios argumentos y, opcionalmente, una barra inclinada y los nombres de uno o ms smbolos locales de la funcin. Las funciones definidas por el usuario mediante (DEFUN) pueden integrarse en AutoCad como una orden ms. Para ello deben tener un nombre precedido por C: y comprender una lista de variables globales vaca, aunque pueden tener variables locales. Lgicamente, el nombre de la funcin definida no debe coincidir con el de una orden existente de AutoCad ni con el de un comando de AutoLISP. Por ejemplo, si en vez de tener que evaluar la funcin "diblinea" cada vez que se quiere ejecutar interesa implementarla en AutoCad como una orden nueva, se definira de la siguiente manera: command: (DEFUN c: diblinea () "nada") c: DIBLINEA command: diblinea "nada" Para ejecutar diblinea ya no es necesario evaluarla entre parntesis. Ahora funciona como una orden ms de AutoCad, hasta que se libere su espacio en la memoria o se salga de la actual edicin del dibujo. Si adems se desea que determinadas instrucciones se ejecuten tambin automticamente se pueden incluir en una funcin especial que es "s::startup". El prefijo de esta funcin especial "s::", debe considerarse como reservado; es mejor no utilizarlo en ninguna funcin de usuario. La funcin especial "s::startup" se ejecutar automticamente nada ms entrar en el Editor de Dibujo y cargarse el archivo ACAD.LSP o .MNL. Por ejemplo, si se incluye en estos archivos. (DEFUN S::STARTUP () (COMMAND "purge" "all" "" "n") ) De esta manera, al entrar en cualquier dibujo se limpiar automticamente todo lo no utilizado: capas, estilos de texto, tipos de lnea.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 8

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

3.3.3.5 PRINCIPALES INSTRUCCIONES DE AUTOLISP a) Crear y declarar variables Una variable es un espacio en memoria donde se guardar, con un nombre que indiquemos, un valor concreto, una cadena de texto, un resultado de una expresin, etctera. El comando para declarar variables en AutoLISP es SETQ y su sintaxis es la que sigue: (SETQ <simb1><expr1>[<simb2><expr2...]) Este comando atribuye el valor de la expresin <exprl> a la variable cuyo nombre es <simbl>, el de <expr2> a <simb2>, y as sucesivamente. Si las variables no estn previamente definidas, las crea. La funcin devuelve el valor atribuido a la ltima variable. Los nombres de smbolos no pueden ser un literal (no valdra, por ejemplo, "QUOTEx"). SETQ es la funcin bsica de atribucin de valores en AutoLISP. Por ejemplo: COMMAND: 25.3 COMMAND: (SETQ x 5 y "Hola" z ' (a b) w 25.3) !x !y !z !w 5 "Hola" (a b) 25.3

Importante: Hay que tener la precaucin de no utilizar con SETQ smbolos de variables que coincidan con nombre de comandos de AutoLISP, pues esto descartara la definicin de esos comandos. (ATOMS-FAMILY formato [lista_smbolos]) Muestra una lista con todos los smbolos definidos actualmente. En esta lista entran tanto las subrs (funciones inherentes) de AutoLISP como las funciones y variables definidas y declaradas por el usuario cargadas en la actual sesin de dibujo. De esta forma podemos consultar dicha lista para ver si tenemos la posibilidad de dar ese nombre de variable que estamos pensando. Ah tendremos todas las funciones propias e inherentes, adems de las variables ya creadas. Como podemos observar en la sintaxis, esta funcin necesita un parmetro o argumento obligatorio llamado formato. formato slo puede tomar dos valores: 0 1. Si es 0, los smbolos se devuelven en una lista, separando cada nombre de otro por un espacio en blanco. Si es
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 9

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

1, los smbolos se devuelven entre comillas (separados tambin por espacios blancos) para su mejor comparacin y examen. b) Instrucciones de Comandos de AutoCAD La funcin COMMAND permite llamar a comandos de AutoCAD desde AutoLISP. Sus argumentos son las propias rdenes de AutoCAD y sus opciones correspondientes. La manera de indicarle estas rdenes y opciones del programa a la funcin COMMAND es entre comillas dobles (""), aunque tambin podremos indicar puntos en forma de lista (o no), valores en formato de expresin matemtica y otros. La sintaxis de COMMAND es la siguiente: (COMMAND <argumentos> <opciones...>) Este comando sirve para llamar las rdenes y opciones de AutoCad. Cada argumento es evaluado y enviado a AutoCad como respuesta a sus mensajes o preguntas. Los nombres de rdenes y de opciones se envan como listas de dos o tres nmeros reales, por lo que si se especifican hay que hacerlo precedidos de QUOTE. Cada vez que se necesite un RETURN hay que introducir la cadena vaca"". La llamada de COMMAND sin ningn argumento equivale a teclear "CTRL-C", lo que anula la mayora de rdenes de AutoCad. COMMAND: (COMMAND "lnea" ' (50 50) pt2 2 2) En el ejemplo se dibujara una lnea entre el punto 50,50 y el almacenado en la variable pt2 (que deber contener, por tanto, una lista de dos o tres nmeros reales). La cadena vaca final introduce un RETURN y termina en AutoCad la orden LINEA. Los comandos de tipo "GET...", como GETPOINT del apartado anterior, no se pueden utilizar directamente como argumentos de COMMAND. Por ejemplo, si se pretende dibujar una lnea desde el punto 50,50 hasta un punto sealado por el usuario: COMMAND: (COMMAND "lnea" '(50 50) (GETPOINT ' (50 50) "Segundo punto: ") 22) Lineal del punto: Segundo punto: error: AutoCad rejected function. Se produce un error y el abandono de la funcin en curso. Para especificar un punto introducido mediante GETPOINT (o ms datos aceptados por funciones "GET"...") hay que ejecutar previamente esa funcin y almacenar el valor en una variable. COMMAND:(SETQ pT2 (getpoint '(50 50) "Segundo punto: "))
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 10

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

Segundo punto: (se seala) (120.0 70.0 0.0) COMMAND: (COMMAND "lnea" ' (50 50) pt2 "") Ahora la funcin se ejecuta correctamente y la lnea queda dibujada entre el punto 50.50 y el punto almacenado en "pt2". Las rdenes de AutoCad que leen directamente informacin del teclado, como TEXTO-DIN y BOCETO, no se pueden utilizar con la funcin COMMAND. Tambin conviene evitar la llamada a rdenes que abandonan el control del Editor de Dibujo, como SALTRAZ, o SCRIPT. Si se llama a una orden de AutoCad y se especifica como argumento de COMMAND el smbolo predefinido "pause", la orden se interrumpe hasta que el usuario introduzca los datos que en ese momento se requieran, pudiendo hacerlo de forma dinmica mediante "arrastre". El mecanismo es similar al uso de las contrabarras en las opciones de men. En el momento en que se introducen esos datos (puede ser un valor, una opcin, un punto, etc.) contina la ejecucin de COMMAND desde AutoLISP. Si el usuario introduce una orden transparente durante la interrupcin de "pause" (como 'ZOOM o 'ENCUADRE), la funcin COMMAND permanecer temporalmente suspendida. Esto permite al usuario efectuar todos los zoom o encuadres que desee antes de reanudar la funcin COMMAND introduciendo los datos que sean precisos. COMMAND :(COMMAND "circulo" "50,50" "10" "lnea" "50,50" pause "") Este ejemplo dibuja un crculo como centro en 50,50 y radio 10. Despus comienza una lnea en 50,50 y se interrumpe hasta que el usuario especifica el punto final de la lnea, pudiendo hacer todos los zoom y encuadre que desee. En el momento en que se teclea o seala ese punto, la funcin command introduce un return y la orden lnea termina Obsrvese que los puntos se pueden tambin especificar como una cadena de texto tal como se introduciran desde el teclado, con las coordenadas separadas por comas ( en el ejemplo, "50.50"). (QUOTE expresin) o tambin: (expresin) Esta funcin se puede utilizar con cualquier expresin de AutoLISP. Lo que hace es evitar que se evalen los smbolos y los toma como literales. Devuelve siempre el literal de la expresin indicada, sin evaluar. Por ejemplo: (QUOTE (SETQ x 22.5)) devuelve (SETQ x 22.5) (QUOTE hola) devuelve HOLA
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 11

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

(QUOTE (+ 3 3 3)) devuelve (+ 3 3 3) Hay que tener cuidado al utilizar el apstrofo de abreviatura de QUOTE, ya que desde la lnea de comandos no lo vamos a poder utilizar. Recordemos que AutoCAD slo reconoce que estamos escribiendo algo en AutoLISP en la lnea de comandos cuando comenzamos por el parntesis de apertura (, o a lo sumo por la exclamacin final !, para evaluar variables directamente. Expresiones como las siguientes slo podremos introducirlas desde un archivo ASCII: (DEFUN diblin () "Nada") a var12 Pues este comando es muy utilizado a la hora de introducir directamente, por ejemplo, las coordenadas de un punto, ya que estas coordenadas son en el fondo una lista y que no ha de ser evaluada. Por ejemplo (50 50). Lo mismo nos ha ocurrido con la lista de ATOMS-FAMILY. sta no ha de evaluarse (no tiene otras funciones aadidas, es simplemente un grupo de cadenas), por lo que ha de introducirse como literal. Una lista que no tiene funcin aadida, por ejemplo (50 50 23) produce un error de bad function en AutoLISP, a no ser que se introduzca como literal: (QUOTE (50 50 23)) devuelve (50 50 23) En la mayora de las funciones de AutoLISP, al introducir un literal de expresin la haremos con el apstrofo directamente, ya que con QUOTE no funcionar. QUOTE slo tendr validez cuando se utilice solo, sin ms funciones. c) Captura de puntos (GETPOINT [punto_base] [mensaje]) GETPOINT solicita un punto al usuario. Esta funcin aguarda a que se introduzca un punto, bien sea por teclado o sealando en pantalla como habitualmente lo hacemos con AutoCAD, y devuelve las coordenadas de dicho punto en forma de lista de tres valores reales (X, Y y Z).

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 12

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

Se puede indicar opcionalmente un mensaje para que se visualice en la lnea de rdenes, y tambin un punto de base < pto>. En este caso , AutoCad visualizar una lnea "elstica entre el punto base y la posicin del cursor de forma dinmica. Ejemplos: COMMAND: (GETPOINT) Aparentemente no sucede nada. Pero la funcin est esperando a que el usuario designe un punto. En ese momento devolver sus coordenadas. Por ejemplo (150.0 85.0 0.0) Si no se almacena en un variable, el valor del punto designado no permanece, sino que simplemente se visualiza. Por eso, para almacenar en una variable "pt1" ese punto se utilizara SETQ, como se ha visto en el apartado anterior. COMMAND: (SETQ pt1 (GETPOINT '(30 50) "Segundo punto: ")) Segundo punto: (se seala) (150.0 85.0 0.0) COMMAND: !pt1 (150.0 85.0 0.0) Ese punto queda ya almacenado en una variable global para su posterior utilizacin. COMMAND: (SETQ pt2 (GETPOINT ' (30 50) "segundo punto: ")) Segundo punto: (se seala) (125.0 70.0 0.0) En este ejemplo se ha especificado un punto de base de coordenadas (30 50 0); la coordenada Z=0 se toma por defecto. Aparece una lnea "elstica" entre ese punto de base y la posicin del cursor hasta que se "pincha". (GETCORNER punto_base [mensaje]) La misin de GETCORNER es exactamente la misma que la de GETPOINT (solicitar y aceptar un punto), la nica diferencia es la forma de visualizar dinmicamente el arrastre. Con GETCORNER, en lugar de ser una lnea elstica (como ocurra con GETPOINT con punto
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 13

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

base), es un rectngulo elstico. Esto nos lleva a deducir que esta funcin necesita obligatoriamente que se indique un punto de base para el rectngulo (vemos en la sintaxis que es argumento obligatorio). As: (GETCORNER (50 50)) situar la esquina primera del rectngulo elstico en coordenadas 50,50 y esperar que se seale, o se indique por teclado, el punto opuesto por la diagonal. Devolver el punto sealado por el usuario en forma de lista. d) Captura de datos numricos (GETINT [mensaje]) La funcin GETINT solicita y acepta un nmero entero introducido por el usuario. El valor de dicho nmero ha de estar comprendido entre 32768 y 32767. Si se introduce un valor real o un dato no numrico, AutoLISP devuelve un mensaje de error indicando que ha de ser un nmero entero y solicita un nuevo nmero. El mensaje de error proporcionado es similar (aunque no igual) al que produce el comando ARRAY de AutoCAD al introducir un nmero con decimales (real) cuando pregunta por nmero de filas o de columnas. mensaje proporciona la posibilidad de escribir un mensaje a la hora de solicitar el valor; es opcional. Como todos los textos literales y cadenas, el mensaje indicado ir encerrado entre comillas dobles. (GETREAL [mensaje]) GETREAL es totalmente similar a la funcin anterior, salvo que acepta nmero reales. Estos nmeros pueden tener todos los decimales que se quiera introducir, separado de la parte entera por el punto decimal (.). Si se introduce un nmero entero se toma como real, es decir, con un decimal igual a 0 (28 = 28.0) y, si se introduce un carcter no numrico se produce un error de AutoLISP, proporcionando la opcin de repetir la entrada. El argumento mensaje funciona igual que con GETINT. e) Distancias y ngulos (GETDIST [punto_base] [mensaje]) El valor de la distancia puede ser introducida por teclado o directamente indicando dos puntos en pantalla, como muchas distancias en AutoCAD. Si se introduce por teclado el formato ha de ser el establecido por el comando UNIDADES (UNITS). Pero independientemente
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 14

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

de este formato, GETDIST devuelve siempre un nmero real. mensaje funciona como en todas las funciones explicadas. Y punto_base permite incluir un punto de base a partir del cual se visualizar una lnea elstica hasta introducir un segundo punto para la distancia. (GETANGLE [punto_base] [mensaje]) GETANGLE espera a que el usuario introduzca un ngulo y devuelve su valor. Dicho ngulo puede ser introducido por teclado segn formato actual de UNIDADES (UNITS) o mediante dos puntos en pantalla con el cursor. El valor devuelto siempre ser un nmero real en radianes. Hay que tener en cuenta que los ngulos se devuelven considerando como origen el indicado en la variable de AutoCAD ANGBASE, pero medidos en el sentido antihorario (independientemente de lo que especifique la variable ANGDIR). Se utiliza esta funcin sobre todo para medir ngulos relativos. (GETORIENT [punto_base] [mensaje]) La funcin inherente a AutoLISP GETORIENT funciona de forma parecida a la anterior. La diferencia con GETANGLE estriba en que, GETORIENT devuelve los ngulos con el origen 0 grados siempre en la posicin positiva del eje X del SCP actual y el sentido positivo antihorario, independientemente de los valores de las variables ANGBASE y ANGDIR de AutoCAD. Se utiliza esta funcin sobre todo para medir ngulos absolutos. f) Cadenas de texto (GETSTRING [ T ] [mensaje]) GETSTRING acepta una cadena de caracteres introducida por teclado y devuelve dicha cadena, precisamente en forma de cadena (entre comillas). g) Acceso a variables de estado (sistema) de AutoCAD (GETVAR nombre_variable) Con GETVAR extraemos o capturamos el valor actual de la variable de sistema o acotacin de AutoCAD 14 indicada en nombre_variable, o sea, de cualquier variable del programa.
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 15

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

Ejemplos: (GETVAR "blipmode") (GETVAR "aperture") (GETVAR "blipmode") (GETVAR "dimtad") (GETVAR "modemacro") Si la variable indicada no existe, AutoLISP devuelve nil. (SETVAR nombre_variable valor) SETVAR asignar valor a nombre_variable, segn esta sintaxis, y devolver valor como respuesta. El nombre de la variable en cuestin deber ir entre comillas, al igual que con GETVAR, y el valor que se le asigne deber ser coherente con la informacin que puede guardar la variable. Si no es as, AutoLISP devuelve el error AutoCAD rejected function. Veamos algn ejemplo: (SETVAR "filletrad" 2) (SETVAR "proxygraphics" 0) (SETVAR "attdia" 1) Si no existe la variable se devuelve el mismo error que si se le introduce un valor errneo. h) Manejo bsico de listas Corresponden a una serie de funciones de AutoLISP muy sencillas que se utilizan para el manejo de listas, es decir permiten acceder o capturar todo o parte del contenido de una lista, as como a formar listas con diversos elemento independientes. Estas instrucciones se utilizan mucho en la programacin de rutinas AutoLISP, sobre todo a la hora de acceder a la Base de Datos interna de AutoCAD. (CAR lista)

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 16

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

La funcin CAR de AutoLISP devuelve el primer elemento de una lista. Si se indica una lista vaca () se devuelve nil, si no se devuelve al valor del elemento. (CDR lista) Esta funcin devuelve una lista con los elementos segundo y siguientes de la lista especificada. Esto es, captura todos los elementos de una lista excepto el primero (desde el segundo, inclusive, hasta el final) y los devuelve en forma de lista. (LIST expresin1 [expresin2...]) La funcin LIST rene todas las expresiones indicadas y forma una lista con ellas, la cual devuelve como resultado. Se debe indicar al menos una expresin. i) Funciones de conversin de datos AutoLISP da la posibilidad de conversin de los tipos de datos disponibles para utilizar, esto es, valores enteros, valores reales, ngulos, distancias y cadenas de texto alfanumrico. (FLOAT valor) valor determina el nmero que queremos convertir. Si es real lo deja como est, si el entero lo convierte en real. (ITOA valor_entero) Esta otra funcin convierte un valor entero, y slo entero, en una cadena de texto que contiene a dicho valor. (RTOS valor_real [modo [precisin]]) RTOS convierte valores reales en cadenas de texto. Al contrario que ITOA, RTOS admite nmeros enteros. (ANGTOS valor_angular [modo [precisin]]) Esta subr de AutoLISP toma el valor de un ngulo y lo devuelve como cadena de texto. Dicho valor habr de ser un nmero en radianes.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 17

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

El argumento modo se corresponde con la variable AUNITS de AutoCAD. Sus valores estn en el intervalo de 0 a 4 (ATOI cadena) ATOI convierte la cadena especificada en un nmero entero. Si la cadena contiene decimales la trunca. (ATOF cadena) Convierte cadenas en valores reales. Admite el guin que convertir en signo negativo. Las mismas consideraciones con respecto a caracteres no numricos que para ATOI. (DISTOF cadena [modo]) DISTOF convierte una cadena en nmero real. El argumento modo especifica el formato del nmero real y sus valores son los mismos que los explicados para RTOS. Si se omite modo se toma el valor actual de LUNITS. Se pueden probar los ejemplos inversos a RTOS, son complementarios. (ANGTOF cadena [modo]) Convierte una cadena de texto, que representa un ngulo en el formato especificado en modo, en un valor numrico real. modo admite los mismo valores que ANGTOS. Si se omite modo se toma el valor actual de la variable AUNITS. Se pueden probar los ejemplos inversos a ANGTOS, son complementarios. j) Manipulacin de cadenas de texto Corresponden a funciones de AutoLISP para el manejo de cadenas de texto (STRCASE cadena [opcin]) STRCASE toma la cadena de texto especificada en cadena y la convierte a maysculas o minsculas segn opcin. Al final se devuelve el resultado de la conversin. (STRCAT cadena1 [cadena2...])

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 18

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

Devuelve una cadena que es la suma o concatenacin de todas las cadenas especificadas. (SUBSTR cadena posicin [longitud...]) Esta funcin extrae longitud caracteres de cadena desde posicin inclusive. Esto es, devuelve una subcadena, que extrae de la cadena principal, a partir de la posicin indicada y hacia la derecha, y que tendr tantos caracteres de longitud como se indique. Tanto la posicin de inicio como la longitud han de ser valores enteros y positivos. (STRLEN [cadena1 cadena2...]) STRLEN devuelve la longitud de la cadena indicada. Si no se indica ninguna o se indica una cadena vaca (""), STRLEN devuelve 0. El valor de la longitud es un nmero entero que expresa el total de caracteres de la cadena. Si se indican varias cadenas devuelve la suma total de caracteres. (ASCII cadena) ASCII devuelve un valor entero que es el cdigo decimal ASCII del primer carcter de la cadena indicada. (CHR cdigo_ASCII) CHR funciona complementariamente a ASCII, es decir, devuelve el carcter cuyo cdigo ASCII coincide con el valor especificado. (WCMATCH cadena filtro) Esta funcin aplica un filtro o patrn a la cadena de texto. Se compara pues la cadena con dicho patrn indicado y se devuelve T si lo cumple; si no se devuelve nil. (READ [cadena]) Veamos una funcin muy til. READ devuelve la primera expresin de la cadena indicada. Si la cadena no contiene ningn parntesis y es un texto con espacios en blanco, READ devuelve el trozo de texto hasta el primer espacio (en general ser la primera palabra del texto). Si la cadena contiene parntesis, se considera su contenido como expresiones en AutoLISP, por lo que devuelve la primera expresin.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 19

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

k) ngulos y distancias (ANGLE punto1 punto2) ANGLE devuelve el ngulo determinado por la lnea que une los dos puntos especificados (punto1 y punto2) y la direccin positiva del actual eje X en el dibujo. As pues, entre punto1 y punto2 se traza una lnea imaginaria y, el ngulo es el formado por esa lnea con respecto al eje X positivo. Como sabemos, el ngulo se mide en radianes y su sentido positivo es el antihorario o trigonomtrico. (DISTANCE punto1 punto2) Esta funcin devuelve la distancia 3D entre los dos puntos especificados. Lgicamente, con DISTANCE es indiferente el orden de introduccin de puntos. Funciona de la misma manera, con dos GETPOINT, que GETDIST. Pero DISTANCE se puede utilizar para calcular la distancia entre dos puntos cualesquiera del proceso de un programa, es decir, que no hayan sido solicitados directamente al usuario. (POLAR punto ngulo distancia) La funcin POLAR devuelve un punto obtenido mediante coordenadas relativas polares a partir del punto especificado, es decir, se devuelven las coordenadas de un punto. Desde punto se lleva distancia en la direccin marcada por ngulo. Como siempre, el ngulo introducido se considera en radianes y positivo en sentido trigonomtrico. Aunque el punto introducido como argumento pueda ser 3D, el valor del ngulo (argumento tambin) se toma siempre respecto al plano XY actual. (INTSERS punto1 punto2 punto3 punto4 [prolongacin]) Esta funcin toma los puntos punto1 y punto2 como extremos de una lnea (aunque no lo sean), los puntos punto3 y punto4 como extremos de otra, y calcula el punto interseccin de ambas, el cual devuelve. l) Funciones de manejo de listas (acceso a bases de datos de AutoCAD) (ASSOC elemento_clave lista_asociaciones) ASSOC busca el elemento especificado en elemento_clave en la lista especificada en lista_asociaciones; devuelve la lista asociada cuyo primer elemento es el especificado. Para ello, esta lista debe ser una lista de asociaciones, es decir, que contenga sublistas incluidas con elementos asociados, si no no funcionar.
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 20

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

(CONS primer_elemento lista) Esta funcin toma la lista indicada y le aade un nuevo primer elemento, devolviendo la lista resultante. (SUBST elemento_nuevo elemento_antiguo lista) El cometido de esta funcin es sustituir un elemento de una lista. Para ello, busca en la lista indicada como ltimo argumento (lista) el elemento indicado como segundo argumento (elemento_antiguo) y lo sustituye por el elemento indicado como primer argumento (elemento_nuevo). (APPEND lista1 lista2...) La funcin siguiente APPEND rene todos los elementos de las listas especificadas en una sola lista que los engloba. (LENGTH lista) Esta funcin devuelve la longitud de la lista indicada, es decir, su nmero de elementos. La devolucin de LENGTH ser siempre un nmero entero, evidentemente. (LAST lista) Esta funcin devuelve el ltimo elemento de la lista especificada. (MEMBER elemento lista) MEMBER busca el elemento especificado en la lista indicada y devuelve el resto de la lista a partir de ese elemento, incluido l mismo. (NTH nmero_orden lista) NTH devuelve el elemento de la lista que se encuentre en la posicin nmero_orden. Esta funcin puede resultar muy interesante a la hora de acceder a elementos "lejanos" en una lista, ya que evitaremos el uso de las combinaciones de CAR y CDR que pueden dar lugar a confusin. Debemos tener en cuenta que el primer elemento de la lista para NTH es el 0, luego el 1, el 2, etctera. Si la posicin especificada es mayor que la posicin del ltimo elemento de la lista, NTH devuelve nil.
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 21

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

(REVERSE lista) REVERSE tiene como misin nica y exclusiva devolver la lista indicada con todos sus elementos invertidos en el orden. (ACAD_STRLSORT lista) Toma la lista especificada, ordena las cadenas de texto contenidas alfabticamente y devuelve la lista resultante. La lista slo puede contener cadenas entre comillas. m) Acceso base de datos de entidades y manejo de entidades

Primero se debe seleccionar una o un conjunto de entidades: (SSGET [modo] [punto1 [punto2]] [lista_puntos] [lista_filtros]) La funcin SSGET acepta el conjunto designado de entidades. Una vez seleccionadas las entidades y agrupadas en un conjunto de seleccin, deberemos extraer el nombre de la que o las que nos interesen para trabajar con ellas. (SSNAME conjunto ndice) SSNAME devuelve el nombre de entidad (cdigo 1), del conjunto de seleccin especificado, situada en el lugar indicado por el ndice. Las entidades dentro de un conjunto comienzan a numerarse por el 0. As, en un conjunto con cuatro entidades, stas estaran numeradas de 0 a 3. Ahora que ya hemos designado una entidad y que podemos conocer su nombre, slo queda extraer su lista de definicin para poder modificarla o editarla. Para ello disponemos de la funcin ENTGET. (ENTGET nombre_entidad [lista_aplicaciones]) Esta funcin ENTGET busca en la Base de Datos el nombre indicado de una entidad y devuelve la lista completa correspondiente a esa entidad. Se observa que se requiere el nombre de una entidad (cdigo 1 en Base de Datos) y por lo tanto se hace necesario obtenerlo previamente con SSNAME
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 22

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

(ENTSEL [mensaje_solicitud]) La funcin ENTSEL espera a que el usuario designe una nica entidad mediante un punto y devuelve una lista cuyo primer elemento es el nombre de la entidad (cdigo 1) designada, y su segundo elemento las coordenadas X, Y y Z del punto de designacin. De esta forma se tienen asociados ambos valores para procesarlos posteriormente. Esta lista devuelta por ENSEL se puede indicar en las llamadas a los comandos de AutoCAD que requieren sealar una entidad por un punto. (SSLENGTH conjunto) Como decimos, SSLENGTH determina el nmero de entidades que existen en el conjunto de seleccin indicado. El nmero es siempre entero positivo, salvo si es mayor de 32.767, en cuyo caso es un nmero real. Por otro lado, para aadir una entidad a un conjunto de seleccin ya existente se utiliza la funcin SSADD. Su sintaxis es la siguiente: (SSADD [nombre_entidad [conjunto]]) Si se emplea sin ningn argumento construye un conjunto de seleccin vaco, si elementos. Si se indica slo un nombre de entidad, construye un conjunto de seleccin que contiene slo esa entidad. Si se especifica un nombre de entidad y tambin un conjunto de seleccin existente, aade la entidad al conjunto, con lo que este pasa a tener un elemento ms. La funcin SSADD siempre devuelve un valor de conjunto. Si se indica sin argumentos o slo con el nombre de una entidad, dado que crea un conjunto nuevo, devuelve su valor. Si se especifica un conjunto ya existente, devuelve ese mismo valor especificado puesto que el efecto es aadirle una entidad, pero el identificador del conjunto sigue siendo el mismo. (SSDEL nombre_entidad conjunto) SSDEL, por su lado, elimina la entidad, cuyo nombre se especifique, del conjunto de seleccin indicado. Digamos que es el proceso contrario a SSADD. El nombre del conjunto sigue siendo el mismo y por eso SSDEL devuelve ese nombre. Si la entidad no existe en el conjunto, SSDEL devuelve nil. (SSMEMB nombre_entidad conjunto) Esta ltima funcin de esta seccin examina el conjunto de seleccin especificado para ver si la entidad cuyo nombre se indica est en l. Si la encuentra devuelve su nombre, si no devuelve nil.
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 23

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

(ENTDEL nombre_entidad) ENTDEL elimina de la Base de Datos la entidad, cuyo nombre se indica, si existe en ella en el dibujo actual; ENTDEL recupera la entidad cuyo nombre se indica si haba sido previamente borrada de la Base de Datos. n) Acceso a archivos AutoLISP slo es capaz de acceder a ficheros de acceso secuencial. Estos ficheros, pueden ser archivos de texto como un archivo de men o de definicin de tipos de lnea, o ficheros de datos tambin de texto ASCII que contengan, por ejemplo, coordenadas de puntos de un levantamiento topogrfico (tpico fichero de salida de una estacin total, por ejemplo). (OPEN nombre_archivo modo) Esta funcin abre un archivo para permitir el acceso a las funciones de entrada y salida de AutoLISP. OPEN devuelve un valor de descriptor de archivo que posteriormente utilizaremos para acceder a l, por lo que la prctica lgica consistir en guardar dicho descriptor para ser posteriormente utilizado. El modo puede ser "r", "w" o "a". "r": Abre en modo lectura. Slo se pueden leer o extraer datos del archivo. Si el archivo indicado no existe se devuelve nil.

"w": Abre en modo escritura. Se escriben datos en el archivo y, si ya existan otros datos, se sobreescriben. Si el archivo indicado no existe se crea. "a": Abre en modo aditivo. Se escriben datos en el archivo al final del mismo, tras los datos existentes si hay. Si el archivo indicado no existe se crea. (CLOSE descriptor_archivo) CLOSE cierra el archivo vlido abierto identificado por su descriptor de archivo (el obtenido por OPEN). Una vez cerrado el archivo, se devuelve nil y ya no se puede hacer ninguna operacin con l. El descriptor de archivo deja de ser vlido y al volver a abrirse mediante OPEN cambiar. Es necesario cerrar los archivos cuando ya no se van a utilizar. (READ-LINE [descriptor_archivo])
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 24

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

Una vez abierto un archivo para lectura, utilizaremos la funcin READ-LINE para leer una lnea completa de dicho archivo, es decir, hasta el salto de lnea. Para ello deberemos indicar el descriptor de archivo que devolvi la funcin OPEN al abrirlo. READ-LINE devuelve cada vez una de las lneas como cadena, es decir, entre comillas dobles, hasta que al llegar al final del archivo devuelve nil. (WRITE-LINE cadena [descriptor_archivo]) WRITE-LINE funciona de forma inversa a READ-LINE, esto es, escribe la cadena indicada como una lnea completa en el archivo especificado por su descriptor vlido. Evidentemente el archivo deber estar abierto para escribir o aadir datos, dependiendo de la modalidad que nos interese. (READ-CHAR [descriptor_archivo]) La siguiente funcin que veremos, READ-CHAR, lee un carcter del archivo especificado (abierto para lectura) por su descriptor cada vez, y devuelve su cdigo ASCII. (WRITE-CHAR cdigo_ASCII [descriptor_archivo]) WRITE-CHAR realiza la funcin inversa a READ-CHAR, es decir, escribe en un archivo cuyo descriptor se especifica, o en pantalla si no se especifica ningn descriptor, el carcter cuyo cdigo ASCII se indica. Adems, devuelve este cdigo ASCII. (PRIN1 [expresin [descriptor_archivo]]) Esta funcin escribe expresiones en un archivo, si se indica un descriptor vlido, o en la lnea de comandos, si no se indica descriptor alguno. Devuelve la propia expresin. A diferencia de WRITE-LINE y WRITE-CHAR, PRIN1 permite escribir cualquier expresin en un fichero, sin necesidad de que sea una cadena de texto. (PRINT [expresin [descriptor_archivo]]) Totalmente idntica a PRIN1, salvo que salta a nueva lnea antes de visualizar o escribir la expresin y aade un espacio blanco al final. (PRINC [expresin [descriptor_archivo]]) Totalmente idntica a PRIN1, salvo que los caracteres de control se escriben como tales, no representados por su cdigo octal. Alguno
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 25

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

de estos caracteres puede ser representado en el archivo por un smbolo, cosa que apreciaremos al abrirlo con un editor ASCII. A diferencia de PRIN1, la funcin PRINC escribe cualquier carcter admitido en un archivo de texto y las expresiones pueden ser ledas directamente con funciones como READ-LINE. (FINDFILE nombre_archivo) La funcin FINDFILE explora directorios en busca del archivo especificado. El archivo se indica entre comillas por ser cadena. Si se especifica sin ruta o camino de acceso, FINDFILE buscar en los caminos de archivos de soporte incluidos en el cuadro Preferencias, en la pestaa Archivos (carpeta Camino de bsqueda de archivo de soporte). Si se escribe una ruta de acceso en el argumento nombre_archivo, FINDFILE buscar el archivo en la ruta especificada. Si la funcin FINDFILE encuentra el archivo buscado devuelve la cadena que indica su camino y nombre en formato vlido de AutoLISP, si no es as, devuelve nil. (GETFILED ttulo_letrero archivo_defecto patrn_extensin modo) La funcin GETFILED muestra el letrero estndar de gestin de archivos de AutoCAD 14. Puede ser muy til cuando se programe con cuadros de dilogo en DCL, ya que es ms vistoso escoger un archivo de un letrero que escribirlo en lnea de comandos. Esta funcin devuelve una cadena que contiene la ruta y el nombre del archivo seleccionado en el cuadro. Este nombre y ruta estn en formato AutoLISP, por lo que pueden ser perfectamente guardados en una variable y posteriormente utilizados por la funcin OPEN. o) Operaciones numricas Para realizar las cuatro operaciones aritmticas bsicas existen cuatro funciones AutoLISP que son +, -, * y /, estas se corresponden con la suma, resta, multiplicacin y divisin. (+ [valor1 valor2 valor3...]) (/ [valor1 valor2 valor3...]) (1+ valor) Esta sintaxis corresponde a la funcin de incremento positivo de una unidad al valor indicado

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 26

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

(1- valor) Esta funcin resta (incremento negativo) una unidad al valor numrico indicado. Equivale a (- valor 1), pero de una forma ms cmoda. (ABS valor) Esta funcin ABS devuelve el valor absoluto del nmero indicado o expresin indicada. (FIX valor) FIX trunca un valor a su parte entera (positiva o negativa), es decir, de un nmero real con decimales devuelve nicamente su parte entera. Pero, cuidado, no se produce redondeo, slo un truncamiento. (REM valor1 valor2 [valor3...]) Esta funcin AutoLISP devuelve el resto del cociente (mdulo) de los dos valores introducidos en principio (SIN ngulo) La funcin SIN devuelve el seno de un ngulo expresado en radianes. (COS ngulo) COS devuelve el coseno de un ngulo expresado en radianes. (ATAN valor1 [valor2]) Esta funcin ATAN devuelve el arco cuya tangente es valor1 expresada en radianes, es decir, realiza el arcotangente de dicho valor. (SQRT valor) Esta funcin devuelve el resultado de la raz cuadrada del valor indicado, ya sea un guarismo simple o una expresin matemtica, como siempre. (EXPT base exponente) EXPT devuelve el valor de base elevado a exponente. (EXP exponente) Esta funcin devuelve la constante (nmero) e elevada al exponente indicado. Se corresponde con el antilogaritmo natural. (LOG valor) LOG devuelve el logaritmo neperiano o natural (en base e) del valor indicado. (GCD valor_entero1 valor_entero2) Esta sintaxis se corresponde con la funcin de AutoLISP GCD, que devuelve el mximo comn denominador de los dos valores indicados. Estos valores han de ser obligatoriamente enteros, de no ser as, AutoLISP devuelve bad argument type como mensaje de error. (MAX valor1 valor2...) Los valores pueden ser nmeros enteros o reales, y tambin expresiones matemtico-aritmticas.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 27

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

(MIN valor1 valor2...) La funcin MIN, por su lado, devuelve el menor de todos los valores indicados en lista. Las dems consideraciones son anlogas a la funcin anterior. p) Operaciones Relacionales (= valor1 [valor2...]) La funcin = compara todos los valores especificados uno como mnimo, devolviendo T si son todos iguales o nil si encuentra alguno diferente. Los valores pueden ser nmeros, cadenas o variables (numricas o alfanumricas). (/= valor1 [valor2...]) Esta funcin /= (distinto o desigual que) devuelve T si alguno o algunos de los valores comparados de la lista son diferentes o distintos de los dems. (< valor1 [valor2...]) Esta sintaxis se corresponde con la comparacin menor que. Es una funcin AutoLISP que devuelve T si efectivamente el primer valor comparado es menor que el segundo. Si existen diversos valores, cada uno ha de ser menor que el siguiente para que AutoLISP devuelva T. Si no se devuelve nil. (<= valor1 [valor2...]) Esta es la funcin menor o igual que. Funciona de la misma forma que la anterior pero teniendo en cuenta que devolver T si cada valor es menor o igual que el anterior. Si no devolver nil. (> valor1 [valor2...]) Al igual que en la comparacin de menor que, pero de manera inversa, esta funcin devuelve T si cada valor especificado, sea numrico sea cadena, es mayor que el siguiente, esto es, si se encuentran ordenados de mayor a menor. Si no devuelve nil. (>= valor1 [valor2...]) Similar a los anteriores, establece la comparacin mayor o igual que. Se devolver T si y slo si cada valor es mayor o igual que el que le sucede, si no, nil. Las dems consideraciones son idnticas a las otras funciones similares explicadas. q) Operaciones lgicas (AND expresin1 [expresin2...]) Esta funcin realiza el Y lgico de una serie de expresiones indicadas que representan otras tantas condiciones. Esto significa que evala todas las expresiones y devuelve T si ninguna de ellas es nil. En el momento en que alguna es nil, abandona la evaluacin de las dems y devuelve nil. Es decir, se deben cumplir todas y cada una de las condiciones. (OR expresin1 [expresin2...]) Realiza un O lgico de una serie de expresiones que representan otras tantas condiciones. Evala las expresiones y devuelve nil si todas ellas son nil. En el momento en que encuentre una respuesta distinta de nil, abandona la evaluacin y
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 28

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

devuelve T. sta es precisamente la mecnica del O lgico, es decir, basta que se cumpla una de las condiciones para que la respuesta sea verdadera o cierta. (EQUAL expresin1 expresin2 [aproximacin]) Esta funcin compara las dos expresiones indicadas, si son idnticas devuelve T, si difieren en algo devuelve nil. (NOT expresin) La funcin NOT devuelve el NO lgico, es decir, si algo es verdadero devuelve falso y viceversa. As, cuando el resultado sea distinto de nil (T), devolver nil; cuando el resultado sea nil, devolver T. (EQ expresin1 expresin2) Esta funcin no es propiamente lgica, sino que se denomina de identidad de expresiones. An as, la introducimos en este apartado por su similitud con las anteriores. EQ compara las dos expresiones (slo dos y ambas obligatorias) indicadas y devuelve T si ambas son idnticas o nil en caso contrario. Se utiliza sobre todo para comparar listas y ver si hay igualdad estructural. La diferencia de EQ con EQUAL es que sta ltima compara los resultados de evaluar las expresiones, mientras que EQ compara la identidad estructural de las expresiones sin evaluar. r) Estructuras bsicas de programacin En el mundo de los lenguajes de programacin existen un par de estructuras que, con todas sus variantes, son consideradas las estructuras bsicas o elementales a la hora de programar. Esta estructuras son las condicionales (o alternativas) y las repetitivas. Dentro de cada una de ellas pueden existir variantes, como decimos, que realicen el trabajo de distinta forma. (IF condicin accin_se_cumple [accin_no_se_cumple]) La funcin IF establece una condicin en forma de expresin evaluada. Si dicha condicin se cumple, es decir si el resultado es distinto de nil, entonces pasa a evaluar la expresin contenida en accin_se_cumple. En este caso devuelve el resultado de esta expresin. Si la condicin no se cumple, es nil, entonces pasa a evaluar el contenido de la expresin en accin_no_se_cumple, si es que existe (es opcional). El contenido en este caso de la accin si es que se cumple sera obviado, al igual que el contenido de la accin si no se cumple cuando se cumple. Si no se indica accin_no_se_cumple y la condicin no se cumple (no evala accin_se_cumple), AutoLISP devuelve nil.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 29

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

(PROMPT cadena) PROMPT escribe la cadena de texto especificada en la lnea de comandos de AutoCAD y devuelve nil. Ejemplos: (TERPRI) Como apreciamos, TERPRI es una funcin sin argumentos. La misin que tiene es la de mover el cursor al comienzo de una nueva lnea. Se utiliza para saltar de lnea cada vez que se escribe algn mensaje en el rea de comandos de AutoCAD, a no ser que la funcin que escriba el mensaje salte de lnea por s sola, que las hay. (PROGN expresin1 [expresin2...]) Esta funcin admite como argumentos todas las expresiones indicadas y las evala secuencialmente, devolviendo el valor de la ltima evaluada. (COND (condicin1 resultado1) [(condicin2 resultado2)...]) La funcin COND de AutoLISP que vamos a ver ahora establece varias condiciones consecutivas asignando diferentes resultados a cada una de ellas. Es decir, es una generalizacin de la funcin IF que, sin embargo, resulta ms cmoda a la hora de establecer diversas comparaciones. (REPEAT veces expresin1 [expresin2...]) Esta funcin repite un determinado nmero de veces (especificado en veces) la expresin o expresiones que se encuentren a continuacin, hasta el parntesis de cierre de REPEAT. El nmero de repeticiones ha de ser positivo y entero. REPEAT evaluar dicho nmero de veces las expresiones contenidas y devolver el resultado de la ltima evaluacin. (WHILE condicin expresin1 [expresin2...]) La funcin WHILE establece estructuras repetitivas al igual que REPEAT. La diferencia estriba en que WHILE proporciona un control sobre la repeticin, ya que la serie de expresiones (o nica expresin como mnimo) se repetir mientas se cumpla una determinada condicin especificada en condicin. Mientras el resultado de la condicin sea diferente de nil (o sea T), WHILE evaluar las expresiones indicadas. En el momento en que la
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 30

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

condicin sea igual a nil, WHILE terminar, dejando de repetirse el ciclo. (FOREACH variable lista expresin) Esta funcin procesa cada elemento de una lista (lista) aplicndole una expresin (expresin) indicada. Para ello se utiliza un smbolo (variable) que debe aparecer en dicha expresin. El funcionamiento es el siguiente: se toma cada elemento de la lista y se hace intervenir en la expresin en los lugares donde aparece el smbolo. Despus se evala cada una de las expresiones resultantes para cada elemento de la lista. (APPLY funcin lista) APPLY aplica la funcin indicada a todos los elementos de una lista tambin indicada. (MAPCAR funcin lista1... listan) Por su lado, MAPCAR aplica la funcin indicada a elementos sucesivos de listas. Por ejemplo, supongamos n listas cada una con un nmero m de elementos. MAPCAR aplicar la funcin especificada al primer elemento (1-1, 2-1,... n-m) de cada lista (lista1, lista2,... listan) y el resultado ser guardado como primer elemento de la lista de resultado. Despus realiza lo mismo con los m elementos de las n listas. El resultado final ser una lista cmulo de los resultados parciales. (LAMBDA argumentos expresin1 [expresin2...]) LAMBDA define una funcin de usuario sin nombre. Su formato y funcionamiento es el mismo que DEFUN, pero al no tener nombre slo puede utilizarse en el momento de definirla y no puede ser llamada posteriormente. Se utiliza cuando se necesita definir una funcin slo momentneamente y no se desea ocupar espacio en memoria de manera innecesaria. LAMBDA devuelve el valor de la ltima expresin evaluada, lo mismo que DEFUN. Se puede usar en combinacin con APPLY y MAPCAR como decamos para aplicar una funcin temporal a los elementos de una o varias listas.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 31

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

3.3.3.6 EJEMPLOS a) Rutina que despliega coordenadas para un punto ubicado en la pantalla de AutoCAD (defun c:dt() (setq p1 (getpoint "\nPinche punto: ")) (setq b (car p1)) (setq c (cadr p1)) (setq d (getpoint "\nUbicacion del texto : ")) (setq sep 2) (setq dx (car d)) (setq dy (cadr d)) (setq dx1 (+ dx sep)) (setq f (list dx1 dy 0)) (command "text" d "1" "0" "E=") (command "text" f "1" "0" (rtos b 2 4)) (setq z 1.7) (setq dx (car d)) (setq dy (cadr d)) (setq dy1 (- dy z)) (setq e (list dx dy1 0)) (command "text" e "1" "0" "N=") (setq sep 2) (setq dx (car e)) (setq dy (cadr e)) (setq dx1 (+ dx sep)) (setq f (list dx1 dy 0)) (command "text" f "1" "0" (rtos c 2 4)) (command "circle" p1 "0.4") ) (princ "\n Iniciar Rutina de Coord. con DT")

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 32

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

b) Rutina que calcula y despliega la pendiente de una lnea en AutoCAD (defun c:m1() (setq dts1 (car (entsel "\nSelec. PENDIENTE 1.. "))) (setq datos1 (entget dts1)) (setq lcen1 (cdr (assoc 10 datos1))) (setq p1x (car lcen1)) (setq p1y (cadr lcen1)) (setq lcen2 (cdr (assoc 11 datos1))) (setq p2x (car lcen2)) (setq p2y (cadr lcen2)) ; (command "text" pause "5" "0" (rtos p2x 2 5)) ; (command "text" pause "5" "0" (rtos p2y 2 5)) (setq num (/ (- p2y p1y) 10)) (setq den (- p2x p1x)) (setq pdte (* (/ num den) 100)) (command "text" pause "2" "0" (rtos pdte 2 2)) ) (princ "\n Iniciar Rutina de Pendiente de una Lnea : M1")

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 33

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

c) Rutina que trabaja con capas (defun c:1() (command "change" pause "" "p" "la" "00P" "") ) (defun c:2() (command "change" pause "" "p" "la" "00D" "") ) (defun c:3() (command "change" pause "" "p" "la" "00E" "") ) (defun c:cc() (command "change" pause "" "p" "lt" "continuous" "") ) (defun c:da() (command "change" pause "" "p" "lt" "dashed" "") ) (defun c:by() (command "change" pause "" "p" "lt" "bylayer" "") ) (defun c:hi() (command "change" pause "" "p" "lt" "hidden" "") )

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 34

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

Rutina que cambia cotas a diferentes entidades en el espacio, dejndolas con elevacin cero. (defun c:chz() (setq sel1 (ssget)) (setq numsel (sslength sel1)) (setq cont 0) (repeat numsel (setq kk (ssname sel1 cont)) (setq datos1 (entget kk)) (setq capa (cdr (assoc 8 datos1))) (setq p1 (cdr (assoc 10 datos1))) (setq p1x (car p1)) (setq p1y (cadr p1)) (setq p1z 0) (setq p2 (cdr (assoc 11 datos1))) (setq p2x (car p2)) (setq p2y (cadr p2)) (setq p2z 0) (setq p1m (list p1x p1y p1z)) (setq p2m (list p2x p2y p2z)) (command "line" p1m p2m "") (command "change" "l" "" "p" "la" capa "") (setq cont (+ cont 1)) ) (command "erase" sel1 "") (redraw) ) (princ "\n Iniciar Rutina de Compatib Altura de una Lnea : chz")

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 35

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

3.3.4 INTERACCIN CON LETREROS EN DCL


Desde la versin 12 de AutoCAD el usuario tiene la posibilidad de elaborar sus propios cuadros o letreros de dilogo en lenguaje DCL para formar parte de aplicaciones personales. 3.3.4.1 CARGA, MUESTRA, INICIO, FIN Y DESCARGA Para que un programa DCL funcione hace falta utilizar como mnimo tres expresiones AutoLISP: una para cargar el diseo del cuadro en memoria LOAD_DIALOG, otra para mostrarlo en pantalla NEW_DIALOG y otra para activarlo START_DIALOG. (LOAD_DIALOG archivo_DCL) LOAD_DIALOG carga en memoria el archivo .DCL de definicin de cuadros de dilogo especificado. Un archivo .DCL puede tener ms de una definicin de cuadros de dilogo, en este caso se cargaran todas ellas. De la misma forma, es posible utilizar varias veces LOAD_DIALOG para cargar varios archivos .DCL, cada uno con uno o ms diseos de letreros. archivo_DCL es la ruta y nombre del archivo en cuestin; es una cadena. Ejemplos: (LOAD_DIALOG "prueba") (LOAD_DIALOG "c:/archivs/lisp/cuadro.dcl") (LOAD_DIALOG "c:\\mislsp\\helic-pol.dcl") NOTA: No es imprescindible indicar la extensin, pero es conveniente por claridad. Si la carga del archivo es fructfera se devuelve un nmero entero positivo que es un ndice de carga que luego utilizaremos. Este ndice comienza en 1, la primera vez que se carga un archivo con esta funcin, y contina con 2, 3, 4, 5... Si la carga resulta fallida, se devuelve cero (0) o un nmero negativo. NOTA: Todas estas indicaciones, a lo largo de este curso, acerca de lo que devuelve una funcin (si falla, si no falla, si encuentra o no un archivo, etc.) no son puro capricho, sino muy tiles a la hora de programar. Ntese que, tras haber estudiado el control de errores, podemos utilizar estas respuestas de AutoLISP para controlar el normal flujo de un programa. En este caso que nos ocupa, el hecho de que LOAD_DIALOG devuelva 0 si el proceso de carga falla, nos ofrece la posibilidad de controlar desde el propio programa AutoLISP la correcta o incorrecta carga en memoria de un archivo .DCL; tomando las oportunas decisiones en consecuencia.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 36

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

El hecho de que LOAD_DIALOG devuelva un ndice de carga nos hace pensar la manera de capturarlo para utilizarlo luego con la siguiente funcin. La manera es bien sencilla, ya que se hace mediante un simple SETQ. Esta ser la forma habitual de suministrar esta funcin, por ejemplo: (SETQ Ind (LOAD_DIALOG "c:/lisp/torno.dcl")) De esta forma guardamos en una variable el ndice que devuelva LOAD_DIALOG. (NEW_DIALOG nombre_letrero ndice_carga [accin [punto_pantalla]]) Esta funcin muestra en pantalla el letrero cuyo nombre se indique. No hemos de confundir este nombre de letrero con el nombre del archivo .DCL que, si el archivo slo contiene una definicin de cuadro de dilogo coincidir habitualmente. El nombre del letrero es el que precede a :dialog en el archivo .DCL. Tengamos en cuenta que, como ya hemos dicho, un archivo puede contener la definicin de varios letreros, por eso hay que indicar el nombre del que queremos visualizar. Con LOAD_DIALOG suministrbamos el nombre del archivo .DCL. Tambin habremos de indicar obligatoriamente con NEW_DIALOG el ndice de carga devuelto por LOAD_DIALOG. As, una manera tpica de utilizar esta funcin tras usar LOAD_DIALOG y haber guardado el ndice de carga en una variable llamada Ind (como en el ejemplo anterior), sera: (NEW_DIALOG "torno" Ind) NOTA: Aqu vemos como puede coincidir el nombre del archivo .DCL con el nombre del letrero (ver ejemplo anterior). El argumento accin especifica la accin por defecto, en forma de expresin de AutoLISP, que se asignar a todos los elementos del cuadro que no tengan una accin asignada en el programa. Volveremos sobre este argumento de NEW_DIALOG cuando expliquemos mejor esto de las acciones. El argumento punto_pantalla es un punto en 2D que especifica la posicin inicial del letrero en pantalla, generalmente por la esquina superior izquierda. La posicin por defecto es el centro de la pantalla, aunque hablaremos un poco ms de este tema cuando se estudie la funcin DONE_DIALOG. Si NEW_DIALOG se evala correctamente devuelve T, si no devuelve nil. NOTA: En Windows el letrero queda ya inicializado con NEW_DIALOG, antes de utilizar la siguiente funcin. Hay que tener en cuenta este
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 37

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

aspecto a la hora de hacer llamadas interactivas de NEW_DIALOG cuando hay casillas de un letrero que llaman a otro. (START_DIALOG) START_DIALOG inicializa el letrero de dilogo anteriormente mostrado en pantalla con NEW_DIALOG. Una vez utilizada esta funcin, la cual no tiene argumentos, el letrero permanece activo hasta que el usuario seale un elemento que lleve asociada una accin de final de letrero (DONE_DIALOG) que lo cierre. Esta accin suele estar asociada habitualmente a los botones Aceptar y Cancelar. START_DIALOG devuelve el estado en el que se ha cerrado el letrero. Si se ha hecho mediante la casilla Aceptar devuelve 1; si se ha pulsado Cancelar devuelve 0; si haba letreros superpuestos y se han cerrado todos a la vez mediante TERM_DIALOG devuelve -1. Por ltimo, decir que, como enseguida veremos, en cada llamada a DONE_DIALOG se puede indicar un estado de terminacin. Si as se ha hecho, START_DIALOG devuelve ese nmero de estado. NOTA: mientras un cuadro permanece activo no es posible llamar a funciones de AutoLISP que afectan a la pantalla o requieren entradas del usuario que no tienen que ver con el cuadro. Esto ocurre por ejemplo con COMMAND y con todas las funciones GET.... La funcin SSGET ya veremos se puede utilizar, siempre que no sea una de sus opciones interactivas que solicita la accin del usuario. (DONE_DIALOG [estado]) Esta funcin cierra el letrero activo actual. Debe ser llamada desde una expresin de control de los componentes de un letrero. Generalmente ser llamada desde la funcin que defina la accin del botn Aceptar (enseguida veremos todo esto). La funcin DONE_DIALOG devuelve las coordenadas X e Y (generalmente de la esquina superior izquierda) correspondientes a la posicin del letrero en el momento de cerrarse. Estas coordenadas pueden ser utilizadas para luego proporcionarlas en sucesivas llamadas a NEW_DIALOG que, como hemos comentado antes, admite como argumento unas coordenadas. Entonces, si calculramos un valor por defecto para las coordenadas de un cuadro a la hora de abrirse por primera vez (siempre que no exista ya un valor de coordenadas) y capturramos la salida de DONE_DIALOG as, por ejemplo: (SETQ CoorCuadro (DONE_DIALOG))

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 38

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

podramos luego llamar al mismo cuadro utilizando dichas coordenadas. De esta manera el cuadro siempre aparecera en el ltimo lugar en pantalla en el que se cerr. A veces esto puede resultar til y a veces molesto. Si se especifica un argumento en estado, debe ser un valor entero positivo. Este argumento indica un estado de terminacin que ser el que se devuelva en sucesivas llamadas a START_DIALOG. De esta forma se podr asignar una accin diferente dependiendo desde qu casilla o botn se haya realizado el cierre. (TERM_DIALOG) Esta funcin cancela todos los letreros anidados en pantalla, si los hubiera. Siempre devuelve nil. START_DIALOG, que ha activado el primer letrero desde el que despus han salido los dems, devuelve en este caso -1 una vez cancelados todos. (UNLOAD_DIALOG ndice_carga) Una vez utilizado el diseo del cuadro DCL, es decir una vez mostrado en pantalla, el cuadro puede ser descargado mediante la funcin UNLOAD_DIALOG (aunque se siga interactuando con l). O sea, el cuadro puede ser descargado inmediatamente despus de utilizar START_DIALOG (para liberar espacio en memoria). UNLOAD_DIALOG siempre devuelve nil. (SETQ Ind (LOAD_DIALOG "archivo")); Carga (NEW_DIALOG "cuadro" Ind); Muestra (START_DIALOG); Inicio (UNLOAD_DIALOG Ind); Descarga (DONE_DIALOG); Fin

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 39

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

3.3.4.2 GESTIN DE ELEMENTOS DEL LETRERO Estudiada la manera de iniciar y terminar un cuadro en pantalla, vamos a ver cmo gestionar sus componentes incluidos, estableciendo as valores por defecto en el inicio, extrayendo del letrero dichos valores para su proceso, asignando acciones a botones, etctera. Letrero VARIABLES.LSP Cdigo DCL VARIABLES.LSP
variables:dialog {label="Variables"; :row { :boxed_column {label="Mallas"; :edit_box {label="SURFTAB&1";edit_width=3;edit_limit=3;key="Surf1";} :edit_box {label="SURFTAB&2";edit_width=3;edit_limit=3;key="Surf2";} spacer_1; :button {label="De&fecto";fixed_width=true;alignment=centered; key="Def1";} } :boxed_column {label="Slidos"; :edit_box {label="Isolneas";edit_width=2;edit_limit=2;key="Iso"; mnemonic="s";} :edit_box {label="Suavizado";edit_width=4;edit_limit=8;key="Suav"; mnemonic="v";} spacer_1; :toggle {label="Si&lueta";key="Sil";} :button {label="Defe&cto";fixed_width=true;alignment=centered; key="Def2";} } } spacer_1; :row {:toggle {label="&Dilogo al imprimir";key="Dia";}} :row {:toggle {label="&Gestin de archivos";key="Ges";}} spacer_1; :row {ok_cancel_help;} }

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 40

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

La funcin con la que comenzaremos es SET_TILE. SET_TILE asigna un valor al elemento cuya clave atributo key de DCL se indica. El atributo valor es una cadena de texto que especifica el valor que se asignar a determinado tile o elemento, como ya hemos dicho, identificado por su key. Todo texto que aparece en un letrero de dilogo ha de ser una cadena, es decir, texto alfanumrico en formato ASCII, y no valores numricos en formato numrico. As por ejemplo: (SET_TILE "Num" "23.32") (SET_TILE "Telef" "944661234") (SET_TILE "ValText" "Marca de moleteado") Ser muchas veces prctica habitual rellenar casillas de un cuadro con valores del sistema por defecto. En este caso, si el valor corresponde a una variable alfanumrica (de AutoCAD o del usuario) no habr ningn problema en especificar, por ejemplo: (SET_TILE "Estilo" (GETVAR "textstyle")) lo que coger el valor de la variable de AutoCAD TEXTSTYLE y la introducir en el elemento con key="Estilo", que podra ser una :edit_box. Pero si el valor es numrico, habremos de convertirlo antes a formato ASCII para despus introducirlo en el elemento en cuestin. Esto lo realizaremos con cualquiera de las funciones a tal efecto ya estudiadas, por ejemplo: (SET_TILE "TiempSal" (ITOA (GETVAR "savetime"))) lo que coger el valor de SAVETIME, que es numrico entero, lo convertir a cadena ASCII con la funcin ITOA y lo asignar al tile identificado por TiempSal. Lo primero que debemos hacer en un programa AutoLISP que controla un letrero de dilogo, y despus de cargarlo y mostrarlo en pantalla, es rellenar sus casillas con valores por defecto, activar las opciones de casillas de activacin y botones excluyentes por defecto, etctera. Como sabemos, esto lo podemos hacer en el propio archivo .DCL (atributo value), pero es preferible realizarlo desde AutoLISP. Si inicializramos elementos desde DCL y posteriormente desde AutoLISP, se dara una redundancia no deseada. Por ejemplo, si inicializamos una casilla de edicin :edit_box en DCL, que contiene una valor de una variable de AutoCAD, como value="25" y luego, desde AutoLISP la volvemos a inicializar con el valor de la variable en el momento de mostrar el cuadro (que es lo lgico), se producir un instantneo "baile" de nmeros (entre el de value y el actual, si no coinciden) que no es vistoso para el usuario. Por ello, normalmente desecharemos la asignacin por defecto desde DCL y la realizaremos desde AutoLISP.
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 41

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

Todas la operaciones de relleno de casillas, asignacin de acciones a botones, y en general todos los acceso al cuadro de dilogo (que ya veremos) se introducen antes de la funcin START_DIALOG y despus de NEW_DIALOG, si no no funcionar. Veamos ahora entonces cmo comenzaramos el ejemplo de programa que nos ocupa. Cdigo AutoLISP 1 VARIABLES.LSP (DEFUN C:Var () (SETQ Ind (LOAD_DIALOG "c:/misdoc~1/autocad/dcl/variables.dcl")) (NEW_DIALOG "variables" Ind) (SET_TILE "Surf1" (ITOA (GETVAR "surftab1"))) (SET_TILE "Surf2" (ITOA (GETVAR "surftab2"))) (SET_TILE "Iso" (ITOA (GETVAR "isolines"))) (SET_TILE "Suav" (RTOS (GETVAR "facetres") 2 2)) (SET_TILE "Sil" (ITOA (GETVAR "dispsilh"))) (SET_TILE "Dia" (ITOA (GETVAR "cmddia"))) (SET_TILE "Ges" (ITOA (GETVAR "filedia"))) Lo primero que hacemos aqu es definir una funcin que es comando de AutoCAD (Var); como sabemos podramos haber definido una funcin interna para luego llamarla desde otra que sea comando de AutoCAD. Posteriormente cargamos el cuadro de dilogo con LOAD_DIALOG guardando en la variable Ind el ndice de carga. A continuacin, mostramos el cuadro en pantalla con NEW_DIALOG proporcionando el ndice devuelto por la funcin anterior y guardado en Ind. Una vez hecho esto tenemos que inicializar todas las casillas, introduciendo correlativamente en cada elemento, identificado por su key, el valor correspondiente. Ntese que este caso son valores de variables numricas de AutoCAD, por lo que debemos utilizar funciones ITOA y RTOS (esta ltima en el caso del suavizado por ser valor real) para convertir los datos a cadenas de texto. En el caso de casillas de activacin :toggle (y de otros elementos como botones excluyentes), un valor de 0 significa desactivado y un valor de 1 significa activado. An as, 1 y 0 siguen siendo valores numricos enteros, por lo que se utiliza para su conversin la funcin ITOA. (ACTION_TILE clave accin) Esta es la siguiente subr de AutoLISP que vamos a explicar. ACTION_TILE asigna una expresin AutoLISP indicada en accin al elemento o tile expresado por la clave de su atributo key en el diseo DCL. Ambos argumentos han de expresarse entre comillas dobles ("") por ser
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 42

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

cadenas. Por ejemplo: (ACTION_TILE "bot1" "(SETQ Var1 12) (SETQ Var2 0)") Lo ms lgico parece ser indicar bastantes ms acciones que realizar en una asignacin con ACTION_TILE. Por eso, la prctica habitual aconseja asignar como accin una llamada a una subrutina o funcin interna dentro del programa AutoLISP, as: (ACTION_TILE "bot1" "(Acc1)") De esta forma asignamos al tile que tenga como key bot1 una secuencia de acciones contenidas en la funcin Acc1. Esta funcin deber estar definida posteriormente, y ya detrs de START_DIALOG, con su DEFUN particular. Sigamos con nuestro ejemplo para entenderlo mejor. Cdigo AutoLISP 1 VARIABLES.LSP (continuacin) (DEFUN C:Var () (SETQ Ind (LOAD_DIALOG "c:/misdoc~1/autocad/dcl/variables.dcl")) (NEW_DIALOG "variables" Ind) (SET_TILE "Surf1" (ITOA (GETVAR "surftab1"))) (SET_TILE "Surf2" (ITOA (GETVAR "surftab2"))) (SET_TILE "Iso" (ITOA (GETVAR "isolines"))) (SET_TILE "Suav" (RTOS (GETVAR "facetres") 2 2)) (SET_TILE "Sil" (ITOA (GETVAR "dispsilh"))) (SET_TILE "Dia" (ITOA (GETVAR "cmddia"))) (SET_TILE "Ges" (ITOA (GETVAR "filedia"))) (ACTION_TILE "Def1" "(Defecto1)") (ACTION_TILE "Def2" "(Defecto2)") (ACTION_TILE "accept" "(Chequear) (IF errores () (Aceptar))") (START_DIALOG) (UNLOAD_DIALOG Ind) ) Los dos primeros ACTION_TILE que se definen asignan a cada unos de los botones de valores por defecto del letrero un par de acciones, englobadas ellas en sendas subrutinas que luego se definirn. El tercer y ltimo ACTION_TILE asigna al botn Aceptar (recordemos que se
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 43

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

le da predeterminadamente accept como key) otra subrutina denominada Chequear. sta comprobar la existencia de errores en las entradas realizadas por el usuario en el cuadro y, cuando termine, ceder el control a la siguiente funcin, al IF. Si errores, que es una variable que definiremos despus, tiene algn valor no se realizar nada (slo se mostrar un mensaje de error que veremos luego en la funcin Chequear). Si errores es nil, es decir si no hay errores (como veremos), se pasa a la funcin Aceptar, que terminar el cuadro (como veremos). NOTA: No slo podemos asignar acciones a los botones, sino a casi cualquier elemento de un letrero de dilogo. Imaginemos, por ejemplo, la posibilidad de realizar una serie de acciones al activar una casilla :toggle (mostrar otro cuadro, comprobar valores...), aunque no sea muy usual. A continuacin, y tras la definicin y asignacin de valores y acciones en el cuadro, se activa con START_DIALOG y se descarga de memoria con UNLOAD_DIALOG, pues ya no interesa ocupar memoria con l. Como ya se dijo, y ahora comprenderemos, con la funcin NEW_DIALOG se puede indicar una accin por defecto. Esta accin por defecto se aplicar a todos aquellos elementos que no tengan despus una accin asignada. As si deseamos asignar la misma accin a varios elementos de un cuadro, podemos hacerlos en NEW_DIALOG, ahorrndonos espacio en el archivo AutoLISP y su consiguiente memoria en el sistema. NOTA: Si un elemento tiene asignada una accin con ACTION_TILE, sta se efecta ignorando la opcin por defecto de NEW_DIALOG. Es posible una tercera manera de asignar una accin a un elemento: el atributo action dentro de un archivo en DCL. Tambin en este caso ACTION_TILE tiene prioridad sobre action. Como norma general usaremos ACTION_TILE para asignar acciones a los diversos tiles de un letrero de dilogo. La expresin de accin asignada a un elemento puede acceder a una serie de variables que informan sobre el estado del elemento o la manera en que el usuario ha modificado dicho elemento. Estas variables son de slo lectura y pueden verse en la tabla siguiente: Variable ---- Significado -------------------------------------------------------------------------------------------$key -------- Se ha seleccionado el atributo key del componente. Esta variable se aplicaa todas las acciones. $value ------ Es el valor actual del componente expresado como cadena. Esta variable seaplica a todas las acciones. Si el componente es una casilla de edicin :edit_box se mostrar su valor como cadena; si es una casilla de verificacin :toggle o un botn excluyente :radio_button, se mostrar una cadena "0", para el componente desactivado, o una cadena "1", para el componente activado. Si el componente es un cuadro de lista :list_box o una lista desplegable :popup_list y ningn elemento se encuentra seleccionado, el
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 44

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

valor de $value ser nil. $data -------- Son los datos gestionados por la aplicacin (si los hay) establecidos justo despus de NEW_DIALOG mediante CLIENT_DATA_TILE (se ver). Esta variables se aplica a todas las acciones, pero no tiene sentido amenos que la aplicacin ya la haya inicializado llamando aCLIENT_DATA_TILE. $reason ------ Es el cdigo de razn que indica la accin del usuario que ha provocadola accin. Se emplea con los tiles :edit_box, :list_box, :image_button y :slider. Esta variable indica por qu se ha producido la accin. Su valor se define para cualquier tipo de accin, pero slo hace falta inspeccionarla cuando dicha accin est asociada a alguno de los componente comentados. $x ------------- La coordenada X de una seleccin de :image_button. Es la cadena que contiene la coordenada X del punto designado por el usuario al escoger un componente :image_button. No tiene ningn significado para los dems tiles. La coordenada X forma parte del rango que devuelve DIMX_TILE para el componente, que ya estudiaremos. $y -------------- Lo mismo que la anterior pero para la coordenada Y. Forma parte del rango de DIMY_TILE. Por ejemplo, si se quiere detectar cul es el botn concreto que ha seleccionado un usuario, se asigna la misma expresin (variable) a los botones, incluyendo en ella la variable $key: (ACTION_TILE "botn1" "(SETQ elem $key)(DONE_DIALOG)") (ACTION_TILE "botn2" "(SETQ elem $key)(DONE_DIALOG)") En cuanto el usuario seala un botn, $key devuelve la clave asociada a dicho elemento, que se almacena en la variable elem y se cierra el cuadro. Al salir, examinando la variable elem se puede averiguar qu botn ha sido pulsado. Ejemplo con $value: (ACTION_TILE "casilla" "(SETQ val $value)") En este segundo ejemplo, al introducir el usuario un valor en una casilla de edicin cuya clave key es casilla la variable $value devuelve ese valor y la expresin de accin lo almacena en val. La variable $reason devuelve el cdigo de razn que indica el tipo de accin que el usuario ha realizado sobre el elemento. La mayora de
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 45

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

las veces el valor devuelto es 1, que indica que se ha designado dicho elemento. Pero hay cuatro tipos de elementos que pueden expresar otras acciones del usuario que la simple designacin: casillas de edicin, listas, imgenes y deslizadores. A continuacin se explican de una manera ms detallada los cdigos de razn que puede devolver $reason (tambin denominados de retorno de llamada). Cdigo 1: El usuario ha designado el elemento, o ha pulsado INTRO si se trataba del elemento por defecto. Se aplica a todos los elementos, pero slo es necesario examinar este valor para los cuatro tipos enumerados ms arriba, puesto que en los dems es el nico valor posible. Cdigo 2: Se aplica a casillas de edicin. Significa que el usuario ha entrado en la casilla, ha realizado modificaciones en el texto contenido, pero ha salido de ella pulsando tabulador o seleccionando otro componente. Conviene comprobar en este caso la validez del valor de la casilla antes de realizar ninguna accin, pues el usuario podra haber dejado incompleta su modificacin del texto. Cdigo 3: Se aplica a cursores deslizantes. Significa que el usuario ha arrastrado el cursor deslizante, pero no ha realizado una seleccin final. En este caso conviene mostrar el valor en que ha dejado el usuario el cursor, bien mediante un texto o en la casilla de edicin que pueda haber junto al deslizador, pero sin realizar la accin asignada al elemento por si el usuario modifica posteriormente el cursor deslizante. Cdigo 4: Se aplica a cuadros de lista y casilla de imagen. En el caso de cuadros de lista significa que el usuario ha realizado una doble pulsacin sobre uno de los nombres de la lista. Si el cuadro de lista es el elemento principal de un cuadro, la doble pulsacin debe tener asociada la seleccin del nombre y adems el cierre del cuadro. En este caso, la accin asignada debe distinguir el cdigo de razn 1 (una simple pulsacin que selecciona el nombre de la lista pero no cierra el cuadro) del cdigo 4 (seleccin del nombre y cierre). Si el cuadro de lista es un elemento que acompaa a otros en el cuadro, la doble y la simple pulsacin se traducen en el mismo efecto de seleccionar un nombre, con lo que la accin asignada no tendra por qu distinguir en principio los dos cdigos posibles. En el caso de casilla de imagen, tambin significa que el usuario ha realizado una doble pulsacin sobre ella. La accin asignada puede as distinguir una simple de una doble pulsacin y realizar operaciones diferentes si procede. (GET_TILE clave) La funcin GET_TILE extrae el valor actual del elemento del cuadro de dilogo identificado por su key en clave. Suele ser habitual emplear GET_TILE a la hora de realizar la accin asignada al botn Aceptar. De esta forma extraemos los valores ltimos introducimos por el usuario hacindolos efectivos. Tambin se puede utilizar en la funcin que controle los errores del cuadro para escribir un mensaje en la lnea de errores (key error). Lo veremos enseguida en nuestro primer ejemplo, a continuacin de MODE_TILE.

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 46

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

(MODE_TILE clave modo) MODE_TILE establece un modo para el elemento cuya clave se indique. Los valores de modo se expresan en la siguiente tabla: Modo -- Descripcin -----------------------------------------------------0 Habilita el elemento (lo pone en negro). 1 Inhabilita el elemento (lo pone en gris). 2 Ilumina, resalta o hace que parpadee el elemento. 3 Selecciona el contenido de una casilla de edicin :edit_box. 4 Resalta una casilla de imagen o anula el resaltado. Esta funcin podemos utilizarla para controlar el aspecto de determinados elementos con respecto a otros, por ejemplo si al seleccionar una casilla de seleccin nos interesa que otra determinada se inhabilite, porque son incompatibles. Lo vemos ahora en la siguiente parte de nuestro ejemplo. Cdigo AutoLISP VARIABLES.LSP (continuacin) (DEFUN C:Var () (SETQ Ind (LOAD_DIALOG "c:/misdoc~1/autocad/dcl/variables.dcl")) (NEW_DIALOG "variables" Ind) (SET_TILE "Surf1" (ITOA (GETVAR "surftab1"))) (SET_TILE "Surf2" (ITOA (GETVAR "surftab2"))) (SET_TILE "Iso" (ITOA (GETVAR "isolines"))) (SET_TILE "Suav" (RTOS (GETVAR "facetres") 2 2)) (SET_TILE "Sil" (ITOA (GETVAR "dispsilh"))) (SET_TILE "Dia" (ITOA (GETVAR "cmddia"))) (SET_TILE "Ges" (ITOA (GETVAR "filedia"))) (ACTION_TILE "Def1" "(Defecto1)") (ACTION_TILE "Def2" "(Defecto2)") (ACTION_TILE "accept" "(Chequear) (IF errores () (Aceptar))") (START_DIALOG)
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 47

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

(UNLOAD_DIALOG Ind) ) (DEFUN Defecto1 () (SET_TILE "Surf1" "24") (SET_TILE "Surf2" "24") (SET_TILE "error" "") ) (DEFUN Defecto2 () (SET_TILE "Iso" "4") (SET_TILE "Suav" "2") (SET_TILE "Sil" "1") (SET_TILE "error" "") ) (DEFUN Chequear (/ Surf1Ch Surf2Ch IsoCh SuavCh) (SETQ errores nil) (SETQ Surf1Ch (ATOI (GET_TILE "Surf1"))) (IF (< Surf1Ch 2) (PROGN (SETQ errores T) (SET_TILE "error" "Valor de SURFTAB1 debe ser 2 como mnimo.") (MODE_TILE "Surf1" 2) ) ) (SETQ Surf2Ch (ATOI (GET_TILE "Surf2"))) (IF (< Surf2Ch 2) (PROGN (SETQ errores T) (SET_TILE "error" "Valor de SURFTAB2 debe ser 2 como mnimo.") (MODE_TILE "Surf2" 2) ) ) (SETQ IsoCh (ATOI (GET_TILE "Iso"))) (IF (< IsoCh 0)
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 48

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

(PROGN (SETQ errores T) (SET_TILE "error" "Valor de las Isolneas debe ser 0 mayor.") (MODE_TILE "Iso" 2) ) ) (SETQ SuavCh (ATOF (GET_TILE "Suav"))) (IF (OR (< SuavCh 0) (> SuavCh 10)) (PROGN (SETQ errores T) (SET_TILE "error" "Valor del Suavizado debe estar entre 0.01 y 10.00.") (MODE_TILE "Suav" 2) ) ) ) (DEFUN Aceptar () (SETVAR "surftab1" (ATOI (GET_TILE "Surf1"))) (SETVAR "surftab2" (ATOI (GET_TILE "Surf2"))) (SETVAR "isolines" (ATOI (GET_TILE "Iso"))) (SETVAR "facetres" (ATOF (GET_TILE "Suav"))) (SETVAR "dispsilh" (ATOI (GET_TILE "Sil"))) (SETVAR "cmddia" (ATOI (GET_TILE "Dia"))) (SETVAR "filedia" (ATOI (GET_TILE "Ges"))) (DONE_DIALOG) ) A partir de donde lo habamos dejado, el siguiente paso consiste en crear las funciones a las que llaman las diferentes acciones de los botones. Las funciones Defecto1 y Defecto2, correspondientes a la pulsacin de uno de los dos botones que rellenan su parte de cuadro con los valores por defecto, contienes funciones SET_TILE que colocan en cada casilla o cuadro de edicin un valor que nosotros hemos considerado por defecto para cada variable. Adems, contienen una ltima funcin SET_TILE que asigna una cadena vaca a la lnea de error, identificada por la key error, como sabemos. De esto hablaremos ahora mismo al comentar la funcin Chequear.
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 49

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

La funcin Chequear lo primero que hace es iniciar una variable denominada errores como nula, sin valor (nil). Esto se hace por si el cuadro ya haba sido utilizado y la variable valiera T (haber cometido un error y salir con Cancelar sin arreglarlo), lo cual sera antiproducente para nuestros objetivos. A continuacin se extrae mediante GET_TILE el valor de cada uno de los elementos del cuadro de dilogo, guardndolos en variables de usuario (previa transformacin en valores numricos enteros o reales, con ATOI o ATOF respectivamente), y se comparan mediante IF con los valores permitidos por AutoCAD para cada variable de sistema. Es decir, si SURFTAB1 es menor de 2, por ejemplo, sabemos que AutoCAD produce un error. Lo mismo con los valores o rangos de las dems variables. NOTA: La razn de que en este ejemplo no se controlen los valores altos de variables como SURFTAB1 o SURFTAB2, es porque desde un principio se limit la entrada en las casillas de edicin a un nmero mximo de 3 caracteres (argumento edit_limit). Por ello no es necesario un control tan exhaustivo. Para que el programa fuera completo, habra que permitir dichos valores y controlar sus entradas, aqu no se hizo porque valores de SURFTAB1 o SURFTAB2 mayores de 999 son realmente exagerados (ambos admiten hasta 32766). Si se quisieran introducir valores ms altos habra que hacerlo desde lnea de comandos. Seguimos. Si se introduce un valor no vlido en una casilla, se establece errores como T y se imprime un mensaje en la lnea de errores. Esto se logra con SET_TILE, asignando a la key error un mensaje entre comillas. A continuacin, se establece con MODE_TILE un modo 2 para el elemento que contiene el error, es decir, que se iluminar (generalmente en azul). Todo esto se realiza al pulsar el botn Aceptar. Al terminar la funcin de chequeo de errores, el programa devuelve el control a la siguiente instruccin desde donde fue llamada dicha funcin, al IF del principio. Si errores tiene un valor no ocurre nada (lista vaca), se muestra el error pertinente (ya estaba mostrado) y no se sale del cuadro. Al corregir el error y volver a pulsar Aceptar se repite todo el proceso. Si no hay ningn error se puede seguir adelante. Tambin por ello al iniciar la rutina de control de errores hay que restablecer errores a nil. Cuando todo est bien se pasa a la subrutina Aceptar, la cual introduce finalmente los valores vlidos en las variables de sistema mediante SETVAR, extrayndolas de los correspondientes tiles mediante GET_TILE (previa transformacin a valores numricos como anteriormente hemos explicado). Al final es necesario acabar con DONE_DIALOG. Como sabemos, la key accept es predefinida y lleva una funcin predeterminada inherente. Al asociar nosotros accept con una rutina Aceptar, lo que hacemos es sobreescribir la rutina por defecto de accept que lleva ya implcito un DONE_DIALOG. Es por eso que debemos incluir DONE_DIALOG, porque si no el cuadro no se cerrara. El botn Cancelar cierra el cuadro sin ms.
UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL Pg 50

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

Existen un par de funciones ms dentro de este grupo que no hemos explicado por no estar incluidas en el ejemplo, aunque una la hemos mencionado de pasada. Son CLIENT_DATA_TILE y GET_ATTR. La sintaxis de la primera (CLIENT_DATA_TILE) es la siguiente: (CLIENT_DATA_TILE clave datos_cliente) Esta funcin asocia datos procesados mediante una aplicacin a un elemento de un letrero de dilogo. El argumento datos, as como el argumento clave, debe ser una cadena de texto. Una accin asignada al elemento puede hacer referencia a estos datos a travs de la variables $data. Una aplicacin tpica es la asignacin de datos en una lista a una casilla desplegable: (CLIENT_DATA_TILE "mod_sombra" "256_colores 256_col_resaltar_16_col_resaltar 16_col_rellenar") De esta manera se asignan a la casilla con clave mod_sobra los cuatro elementos especificados lista. Posteriormente, y mediante ACTION_TILE, es posible referirse a la lista a travs de la variable $data, y/o al elemento o elementos seleccionados a travs de la variables $value. (GET_ATTR clave atributo) Cuando definimos un archivo en DCL utilizamos diversos atributos asignados a los diversos elementos o tiles del letrero de dilogo. Con GET_ATTR podemos capturar los valores de esos atributos (label, value, width, edit_limit, key...) de cada elemento, indicando el valor de su clave o atributo key. Tanto clave como atributo son cadenas. Por ejemplo, para extraer el valor por defecto con el que fue inicializado el cuadro en determinado componente, podramos hacer: (GET_ATTR "casilla" "value")

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 51

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2

Noviembre de 2010

3.3.5 ANEXO PROGRAMACIN DCL

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL

Pg 52

You might also like