Manual AutoCAD

112
APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010 UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA CIVIL El objetivo general del curso "Diseño Asistido por Computador" consiste en desarrollar en el alumno conocimiento, comprensión y destreza en el uso de sistemas computacionales, con énfasis en diseño gráfico aplicado a problemas de ingeniería. Para lograrlo se abordarán los siguientes objetivos específicos: Concepto de diseño asistido (CAD) Lograr destreza en uso de software gráfico tipo CAD Desarrollar aplicaciones para la automatización de procesos Las actividades para el desarrollo de los objetivos planteados son los siguientes: 1: Presentación 2: Conocimientos básicos de herramientas gráficas tipo CAD 2.1) Ambientes CAD y Manejo de archivos 2.2) Comandos de Visualización 2.3) Organización de un Dibujo (Propiedades y Layers) 2.4) Comandos Básicos de Dibujo / Selección de objetos / Edición 2.5) Los Bloques y Atributos 2.6) Dimensionamiento automático (DIM) 2.7) Edición y Ploteo de Planos (Paper space / Model space o Layaut) 2.8) Coordenadas (UCS) y Vistas (View) 3: Procesos de Automatización y Programación 3.1) SCRIPT : Archivos de Comandos (SCRIPT) 3.2) DXF : Archivos DXF + Visual Basic 3.3) LISP : AutoLISP + Personalización + Programación DCL 4: Sistema de Información Geográfico (SIG o GIS) 4.1) Definición de un SIG 4.2) Funciones Básicas de un SIG 4.3) Aplicaciones de un SIG

Transcript of Manual AutoCAD

Page 1: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

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

El objetivo general del curso "Diseño Asistido por Computador" consiste en desarrollar en el alumno conocimiento, comprensión y destreza en el uso de sistemas computacionales, con énfasis en diseño gráfico aplicado a problemas de ingeniería. Para lograrlo se abordarán los siguientes objetivos específicos:

• Concepto de diseño asistido (CAD)

• Lograr destreza en uso de software gráfico tipo CAD

• Desarrollar aplicaciones para la automatización de procesos

Las actividades para el desarrollo de los objetivos planteados son los siguientes:

1: Presentación

2: Conocimientos básicos de herramientas gráficas t ipo CAD 2.1) Ambientes CAD y Manejo de archivos 2.2) Comandos de Visualización 2.3) Organización de un Dibujo (Propiedades y Layers) 2.4) Comandos Básicos de Dibujo / Selección de objetos / Edición 2.5) Los Bloques y Atributos 2.6) Dimensionamiento automático (DIM) 2.7) Edición y Ploteo de Planos (Paper space / Model space o Layaut) 2.8) Coordenadas (UCS) y Vistas (View)

3: Procesos de Automatización y Programación 3.1) SCRIPT : Archivos de Comandos (SCRIPT) 3.2) DXF : Archivos DXF + Visual Basic 3.3) LISP : AutoLISP + Personalización + Programación DCL

4: Sistema de Información Geográfico (SIG o GIS) 4.1) Definición de un SIG 4.2) Funciones Básicas de un SIG 4.3) Aplicaciones de un SIG

Page 2: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

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

Se debe destacar que la orientación de las actividades anteriores será para estudiantes de ingeniería, por lo que no se caerá en detalles de comandos o funciones específicas, salvo que sea necesario para alguna aplicación particular. Lo anterior es fundamental para desarrollar (materia y ejercicios) plenamente los objetivos en el transcurso del semestre, preferentemente en horas de clases de cátedra y auxiliares.

EVALUACIÓN: Se desarrollarán tres tareas formales, ejercicios evaluados en clases (normalmente avance de tareas) y el examen de fin de semestre. Eventualmente se realizarán controles parciales .

U-CURSO: Se empleará esta herramienta con carácter de oficial para la publicación de apuntes, tareas y notas.

Page 3: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 1-1 DEPARTAMENTO DE INGENIERIA CIVIL

111... PPPRRREEESSSEEENNNTTTAAACCCIIIÓÓÓNNN

1.1 GENERAL

Antes de iniciar el desarrollo de las actividades, es importante mencionar que la mayoría de los programas gráficos que se emplean normalmente en consultoras y empresas de ingeniería, requieren equipos potenciados, básicamente en lo referente al procesamiento de la información (velocidad, magnitud, calidad, seguridad, etc.), capacidad gráfica y edición 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 ejecución 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, automatización 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 gráfico (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 (Diseño Asistido por Computador ) en forma eficiente. Evitando situaciones como el empleo de programas o equipos sub utilizados o mal configurados, automatización de procedimientos tradicionales que ya están 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 edición y ploteo de planos (definición de formatos, revisión, cantidad, suministro de materiales, calidad, etc.) y otras dificultades de diverso índole que puedan surgir.

Page 4: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 1-2 DEPARTAMENTO DE INGENIERIA CIVIL

Antes de seguir, es necesario precisar el concepto de diseño asistido por computador: "Se entiende como Diseño Gráfico (dibujo) Asistido por Computador (CADD) al uso de un tablero de dibujo electrónico con varias facilidades adicionales tendientes al aumento de la productividad, mientras que Diseño 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 presentación gráfica".

Además del concepto de diseño asistido, por analogía, se ha estimado necesario introducir al curso elementos de Sistemas de Información Geográficos (SIG) dado el auge en su uso y aplicaciones en las diferentes áreas de la ingeniería, complementados incluso con aplicaciones (modelos) especializados.

1.2 IMPORTANCIA DEL SISTEMA GRAFICO EN DISEÑO ASIST IDO

1.2.1 INTRODUCCIÓN

El diseño Asistido por Computador (CAD), es hoy día, una herramienta imprescindible para lograr un diseño competitivo. Hasta hace muy pocos años, el CAD era una tecnología reservada a las grandes empresas, o a aquellas que tenían un elevado potencial económico y humano. Sin embargo, los continuos avances en la electrónica y desarrollo de software, ha permitido que esta tecnología esté también al alcance de las posibilidades de las pequeñas 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 DISEÑO

Al hablar de diseño, antiguamente la imagen que se tenía 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 lápiz, como medio de comunicación. 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 fotografía que se mueve y aparece desde distintos puntos de vista, de diferentes tamaños y colores. Es decir, la misma mente creativa del diseñador, dispone y utiliza una herramienta mucho más poderosa para su trabajo, que le permite visualizar perfectamente su diseño, hasta el más mínimo detalle, sin necesidad de fabricar ningún prototipo. Puede analizar, estudiar, calcular y comprobar;

Page 5: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 1-3 DEPARTAMENTO DE INGENIERIA CIVIL

en una palabra, optimizar su proyecto y dejarlo perfectamente definido, disminuyendo la posibilidad de error en la interpretación de planos.

1.2.3 EL SISTEMA GRÁFICO EN DISEÑO ASISTIDO

Dentro del diseño asistido, una necesidad fundamental corresponde al empleo y conocimiento de un sistema gráfico, del que se pueden distinguir tres etapas relacionadas con su uso dentro de una organización.

• 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 relación al sistema gráfico, separamos funciones (ingreso de planos iniciales, revisiones, correcciones, respaldos, etc.) y establecemos procedimientos de trabajo. El propósito de esta reestructuración es impedir que el desorden y desorganización naturales anulen los beneficios potenciales asociados al sistema gráfico.

• Finalmente, la tercera etapa se inicia en presencia de una organización con procedimientos claros y un aprovechamiento adecuado de las capacidades del sistema gráfico. Pero adecuado no es sinónimo de satisfactorio. Se comienzan a escuchar múltiples sugerencias acerca de mejoras que deberían ser incorporadas al software y no a los procedimientos. Sería beneficioso automatizar una serie de tareas repetitivas y características de la organización, esto permitiría reducir aún más los tiempos y los costos, así como aumentar la calidad de los productos.

Como es natural pensar, un sistema gráfico 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 personalización.

Los sistemas de dibujo asistido para el uso en computadores, al emplearlos crean mucho más que un dibujo, generan una base da datos (modelo) que contiene el desplazamiento, tamaño, colores y atributos

Page 6: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 1-4 DEPARTAMENTO DE INGENIERIA CIVIL

específicos del objeto dibujado, información que puede recuperarse y analizarse para generar una gran variedad de documentos y reportes específicos.

La tendencia de los paquetes CAD es permitir al usuario la generación de un modelo de elemento a diseñar con la ayuda del computador, este modelo debe ser fácil de establecer y modificar y debe contemplar las variables de interés para el diseño. En el caso de diseño gráfico, contempla un modelo que sólo contempla variables gráficas (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 diseño asistido en un sentido más amplio.

Dentro de las principales características 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 adaptación a nuevas normas.

b) Facilidad de Uso • Ofrece un conjunto ordenado de comandos de fácil memorización (intuitivos y amigables). • Archivos de ayuda con descripción detallada de comandos, opciones válidas, datos, etc.

• Su aprendizaje es posible realizarlo en forma independiente (autodidacta) e inclusive profundizar más sin ayuda externa.

c) Disminución 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 número de errores y el tiempo destinado a corregirlos. • No requiere mayores gastos de mantención.

Page 7: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 1-5 DEPARTAMENTO DE INGENIERIA CIVIL

• Las modificaciones son rápidas de efectuar manteniendo el resto del dibujo intacto.

• Evita cálculos 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 reprogramación de herramientas ya desarrolladas y permite la interacción entre éstas.

• Un único modelo gráfico genera imágenes distintas (plantas, cortes, perspectivas, etc.) que no requieren ser dibujadas separadamente.

d) Descentralización de Funciones y Orden • Permite la redistribución de personas hacia otras labores.

• Libera equipos computacionales grandes de tareas que requieran de sus capacidades sólo en las últimas etapas del trabajo.

• Los resultados están siempre disponibles, los respaldos no requieren de muebles especiales, catálogos costosos ni de gran espacio.

• Induce a utilizar estructuras de trabajo que facilitan el orden y reducen el tiempo de búsqueda de la información.

• Estandariza las herramientas de trabajo de manera de facilitar la información a personas nuevas.

e) Personalización • Es fácil confeccionar bibliotecas de símbolos, tipos de líneas y patrones de achurado, fonts de texto,

etc., que se requieran en los diseños. • Es posible programar funciones o comandos que realicen automáticamente (y de forma rápida) un

conjunto de tareas repetitivas. • Personas más interiorizadas pueden programar sesiones de entrenamiento para las menos

preparadas, generando ambientes especiales de trabajo. • Mediante técnicas sencillas se maneja la calidad del producto.

Page 8: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 1-6 DEPARTAMENTO DE INGENIERIA CIVIL

f) Aumento de Productividad • Reducción del tiempo de revisiones y actualizaciones. • Facilita el trabajo independiente de distintas personas y el posterior montaje (superposición) en una

sola lámina de los dibujos efectuados. • Permite montar "demos" rápidos y atrayentes con material ya confeccionados.

• Aumenta la precisión de resultados, generando dibujos de gran resolución. • Permite fácilmente adaptarse a cualquier formato de salida.

• Faculta el estudio de soluciones alternativas a partir de un modelo inicial, evitando la construcción de prototipos.

• Permite vender herramientas ya desarrolladas para aplicaciones específicas.

g) Portabilidad • El software y aplicaciones desarrolladas con él, pueden trasladarse a otros equipos.

Algunas herramientas gráficas que se pueden emplear para procesos de diseño asistido por computadores son las siguientes:

• Autocad en todas alternativas y versiones

• Microstation • Intellicad

• Easy CAD

Page 9: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 1 DEPARTAMENTO DE INGENIERIA CIVIL

INDICE CAPITULO 2 2. CONOCIMIENTOS DE “AUTOCAD” ........................ ............................................... 2

2.1 AMBIENTE “A UTOCAD” Y MANEJO DE ARCHIVOS ............................................... 2

2.1.1 Ambiente Estándar de “AUTOCAD” .............................................................. 2

2.1.2 Periféricos 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 Básicos de CAD: “Entidades” ...................................................... 9

2.1.7 Comandos Para Comenzar una Sesión ........................................................ 9

2.1.8 Comandos para Finalizar y/o Grabar una Sesión ......................................... 9

2.2 COMANDOS DE VISUALIZACIÓN ........................................................................ 10

2.3 ORGANIZACIÓN DE UN DIBUJO ......................................................................... 13

2.3.1 Los Layers (capas) ....................................................................................... 13

2.3.2 Colores y Tipos de Líneas (Propiedades) ................................................... 15

2.4 COMANDOS BÁSICOS DE AUTOCAD ................................................................ 17

2.4.1 Dibujo ........................................................................................................... 17

2.4.2 Selección de Objetos ................................................................................... 25

2.4.3 Comandos Básicos de Edición .................................................................... 26

2.5 BLOQUES Y ATRIBUTOS .................................................................................. 31

2.5.1 Bloques ........................................................................................................ 31

2.5.2 Atributos ....................................................................................................... 33

2.6 DIMENSIONAMIENTO AUTOMÁTICO EN “A UTOCAD” (DIM) ................................. 35

2.7 EDICIÓN Y PLOTEO DE PLANOS (PAPER SPACE / MODEL SPACE O LAYAUT) ....... 38

2.7.1 Introducción .................................................................................................. 38

2.7.2 Paper Space (PS) ........................................................................................ 38

2.7.3 Proceso de Laminación ............................................................................... 41

Page 10: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 2 DEPARTAMENTO DE INGENIERIA CIVIL

222... CCCOOONNNOOOCCCIIIMMMIIIEEENNNTTTOOOSSS DDDEEE “““ AAAUUUTTTOOOCCCAAADDD”””

En este punto se verán las definiciones, instrucciones y comandos mínimos 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 gráficas que permitan posteriormente desarrollar aplicaciones de diseño asistido

2.1 AMBIENTE “AUTOCAD” Y MANEJO DE ARCHIVOS

2.1.1 AMBIENTE ESTÁNDAR DE “AUTOCAD”

En general “Autocad” permite ingresar sus comandos de varias maneras alternativas, dependiendo del dispositivo que se utilice, las más importantes son Menús colgantes (superior), Iconos o directamente desde el teclado tipiando el nombre en la línea de comandos.

La línea 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 diálogo” con la que interactúa el usuario, los cuales van indicando o preguntando cada una de las opciones a seguir o dato a ingresar.

Page 11: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 3 DEPARTAMENTO DE INGENIERIA CIVIL

Ejemplo de la pantalla de “Autocad” Versión 14

Identificación

Barra de Menús

Línea de Propiedades Area Gráfica Area de Comandos Línea de Estado

Page 12: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 4 DEPARTAMENTO DE INGENIERIA CIVIL

Pantalla típica de “Autocad” LT + Toolkit Max

Page 13: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 5 DEPARTAMENTO DE INGENIERIA CIVIL

Pantalla típica de “Autocad” 2000

Barras de herramientas

Modos de presentación

Zona de trabajo

Barra de estado

Page 14: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 6 DEPARTAMENTO DE INGENIERIA CIVIL

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

Page 15: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 7 DEPARTAMENTO DE INGENIERIA CIVIL

Pantalla Tipo de IntelliCAD

Page 16: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 8 DEPARTAMENTO DE INGENIERIA CIVIL

2.1.2 PERIFÉRICOS USADOS EN “A UTOCAD”

Corresponden a los aparatos que se conectan exteriormente al computador y se utilizan para comunicarse con el programa Ingresar y Extraer información Dentro de estos elementos se encuentran el ratón, 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 milímetros (mm)

2.1.5 PRINCIPIOS DE “A UTOCAD”

� Editor de dibujos : Acceso al dibujo mediante órdenes desde la pantalla gráfica.

� Base de Datos : Información de las entidades componentes de un dibujo.

� Entrada de Información : Teclado, Coordenadas (universales, relativas y polares), referencia a entidades, mediante teclas de cursor, dispositivos especiales.

Page 17: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 9 DEPARTAMENTO DE INGENIERIA CIVIL

2.1.6 ELEMENTOS BÁSICOS DE CAD: “E NTIDADES”

Elementos básicos de dibujo (líneas, arcos, círculos, textos, polígonos, etc.). Se generan de variadas maneras en CAD, pero la forma de la base de datos es única para cada ent idad , se indica la geometría elemental para su posterior despliegue en pantalla, propiedades (color y tipo de línea) y la capa a la que pertenecen.

2.1.7 COMANDOS PARA COMENZAR UNA SESIÓN

NEW: 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á.

OPEN: Permite abrir un archivo dwg existente mediante un cuadro de diálogos.

2.1.8 COMANDOS PARA FINALIZAR Y /O GRABAR UNA SESIÓN

END: Finaliza la sesión retornando a Windows, actualizando el archivo de dibujo e incorporando todas las modificaciones realizadas durante la edición. En caso que sea un dibujo nuevo sin haber asignado un nombre inicialmente, en este momento se puede nombrar.

QUIT: Retorna a Windows sin actualizar el archivo de dibujo. Como esto podría significar la pérdida de las últimas modificaciones, solicita una confirmación.

SAVE: 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 modificación importante, o las modificaciones realizadas sean suficientes como para no querer perder ese trabajo ante una posible interrupción del sistema.

Page 18: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 10 DEPARTAMENTO DE INGENIERIA CIVIL

2.2 COMANDOS DE VISUALIZACIÓN

Corresponden a los comandos que controlan la forma en que el dibujo es desplegado en la pantalla. Con ellos se puede especificar la porción de la pantalla en la que se quiere ver desplegado un dibujo, controlar la posición y magnificación de la ventana, especificar en que grado efectuar funciones elaboradas y demorosas, redibujar, etc.

Para “Autocad”, una zona de visualización (o viewport), es una región rectangular de la pantalla gráfica, que despliega una porción del dibujo. El manejo (e interpretación) de estas zonas está ligado a la variable TILEMODE, cuyo valor por defecto es 1 (On). También, la pantalla puede dividirse en múltiples zonas de visualización que no se traslapan, cada una de las cuales puede desplegar una porción distinta del dibujo o la misma porción 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 visualización desplegadas en la pantalla, en cada momento, sólo hay una activa (zona de visualización activa). Esta se despliega con un marco más oscuro. El cursor se despliega de la manera usual sólo dentro de la zona de visualización activa y cambia a una pequeña flecha al moverse fuera de ella. Para activar otra zona de visualización, 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 momentáneamente restringido a moverse sólo en la zona de visualización activa. Estos casos están 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 visualización.

Page 19: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 11 DEPARTAMENTO DE INGENIERIA CIVIL

A una cierta configuración de zonas de visualización se le puede dar un nombre y quedar así almacenada para un uso futuro. Este nombre almacena el número de zonas de visualización definidas, la posición de cada una de ellas en la pantalla y el valor de varios parámetros de visualización.

Los comandos de visualización más usuales son los siguientes:

ZOOM: Actúa como el lente ZOOM de una cámara, permitiendo aumentar o disminuir el tamaño aparente de los objetos visibles en la zona de visualización activa (su tamaño real permanece constante). Al aumentar el tamaño aparente se ve un área menor del dibujo, pero con gran detalle, al disminuir el tamaño aparente se ve un área mayor del dibujo.

Se debe responder ingresando un factor de magnificación o una de las siguientes opciones:

� A (All): Muestra el dibujo completo en la zona de visualización activa. En vista plana, se extiende hasta los límites definidos o la extensión máxima (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 dinámicamente, mediante una caja de visualización que aparece en la pantalla, la posición y el tamaño de la parte del dibujo que se desea ver desplegada.

� E (Extents): Pregunta por el extremo inferior (hasta la extensión actual del dibujo).

� P (Preview): Reestablece la vista interior (almacena hasta 10 vistas anteriores).

� W (Window): Pregunta por el rectángulo que rodea a la parte a ser aumentada y desplegada.

� Scale (X): Se ingresa un factor de escala. Por ejemplo:2 duplica el tamaño (relativo a la visión total) y 2x duplica el tamaño (relativo a la visión actual). Esta es la opción por omisión.

Page 20: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 12 DEPARTAMENTO DE INGENIERIA CIVIL

PAN: Permite "mover" la hoja de dibujo tras la pantalla (o de la zona de visualización activa) y ver una porción diferente del dibujo sin cambiar de magnificación.

REDRAW: Aunque muchos comandos redibujan la página, a veces es útil hacerlo explícitamente, para eliminar marcas para "limpiar la imagen". Esto se hace con el comando REDRAW. El comando REDRAW afecta normalmente sólo a la zona de visualización activa. Si la pantalla está dividida en múltiples zonas de visualización, se puede usar el comando REDRAWALL para forzar el redibujo en todas ellas.

REGEN: A veces se requiere una regeneración y posterior reconstrucción de un dibujo, esta tarea, bastante más larga que un simple REDRAW, se hace mediante el comando REGEN (en el cual ciertos cálculos son necesarios).

Page 21: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 13 DEPARTAMENTO DE INGENIERIA CIVIL

2.3 ORGANIZACIÓN DE UN DIBUJO

2.3.1 LOS LAYERS (CAPAS)

Los layers o capas (transparentes) de dibujo, son un mecanismo a través 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 límites de dibujo, sistema de coordenadas y factores de amplificación. Por ejemplo, para cierto dibujo, quizás convenga tener en el layer 1 (o Planta) el plano de una casa, en el layer 2 (Tuberías) la distribución de tuberías, en el layer 3 (o eléctrico) los circuitos eléctricos 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 sólo los layer 1 y 2 para modificar y completar el sistema de alcantarillado sin que aparezcan otros elementos o desplegar cualquier otra combinación deseada de ellos. Un punto en un layer coincide perfectamente con el mismo punto en cualquier otro layer.

No hay límites para el número de layers en un dibujo ni para el número 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.1 Propiedades Asociadas a Cada Layer

Nombre : Nombre del layer. Pueden usarse letras, números y los caracteres $,-,.No diferencia mayúsculas de minúsculas.

Color : Código del color asociado. Son números enteros entre 1 y 255.

Page 22: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 14 DEPARTAMENTO DE INGENIERIA CIVIL

Tipo de Línea : Puede elegirse de entre los tipos de líneas estándares presentes en la biblioteca que viene con “Autocad”, o ser creada según nuevos patrones. Se aplica sólo a líneas, círculos, arcos y polilíneas.

Visibilidad : Switch de on/off. Los layers no visibles aún son parte del dibujo, pero no son desplegados ni ploteados.

Estado : Switch de on/off. El congelamiento de uno o más layers aumenta la velocidad del proceso de regeneración. 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. También se pueden eliminar los layers innecesarios a través 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 verán reflejadas de manera visible en el dibujo.

Las entidades pueden tener individualmente un color y tipo de línea diferente de aquellos establecidos para el layer al que pertenecen.

El layer 0 (cero), layer de trabajo por omisión, no se puede eliminar ni se le puede cambiar de nombre. Lo mismo ocurre con el tipo de línea: "CONTINUOUS".

2.3.1.2 Opciones Asociadas al Comando LAYER

?: Entrega una lista de las layers definidos, junto con su estado, color, tipo de línea asociado, etc.

Make: Corresponde a usar las opciones New y Set simultaneamente

Set: Permite seleccionar el layer sobre el cual se trabajará. Sólo puede haber un layer de trabajo en cada momento. Sobre él se sitúan las nuevas entidades, con el color y el tipo de línea especificados anteriormente para ese layer.

Page 23: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 15 DEPARTAMENTO DE INGENIERIA CIVIL

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: Enciende el o los layers que se señalen a continuación. Off : Apaga el o los layers que se señalen a continuación. Color : Asocia el color elegido a uno más layers. Freeze: Congela el o los layers que se señalen a continuación. Thaw : Descongela el o los layers que se señalen a continuación. Lock : 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 LÍNEAS (PROPIEDADES)

Aparte de las opciones del comando LAYER, que asocian colores y tipos de líneas 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 continuación. La respuesta puede ser:

� Número: de 1 a 255, que corresponden a diferentes colores.

� Color: (por ejemplo RED)

� BYLAYER: los objetos que se dibujen a continuación tendrán el color definido en el layer en que se está dibujando.

� BYBLOCK los objetos dibujados con este color serán momentáneamente de color blanco hasta que sean agrupados dentro de un bloque. Al insertarse el bloque, quedarán con el color establecido por las reglas de inserción.

Page 24: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 16 DEPARTAMENTO DE INGENIERIA CIVIL

LINETYPE: Permite asociarle un tipo de línea a los objetos que se dibujarán de ahora en adelante (predominando por sobre la definición dada en le layer correspondiente).

Establece el tipo de línea con que se dibujarán los siguientes elementos. También permite cargar definiciones de tipos de líneas 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 líneas, arcos, círculos y polilíneas 2D se verán afectadas por este comando. Los demás objetos se dibujarán siempre con línea continua. La definición de un tipo de línea debe existir en el archivo biblioteca antes de poder ser cargada en el dibujo. Del mismo modo, un tipo de línea debe estar cargado antes de poder ser usado o asignado a un layer (si el tipo de una línea está en la biblioteca estándar "acad.lin", el comando "LAYER Ltype", puede cargarla automáticamente).

De la misma manera que para el comando COLOR, hay cuatro opciones posibles

� BYLAYER: Los objetos que se dibujen heredarán el tipo de línea asociado al layer activo (al cual esos objetos pertenecerán). i se cambian posteriormente de layer, su tipo de línea también cam-biará.

� BYBLOCK: Los objetos se dibujarán temporalmente con línea continua, y cuando se agrupen en un bloque heredarán el tipo de línea establecido por las reglas de inserción.

� ?: Despliega una lista con los nombres de los tipos de líneas actualmente disponibles.

� Nombre: Los objetos se dibujarán con el tipo de línea deseado, siempre que éste haya sido cargado con anterioridad.

Page 25: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 17 DEPARTAMENTO DE INGENIERIA CIVIL

2.4 COMANDOS BÁSICOS DE AUTOCAD

2.4.1 DIBUJO

LINE: La entidad de dibujo más sencilla es la línea. Para dibujar una, se ingresa el comando LINE. A continuación se deben identificar los puntos iniciales de ella. Ellos pueden ser (X,Y) o 3D (X,Y,Z). Si sólo se especifican 2 coordenadas, el valor de Z se saca de la variable ELEVATION.

Al señalar, por medio del mouse, el punto inicial de la línea, aparecerá una línea punteada que actúa como un elástico, además del símbolo usual que indica la posición actual del cursor. Este "elástico" permite visualizar cómo quedará la línea que une al último punto ingresado con la posición 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 líneas conectadas. Cada línea así creada se considera una entidad independiente.

Opciones de respuesta:

� U: (Undo) Esto elimina el último segmento creado y continúa la formación de líneas conectadas desde el segmento anterior. Ingresar varias "U" equivale a ir eliminando sucesivamente los últimos segmentos creados.

� C: (Close) “Autocad” conecta automáticamente el primer y último segmento, de modo que el primer y último punto coinciden exactamente. Se obtiene así, el dibujo de un polígono cerrado.

� <ptos>: Pueden usarse coordenadas absolutas, relativas o polares.

� RETURN: Termina la ejecución del comando LINE. Si se responde con un RETURN a la pregunta "From Point", el primer punto de la línea queda especificado como el punto final de la última línea o arco creado.

Page 26: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 18 DEPARTAMENTO DE INGENIERIA CIVIL

Esto permite continuar con un comando LINE que fue interrumpido por alguna razón y simplifica la construcción de líneas y arcos conectados tangencialmente. Si lo último creado fue un arco, sólo se necesita especificar la longitud de la nueva línea deseada, pues la dirección 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 posición del punto en la pantalla.

Los puntos actúan como nodos para otros comandos (OSNAP).

El control sobre la forma y tamaño de los puntos, está dado por las variables PDMODE y PDSIZE.

CIRCLE: Los círculos puede dibujarse de varios modos, a través del comando CIRCLE, a continuación se indican los más usuales:

a) Centro y Radio o Diámetro (opción por omisión), En este caso, se indica el centro de la circunferencia y su radio o diámetro.

R (Radius) Permite especificar el radio de la circunferencia. Esta es la opción por omisión.

D (Diameter) Se puede especificar el diámetro en lugar de radio de la circunferencia. A continuación “Autocad” pide el valor de dicho diámetro.

b) Tres Puntos (3P)

Una circunferencia se puede especificar a través de tres puntos (no colineales) situados sobre ella, y cuyos valores serán pedidos a continuación.

c) Dos puntos (2P)

Page 27: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 19 DEPARTAMENTO DE INGENIERIA CIVIL

Si esta es la respuesta dada a la primera pregunta del comando, “Autocad” entiende que se le especificarán los dos extremos de un diámetro a partir del cual se debe construir la circunferencia.

d) Tangente, Tangente y Radio (TTR)

Permite dibujar círculos especificando dos líneas y/o círculos a los cuales debe ser tangente, y un radio.

ARC: Los arcos son trozos de circunferencia y se dibujan a través del comando ARC. Hay varios métodos diferentes para hacer esto, dependiendo de la preferencia personal o de las circunstancias en las cuales los arcos sean necesarios.

Las opciones están asociadas a letras, cuyos significados son:

A (Angle) Angulo incluído C (Center) Centro D (Direction) Dirección inicial E (End) Punto final L (Length) Longitud de la cuerda R (Radio) Radio S (Start) Punto inicial

Los modos son:

� 3P: 3 puntos sobre el arco. Funciona de manera análoga a la opción 3P del comando CIRCLE. Esta es la opción por omisión.

� SCE,SCA,SCL,SEA,SED,SER: Cualquiera de estas opciones dibuja un arco con base en los valores que se ingresen a continuación (que dependerán de la opción especificada de acuerdo a la lista anterior).

Page 28: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 20 DEPARTAMENTO DE INGENIERIA CIVIL

� RETURN: Funciona de manera similar al comando LINE, el punto inicial y la dirección quedan datos por el punto final y la dirección final del último arco o línea 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 líneas, arcos, círculos o polilíneas.

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 tamaño, rotado y justificado según se desee.

Presenta la opción J (Justificación) que permite seleccionar desde distintas posibilidades de alineado, aquella que controlará la posición del texto. Las alternativas básicas son:

� A (Aligned) Pregunta por los dos puntos extremos de la línea base y ajusta el texto para que calce entre ellos.(La altura del texto es variable)

� C (Centered) Pide un punto y centra la línea 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 señalados.

� M (Middle) Similar a Center, pero centra el texto tanto horizontal como verticalmente con respecto al punto señalado.

Con ellas se construyen las siguientes modalidades:

� TL Top-Left

Page 29: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 21 DEPARTAMENTO DE INGENIERIA CIVIL

� TC Top-Center

� TR Top-Right

� ML Middele-Left

� MC Middle-Center

� MR Middle-Right

� BL Bottom-Left

� BC Bottom-Center

� BR Bottom-Right

Además contempla la opción S (Style), que permite cambiar el estilo de texto y vuelve al inicio ("Start Point")

La opción por default, Start point, justifica la línea de base de texto a la izquierda del punto indicado.

Una vez que se ha ingresado la información anterior, “Autocad” pide los siguientes valores:

� Height: Tamaño de la letra. RETURN implica usar el valor por omisión 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 serán eliminadas de manera permanente del dibujo.

El mensaje que aparece al invocar este comando (Select Objects") será visto en detalle más adelante, por ahora sólo diremos que al ir señalando entidades, éstas adquirirán un color.

Page 30: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 22 DEPARTAMENTO DE INGENIERIA CIVIL

OOPS: Trae de vuelta a la pantalla a todos los objetos eliminados con el último ERASE. También permite traer nuevamente a la pantalla los elementos que componen un bloque y que desaparecieron de ella en el momento de su definición.

UNDO: Permite deshacer todo lo que fue con el último comando (o con el número de comandos que se indique). Si se eliminó, por ejemplo, un paso más 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 sólo, revirtiendo su acción 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 más reciente.

� C (Control) Limita el número de operaciones a deshacer o deshabilitar completamente el comando UNDO y las variables y marcas asociadas a él.

� E (End) Termina la selección de comandos que serán agrupados (mediante Group) y considerados como uno para los propósitos de UNDO.

� G (Group) Inicia la selección de comandos a agruparse.

� M (Mark) Crea una marca especial en la información para recuperar este estado del dibujo posteriormente (usando la opción Back).

� <número> Indica el número de operaciones que se desea deshacer.

TRACE: Usualmente se desea que las líneas tengan un cierto "espesor". Para “Autocad” estas líneas se llaman trazas (Trace). Ellas se ingresan igual que las creadas con LINE, solo que mediante el comando TRACE

Page 31: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 23 DEPARTAMENTO DE INGENIERIA CIVIL

se les define un ancho. Todas las trazas conectadas tendrán el ancho especificado para la primera. Los ángulos correctos para la conexión de un segmento con el siguiente son calculados automáticamente. Por esta razón, las trazas no se dibujan hasta que el siguiente punto sea dado, o se dé un Return para terminar. También, debido a esto no se dispone de una opción 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, ingresándolas como cuadriláteros o secciones triangulares. Al igual que las trazas, las regiones serán rellenadas a menos que el modo FILL sea activado. Una vez ingresados los dos puntos iniciales, solicita sucesivamente dos puntos más; donde se entiende que se desea un triángulo, 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 región 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 sólido se dibuje correctamente y no se produzca una torsión del dibujo.

PLINE: Una polilínea en 2D es un secuencia conectada de líneas y arcos, que son tratados por “Autocad” como una sola entidad. Una vez que se ingrese el punto inicial, el ancho de línea 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 continuación 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.

Page 32: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 24 DEPARTAMENTO DE INGENIERIA CIVIL

� C (Close) Esta opción traza una línea o un arco desde la posición actual hasta el punto inicial de la polilínea, creando un polígono cerrado. El ancho de la línea de cierre será el que esté vigente al seleccionar la opción.

� L (length) Permite dibujar un segmento de línea con el mismo ángulo que el segmento anterior (tangente, si el último elemento era un arco), especificando sólo la longitud de la línea.

� U (Undo) Elimina el último arco o línea agregado a la polilínea. Se puede utilizar para eliminar sucesivamente cualquier número de elementos de la polilínea.

� W (Width) Permite especificar el ancho del (de los) siguiente(s) segmento (s) de la polilínea. Pueden especificarse distintos valores para el ancho inicial y final de cada segmento. Un ancho igual a 0 produce una línea con el mínimo ancho desplegable (como las LINES).

� H (Halfwidth) De manera similar a la opción anterior, permite definir el ancho de un segmento en términos de la distancia desde el centro hasta uno de sus extremos. El "elástico" asociado al cursor siempre está definido con respecto al centro de una línea (sin importar su ancho), por lo que esta opción puede resultar más cómoda que la anterior.

Este comando es de mucha utilidad por la gran variedad de elementos que se pueden crear con él. Posee una opción 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 polilínea (entidad), de modo de aplicar sobre ella algunos de los comandos de edición.

Base de Datos:

Polyline , polígono pesado

LWPolyline , polígono liviano

Plinetype , variable de sistema que controla el tipo de polígono que se crea.

Page 33: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 25 DEPARTAMENTO DE INGENIERIA CIVIL

2.4.2 SELECCIÓN DE OBJETOS

En general, dado que los comandos de edición permiten modificar una parte del dibujo, lo primero que se deberá indicar después de invocar al comando es la parte específica 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 rectángulo mediante dos puntos sucesivos (los puntos corresponden a la diagonal)

seleccionándose 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 rectángulo en forma análoga a la opción 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 edición.

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 selección, quedando especificada así una lista de objetos a ser afectados por la modificación que se haya indicado. Es importante notar que, hasta el momento, los únicos objetos compuestos que se han visto son las polilíneas y los bloques, que están formados a su vez por objetos simples (líneas, arcos). Sin embargo, salvo que se indique lo contrario, los comandos de edición afectarán a la polilínea y a los bloques como a un todo. Se recomienda no dar un pick en intersecciones de 2 o más entidades, pues es "impredecible", cual de ellas será la seleccionada.

Page 34: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 26 DEPARTAMENTO DE INGENIERIA CIVIL

2.4.3 COMANDOS BÁSICOS DE EDICIÓN

ERASE: Elimina del dibujo los objetos seleccionados.

MOVE: Permite desplazar a todos los objetos seleccionados de manera unitaria, esto es, todos sufrirán desplazamientos paralelos de un mismo tamaño. El desplazamiento puede indicarse mediante dos puntos sucesivos (que no requieren estar sobre los objetos seleccionados) o mediante un par de números, separados por comas, que indican respectivamente los desplazamientos según el eje X, Y o Z.

COPY: Análogo a MOVE, sólo que en este caso, los objetos quedarán duplicados. El estado final consistirá en que cada objeto aparecerá en su posición inicial y duplicado en la posición final.

Provee además la opción M (Múltiple) que permite indicar varios desplazamientos sucesivos, lo que produce múltiples copias.

SCALE: Permite amplificar o reducir el tamaño 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 después de escalar) y el factor de escala. La opción R (Reference) permite indicar el factor de escala mediante dos números, indicándose un largo de referencia (primer número) y el largo correspondiente deseado (segundo número) después del SCALE. El factor de escala es uniforme para los ejes X e Y, por lo que los objetos no se deformarán. Números mayores que 1 agrandarán el objeto y números entre 0 y 1 lo reducirán.

ROTATE: Este comando permite rotar uno o más objetos en un cierto ángulo. Para estos objetos, la transformación equivale a rotar la hoja en ese ángulo. Se debe indicar el punto base (en torno al cual se efectuará la rotación) y el ángulo. El ángulo puede indicarse en forma numérica o bien mediante dos puntos, en cuyo caso se considerará el ángulo formado entre la horizontal y la recta que definen estos dos puntos. También se permite la opción R (Reference) con la cual se deben entregar dos ángulo (ángulo inicial y final).

MIRROR: Provee el efecto de espejo con respecto a una línea en posición arbitraria que se especifica indicando dos puntos de ella. Existe la opción de mantener ambos estados de los objetos, antes y después de la

Page 35: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 27 DEPARTAMENTO DE INGENIERIA CIVIL

reflexión (Delete old objects?). La variable MIRRTEXT permite eliminar la reflexión para el caso de textos y atributos.

ARRAY: Este comando efectúa un COPY múltiple, de modo de obtener un arreglo rectangular o circular de objetos.

� Arreglo Rectangular (R)

Primero se pedirá especificar el número de filas (Row, horizontales) y el número de columnas (Column, verticales). Y a continuación, 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 rectángulo 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 orientación (á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: número 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 opción de rotar significa aplicar una rotación a cada objeto replicado de forma que su orientación con respecto a un radio permanezca constante. El punto con respecto al cual se rotará cada réplica depende del objeto.

CHANGE: El comando CHANGE es muy útil pues permite modificar algunas de las características de las entidades existentes. Sus distintas opciones actúan 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 línea usado) y Thickness (en relación a 3D).

Page 36: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 28 DEPARTAMENTO DE INGENIERIA CIVIL

� (Change Point): Se selecciona al ingresar un punto como respuesta. La acción que se efectúe dependerá del tipo de objetos seleccionado.

BREAK: Permite borrar una parte de una línea, traza, arco, círculo o polilínea (2D), indicándose dos puntos del objeto.

Se puede seleccionar el objeto deseado usando cualquiera de los métodos de selección (Window, Last, etc.), pero lo más aconsejable es usar <pick> o Last. Si se usa una opción de selección múltiple (Window, Crossing, etc.), sólo el último objeto creado es seleccionado. Si este no pudiera ser fraccionado, se repetirá la petición por un objeto. En cualquiera de estos casos, o al señalar 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 también 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 círculos y arcos, pues el corte se efectúa siempre en contra de los punteros del reloj, eliminándose 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 método de selección. Sólo líneas, arcos, círculos, polilíneas 2D y Viewports sirven para estos efectos. Al seleccionar una polilínea, 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 selección de objetos a ser cortados. A esta última solicitud ("Select object to Trim") sólo se puede responder mediante picks, los otros métodos de selección son inválidos.

El pick se debe dar sobre la parte del objeto que se desea que desaparezca.

Page 37: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 29 DEPARTAMENTO DE INGENIERIA CIVIL

EXTEND: Permite extender líneas 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 selección 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 más cercano, al borde hacia el cual se extenderá.

DDEDIT: El comando DDEDIT también permite la edición de textos, vía caja de diálogos. Puede usarse además para la modificación 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 diseñado en la caja de diálogo, es posible hacer que el texto se desplace hacia el lado adecuado. Para ello basta con dar uno o más picks en las llaves que aparecerán a ambos lados del recuadro del texto y se tendrá acceso a la parte del texto inicialmente invisible.

Los mecanismos de selección para este comando se reducen a hacer un <pick> sobre el texto o atributo deseado y a la opción LAST.

La opción UNDO, permite cancelar la modificación efectuada y recuperar el texto en su estado original.

HATCH: En muchas aplicaciones es usual rellenar algún área con un patrón 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 estándares y se pueden definir más para satisfacer necesidades particulares.

Los patrones de achurado consisten en líneas, 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 patrón, así como algún 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 región fue seleccionada con un Window:

Page 38: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 30 DEPARTAMENTO DE INGENIERIA CIVIL

� 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 opción por omisión.

� O (Outermost) Achura solamente el área más 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 están empleando en el dibujo, recuperando así espacio desaprovechado. En “Autocad” 12, solamente puede ser empleada como primera orden después de la entrada en el editor de dibujo, o bien si después de esta entrada no se ha modificado la base de datos de “Autocad”.

Se pueden eliminar, layers, bloques, estilos de fonts, líneas y dimensionamiento, entre otros.

OFFSET: Se utiliza para generar una entidad equidistante en todos sus puntos de la señalada, y con una distancia de separación determinada. Las entidades sólo pueden ser líneas, arcos, círculos o polilíneas.

EXPLODE: Se utiliza para llevar a entidades más básicas un elemento compuesto por entidades agrupadas o compuestas, ejemplo: bloque, polígonos, etc.

RENAME: Permite modificar nombre de bloques, capas, y otros elementos de CAD

PEDIT: Edita polígonos

Page 39: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 31 DEPARTAMENTO DE INGENIERIA CIVIL

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 través 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 orientación. Un bloque es tratado como un sólo objeto por “Autocad”, se puede mover, borrar, listar, etc, señalando para ello, a cualquiera de sus entidades componentes. Así, es considerado igual que si fuera por ejemplo, una línea y puede ser manipulado como tal por cualquiera de los comandos de edición y consulta.

Se dispone específicamente de dos comandos fundamentales para definir y manipular bloques, los cuales se verán a continuación. También 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 información asociada a ellos (color, tipo de línea, 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 consideración.

a) Ventajas del uso de bloques:

� Reducción de trabajo

� Mayor organización

� Construcción de bibliotecas de símbolos los cuales se pueden compartir entre varios dibujos.

� Facilidades para la redefinición de bloques y actualización automática a todas sus referencias.

� Ahorro de espacio de almacenamiento (si no se usa INSERT*).

Page 40: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 32 DEPARTAMENTO DE INGENIERIA CIVIL

� Definición de atributos para cada bloque, que corresponden a cierta información que puede variar con cada inserción del bloque y que puede ser extraída del dibujo y transferida a una base de datos.

b) Definición 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 redefinición si ya existía un bloque con ese nombre).

� Un punto base, que será usado como referencia para insertar posteriormente el bloque. Puntos base típicos son el centro de bloque o su extremo inferior izquierdo. También es el punto con respecto al cual se podrán efectuar las rotaciones al ser insertado.

� Las entidades que conformarán el bloque.

c) Inserción 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 inserción (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 dirección, análogo a lo que se puede obtener con un espejo situado perpendicularmente a ese eje.

� Angulo de rotación, con el que se desea insertar el bloque. También puede especificarse mediante un punto, en cuyo caso “Autocad” calcula el ángulo entre la horizontal y la línea definida por el punto base y el punto dado.

Page 41: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 33 DEPARTAMENTO DE INGENIERIA CIVIL

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 información acerca del Bloque: números de artículos, precios, comentarios, el nombre del comerciante, etc.

La información 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 introducción 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 electrónica para generar documentos tales como catálagos o listas de materiales.

Los Atributos pueden utilizarse, por ejemplo, en la administración de instalaciones para listar las direcciones, costos e inventarios para un dibujo “Autocad” de una oficina. Las aplicaciones, como sistemas de información geográfica, bibliotecas de símbolos y estimaciones de materiales, en los que los principios básicos de la extracción 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 señales 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 después 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.

Page 42: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 34 DEPARTAMENTO DE INGENIERIA CIVIL

� 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 opción sólo es válida para la introducción de información en la línea de comandos, pero no a través de un cuadro de diálogo.

b) Area Attributo: contiene los siguientes cuadros de edición.

� Tag: Contiene el encabezamiento o nombre de campo de un Atributo.

� Prompt: Contiene el texto que aparece cuando “Autocad” solicita la introducción de un valor o una cadena de texto de un Atributo.

� Value: Contiene el valor predeterminado de un Atributo. Puede dejarse vacío.

� El Insertion Point indica el comienzo de la definición de un Atributo en términos 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 diálogo

ATTEDIT: Permite modificar el valor de un atributo (Edita)

Page 43: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 35 DEPARTAMENTO DE INGENIERIA CIVIL

2.6 DIMENSIONAMIENTO AUTOMÁTICO EN “AUTOCAD” (DIM)

En muchas aplicaciones, un dibujo preciso, hecho a escala y luego reproducido en papel no es suficiente para entregar toda la información deseada. Se deben agregar anotaciones que muestren el tamaño 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 información relevante y después dibujar las líneas, arcos, flechas y textos. Sin embargo, “Autocad” provee de un ambiente especial que hace de este proceso algo mucho más sencillo.

“Autocad” provee de cinco tipos básicos de dimensionamiento: lineal, ordinal, angular, diámetros y radios. Para el uso de cada uno de ellos, hay algunos términos que se supondrán conocidos y que serán solicitados en el momento de efectuar el dimensionamiento, los principales son:

Líneas de Dimensión : Es una línea con flechas en los extremos, sobre la cual se sitúa el texto de la dimensión. Su posición debe ser dada por la persona que dibuja, pero su orientación está dada por el tipo de dimensionamiento que se efectúe.

Generalmente, la línea de dimensión está al interior del área medida, como se ve en el primer conjunto de las figuras. Cuando no cabe, dos líneas 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 línea de dimensión es en realidad, un arco.

Líneas de Extensión : Son las que delimitan a ser dimensionado. Si la línea de dimensión se sitúa fuera del objeto medido, estas líneas de extensión se dibujan desde el objeto, perpendicularmente a la línea de dimensión. Estas líneas se usan sólo en el tipo de dimensionamiento lineal y angular. Es posible suprimir una ambas, si resultan superfluas o si entorpecen la comprensión del dibujo.

Page 44: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 36 DEPARTAMENTO DE INGENIERIA CIVIL

Texto de la Dimensión : Es la cadena de caracteres que indica la medición efectuada. Se puede usar el dato calculado automáticamente 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 símbolos especiales f y R son agregados automáticamente para el caso de dimensionamiento de diámetros y radios respectivamente. Se le pueden agregar diferentes prefijos, tolerancias, límites, 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 opción EXIT.

Tipos de Dimensionamiento:

� Dimensionamiento Lineal.

Se entiende por dimensionamiento lineal, la generación de líneas verticales, horizontales, paralelas a alguna línea 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 línea base.

� Dimensionamiento Ordinal o por Coordenadas

Esta técnica es usada con frecuencia en dibujos asociados y aplicaciones mecánicas cuya descripción de partes es leída directamente por herramientas de control numérico. Permite anotar la coordenada X o Y de un punto (extremos o intersecciones de entidades) mediante una línea guía 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 líneas no paralelas.

Page 45: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 37 DEPARTAMENTO DE INGENIERIA CIVIL

Los mecanismos que permiten especificar el ángulo a ser dimensionado son 3:

- Seleccionando 2 líneas no paralelas

- Seleccionando un arco o círculo y un punto auxiliar.

- Seleccionando 3 puntos.

Opcionalmente se pueden agregar líneas de extensión.

� Dimensionamiento de Diámetros y Radios

El dimensionamiento de diámetros y radios en círculos y arcos se muestran en la figura que da comienzo a esta sección. Se tiene la opción de agregar marcas o líneas centrales.

Page 46: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 38 DEPARTAMENTO DE INGENIERIA CIVIL

2.7 EDICIÓN Y PLOTEO DE PLANOS (PAPER SPACE / MODEL SPACE O LAYAUT)

2.7.1 INTRODUCCIÓN

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 distribución de ventanas en mosaico que ocuparan zonas no superpuestas de la pantalla. Estas ventanas se activan mediante el comando “Vports ” y serán 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 gráficos, tangibles para algunos comandos de edición como; copy, move o stretch, lo que implica que estas ventanas se pueden distribuir a gusto, superponer e imprimir en combinación, lo que no es posible con el trabajo en MS y el comando Vports. La activación 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, presentándonos el espacio en blanco donde podremos realizar la distribución de ventanas para visualizar lo dibujado en el espacio modelo (MS). La generación de ventanas se realiza mediante el comando Mview:

Page 47: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 39 DEPARTAMENTO DE INGENIERIA CIVIL

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 opción activa al entrar a este comando, es la generación de una ventana mediante la definición de los vértices opuestos del rectángulo que definirá la ventana. Como la Mview es un elemento gráfico (a diferencia del Vports) esta definición de los dos vértices 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. También se puede generar una ventana mediante la especificación a un polígono cerrado o circulo cualquiera, de que sea considerado como ventana. Esto se logra mediante el dibujo anterior del elemento, con las características que se quiera y posteriormente con el submenú Object se le define como Mview. La línea de submenús de Mview se completa con los siguientes sub-comandos:

On/Off Activa o desactiva ventanas existentes.

Fit Genera una ventana ajustada a todo el espacio papel.

Hideplot Especifica la remoción de líneas ocultas al momento de imprimir.

Lock Bloque una ventana existente para que no pueda ser modificada su escala, si pudiéndose modificar las características físicas de ella (move, stretch, copy).

Object Transforma un polígono cerrado, circulo o elipse en una ventana del modelo.

Polygonal Construye una ventana no rectangular de varios vértices

Restore Regenera una definición anterior de ventana

2/3/4 Distribuye una combinación de 2, 3 o 4 ventanas en un rectángulo definido por el usuario.

Page 48: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 40 DEPARTAMENTO DE INGENIERIA CIVIL

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 construcción 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 línea de comando. Para volver al espacio papel, se llama al switch “PS”. De existir varias ventanas, se activará (remarcándose) 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 representación del espacio modelo en la mview, dependerá del tamaño de la ventana y de la extensión de trabajo que se ha desarrollado en model space, realizándose automáticamente un zoom extents.

ZOOM: Para ajustar la vista dentro de la ventana, se debe activar esta, ejecutar el comando Zoom e ingresar la relación 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 relación de vista entre papel y modelo, según las unidades definidas en el seteo, es 1=1. Si se ingresa 0.5xp, la instrucción 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 indicaría 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 sería de 1:500.

Page 49: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 41 DEPARTAMENTO DE INGENIERIA CIVIL

2.7.3 PROCESO DE LAMINACIÓN

Para realizar la impresión de detalles o laminación de un dibujo general, se pueden enumerar los siguientes pasos.

a) En Tilemode 1, espacio modelo (MS), distribuir la posición, tamaño y orientación de los cuadros de impresión, detalle o laminación que se quieran. Se debe tener en cuanta el tamaño de impresión 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, enmarcándolo 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 orientación ortogonal, se puede definir un sistema arbitrario de orientación, mediante la aplicación del comando UCS / e y seleccionar el borde inferior del cuadro para fijar la orientación relativa. Luego aplicar el comando Plan para que el dibujo adopte la nueva orientación.

d) Con la nueva orientación 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 tamaño que se quiera, establecer la escala mediante el Zoom y luego desplazar el dibujo, mediante el comando Pan, hasta fijar la posición del encuadre.

Page 50: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-2 Agosto 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 42 DEPARTAMENTO DE INGENIERIA CIVIL

h) La ventaja de fijar la posición de las ventanas en Tilemode 1, MS, es que de esta forma se pueden determinar precisamente las zonas de traslape, la orientación 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 posición del espacio modelo, pudiendo saltar sucesivamente de PS a MS y viceversa sin riesgo de errar el formato de salida fijado.

Page 51: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-1 Abril 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 3-1 DEPARTAMENTO DE INGENIERIA CIVIL

333... AAAUUUTTTOOOMMMAAATTTIIIZZZAAACCCIIIÓÓÓNNN YYY PPPRRROOOGGGRRRAAAMMMAAACCCIIIÓÓÓNNN EEENNN AAAUUUTTTOOOCCCAAADDD

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 electrónicas como lotus, quatro o excel.

Estos archivos son de extensión SCR y se ejecutan en cualesquier momento desde AutoCAD con el comando “SCRIPT”

También se pueden correr desde “DOS” escribiendo la siguiente instrucción “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 opción 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 señal 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 (márgenes, cabeceras, pié de páginas, u otros), este solamente debe tener la secuencia de comandos como un archivo de textos tipo ASCII.

Page 52: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-1 Abril 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 3-2 DEPARTAMENTO DE INGENIERIA CIVIL

3.1.1 COMANDOS ESPECIALES DE ARCHIVOS “ SCR”

Además 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 “programación o automatización” mediante el uso de estos archivos. Estas instrucciones son las siguientes:

DELAY nnn: Produce una pausa de tiempo en la ejecución de los comandos. La duración de la pausa depende del equipo, pero debería ser del orden de 1 milisegundo por unidad. Por ejemplo, “DELAY 1000” debería producir una pausa de un segundo.

RESUME: Permite retomar la ejecución de un archivo de comandos que fue interrumpido. (La ejecución de un archivo de comandos se puede interrumpir con “CTRL C” o Backspace”).

RSCRIPT: Permite que un archivo de comandos se ejecute una y otra vez (útil par demostraciones).

TEXTSCR: Deja la pantalla en modo texto.

GRAPHSCR: Deja la pantalla en modo gráfico.

Page 53: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-1 Abril 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 3-3 DEPARTAMENTO DE INGENIERIA CIVIL

3.1.2 SLIDES O VISTAS

Una vista es una foto de la pantalla gráfica, la cual se puede ver, en forma rápida, en cualquier instante. Esta queda almacenada en un archivo con extensión “sld” .

MSLIDE: Para crear un slide primero que nada se debe tener diseñado el dibujo y luego se crea a través 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 extensión “sld”. El nombre por omisión 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 están 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 más rápido 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:

Page 54: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-1 Abril 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 3-4 DEPARTAMENTO DE INGENIERIA CIVIL

� 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 gráfico

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 sólo una foto de la pantalla.

� Si se genera una vista en un dispositivo de baja resolución, y luego desea verse en uno de alta resolución, AutoCAD ajusta el tamaño de la vista, pero no la resolución. Para ello, hay que generar la vista en el dispositivo de alta resolución.

Page 55: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-1 Abril 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 3-5 DEPARTAMENTO DE INGENIERIA CIVIL

3.2 AUTOMATIZACIÓN MEDIANTE EMPLEO DE ARCHIVOS “DXF ”

3.2.1 LOS ARCHIVOS DXF

Dentro de los archivos de “intercambio” que usa AutoCAD con otros programas gráficos, se encuentran los denominados archivos de extensión “DXF” . Estos son archivos de texto (ascii) con una codificación o sintaxis bien definida que permiten ser usados para ser almacenados como dibujos con formato vectorial, y no solamente imágenes, en casi todos los softwares con alguna capacidad de dibujo. Estos archivos se podrían denominar como el “archivo estándar de intercambio de dibujos con form ato vectorial ”.

El uso de estos archivos en procesos de automatización de dibujos, provenientes de una salida de otro programa u obtenidos como el resultado de algún proceso o modelamiento complejo, consiste en la realización de un programa que transforma los datos existentes en archivos gráficos, 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á gráficamente en AutoCAD.

Se debe destacar que los archivos dxf tienen la gran ventaja que al ser ingresados a AutoCAD u otro programa con capacidades gráficas, genera archivos vectoriales, es decir cada uno de los elementos dibujados se transforma en una entidad, la que mediante herramientas de edición o de dibujo, pueden ser tratadas con algún fin específico.

Page 56: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-1 Abril 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 3-6 DEPARTAMENTO DE INGENIERIA CIVIL

3.2.2 FORMATO "ESTANDAR" DE UN ARCHIVOS DXF

Un archivo de intercambio dxf es un archivo ascii con un formato muy específico y su estructura general se conforma por cinco secciones:

1) Sección HEADER: Contiene la información general del dibujo. Esta sección se puede omitir.

2) Sección TABLES : Contiene la definición de algunos elementos empleados en AutoCAD, como por ejemplo: tipos de líneas, definición de layer, estilos de textos, estilos de líneas, estilos de dimensiones, definiciones de vistas y definiciones de coordenadas locales. Esta sección se puede omitir.

3) Sección BLOCKS : En esta sección se definen los bloques con sus respectivas entidades y puntos característicos. Esta sección se puede omitir.

4) Sección ENTITIES: Contiene todas las entidades que definen un dibujo. Esta sección es obligada si se desean dibujar elementos.

5) Sección END OF FILE: Permite cerrar el archivo, y es de carácter obligado.

La información que contiene cada una de las secciones anteriores se ingresa con un formato especial, con codificación específica que permiten definir cada uno de los elementos a dibujar o definir.

Page 57: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-1 Abril 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 3-7 DEPARTAMENTO DE INGENIERIA CIVIL

El formato general de un archivo dxf, donde se definen cada una de sus secciones es la siguiente:

0 SECTION 2 HEADER ...(Definición 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 ...(Definición de bloques con sus respectivas entidades) 0 ENDSEC 0 SECTION 2 ENTITIES ...(Definición de entidades) 0 ENDSEC 0 EOF ... (Fin de archivo)

Page 58: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-1 Abril 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 3-8 DEPARTAMENTO DE INGENIERIA CIVIL

3.2.3 RELACIÓN CON AUTOCAD

Los archivos dxf son archivos de textos con una codificación especial que al ser cargados al AutoCAD, transforman su contenido en una representación gráfica con todas las entidades y propiedades definidas. Solamente, los comandos que relacionan AutoCAD y los archivos indicados son los siguientes:

DXFOUT: Desde AutoCAD, se transforman las entidades de un dibujo con todas sus propiedades en una archivo de texto con formato dxf.

DXFIN: Permite ingresar un archivo dxf externo y transformarlo en un archivo gráfico, que contiene cada entidad definida con sus respectivas propiedades y características.

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.

Page 59: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-1 Abril 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 3-9 DEPARTAMENTO DE INGENIERIA CIVIL

3.2.4 PROCESO DE AUTOMATIZACIÓN

En resumen, las características fundamentales de un archivo DXF que permiten pensar en un proceso de automatización son los siguientes.

� Un archivo de textos (ascii o plano), puede ser editado o generado con cualesquier herramienta computacional.

� Un archivo de Intercambio gráfico universal, puede ser generado o ingresado a cualesquier software con capacidades gráficas

� Un documento gráfico vectorial puede ser editado en el software empleado (AutoCAD, Word, SIG, etc.)

� Códigos o sintaxis con formato rígido y estructurado, se pueden generar sin grandes dificultades con algún programa computacional con capacidades de manejar archivos (basic, fortran, pascal, visual basic, turin, etc).

Con las características anteriores, el proceso de automatización se define generando un interfaz gráfico que permita crear archivos con formato dxf, al que además se pueden incorporar soluciones de procesos o cálculos de acuerdo a los problemas que se requieran resolver.

Por lo anterior, este método no tiene grandes restricciones a su aplicabilidad, y solamente dependerá del software de programación que se emplee (basic, pascal, c, visual basic u otro) en relación a la capacidad de cálculos, manejo de archivos, velocidad o uso de memoria, en función de las necesidades que se presenten.

Finalmente, en el diagrama siguiente se ilustra el proceso de Diseño Asistido Por Computador (CAD) mediante el uso de archivos dxf y un software de programación cualesquiera:

Page 60: Manual AutoCAD

APUNTES DE CLASES CI55D, SEMESTRE 2010-1 Abril 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 3-10 DEPARTAMENTO DE INGENIERIA CIVIL

Software de Programación (Visual Basic EXCEL)

Archivo de Intercambio Gráfico Universal "dxf"

(DXFOUT)

Interfaz Fráfico (Genera entidades en formato DXF)

Problema de Ingeniería u Otro (PROCESO)

Ingreso a AutoCAD u Otro (DXFIN)

FIN del Proceso (Archivo "dwg")

Page 61: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 1 DEPARTAMENTO DE INGENIERIA CIVIL

ÍNDICE

CAPÍTULO DE AUTOMATIZACIÓN

AUTOLISP

3.3 AUTOMATIZACIÓN MEDIANTE PROGRAMACIÓN EN AUTOLISP .. ............................................................... 2

3.3.1 Introducción ...................................... .................................................................................................................. 2

3.3.2 Personalización ................................... ................................................................................................................ 3

3.3.3 Programación Mediante AutoLISP .................... ................................................................................................ 4

3.3.3.1 Características de AutoLISP ................................................................................................................................ 4

3.3.3.2 Tipos de Objetos en Autolisp ............................................................................................................................... 4

3.3.3.3 Convenciones de Autolisp.................................................................................................................................... 6

3.3.3.4 Definición de un Programa en Autolisp ................................................................................................................ 7

3.3.3.5 Principales Instrucciones de Autolisp ................................................................................................................... 9

3.3.3.6 Ejemplos ............................................................................................................................................................ 32

3.3.4 Interacción con letreros en DCL ................... ................................................................................................... 36

3.3.4.1 Carga, muestra, inicio, fin y descarga ................................................................................................................ 36

3.3.4.2 Gestión de elementos del letrero ....................................................................................................................... 40

3.3.5 Anexo Programación DCL ............................ .................................................................................................... 52

Page 62: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 2 DEPARTAMENTO DE INGENIERIA CIVIL

3.3 AUTOMATIZACIÓN MEDIANTE PROGRAMACIÓN EN AUTOLIS P

3.3.1 INTRODUCCIÓN

Dentro de lo que es la programación existen diversas interfaces para crear programas para AutoCAD, el más antiguo y, quizás el más utilizado hasta ahora, es AutoLISP, el que corresponde a una adaptación del lenguaje de programación LISP que forma parte integrada con AutoCAD.

LISP (LISt Processing) es un lenguaje de programación que se remonta a los años cincuenta y que fue desarrollado para la investigación de inteligencia artificial, la base de su funcionamiento es el manejo de listas , en lugar de datos numéricos como otros lenguajes . El lenguaje LISP está basado en lo que se denominan listas de símbolos, 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 leídos palabra a palabra por el computador, al ser introducidas, y cada una de ellas convertida a lenguaje máquina. Esto hace que sea sencilla su edición y detección de errores de sintaxis u otros; por el contrario, hace que sean muy lentos.

Los códigos de los lenguajes compilados son escritos por completo y, antes de su ejecución final, es necesario compilarlos, convirtiéndolos así en código fuente ejecutable y comprensible por la máquina. Este tipo de lenguajes hace que su ejecución sea más rápida y pura pero, en contra, resulta más difícil su depuración.

Los lenguajes evaluados están montados entre unos y otros, no son tan rápidos como los compilados pero son más 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 intérprete de AutoLISP interno. Este intérprete, al que habría que llamarle evaluador, se encarga —precisamente— de evaluar las expresiones incluidas en el código fuente de un programa. Estos programas pueden introducirse directamente desde la línea de comandos de AutoCAD, o bien cargarse en memoria a partir de un programa completo escrito es un archivo de texto ASCII. Dichos archivos tendrán habitualmente la extensión LSP.

Para programar en AutoCAD, este lenguaje proporciona una serie de posibilidades como la faci lidad para manejar objetos heterogéneos (números, caracteres, funciones, entidades u objetos de dibujo, etcétera) Luego, a través del lenguaje AutoLisp, se pueden definir nuevos comandos, nuevas opciones y todas las extensiones necesarias para satisfacer los requerimientos del usuario, además se pueden crear archivos de comandos que interactúen con el dibujo. La capacidad para hacer un programa nos lleva mucho más allá de la

Page 63: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 3 DEPARTAMENTO DE INGENIERIA CIVIL

simple personalización de menús o patrones de sombreado, nos lleva a un mundo totalmente integrado en AutoCAD desde donde podremos diseñar 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 "personalización" permiten incorporarlos en los menús desplegables del programa, también se pueden asignar aplicaciones directamente a íconos definidos por el usuario.

A partir de la Versión 14 existe un nuevo entorno de desarrollo denominado Visual Lisp que permite realizar aplicaciones en AutoLISP de una manera más rápida y efectiva. Este entorno proporciona herramientas para desarrollar y depurar las rutinas y compilarlas como aplicaciones ARX. También dispone de su propio evaluador, que emula al de AutoLISP, además de un completo control de codificación y seguridad de las rutinas creadas. El entorno de Visual Lisp es un módulo que se carga bajo demanda. No está incluido en el propio núcleo 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 añadidas de AutoLISP, funciones de acceso al sistema operativo y E/S de archivos, funciones de carga y vinculación de objetos y bases de datos, almacenamiento directo de listas en un archivo de dibujo, acceso al conjunto de objetos ActiveX de AutoCAD y tecnología basada en ObjectARX que no necesita la presencia de AutoCAD para su ejecución.

3.3.2 PERSONALIZACIÓN

Para poder administrar adecuadamente las funciones o programas que se ejecuten con AutoLISP, es necesario manejar herramientas de personalización propias de los programas CAD, este proceso consiste en configurar menús y archivos de autocad de manera que facilite la operación de las herramientas estándar o especialmente desarrolladas por el usuario (programación AutoLISP), mediante AutoCAD.

Es decir uno puede adaptar las funciones de autocad para presentarlas en menús específicos o crear funciones y/o comandos en LISP, los que también pueden ser incorporados a nuestros menus particulares.

Los archivos “tradicionales” de AutoCAD involucrados en los procesos de personalización son:

� nombre.mnu Contiene definición de menus colgante, de barras, íconos y ratón. El formato y sintaxis de este archivo se puede observar directamente en el que presenta por defecto AutoCAD.

� nombre.pgp Contiene fundamentalmente la configuración de alias (nombre abreviados de comandos). El formato y sintaxis de este archivo se puede observar directamente en el que presenta por defecto AutoCAD.

� nombre.lsp Contiene rutinas lisp que se cargan en forma automática al momento de iniciar una sesión de AutoCAD.

Page 64: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 4 DEPARTAMENTO DE INGENIERIA CIVIL

NOTAS: Al crear los propios menus, es necesario que se generen archivos con nombres personales para no afectar la configuración estándar de AutoCAD. En este caso se debe direccionar adecuadamente la carpeta de estos archivos de tal manera que al iniciar una sesión autocad no existan problemas de búsqueda.

Se habla de archivos tradicionales dado que las versiones nuevas en general se manejan interactivamente desde el programa con herramientas de personalización tipo windows y no directamente de los archivos fuente. Además, las configuraciones se guardan en archivos personalizados por tipo de usuario.

3.3.3 PROGRAMACIÓN MEDIANTE AUTOLISP

3.3.3.1 CARACTERÍSTICAS DE AUTOLISP

Los programas en AutoLISP son simples archivos de texto, con la extensión 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 añade 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 polilíneas, es posible redefinir las órdenes LINEA y ARCO para que dibujen directamente polilíneas.

Una de las más importantes potencialidades de AutoLISP es el acceso directo a la Base de Datos de un dibujo en AutoCad. Toda la información del dibujo se encuentra en ella; capas, estilos de texto, tipos de líneas, sistemas de coordenadas o vistas almacenadas, atributos con sus diferentes valores en cada inserción, etc., así como todas las entidades contenidas en el dibujo. Toda la información de un dibujo, como deberíamos saber, no se guarda como objetos de dibujo en sí, o sea, cuando salvamos un dwg en disco no se guardan los círculos, líneas, etc., sino una relación o base de datos donde se dice dónde aparece un círculo o una línea, con qué coordenadas de origen y final, con qué radio o diámetro, tipo de línea, color y cualquier otra variable de interés.

Luego, se puede utilizar AutoLISP para modificar esa Base de Datos o para extraer la información 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 símbolos . Además es posible incluir como elementos de listas valores concretos ("constantes"), ya sean numéricos o textos.

Page 65: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 5 DEPARTAMENTO DE INGENIERIA CIVIL

Atendiendo a sus características se pueden definir varios tipos de objetos en AutoLISP:

� Lista: es un objeto compuesto de: paréntesis de apertura, uno o más elementos separados por al menos un espacio en blanco y paréntesis de cierre.

Los elementos de la lista pueden ser símbolos, valores concretos ("constantes" numéricas o textos), o también otras listas incluidas.

� Elemento : cualquiera de los componentes de una lista.

� Atomo: representa una información indivisible. Un valor concreto o un símbolo de variable que contiene un valor son átomos. Una lista o una función definida por el usuario no son átomos.

� Símbolo: cualquier elemento de lista que no sea un valor concreto. El símbolo puede ser un nombre de variable, un nombre de función definida por el usuario o un nombre de comando de AutoLISP.

� Enteros: valores numéricos enteros, ya sean explícitos o contenidos en variables. Los enteros son internamente números 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.

� Reales: valores numéricos con precisión de como flotante.

� Cadenas: valores textuales que contienen cadenas de caracteres (código ASCII). Deben ir entre comillas.

� Descripción de fichero o archivo: valores que presentan un archivo abierto para lectura o escritura desde un programa en AutoLISP. Por ejemplo, <File:#5c90>.

� "Nombres" de entidades de AutoCad: valores que representan el "nombre" de una entidad en la Base de Datos. Por ejemplo <Entety name:60000A56>.

� "Conjuntos designados" de AutoCad: valores que representan una designación de entidades de dibujo. Por ejemplo, <Selection set:3>.

� Función de usuario: es un símbolo que representa el nombre de una función definida por el usuario.

Page 66: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 6 DEPARTAMENTO DE INGENIERIA CIVIL

� Función inherente o Comando: es un símbolo con el nombre de un comando predefinido de AutoLISP. A veces se les llama Subrutinas o Funciones predefinidas.

� Funciones ADS o Subrutinas externas: son símbolos con aplicaciones de ADS en Lenguaje C, cargadas desde AutoLISP.

3.3.3.3 CONVENCIONES DE AUTOLISP

Las expresiones contenidas en un programa de AutoLISP pueden introducirse directamente desde el teclado durante la edición de un dibujo de AutoLISP de esas expresiones, que se pueden resumir en los siguientes puntos:

� Los nombres de símbolos pueden utilizar todos los caracteres imprimibles (letras, números, signos de puntuación, etc.), salvo los prohibidos, ( ) . ' " ;

� Los caracteres que terminan un nombre de símbolo o un valor explícito (una constante numérica o de texto) son, ( ) ' " ; (espacio en blanco) (fin de línea)

� Una expresión puede ser tan larga como se quiera. Puede ocupar varias líneas del archivo de texto.

� Los espacios en blanco de separación entre símbolos son interpretados como un solo espacio entre cada par de símbolos. Conviene no usar tabuladores.

� Para los nombres de símbolos, las mayúsculas y minúsculas son indiferentes en AutoLISP.

� Los valores explícitos (constantes) de números pueden empezar con el carácter + o -, que es interpretado como el signo del número.

� Los valores de constantes de número reales deben empezar con una cifra significativa. El carácter se interpreta como el punto decimal. También se admite + o - para el signo y "e" o "E" para notación exponencial (científica).

� No es válida 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 línea, AutoLISP considera que son comentarios y nos los tiene en cuenta.

� Existen unos valores de símbolos de AutoLISP predefinidos que se deben respetar, estos son los siguientes:

Page 67: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 7 DEPARTAMENTO DE INGENIERIA CIVIL

PI: Es el valor del número real PI, es decir: 3,141592653589793.

PAUSE: Es una cadena de texto que consta de un único carácter contrabarra. Se utiliza para interrumpir un comando de AutoCAD después de haberlo llamado mediante la función de AutoLISP COMMAND. Esto permite al usuario introducir algún dato.

T: Es el símbolo de True, es decir, cierto o verdadero (valor 1 lógico). Se utiliza para establecer que determinadas condiciones se cumplen.

Nil: Por último el valor de nada, vacío o falso (0 lógico) se representa en AutoLISP por nil . Este valor aparece siempre en minúsculas y no es propiamente un símbolo, ya que no está permitido acceder a él.

3.3.3.4 DEFINICIÓN DE UN PROGRAMA EN AUTOLISP

Los programas en AutoLISP son archivos de texto con la extensión "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 línea para su edición más cómoda y, además, se suelen sangrar en mayor o menor medida las entradas de algunas líneas, dependiendo de la función para dar claridad al programa.

Las expresiones contenidas en un programa de AutoLISP pueden introducirse directamente desde el teclado durante la edición 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 detrás de la otra produciendo diferentes resultados. El caso sería el mismo que ir introduciendo renglón a renglón en la línea 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 función es DEFUN y su sintaxis es:

(DEFUN <simb> <lista argum> <expr>...)

En AutoLISP, una función es directamente un programa, pues su evaluación ofrece resultado una vez cargado el archivo de definición. Así, un archivo LSP puede contener muchos programas, según el número 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 símbolo o

Page 68: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 8 DEPARTAMENTO DE INGENIERIA CIVIL

nombre de la función a definir. Conviene que los nombres de símbolos contengan como máximo seis caracteres, por razones de espacio ocupado en la memoria. A continuación se especifica la lista de argumentos (al ser lista debe ir entre paréntesis) que puede estar vacía o contener varios argumentos y, opcionalmente, una barra inclinada y los nombres de uno o más símbolos locales de la función.

Las funciones definidas por el usuario mediante (DE FUN) pueden integrarse en AutoCad como una orden má s. Para ello deben tener un nombre precedido por C: y comprender una l ista de variables globales vacía, aunque pueden ten er variables locales. Lógicamente, el nombre de la función definida no de be coincidir con el de una orden existente de AutoC ad ni con el de un comando de AutoLISP.

Por ejemplo, si en vez de tener que evaluar la función "diblinea" cada vez que se quiere ejecutar interesa implementarla en AutoCad como una orden nueva, se definiría de la siguiente manera:

command: (DEFUN c: diblinea () "nada") c: DIBLINEA command: diblinea "nada"

Para ejecutar diblinea ya no es necesario evaluarla entre paréntesis. Ahora funciona como una orden más de AutoCad, hasta que se libere su espacio en la memoria o se salga de la actual edición del dibujo.

Si además se desea que determinadas instrucciones se ejecuten también automáticamente se pueden incluir en una función especial que es "s::startup". El prefijo de esta función especial "s::", debe considerarse como reservado; es mejor no utilizarlo en ninguna función de usuario.

La función especial "s::startup" se ejecutará automáticamente nada más 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á automáticamente todo lo no utilizado: capas, estilos de texto, tipos de línea.

Page 69: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 9 DEPARTAMENTO DE INGENIERIA CIVIL

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 expresión, etcétera. 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 expresión <exprl> a la variable cuyo nombre es <simbl>, el de <expr2> a <simb2>, y así sucesivamente. Si las variables no están previamente definidas, las crea. La función devuelve el valor atribuido a la última variable. Los nombres de símbolos no pueden ser un literal (no valdría, por ejemplo, "QUOTEx").

SETQ es la función básica de atribución de valores en AutoLISP. Por ejemplo:

COMMAND: (SETQ x 5 y "Hola" z ' (a b) w 25.3) 25.3 COMMAND: !x 5 !y "Hola" !z (a b) !w 25.3

Importante: Hay que tener la precaución de no utilizar con SETQ símbolos de variables que coincidan con nombre de comandos de AutoLISP, pues esto descartaría la definición de esos comandos.

(ATOMS-FAMILY formato [lista_símbolos])

Muestra una lista con todos los símbolos 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 sesión 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, además de las variables ya creadas.

Como podemos observar en la sintaxis, esta función necesita un parámetro o argumento obligatorio llamado formato. formato sólo puede tomar dos valores: 0 ó 1. Si es 0, los símbolos se devuelven en una lista, separando cada nombre de otro por un espacio en blanco. Si es

Page 70: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 10 DEPARTAMENTO DE INGENIERIA CIVIL

1, los símbolos se devuelven entre comillas (separados también por espacios blancos) para su mejor comparación y examen.

b) Instrucciones de Comandos de AutoCAD

La función 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 función COMMAND es entre comillas dobles (""), aunque también podremos indicar puntos en forma de lista (o no), valores en formato de expresión matemática 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 envían como listas de dos o tres números 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 vacía"".

La llamada de COMMAND sin ningún argumento equivale a teclear "CTRL-C", lo que anula la mayoría de órdenes de AutoCad.

COMMAND: (COMMAND "línea" ' (50 50) pt2 2 2)

En el ejemplo se dibujaría una línea entre el punto 50,50 y el almacenado en la variable pt2 (que deberá contener, por tanto, una lista de dos o tres números reales). La cadena vacía 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 línea desde el punto 50,50 hasta un punto señalado por el usuario:

COMMAND: (COMMAND "línea" '(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 función en curso. Para especificar un punto introducido mediante GETPOINT (o más datos aceptados por funciones "GET"...") hay que ejecutar previamente esa función y almacenar el valor en una variable.

COMMAND:(SETQ pT2 (getpoint '(50 50) "Segundo punto: "))

Page 71: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 11 DEPARTAMENTO DE INGENIERIA CIVIL

Segundo punto: (se señala) (120.0 70.0 0.0)

COMMAND: (COMMAND "línea" ' (50 50) pt2 "")

Ahora la función se ejecuta correctamente y la línea queda dibujada entre el punto 50.50 y el punto almacenado en "pt2".

Las órdenes de AutoCad que leen directamente información del teclado, como TEXTO-DIN y BOCETO, no se pueden utilizar con la función COMMAND. También 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 símbolo predefinido "pause", la orden se interrumpe hasta que el usuario introduzca los datos que en ese momento se requieran, pudiendo hacerlo de forma dinámica 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 opción, un punto, etc.) continúa la ejecución de COMMAND desde AutoLISP.

Si el usuario introduce una orden transparente durante la interrupción de "pause" (como 'ZOOM o 'ENCUADRE), la función COMMAND permanecerá temporalmente suspendida. Esto permite al usuario efectuar todos los zoom o encuadres que desee antes de reanudar la función COMMAND introduciendo los datos que sean precisos.

COMMAND :(COMMAND "circulo" "50,50" "10" "línea" "50,50" pause "")

Este ejemplo dibuja un círculo como centro en 50,50 y radio 10. Después comienza una línea en 50,50 y se interrumpe hasta que el usuario especifica el punto final de la línea, pudiendo hacer todos los zoom y encuadre que desee. En el momento en que se teclea o señala ese punto, la función command introduce un return y la orden línea termina

Obsérvese que los puntos se pueden también especificar como una cadena de texto tal como se introducirían desde el teclado, con las coordenadas separadas por comas ( en el ejemplo, "50.50").

(QUOTE expresión) o también: (’expresión)

Esta función se puede utilizar con cualquier expresión de AutoLISP. Lo que hace es evitar que se evalúen los símbolos y los toma como literales. Devuelve siempre el literal de la expresión indicada, sin evaluar. Por ejemplo:

(QUOTE (SETQ x 22.5)) devuelve (SETQ x 22.5) (QUOTE hola) devuelve HOLA

Page 72: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 12 DEPARTAMENTO DE INGENIERIA CIVIL

(QUOTE (+ 3 3 3)) devuelve (+ 3 3 3)

Hay que tener cuidado al utilizar el apóstrofo de abreviatura de QUOTE, ya que desde la línea de comandos no lo vamos a poder utilizar. Recordemos que AutoCAD sólo reconoce que estamos escribiendo algo en AutoLISP en la línea de comandos cuando comenzamos por el paréntesis de apertura (, o a lo sumo por la exclamación final !, para evaluar variables directamente. Expresiones como las siguientes sólo 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 añadidas, es simplemente un grupo de cadenas), por lo que ha de introducirse como literal.

Una lista que no tiene función añadida, 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 mayoría de las funciones de AutoLISP, al introducir un literal de expresión la haremos con el apóstrofo directamente, ya que con QUOTE no funcionará. QUOTE sólo tendrá validez cuando se utilice solo, sin más funciones.

c) Captura de puntos

(GETPOINT [punto_base] [mensaje] )

GETPOINT solicita un punto al usuario. Esta función aguarda a que se introduzca un punto, bien sea por teclado o señalando 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).

Page 73: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 13 DEPARTAMENTO DE INGENIERIA CIVIL

Se puede indicar opcionalmente un mensaje para que se visualice en la línea de órdenes, y también un punto de base < pto>. En este caso , AutoCad visualizará una línea "elástica entre el punto base y la posición del cursor de forma dinámica.

Ejemplos:

COMMAND: (GETPOINT)

Aparentemente no sucede nada. Pero la función 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 utilizaría SETQ, como se ha visto en el apartado anterior.

COMMAND: (SETQ pt1 (GETPOINT '(30 50) "Segundo punto: "))

Segundo punto: (se señala)

(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 utilización.

COMMAND: (SETQ pt2 (GETPOINT ' (30 50) "segundo punto: "))

Segundo punto: (se señala)

(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 línea "elástica" entre ese punto de base y la posición del cursor hasta que se "pincha".

(GETCORNER punto_base [mensaje])

La misión de GETCORNER es exactamente la misma que la de GETPOINT (solicitar y aceptar un punto), la única diferencia es la forma de visualizar dinámicamente el arrastre. Con GETCORNER, en lugar de ser una línea elástica (como ocurría con GETPOINT con punto

Page 74: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 14 DEPARTAMENTO DE INGENIERIA CIVIL

base), es un rectángulo elástico. Esto nos lleva a deducir que esta función necesita obligatoriamente que se indique un punto de base para el rectángulo (vemos en la sintaxis que es argumento obligatorio). Así:

(GETCORNER ’(50 50))

situará la esquina primera del rectángulo elástico en coordenadas 50,50 y esperará que se señale, o se indique por teclado, el punto opuesto por la diagonal. Devolverá el punto señalado por el usuario en forma de lista.

d) Captura de datos numéricos

(GETINT [mensaje])

La función GETINT solicita y acepta un número entero introducido por el usuario. El valor de dicho número ha de estar comprendido entre –32768 y 32767. Si se introduce un valor real o un dato no numérico, AutoLISP devuelve un mensaje de error indicando que ha de ser un número entero y solicita un nuevo número. El mensaje de error proporcionado es similar (aunque no igual) al que produce el comando ARRAY de AutoCAD al introducir un número con decimales (real) cuando pregunta por número 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 función anterior, salvo que acepta número reales. Estos números pueden tener todos los decimales que se quiera introducir, separado de la parte entera por el punto decimal (.). Si se introduce un número entero se toma como real, es decir, con un decimal igual a 0 (28 = 28.0) y, si se introduce un carácter no numérico se produce un error de AutoLISP, proporcionando la opción 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

Page 75: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 15 DEPARTAMENTO DE INGENIERIA CIVIL

de este formato, GETDIST devuelve siempre un número 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 línea elástica 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 —según formato actual de UNIDADES (UNITS)— o mediante dos puntos en pantalla con el cursor. El valor devuelto siempre será un número 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 función sobre todo para medir ángulos relativos.

(GETORIENT [punto_base] [mensaje])

La función 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 posición 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 función 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 AutoCA D

(GETVAR nombre_variable)

Con GETVAR extraemos o capturamos el valor actual de la variable de sistema o acotación de AutoCAD 14 indicada en nombre_variable, o sea, de cualquier variable del programa.

Page 76: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 16 DEPARTAMENTO DE INGENIERIA CIVIL

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, según esta sintaxis, y devolverá valor como respuesta. El nombre de la variable en cuestión deberá ir entre comillas, al igual que con GETVAR, y el valor que se le asigne deberá ser coherente con la información que puede guardar la variable. Si no es así, AutoLISP devuelve el error AutoCAD rejected function.

Veamos algún 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 erróneo.

h) Manejo básico 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 programación de rutinas AutoLISP, sobre todo a la hora de acceder a la Base de Datos interna de AutoCAD .

(CAR lista )

Page 77: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 17 DEPARTAMENTO DE INGENIERIA CIVIL

La función CAR de AutoLISP devuelve el primer elemento de una lista . Si se indica una lista vacía () se devuelve nil, si no se devuelve al valor del elemento.

(CDR lista )

Esta función devuelve una lista con los elementos segundo y sigu ientes 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 expresión1 [expresión2...] )

La función LIST reúne todas las expresiones indicadas y forma una lista con ellas, la cual devuelve como resultado. Se debe indicar al menos una expresión.

i) Funciones de conversión de datos

AutoLISP da la posibilidad de conversión de los tipos de datos disponibles para utilizar, esto es, valores enteros, valores reales, ángulos, distancias y cadenas de texto alfanumérico.

(FLOAT valor)

valor determina el número que queremos convertir. Si es real lo deja como está, si el entero lo convierte en real.

(ITOA valor_entero)

Esta otra función convierte un valor entero, y sólo entero, en una cadena de texto que contiene a dicho valor.

(RTOS valor_real [modo [precisión]])

RTOS convierte valores reales en cadenas de texto. Al contrario que ITOA, RTOS admite números enteros.

(ANGTOS valor_angular [modo [precisión]])

Esta subr de AutoLISP toma el valor de un ángulo y lo devuelve como cadena de texto. Dicho valor habrá de ser un número en radianes.

Page 78: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 18 DEPARTAMENTO DE INGENIERIA CIVIL

El argumento modo se corresponde con la variable AUNITS de AutoCAD. Sus valores están en el intervalo de 0 a 4

(ATOI cadena)

ATOI convierte la cadena especificada en un número entero. Si la cadena contiene decimales la trunca.

(ATOF cadena)

Convierte cadenas en valores reales. Admite el guión que convertirá en signo negativo. Las mismas consideraciones con respecto a caracteres no numéricos que para ATOI.

(DISTOF cadena [modo])

DISTOF convierte una cadena en número real. El argumento modo especifica el formato del número 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 numérico 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) Manipulación de cadenas de texto

Corresponden a funciones de AutoLISP para el manejo de cadenas de texto

(STRCASE cadena [opción])

STRCASE toma la cadena de texto especificada en cadena y la convierte a mayúsculas o minúsculas según opción. Al final se devuelve el resultado de la conversión.

(STRCAT cadena1 [cadena2...])

Page 79: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 19 DEPARTAMENTO DE INGENIERIA CIVIL

Devuelve una cadena que es la suma o concatenación de todas las cadenas especificadas.

(SUBSTR cadena posición [longitud...])

Esta función extrae longitud caracteres de cadena desde posición inclusive. Esto es, devuelve una subcadena, que extrae de la cadena principal, a partir de la posición indicada y hacia la derecha, y que tendrá tantos caracteres de longitud como se indique. Tanto la posición 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 vacía (""), STRLEN devuelve 0. El valor de la longitud es un número 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 código decimal ASCII del primer carácter de la cadena indicada.

(CHR código_ASCII)

CHR funciona complementariamente a ASCII, es decir, devuelve el carácter cuyo código ASCII coincide con el valor especificado.

(WCMATCH cadena filtro)

Esta función aplica un filtro o patrón a la cadena de texto. Se compara pues la cadena con dicho patrón indicado y se devuelve T si lo cumple; si no se devuelve nil.

(READ [cadena])

Veamos una función muy útil. READ devuelve la primera expresión de la cadena indicada. Si la cadena no contiene ningún paréntesis 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 paréntesis, se considera su contenido como expresiones en AutoLISP, por lo que devuelve la primera expresión.

Page 80: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 20 DEPARTAMENTO DE INGENIERIA CIVIL

k) Ángulos y distancias

(ANGLE punto1 punto2)

ANGLE devuelve el ángulo determinado por la línea que une los dos puntos especificados (punto1 y punto2) y la dirección positiva del actual eje X en el dibujo. Así pues, entre punto1 y punto2 se traza una línea imaginaria y, el ángulo es el formado por esa línea con respecto al eje X positivo. Como sabemos, el ángulo se mide en radianes y su sentido positivo es el antihorario o trigonométrico.

(DISTANCE punto1 punto2)

Esta función devuelve la distancia 3D entre los dos puntos especificados. Lógicamente, con DISTANCE es indiferente el orden de introducción 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 función 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 dirección marcada por ángulo. Como siempre, el ángulo introducido se considera en radianes y positivo en sentido trigonométrico. Aunque el punto introducido como argumento pueda ser 3D, el valor del ángulo (argumento también) se toma siempre respecto al plano XY actual.

(INTSERS punto1 punto2 punto3 punto4 [prolongación] )

Esta función toma los puntos punto1 y punto2 como extremos de una línea (aunque no lo sean), los puntos punto3 y punto4 como extremos de otra, y calcula el punto intersección 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á.

Page 81: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 21 DEPARTAMENTO DE INGENIERIA CIVIL

(CONS primer_elemento lista)

Esta función toma la lista indicada y le añade un nuevo primer elemento, devolviendo la lista resultante.

(SUBST elemento_nuevo elemento_antiguo lista)

El cometido de esta función 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 función siguiente APPEND reúne todos los elementos de las listas especificadas en una sola lista que los engloba.

(LENGTH lista)

Esta función devuelve la longitud de la lista indicada, es decir, su número de elementos. La devolución de LENGTH será siempre un número entero, evidentemente.

(LAST lista)

Esta función 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 número_orden lista)

NTH devuelve el elemento de la lista que se encuentre en la posición número_orden. Esta función 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 confusión.

Debemos tener en cuenta que el primer elemento de la lista para NTH es el 0, luego el 1, el 2, etcétera. Si la posición especificada es mayor que la posición del último elemento de la lista, NTH devuelve nil.

Page 82: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 22 DEPARTAMENTO DE INGENIERIA CIVIL

(REVERSE lista)

REVERSE tiene como misión ú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 alfabéticamente y devuelve la lista resultante. La lista sólo puede contener cadenas entre comillas.

m) Acceso base de datos de entidades y manejo de en tidades

Primero se debe seleccionar una o un conjunto de entidades:

(SSGET [modo] [punto1 [punto2]] [lista_puntos] [lis ta_filtros])

La función SSGET acepta el conjunto designado de entidades.

Una vez seleccionadas las entidades y agrupadas en un conjunto de selección, 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 (código –1), del conjunto de selección 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 estarían numeradas de 0 a 3.

Ahora que ya hemos designado una entidad y que podemos conocer su nombre, sólo queda extraer su lista de definición para poder modificarla o editarla. Para ello disponemos de la función ENTGET.

(ENTGET nombre_entidad [lista_aplicaciones])

Esta función 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 (código –1 en Base de Datos) y por lo tanto se hace necesario obtenerlo previamente con SSNAME

Page 83: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 23 DEPARTAMENTO DE INGENIERIA CIVIL

(ENTSEL [mensaje_solicitud])

La función 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 (código –1) designada, y su segundo elemento las coordenadas X, Y y Z del punto de designación. 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 señalar una entidad por un punto.

(SSLENGTH conjunto)

Como decimos, SSLENGTH determina el número de entidades que existen en el conjunto de selección indicado. El número es siempre entero positivo, salvo si es mayor de 32.767, en cuyo caso es un número real.

Por otro lado, para añadir una entidad a un conjunto de selección ya existente se utiliza la función SSADD. Su sintaxis es la siguiente:

(SSADD [nombre_entidad [conjunto]])

Si se emplea sin ningún argumento construye un conjunto de selección vacío, si elementos. Si se indica sólo un nombre de entidad, construye un conjunto de selección que contiene sólo esa entidad. Si se especifica un nombre de entidad y también un conjunto de selección existente, añade la entidad al conjunto, con lo que este pasa a tener un elemento más.

La función SSADD siempre devuelve un valor de conjunto. Si se indica sin argumentos o sólo 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 añadirle 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 selección 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 función de esta sección examina el conjunto de selección especificado para ver si la entidad cuyo nombre se indica está en él. Si la encuentra devuelve su nombre, si no devuelve nil.

Page 84: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 24 DEPARTAMENTO DE INGENIERIA CIVIL

(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 había sido previamente borrada de la Base de Datos.

n) Acceso a archivos

AutoLISP sólo es capaz de acceder a ficheros de acceso secuencial. Estos ficheros, pueden ser archivos de texto como un archivo de menú o de definición de tipos de línea, o ficheros de datos —también de texto ASCII— que contengan, por ejemplo, coordenadas de puntos de un levantamiento topográfico (típico fichero de salida de una estación total, por ejemplo).

(OPEN nombre_archivo modo)

Esta función 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 práctica lógica consistirá en guardar dicho descriptor para ser posteriormente utilizado.

El modo puede ser "r", "w" o "a".

"r": Abre en modo lectura. Sólo 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 existían 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 válido 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 operación con él. El descriptor de archivo deja de ser válido y al volver a abrirse mediante OPEN cambiará. Es necesario cerrar los archivos cuando ya no se van a utilizar.

(READ-LINE [descriptor_archivo])

Page 85: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 25 DEPARTAMENTO DE INGENIERIA CIVIL

Una vez abierto un archivo para lectura, utilizaremos la función READ-LINE para leer una línea completa de dicho archivo, es decir, hasta el salto de línea. Para ello deberemos indicar el descriptor de archivo que devolvió la función OPEN al abrirlo. READ-LINE devuelve cada vez una de las líneas 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 línea completa en el archivo especificado por su descriptor válido. Evidentemente el archivo deberá estar abierto para escribir o añadir datos, dependiendo de la modalidad que nos interese.

(READ-CHAR [descriptor_archivo])

La siguiente función que veremos, READ-CHAR, lee un carácter del archivo especificado (abierto para lectura) por su descriptor cada vez, y devuelve su código ASCII.

(WRITE-CHAR código_ASCII [descriptor_archivo])

WRITE-CHAR realiza la función inversa a READ-CHAR, es decir, escribe en un archivo cuyo descriptor se especifica, o en pantalla si no se especifica ningún descriptor, el carácter cuyo código ASCII se indica. Además, devuelve este código ASCII.

(PRIN1 [expresión [descriptor_archivo]])

Esta función escribe expresiones en un archivo, si se indica un descriptor válido, o en la línea de comandos, si no se indica descriptor alguno. Devuelve la propia expresión.

A diferencia de WRITE-LINE y WRITE-CHAR, PRIN1 permite escribir cualquier expresión en un fichero, sin necesidad de que sea una cadena de texto.

(PRINT [expresión [descriptor_archivo]])

Totalmente idéntica a PRIN1, salvo que salta a nueva línea antes de visualizar o escribir la expresión y añade un espacio blanco al final.

(PRINC [expresión [descriptor_archivo]])

Totalmente idéntica a PRIN1, salvo que los caracteres de control se escriben como tales, no representados por su código octal. Alguno

Page 86: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 26 DEPARTAMENTO DE INGENIERIA CIVIL

de estos caracteres puede ser representado en el archivo por un símbolo, cosa que apreciaremos al abrirlo con un editor ASCII.

A diferencia de PRIN1, la función PRINC escribe cualquier carácter admitido en un archivo de texto y las expresiones pueden ser leídas directamente con funciones como READ-LINE.

(FINDFILE nombre_archivo)

La función 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 pestaña Archivos (carpeta Camino de búsqueda 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 función FINDFILE encuentra el archivo buscado devuelve la cadena que indica su camino y nombre en formato válido de AutoLISP, si no es así, devuelve nil.

(GETFILED título_letrero archivo_defecto patrón_ext ensión modo)

La función GETFILED muestra el letrero estándar de gestión de archivos de AutoCAD 14. Puede ser muy útil cuando se programe con cuadros de diálogo en DCL, ya que es más vistoso escoger un archivo de un letrero que escribirlo en línea de comandos.

Esta función devuelve una cadena que contiene la ruta y el nombre del archivo seleccionado en el cuadro. Este nombre y ruta están en formato AutoLISP, por lo que pueden ser perfectamente guardados en una variable y posteriormente utilizados por la función OPEN.

o) Operaciones numéricas

Para realizar las cuatro operaciones aritméticas básicas existen cuatro funciones AutoLISP que son +, -, * y /, estas se corresponden con la suma, resta, multiplicación y división.

(+ [valor1 valor2 valor3...])

(/ [valor1 valor2 valor3...])

(1+ valor ) Esta sintaxis corresponde a la función de incremento positivo de una unidad al valor indicado

Page 87: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 27 DEPARTAMENTO DE INGENIERIA CIVIL

(1- valor) Esta función resta (incremento negativo) una unidad al valor numérico indicado. Equivale a (- valor 1), pero de una forma más cómoda.

(ABS valor) Esta función ABS devuelve el valor absoluto del número indicado o expresión indicada.

(FIX valor ) FIX trunca un valor a su parte entera (positiva o negativa), es decir, de un número real con decimales devuelve únicamente su parte entera. Pero, cuidado, no se produce redondeo, sólo un truncamiento.

(REM valor1 valor2 [valor3...]) Esta función AutoLISP devuelve el resto del cociente (módulo) de los dos valores introducidos en principio

(SIN ángulo ) La función 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 función ATAN devuelve el arco cuya tangente es valor1 expresada en radianes, es decir, realiza el arco-tangente de dicho valor.

(SQRT valor) Esta función devuelve el resultado de la raíz cuadrada del valor indicado, ya sea un guarismo simple o una expresión matemática, como siempre.

(EXPT base exponente) EXPT devuelve el valor de base elevado a exponente.

(EXP exponente) Esta función devuelve la constante (número) 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 función de AutoLISP GCD, que devuelve el máximo común 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 números enteros o reales, y también expresiones matemático-aritméticas.

Page 88: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 28 DEPARTAMENTO DE INGENIERIA CIVIL

(MIN valor1 valor2...) La función MIN, por su lado, devuelve el menor de todos los valores indicados en lista. Las demás consideraciones son análogas a la función anterior.

p) Operaciones Relacionales

(= valor1 [valor2...]) La función = compara todos los valores especificados —uno como mínimo—, devolviendo T si son todos iguales o nil si encuentra alguno diferente. Los valores pueden ser números, cadenas o variables (numéricas o alfanuméricas).

(/= valor1 [valor2...]) Esta función /= (distinto o desigual que) devuelve T si alguno o algunos de los valores comparados de la lista son diferentes o distintos de los demás.

(< valor1 [valor2...]) Esta sintaxis se corresponde con la comparación menor que. Es una función 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 función 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 comparación de menor que, pero de manera inversa, esta función devuelve T si cada valor especificado, sea numérico 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 comparación mayor o igual que. Se devolverá T si y sólo si cada valor es mayor o igual que el que le sucede, si no, nil. Las demás consideraciones son idénticas a las otras funciones similares explicadas.

q) Operaciones lógicas

(AND expresión1 [expresión2...]) Esta función realiza el Y lógico de una serie de expresiones indicadas que representan otras tantas condiciones. Esto significa que evalúa todas las expresiones y devuelve T si ninguna de ellas es nil. En el momento en que alguna es nil, abandona la evaluación de las demás y devuelve nil. Es decir, se deben cumplir todas y cada una de las condiciones.

(OR expresión1 [expresión2...]) Realiza un O lógico de una serie de expresiones que representan otras tantas condiciones. Evalúa las expresiones y devuelve nil si todas ellas son nil. En el momento en que encuentre una respuesta distinta de nil, abandona la evaluación y

Page 89: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 29 DEPARTAMENTO DE INGENIERIA CIVIL

devuelve T. Ésta es precisamente la mecánica del O lógico, es decir, basta que se cumpla una de las condiciones para que la respuesta sea verdadera o cierta.

(EQUAL expresión1 expresión2 [aproximación]) Esta función compara las dos expresiones indicadas, si son idénticas devuelve T, si difieren en algo devuelve nil.

(NOT expresión) La función NOT devuelve el NO lógico, 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 expresión1 expresión2)

Esta función no es propiamente lógica, sino que se denomina de identidad de expresiones. Aún así, la introducimos en este apartado por su similitud con las anteriores. EQ compara las dos expresiones (sólo dos y ambas obligatorias) indicadas y devuelve T si ambas son idénticas 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 básicas de programación

En el mundo de los lenguajes de programación existen un par de estructuras que, con todas sus variantes, son consideradas las estructuras básicas 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 condición acción_se_cumple [acción_no_se_cumple] )

La función IF establece una condición en forma de expresión evaluada. Si dicha condición se cumple, es decir si el resultado es distinto de nil, entonces pasa a evaluar la expresión contenida en acción_se_cumple. En este caso devuelve el resultado de esta expresión.

Si la condición no se cumple, es nil, entonces pasa a evaluar el contenido de la expresión en acción_no_se_cumple, si es que existe (es opcional). El contenido en este caso de la acción si es que se cumple sería obviado, al igual que el contenido de la acción si no se cumple cuando se cumple.

Si no se indica acción_no_se_cumple y la condición no se cumple (no evalúa acción_se_cumple), AutoLISP devuelve nil.

Page 90: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 30 DEPARTAMENTO DE INGENIERIA CIVIL

(PROMPT cadena)

PROMPT escribe la cadena de texto especificada en la línea de comandos de AutoCAD y devuelve nil. Ejemplos:

(TERPRI)

Como apreciamos, TERPRI es una función sin argumentos. La misión que tiene es la de mover el cursor al comienzo de una nueva línea. Se utiliza para saltar de línea cada vez que se escribe algún mensaje en el área de comandos de AutoCAD , a no ser que la función que escriba el mensaje salte de línea por sí sola, que las hay.

(PROGN expresión1 [expresión2...])

Esta función admite como argumentos todas las expresiones indicadas y las evalúa secuencialmente, devolviendo el valor de la última evaluada.

(COND (condición1 resultado1) [(condición2 resultad o2)...])

La función COND de AutoLISP que vamos a ver ahora establece varias condiciones consecutivas asignando diferentes resultados a cada una de ellas. Es decir, es una generalización de la función IF que, sin embargo, resulta más cómoda a la hora de establecer diversas comparaciones.

(REPEAT veces expresión1 [expresión2...])

Esta función repite un determinado número de veces (especificado en veces) la expresión o expresiones que se encuentren a continuación, hasta el paréntesis de cierre de REPEAT. El número de repeticiones ha de ser positivo y entero. REPEAT evaluará dicho número de veces las expresiones contenidas y devolverá el resultado de la última evaluación.

(WHILE condición expresión1 [expresión2...])

La función WHILE establece estructuras repetitivas al igual que REPEAT. La diferencia estriba en que WHILE proporciona un control sobre la repetición, ya que la serie de expresiones (o única expresión como mínimo) se repetirá mientas se cumpla una determinada condición especificada en condición.

Mientras el resultado de la condición sea diferente de nil (o sea T), WHILE evaluará las expresiones indicadas. En el momento en que la

Page 91: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 31 DEPARTAMENTO DE INGENIERIA CIVIL

condición sea igual a nil, WHILE terminará, dejando de repetirse el ciclo.

(FOREACH variable lista expresión)

Esta función procesa cada elemento de una lista (lista) aplicándole una expresión (expresión) indicada. Para ello se utiliza un símbolo (variable) que debe aparecer en dicha expresión. El funcionamiento es el siguiente: se toma cada elemento de la lista y se hace intervenir en la expresión en los lugares donde aparece el símbolo. Después se evalúa cada una de las expresiones resultantes para cada elemento de la lista.

(APPLY función lista)

APPLY aplica la función indicada a todos los elementos de una lista también indicada.

(MAPCAR función lista1... listan)

Por su lado, MAPCAR aplica la función indicada a elementos sucesivos de listas. Por ejemplo, supongamos n listas cada una con un número m de elementos. MAPCAR aplicará la función 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. Después realiza lo mismo con los m elementos de las n listas. El resultado final será una lista cúmulo de los resultados parciales.

(LAMBDA argumentos expresión1 [expresión2...])

LAMBDA define una función de usuario sin nombre. Su formato y funcionamiento es el mismo que DEFUN, pero al no tener nombre sólo puede utilizarse en el momento de definirla y no puede ser llamada posteriormente. Se utiliza cuando se necesita definir una función sólo momentáneamente y no se desea ocupar espacio en memoria de manera innecesaria.

LAMBDA devuelve el valor de la última expresión evaluada, lo mismo que DEFUN. Se puede usar en combinación con APPLY y MAPCAR —como decíamos— para aplicar una función temporal a los elementos de una o varias listas.

Page 92: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 32 DEPARTAMENTO DE INGENIERIA CIVIL

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")

Page 93: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 33 DEPARTAMENTO DE INGENIERIA CIVIL

b) Rutina que calcula y despliega la pendiente de una línea 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 Línea : M1")

Page 94: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 34 DEPARTAMENTO DE INGENIERIA CIVIL

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" "") )

Page 95: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 35 DEPARTAMENTO DE INGENIERIA CIVIL

Rutina que cambia cotas a diferentes entidades en el espacio, dejándolas con elevación 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 Línea : chz")

Page 96: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 36 DEPARTAMENTO DE INGENIERIA CIVIL

3.3.4 INTERACCIÓN CON LETREROS EN DCL

Desde la versión 12 de AutoCAD el usuario tiene la posibilidad de elaborar sus propios cuadros o letreros de diálogo 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 mínimo tres expresiones AutoLISP: una para cargar el diseño 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 definición de cuadros de diálogo especificado. Un archivo .DCL puede tener más de una definición de cuadros de diálogo, en este caso se cargarían todas ellas. De la misma forma, es posible utilizar varias veces LOAD_DIALOG para cargar varios archivos .DCL, cada uno con uno o más diseños de letreros. archivo_DCL es la ruta y nombre del archivo en cuestión; 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 extensión, pero es conveniente por claridad.

Si la carga del archivo es fructífera se devuelve un número 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 función, y continúa con 2, 3, 4, 5... Si la carga resulta fallida, se devuelve cero (0) o un número negativo.

NOTA: Todas estas indicaciones, a lo largo de este curso, acerca de lo que devuelve una función (si falla, si no falla, si encuentra o no un archivo, etc.) no son puro capricho, sino muy útiles a la hora de programar. Nótese 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.

Page 97: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 37 DEPARTAMENTO DE INGENIERIA CIVIL

El hecho de que LOAD_DIALOG devuelva un índice de carga nos hace pensar la manera de capturarlo para utilizarlo luego con la siguiente función. La manera es bien sencilla, ya que se hace mediante un simple SETQ. Esta será la forma habitual de suministrar esta función, 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 [acción [punto_pantalla ]] )

Esta función 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 sólo contiene una definición de cuadro de diálogo 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 definición de varios letreros, por eso hay que indicar el nombre del que queremos visualizar. Con LOAD_DIALOG suministrábamos el nombre del archivo .DCL.

También habremos de indicar obligatoriamente con NEW_DIALOG el índice de carga devuelto por LOAD_DIALOG. Así, una manera típica de utilizar esta función tras usar LOAD_DIALOG y haber guardado el índice de carga en una variable llamada Ind (como en el ejemplo anterior), sería:

(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 acción especifica la acción por defecto, en forma de expresión de AutoLISP, que se asignará a todos los elementos del cuadro que no tengan una acción 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 posición inicial del letrero en pantalla, generalmente por la esquina superior izquierda. La posición por defecto es el centro de la pantalla, aunque hablaremos un poco más de este tema cuando se estudie la función DONE_DIALOG.

Si NEW_DIALOG se evalúa correctamente devuelve T, si no devuelve nil.

NOTA: En Windows el letrero queda ya inicializado con NEW_DIALOG, antes de utilizar la siguiente función. Hay que tener en cuenta este

Page 98: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 38 DEPARTAMENTO DE INGENIERIA CIVIL

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 diálogo anteriormente mostrado en pantalla con NEW_DIALOG.

Una vez utilizada esta función, la cual no tiene argumentos, el letrero permanece activo hasta que el usuario señale un elemento que lleve asociada una acción de final de letrero (DONE_DIALOG) que lo cierre. Esta acción 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 había 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 terminación. Si así se ha hecho, START_DIALOG devuelve ese número 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 función SSGET —ya veremos— se puede utilizar, siempre que no sea una de sus opciones interactivas que solicita la acción del usuario.

(DONE_DIALOG [estado] )

Esta función cierra el letrero activo actual. Debe ser llamada desde una expresión de control de los componentes de un letrero. Generalmente será llamada desde la función que defina la acción del botón Aceptar (enseguida veremos todo esto).

La función DONE_DIALOG devuelve las coordenadas X e Y (generalmente de la esquina superior izquierda) correspondientes a la posición 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 calculáramos 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 capturáramos la salida de DONE_DIALOG así, por ejemplo:

(SETQ CoorCuadro (DONE_DIALOG))

Page 99: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 39 DEPARTAMENTO DE INGENIERIA CIVIL

podríamos luego llamar al mismo cuadro utilizando dichas coordenadas. De esta manera el cuadro siempre aparecería 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 terminación que será el que se devuelva en sucesivas llamadas a START_DIALOG. De esta forma se podrá asignar una acción diferente dependiendo desde qué casilla o botón se haya realizado el cierre.

(TERM_DIALOG)

Esta función cancela todos los letreros anidados en pantalla, si los hubiera. Siempre devuelve nil. START_DIALOG, que ha activado el primer letrero desde el que después han salido los demás, devuelve en este caso -1 una vez cancelados todos.

(UNLOAD_DIALOG índice_carga )

Una vez utilizado el diseño del cuadro DCL, es decir una vez mostrado en pantalla, el cuadro puede ser descargado mediante la función UNLOAD_DIALOG (aunque se siga interactuando con él). O sea, el cuadro puede ser descargado inmediatamente después 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

Page 100: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 40 DEPARTAMENTO DE INGENIERIA CIVIL

3.3.4.2 GESTIÓN DE ELEMENTOS DEL LETRERO

Estudiada la manera de iniciar y terminar un cuadro en pantalla, vamos a ver cómo gestionar sus componentes incluidos, estableciendo así valores por defecto en el inicio, extrayendo del letrero dichos valores para su proceso, asignando acciones a botones, etcétera.

Letrero —VARIABLES.LSP—

Código 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="Sólidos"; :edit_box {label="Isolíneas";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="&Diálogo al imprimir";key="Dia";}} :row {:toggle {label="&Gestión de archivos";key="Ges";}} spacer_1; :row {ok_cancel_help;} }

Page 101: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 41 DEPARTAMENTO DE INGENIERIA CIVIL

La función 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 diálogo ha de ser una cadena, es decir, texto alfanumérico en formato ASCII, y no valores numéricos en formato numérico. Así por ejemplo:

(SET_TILE "Num" "23.32") (SET_TILE "Telef" "944661234") (SET_TILE "ValText" "Marca de moleteado")

Será muchas veces práctica habitual rellenar casillas de un cuadro con valores del sistema por defecto. En este caso, si el valor corresponde a una variable alfanumérica (de AutoCAD o del usuario) no habrá ningún 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 podría ser una :edit_box. Pero si el valor es numérico, habremos de convertirlo antes a formato ASCII para después introducirlo en el elemento en cuestión. 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 numérico entero, lo convertirá a cadena ASCII con la función ITOA y lo asignará al tile identificado por TiempSal.

Lo primero que debemos hacer en un programa AutoLISP que controla un letrero de diálogo, y después de cargarlo y mostrarlo en pantalla, es rellenar sus casillas con valores por defecto, activar las opciones de casillas de activación y botones excluyentes por defecto, etcétera. Como sabemos, esto lo podemos hacer en el propio archivo .DCL (atributo value), pero es preferible realizarlo desde AutoLISP.

Si inicializáramos elementos desde DCL y posteriormente desde AutoLISP, se daría una redundancia no deseada. Por ejemplo, si inicializamos una casilla de edición :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 lógico), se producirá un instantáneo "baile" de números (entre el de value y el actual, si no coinciden) que no es vistoso para el usuario. Por ello, normalmente desecharemos la asignación por defecto desde DCL y la realizaremos desde AutoLISP.

Page 102: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 42 DEPARTAMENTO DE INGENIERIA CIVIL

Todas la operaciones de relleno de casillas, asignación de acciones a botones, y en general todos los acceso al cuadro de diálogo (que ya veremos) se introducen antes de la función START_DIALOG y después de NEW_DIALOG, si no no funcionará. Veamos ahora entonces cómo comenzaríamos el ejemplo de programa que nos ocupa.

Código 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 función que es comando de AutoCAD (Var); como sabemos podríamos haber definido una función interna para luego llamarla desde otra que sea comando de AutoCAD.

Posteriormente cargamos el cuadro de diálogo con LOAD_DIALOG guardando en la variable Ind el índice de carga. A continuación, mostramos el cuadro en pantalla con NEW_DIALOG proporcionando el índice devuelto por la función 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. Nótese que este caso son valores de variables numéricas 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 activación :toggle (y de otros elementos como botones excluyentes), un valor de 0 significa desactivado y un valor de 1 significa activado. Aún así, 1 y 0 siguen siendo valores numéricos enteros, por lo que se utiliza para su conversión la función ITOA.

(ACTION_TILE clave acción )

Esta es la siguiente subr de AutoLISP que vamos a explicar. ACTION_TILE asigna una expresión AutoLISP indicada en acción al elemento o tile expresado por la clave de su atributo key en el diseño DCL. Ambos argumentos han de expresarse entre comillas dobles ("") por ser

Page 103: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 43 DEPARTAMENTO DE INGENIERIA CIVIL

cadenas. Por ejemplo:

(ACTION_TILE "bot1" "(SETQ Var1 12) (SETQ Var2 0)")

Lo más lógico parece ser indicar bastantes más acciones que realizar en una asignación con ACTION_TILE. Por eso, la práctica habitual aconseja asignar como acción una llamada a una subrutina o función 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 función Acc1. Esta función deberá estar definida posteriormente, y ya detrás de START_DIALOG, con su DEFUN particular. Sigamos con nuestro ejemplo para entenderlo mejor.

Código AutoLISP 1 —VARIABLES.LSP— (continuación) (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 definirán. El tercer y último ACTION_TILE asigna al botón Aceptar (recordemos que se

Page 104: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 44 DEPARTAMENTO DE INGENIERIA CIVIL

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 función, al IF. Si errores, que es una variable que definiremos después, tiene algún valor no se realizará nada (sólo se mostrará un mensaje de error que veremos luego en la función Chequear). Si errores es nil, es decir si no hay errores (como veremos), se pasa a la función Aceptar, que terminará el cuadro (como veremos).

NOTA: No sólo podemos asignar acciones a los botones, sino a casi cualquier elemento de un letrero de diálogo. 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 continuación, y tras la definición y asignación 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 función NEW_DIALOG se puede indicar una acción por defecto. Esta acción por defecto se aplicará a todos aquellos elementos que no tengan después una acción asignada. Así si deseamos asignar la misma acción a varios elementos de un cuadro, podemos hacerlos en NEW_DIALOG, ahorrándonos espacio en el archivo AutoLISP y su consiguiente memoria en el sistema.

NOTA: Si un elemento tiene asignada una acción con ACTION_TILE, ésta se efectúa ignorando la opción por defecto de NEW_DIALOG. Es posible una tercera manera de asignar una acción a un elemento: el atributo action dentro de un archivo en DCL. También 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 diálogo.

La expresión de acción 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 sólo 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 edición :edit_box se mostrará su valor como cadena; si es una casilla de verificación :toggle o un botón 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 ningún elemento se encuentra seleccionado, el

Page 105: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 45 DEPARTAMENTO DE INGENIERIA CIVIL

valor de $value será nil.

$data -------- Son los datos gestionados por la aplicación (si los hay) establecidos justo después de NEW_DIALOG mediante CLIENT_DATA_TILE (se verá). Esta variables se aplica a todas las acciones, pero no tiene sentido amenos que la aplicación ya la haya inicializado llamando aCLIENT_DATA_TILE.

$reason ------ Es el código de razón que indica la acción del usuario que ha provocadola acción. Se emplea con los tiles :edit_box, :list_box, :image_button y :slider. Esta variable indica por qué se ha producido la acción. Su valor se define para cualquier tipo de acción, pero sólo hace falta inspeccionarla cuando dicha acción está asociada a alguno de los componente comentados.

$x ------------- La coordenada X de una selección 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 ningún significado para los demás 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 cuál es el botón concreto que ha seleccionado un usuario, se asigna la misma expresión (variable) a los botones, incluyendo en ella la variable $key:

(ACTION_TILE "botón1" "(SETQ elem $key)(DONE_DIALOG)")

(ACTION_TILE "botón2" "(SETQ elem $key)(DONE_DIALOG)")

En cuanto el usuario señala un botón, $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é botón 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 edición cuya clave key es casilla la variable $value devuelve ese valor y la expresión de acción lo almacena en val.

La variable $reason devuelve el código de razón que indica el tipo de acción que el usuario ha realizado sobre el elemento. La mayoría de

Page 106: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 46 DEPARTAMENTO DE INGENIERIA CIVIL

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 designación: casillas de edición, listas, imágenes y deslizadores. A continuación se explican de una manera más detallada los códigos de razón que puede devolver $reason (también denominados de retorno de llamada).

• Código 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 sólo es necesario examinar este valor para los cuatro tipos enumerados más arriba, puesto que en los demás es el único valor posible.

• Código 2: Se aplica a casillas de edición. 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 acción, pues el usuario podría haber dejado incompleta su modificación del texto.

• Código 3: Se aplica a cursores deslizantes. Significa que el usuario ha arrastrado el cursor deslizante, pero no ha realizado una selección 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 edición que pueda haber junto al deslizador, pero sin realizar la acción asignada al elemento por si el usuario modifica posteriormente el cursor deslizante.

• Código 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 pulsación sobre uno de los nombres de la lista. Si el cuadro de lista es el elemento principal de un cuadro, la doble pulsación debe tener asociada la selección del nombre y además el cierre del cuadro. En este caso, la acción asignada debe distinguir el código de razón 1 (una simple pulsación que selecciona el nombre de la lista pero no cierra el cuadro) del código 4 (selección del nombre y cierre). Si el cuadro de lista es un elemento que acompaña a otros en el cuadro, la doble y la simple pulsación se traducen en el mismo efecto de seleccionar un nombre, con lo que la acción asignada no tendría por qué distinguir en principio los dos códigos posibles. En el caso de casilla de imagen, también significa que el usuario ha realizado una doble pulsación sobre ella. La acción asignada puede así distinguir una simple de una doble pulsación y realizar operaciones diferentes si procede.

(GET_TILE clave )

La función GET_TILE extrae el valor actual del elemento del cuadro de diálogo identificado por su key en clave.

Suele ser habitual emplear GET_TILE a la hora de realizar la acción asignada al botón Aceptar. De esta forma extraemos los valores últimos introducimos por el usuario haciéndolos efectivos. También se puede utilizar en la función que controle los errores del cuadro para escribir un mensaje en la línea de errores (key error). Lo veremos enseguida en nuestro primer ejemplo, a continuación de MODE_TILE.

Page 107: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 47 DEPARTAMENTO DE INGENIERIA CIVIL

(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 -- Descripción ------------------------------------------------------ 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 edición :edit_box. 4 Resalta una casilla de imagen o anula el resaltado.

Esta función podemos utilizarla para controlar el aspecto de determinados elementos con respecto a otros, por ejemplo si al seleccionar una casilla de selección nos interesa que otra determinada se inhabilite, porque son incompatibles. Lo vemos ahora en la siguiente parte de nuestro ejemplo.

Código AutoLISP —VARIABLES.LSP— (continuación) (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)

Page 108: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 48 DEPARTAMENTO DE INGENIERIA CIVIL

(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 mínimo.") (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 mínimo.") (MODE_TILE "Surf2" 2) ) ) (SETQ IsoCh (ATOI (GET_TILE "Iso"))) (IF (< IsoCh 0)

Page 109: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 49 DEPARTAMENTO DE INGENIERIA CIVIL

(PROGN (SETQ errores T) (SET_TILE "error" "Valor de las Isolíneas 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 habíamos 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 pulsación 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 edición un valor que nosotros hemos considerado por defecto para cada variable. Además, contienen una última función SET_TILE que asigna una cadena vacía a la línea de error, identificada por la key error, como sabemos. De esto hablaremos ahora mismo al comentar la función Chequear.

Page 110: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 50 DEPARTAMENTO DE INGENIERIA CIVIL

La función Chequear lo primero que hace es iniciar una variable denominada errores como nula, sin valor (nil). Esto se hace por si el cuadro ya había sido utilizado y la variable valiera T (haber cometido un error y salir con Cancelar sin arreglarlo), lo cual sería antiproducente para nuestros objetivos.

A continuación se extrae mediante GET_TILE el valor de cada uno de los elementos del cuadro de diálogo, guardándolos en variables de usuario (previa transformación en valores numéricos 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 demás variables.

NOTA: La razón 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 edición a un número máximo de 3 caracteres (argumento edit_limit). Por ello no es necesario un control tan exhaustivo. Para que el programa fuera completo, habría 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 más altos habría que hacerlo desde línea de comandos.

Seguimos. Si se introduce un valor no válido en una casilla, se establece errores como T y se imprime un mensaje en la línea de errores. Esto se logra con SET_TILE, asignando a la key error un mensaje entre comillas. A continuación, 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 botón Aceptar. Al terminar la función de chequeo de errores, el programa devuelve el control a la siguiente instrucción desde donde fue llamada dicha función, al IF del principio. Si errores tiene un valor no ocurre nada (lista vacía), 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 ningún error se puede seguir adelante. También 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 válidos en las variables de sistema mediante SETVAR, extrayéndolas de los correspondientes tiles mediante GET_TILE (previa transformación a valores numéricos como anteriormente hemos explicado).

Al final es necesario acabar con DONE_DIALOG. Como sabemos, la key accept es predefinida y lleva una función predeterminada inherente. Al asociar nosotros accept con una rutina Aceptar, lo que hacemos es sobreescribir la rutina por defecto de accept —que lleva ya implícito un DONE_DIALOG—. Es por eso que debemos incluir DONE_DIALOG, porque si no el cuadro no se cerraría. El botón Cancelar cierra el cuadro sin más.

Page 111: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 51 DEPARTAMENTO DE INGENIERIA CIVIL

Existen un par de funciones más 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 función asocia datos procesados mediante una aplicación a un elemento de un letrero de diálogo. El argumento datos, así como el argumento clave, debe ser una cadena de texto. Una acción asignada al elemento puede hacer referencia a estos datos a través de la variables $data.

Una aplicación típica es la asignación 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 través de la variable $data, y/o al elemento o elementos seleccionados a través 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 diálogo. 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, podríamos hacer:

(GET_ATTR "casilla" "value")

Page 112: Manual AutoCAD

APUNTES DE CLASES CI55 D, SEMESTRE 2010-2 Noviembre de 2010

UNIVERSIDAD DE CHILE, FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS Pág 52 DEPARTAMENTO DE INGENIERIA CIVIL

3.3.5 ANEXO PROGRAMACIÓN DCL