INTE RFASE DE DISEÑO AUXILIADA POR COMPUTADORA
Cam po de la Invención La presente invención se refiere a sistemas de diseño automatizados en computadora (CAD) y al software y hardware de los mismos. Antecedentes de la Invención Los sistemas de diseño automatizados en computadora (CAD) han evolucionado con respecto a los últimos años, y ahora se utilizan en casi todos los ambientes de diseño para ag ilizar el proceso de diseño e incrementar su precisión , beneficiando tanto a los consumidores como a los fabricantes. Sin embargo, aunq ue estos sistemas han sido útiles, sus interfases continúan siendo refinadas y mejoradas, y todavía existen por superar ciertas dificultades con el uso de dichos sistemas. Por ejemplo, los sistemas de diseño automatizados en computadora con frecuencia se utilizan para diseñar objetos proyectados para coincidir en forma di mensional con planos existentes. U n ejemplo es el software CAD utilizado para diseñar presentaciones arquitectónicas que coinciden con una estructura existente. U n ejem plo del software CAD comercial izado para este propósito, es el producto "DesignFast" con licencia por parte del cesionario del mismo para sus clientes, y está proyectado para utilizarse en el desarrollo de planos para formas de concreto que serán utilizadas para crear paredes de concreto. Otros ejemplos
incluyen una aplicación conocida como Paschal Plan Light ó PPL, comercializada por Paschal Werk - G . Maier G m bH de Steinach , Alemania , un programa conocido como "Tipos", disponible con el fabricante de formas Doka de Alemania que tiene su descripción en el sitio web de Doka , http://www. doka .com/TiposDoka/index_en . htm , y un prod ucto conocido como "Elpos" y que está disponi ble en Peri, www. peri . de. U na dificultad con dicho sistema CAD, tal como los que se identificaron anteriormente, es q ue el diseñador con frecuencia debe desarrollar un plan que utilice las estructuras existentes o, sea compatible con las estructuras existentes. Estas estructuras existentes pueden ser dimensionadas en mú ltiples unidades incompatibles, tales como unidades I nglesas (yardas, pies, pulgadas), y/o u nidades métricas (metros, centímetros, milímetros), y el diseñador debe entonces realizar conversiones unitarias para crear planos dimensionados en forma compatible en el sistema CAD. Dichas conversiones de unidades son difíci les e introducen una probable fuente de error humano. U na solución conocida para esta dificultad , es el uso de u na calculadora u otro aparato con propósito especial para llevar a cabo las conversiones de unidades. Por ejemplo, la Patente Norteamericana No. 4, 860,233, muestra una calculadora diseñada para manejar operaciones matemáticas en cantidades de unidades inglesas y métricas mezcladas, y conversiones de pulgada-pie fraccional y pulgada fraccional-pu lgada decimal . Otras patentes en el
área del asu nto materia general incl uyen la Patente No. 4, 336,653 (aparato de conversión de unidad inglesa a unidad métrica), No. 4, 322,608 (aparato comparador de medidas métricas-inglesas), No. 4 ,282, 514 (convertidor electrónico), y 4,228,51 6 (computadora para conversión métrica). Desafortunadamente, esta solución conocida no es conveniente para u n diseñador que utiliza el software CAD, ya q ue requiere que el diseñador utilice un aparato separado del sistema CAD para llevar a cabo las conversiones de u nidad , y posteriormente ing rese las medidas convertidas en el sistema CAD, un proceso que tiene un conti nuo riesgo de error humano. Otra dificultad con los sistemas CAD existentes, se relaciona con el almacenamiento de diseños y recu peración de errores. Para protegerse de errores, muchas aplicaciones, incl uyendo procesadores de palabras y editores gráficos, proporcionan una función de deshacer. Por lo tanto, si se ejecuta un comando en forma accidental o incorrecta en el contenido que está en ese momento en la memoria, el comando debe ser desecho, regresando el contenido a su estado previo a la ejecución del comando. En algunas aplicaciones, ú nicamente el comando más reciente ejecutado puede ser desecho, mientras que en otras, todos los comandos ejecutados desde que se abrió el archivo, o desde que se guardó por última vez el archivo, pueden ser desechos. Un ejemplo de dicha función deshacer, se describe en la Patente Norteamericana No. 6,063 , 1 28, con referencia a la figura 2 en las colu mna 1 0, l ínea 49 et seq .
M uchas aplicaciones también proporcionan un soporte de datos automático. Específicamente, muchas apl icaciones guardarán automáticamente el contenido que está en ese momento en la memoria , de modo que en el caso de una falla de energ ía o falla de la computadora , pueda g uardarse u na copia del contenido, la cual puede ser utilizada como un punto de partida para continuar después de que se corrige la falla . Desafortunadamente, estos procesos existentes no protegen en forma adecuada contra errores, por varias razones. Primero, la función deshacer tiene la limitación de que los comandos erróneos no pueden ser desechos si están fuera del alcance de la función deshacer, por ejemplo, si el comando ya no está en la fila de deshacer de la aplicación, o el comando fue ejecutado d urante u na invocación previa de la aplicación , después de lo cual el archivo fue guardado y la aplicación fue cerrada , destruyendo la información deshacer. En dichos casos, la única opción disponible para un usuario es deshacer en forma manual un comando, lo cual puede ser tedioso y estar sujeto a error humano. Además, las funciones para guardar automáticamente el contenido no conservan todos los cambios elaborados, sino únicamente aquéllos cambios elaborados hasta el momento en el que se guardó el soporte automático más reciente. Los cambios después de la última vez que se guardan en forma automática , se pierden en el caso de u na falla . Además, el contenido guardado automáticamente es eliminado típicamente cuando se cierra una aplicación , de modo que los cambios pueden
ser perdidos en forma inadvertida si la aplicación se cierra en forma inadvertida sin guardar los cambios elaborados. U na dificultad adicional con los sistemas CAD conocidos, tales como Acad , M icro Station , Solid Works, se refiere a la impresión del contenido. Normal mente, se incrustan las config uraciones del aparato de impresión a través del software CAD en los arch ivos creados por el sistema de origen . Estas config uraciones normalmente son únicas para una marca y modelo de impresión en particular, y como consecuencia , cuando se transmite u n archivo de un usuario a otro el cual tiene un diferente am biente de im presión , con frecuencia el archivo debe ser modificado antes de poder ser impreso. Los cambios requeridos pueden variar, incluyendo las config uraciones del graficador, tamaño de archivo, peso de l ínea/pluma , B&W/Color/Escala de g rises, escala y otros. Estas configuraciones pueden necesitar ser cambiadas para cada página en una fila transferida. En casos extremos, cada página de un archivo de 99 pági nas, necesitará modificación antes de impri mirse en el sistema de otro usuario. Breve Descripción de la Invención La presente invención se dirige a las dificultades con los sistemas CAD descritos anteriormente, a través de sus múltiples aspectos. En un aspecto, la presente invención presenta u n producto de sistema y programa de diseño auxiliado por computadora en el cual las di mensiones de herramientas de d ibujo pueden ing resarse como
una com binación aritmética de cantidades expresadas tanto en u nidades inglesas como métricas. El sistema convierte las unidades de las cantidades ing resadas, y combina las cantidades convertidas para prod ucir una dimensión en una unidad común , perfilar en gran parte el proceso de crear un dibujo y reducir la probabilidad de error humano. En un segu ndo aspecto, la presente invención presenta un sistema de diseño auxiliado por computadora que tiene una herramienta deshacer que almacena las operaciones de deshacer en un archivo en almacenamiento no volátil . El archivo contiene u na representación de cada herramienta de dibujo invocada por el usuario, de modo que cualquiera y todas las operaciones de dibujo realizadas en un archivo, pueden ser deshechas con base en los datos q ue se encuentran en el almacenamiento no volátil , en cualquier tiempo subsecuente, incluso después de que se ha guardado y recuperado u n archivo , o después de que un archivo ha sido transferido de un usuario a otro. En un tercer aspecto, la presente i nvención presenta u n producto de sistema y programa de diseño auxiliado por computadora en el cual el contenido dibujado es asociado con un tamaño y orientación del papel , en lugar de con u na i mpresora específica. El sistema asocia cada tamaño y tipo de papel con una impresora , de modo que cuando se imprime una página , el tamaño y tipo de papel asociado entre ellos pueden ser utilizados para seleccionar una impresora. De esta forma, el contenido puede ser impreso en u na
i mpresora adecuada con base en el tamaño y orientación del papel , sin almacenar selecciones o detalles de la impresora en este archivo. Esto permite q ue los archivos sean impresos por diferentes usuarios, que tienen diferentes impresoras, sin requerir la modificación del archivo. Los objetos y ventajas antes mencionados así como otros de la presente invención , podrán ser apreciados a partir de los dibujos y la descri pción que acompañan a la presente invención . Breve Descripción de los Dibujos Los dibujos q ue acompañan la presente invención , los cuales están incorporados y constituyen parte de esta especificación , ilustran modalidades de la presente invención , y junto con una descripción general de la presente invención proporcionada anteriormente, la descripción detallada de las modalidades que se proporciona más adelante, sirven para explicar los princi pios de la presente invención. La fig ura 1 , ilustra un sistema de diseño auxiliado por computadora de acuerdo con los princi pios de la presente Invención ;
La figura 2 , ilustra los despliegues en pantalla en el sistema CAD de la Fig ura 1 ; La figura 3, ilustra una ventana de entrada di mensional utilizada por un analizador g ramatical , de acuerdo con los principios de la presente invención; La figura 4 , es un diag rama de fl ujo de las operaciones del parser del sistema CAD de la figura 1 ;
La figura 5, ilustra algunos datos almacenados por el sistema CAD de la figura 1 ; La figura 6, es un diagrama de flujo de las operaciones de la interfase del usuario del sistema CAD de la figura 1, cuando se deshacen y se vuelven a realizar las operaciones de la herramienta de dibujo; La figura 7, es un diagrama de flujo de las operaciones de la interfase del usuario del sistema CAD de la figura 1, cuando se imprime el contenido. Descripción Detallada de las Modalidades Específicas Haciendo referencia ahora a la figura 1, un sistema de diseño auxiliado por computadora (CAD) 10 de acuerdo con los principios de la presente invención, comprende una aplicación de software que opera en el CPU 12 de una computadora para propósitos generales, tal como un sistema de computadora de escritorio construido en un procesador compatible con Intel y el sistema de operación de Microsoft Windows. La aplicación en el procesador puede ser escrita en cualquier número de lenguajes fuente, tal como el lenguaje de programación C + + . Se podrá apreciar que los métodos aquí descritos son implementados por computadora, pero de lo contrario no requieren implementación computarizada específica alguna. Los expertos en la técnica apreciarán que el método y aparato de la presente invención, aplican igualmente a cualquier sistema de computadora, sin importar si el sistema de computadora es un aparato de cómputo de usuarios
múltiples complicado o un aparato de u solo usuario, tal como una computadora personal o estación de trabajo. Por lo tanto, el sistema de computadora utilizado para el sistema CAD 1 0 puede comprender computadoras personales compatibles con I BM que corren OS/2 ó Windows de Microsoft, computadoras personales compatibles con Apple utilizando procesadores Motorola o PowerPC, computadoras compatibles con Linux ó Unix, o servidores de computadora central utilizando U nix u otro sistema de operación computadora central . El CPU 1 2 del sistema 1 0 comprende en forma adecuada un procesador, memoria volátil tal como DRAM , memoria no volátil tal como almacenamiento en disco, y una interfase del usuario tal como tarjeta de gráficos, teclado y controlador de ratón , los cuales todos están interconectados a través de uno o más buses del sistema . Se debe observar que varias modificaciones, adiciones o eliminaciones pueden elaborarse al sistema CAD 1 0 ilustrado en la figura 1 , dentro del alcance de la presente invención , tal como la ad ición de memoria caché u otros aparatos periféricos. La fig ura 1 , se presenta para ilustrar simplemente algunas de las características salientes de un sistema de cómputo de ejemplo 1 0. El procesador del CPU 1 2, lleva a cabo funciones de cómputo y control del sistema CAD 1 0. El procesador puede comprender un solo circuito integ rado, tal como un microprocesador, o puede comprender cualquier número adecuado de aparatos de circuito integ rados y/o tableros de circuito q ue operan en conju nto para lograr las funciones de u n procesador. El procesador ejecuta de manera adecuada un
programa de computadora dentro de la memoria del CPU 1 2. La memoria no volátil puede ser discos magnéticos (por ejemplo, discos duros o discos flexi bles) o dispositivos de almacenamiento óptico (por ejemplo, CD-ROM ). U n dispositivo de almacenamiento adecuado es un dispositivo de al macenamiento de acceso directo (DASD). En esta aplicación , el térmi no "disco" se utilizará para referirse en forma colectiva a todos los tipos de dispositivos de memorias, incluyendo unidades de disco, unidades ópticas, unidades de cinta , etc. Es importante observar que aunque la presente invención ha sido descrita (y continuará siendo descrita) dentro del contexto de un sistema de cómputo completamente funcional , los expertos en la técnica apreciarán q ue los mecanismos de la presente invención tienen la capacidad de ser distribuidos como un producto de programa en una variedad de formas, y q ue la presente invención aplica ig ualmente sin importar el tipo en particular de medio que contiene la señal para llevar a cabo realmente la distribución . Los ejemplos de medios que contienen la señal incluyen: medio tipo grabable, tal como discos flexi bles (por ejemplo, un disco flexible) y CD-ROMs, y medios tipo transmisión , tal como enlaces de comunicación digital y análoga , incluyendo enlaces de comunicación inalámbrica . Haciendo referencia ahora a la fig ura 2 , se pueden elaborar detalles de la interfase del usuario de un sistema CAD . El despliegue en pantalla incl uye u n área de trabajo 20 en el cual se genera el
dibujo 21 . Tal como se puede apreciar de mejor manera en la figura 2, el área de trabajo reside en una ventana de despliegue, la cual incluye en la misma varias funciones de comando para invocar herramientas de dibujo. Estas funciones de comando pueden tomar la forma de partidas de menú en un men ú 22 asociado con el área de trabajo 20, o pueden tomar la forma de partidas de una barra de herramientas en una barra de herramientas 24 asociada con el área de trabajo 20. Se podrá apreciar que los comandos disponibles en el menú 22 y/o en la barra de herramientas 24, pueden ser configurables por el usuario segú n sea adecuado para u na aplicación en particular de la presente invención . La figura 2 ilustra la invocación de una herramienta de dibujo mediante la selección con u n cursor 26 (controlado por el ratón 16) de u na partida q ue se encuentra en la barra de men ú 22 , originando que aparezca en el área de trabajo 20 u n men ú de comandos de aparición temporal cuando se activa 28. A través de la selección de un comando en el menú 28 , se puede ejecutar un comando específico. En la ilustración de la figura 2, el comando ejecutado es para agregar un segmento 30 al dibujo 21 que está siendo construido en el área de trabajo. Este comando req uiere la definición de las dimensiones del nuevo segmento 30, y para este propósito la ejecución del comando crea una ventana de entrada d imensional 32 que aparece en el área de trabajo, tal como se muestra en la figura
Los detalles de la ventana de entrada dimensional 32 se pueden apreciar en la fig u ra 3. Se puede apreciar que la ventana 32 incluye botones virtuales para ingresar información numérica a través del movimiento y clickeo del cursor 26 (el cual es modificado a la apariencia de una mano cuando está en la ventana 32). También se incl uye en la ventana 32 un cuadro de texto 40, en donde el usuario puede ing resar texto para la dimensión requerida por la herramienta de dibujo. Tal como se ilustra , el texto ing resado en el cuadro 50, puede ser una dimensión en la forma de u na suma, diferencia , producto o dividendo aritmético de un número de dimensiones, cada uno de los cuales puede ser defin ido en unidades separadas. Se su pondrá que un número sin dimensión que aparece en el cuadro de texto 40, tiene u na unidad por default, la cual puede ser seleccionada por el usuario. Sin embargo, los números q ue están asociados con u n identificador de un idad , serán interpretados como teniendo la unidad identificada , y serán convertidos a la u nidad por default antes de que la herramienta de dibujo realice las operaciones aritméticas requeridas. Por lo tanto, en el ejemplo de la fig ura 3, una dimensión se define como 30 pies 6 pulgadas, más 1 5 metros, menos 1 14 centímetros más 3 yardas. La herramienta de di bujo convertirá esta suma a una di mensión en la unidad por defau lt (por ejemplo, metros) y posteriormente se utiliza la di mensión resu ltante para definir el nuevo elemento 30 que está siendo creado en el área de trabajo. Tal como se puede apreciar en la fig ura 3, la ventana 32
incluye botones virtuales para crear símbolos de dimensión . Éstos incluyen el botón 41 para metros (m ), 42 para centímetros (cm), 43 para milímetros (mm ), 44 para yardas (yd), 45 para pies (' ó ft) y 46 para pulgadas (en ó "). Los botones virtuales del 41 al 46, simplifican el proceso para ingresar dimensiones, particularmente si el usuario tiene dificultad en recordar el símbolo de una dimensión o no desea utilizar el teclado para mecanografiar el símbolo dimensional dentro del cuadro de texto 40. El analizador gramatical q ue genera la pantalla en la figura 3, permite a un diseñador ingresar medidas métricas e inglesas conforme son leídas desde un plano, y llevar a cabo operaciones aritméticas básicas (suma, resta, multiplicación , división) para realizar dibujos estructurales sin la necesidad de u n convertidor de unidades. El analizador gramatical acepta símbolos y anotaciones de unidades estándar en la industria , incluyendo ft y ' para pies, in y " para pulgadas, m para metros, cm para centímetros, yd para yardas.
Haciendo referencia ahora a la figu ra 4 , se puede explicar el proceso mediante el cual las di mensiones de un idades diferentes son analizadas g ramaticalmente y convertidas. En u n primer paso 50, el usuario invoca una herramienta de dibujo que requiere el ing reso de una di mensión . Posteriormente, en el paso 52 , se despliega el cuadro de texto del analizador gramatical 40 en la ventana 32 (figura 3), junto con el teclado virtual , y el usuario posteriormente ing resa una serie de caracteres. La primera partida en la serie de caracteres de ingreso debe
ser u n nú mero, extra ído en el paso 54 y puesto en fila en el paso 56 (si un número no es la primera partida en la serie de caracteres, se regresa un error 58). Posteriormente, la sigu iente partida en la serie de caracteres de ingreso es analizada g ramatical mente en el paso 60. Si la sig uiente partida es un designador de unidades (paso 62), entonces el n ú mero puesto en fila se convierte de la unidad identificada a la unidad estándar o por default seleccionada por el usuario, y el procesamiento reg resa al paso 60 para analizar gramaticalmente la siguiente partida. Si la siguiente partida es un operador (*, + , -, /), (paso 66), el operador se pone en fila en el paso 68 , y el procesamiento regresa al paso 60 para analizar g ramaticalmente la siguiente partida . Si la siguiente partida es un número (paso 70), entonces el número se pone en fila y el procesamiento regresa al paso 60 para analizar gramaticalmente la sig uiente partida . Final mente, si no existen partidas adicionales (paso 74), entonces el procesamiento procede al paso 76, y los nú meros puestos en fila (los cuales han sido convertidos a la unidad estándar) y los operadores (si es que existen) son evaluados para prod ucir un resultado, el cual es la dimensión deseada para la herramienta de dibujo invocada. Haciendo referencia ahora a la figura 5 , se pueden explicar los datos almacenados por el sistema CAD de la presente invención . Se podrá apreciar q ue los datos mostrados en la fig ura 5, pueden ser
todos incrustados en u n solo archivo para u n d ibujo, o pueden ser almacenados en múltiples archivos de un grupo de arch ivos q ue se relacionan con un dibujo en particu lar, estando ambas implementaciones dentro del alcance contemplado por la presente invención . Tal como se puede apreciar en la figura 5 , los dibujos son almacenados por el sistema CAD en un archivo de di bujo 82, utilizando un formato de dibujo, tal como el formato Open DWG promulgado por The DWG Alliance, ahora conocido como Open Desig n Al liance, (www.opendesig n .com ). El Open DWG es un formato de archivo de dibujo "abierto", basado en el formato DWG con licencia y popularizado por Autodesk y su software AutoCAD. El DWG Alliance ofrece utilidades en el website antes mencionado, para convertir los archivos de formato del propietario Autodesk en Open DWG y/o viceversa . Los datos adicionales almacenados por el sistema CAD incluyen datos del tamaño de papel/orientación del papel 84 para un archivo de dibujo. El sistema CAD de acuerdo con la presente invención , no almacena información detallada de la impresora asociada con un archivo de dibujo. Más bien , cuando un usuario crea un diseño que será impreso, únicamente se al macena el tamaño del papel y su orientación (Landscape/Portrait). Estos datos pueden ser al macenados por separado o i ncrustados en el archivo de dibujo, tal como se representa en la figura 5. La ¡nterfase de la impresora/graficador que se describe más adelante, permite a los
usuarios designar impresoras de acuerdo con los tamaños que impri men , eli minando de esta forma que se permita que la información detallada de la impresora sea referenciada como separada de un archivo de di bujo. Para asignar u na impresora a un tamaño de orientación de papel específico, el sistema CAD utiliza una Drag & Drop I nterface. Cuando se carga una página para i mpresión , el sistema CAD carga la impresora/graficador instalados en u n control de cuadro de lista. Posteriormente el usuario puede arrastrar y bajar im presoras (por medio de un ratón para bajar eventos) de la lista de i mpresoras para especificar el control del cuadro de texto asociado con los tamaños de papel estándar, por ejemplo, A/Letter/8.5x1 1 , B/Ledger/Tablo¡d/1 1 x 1 7, Architectural/D/Poster/24x36, E/Poster/36x48. El sistema se enfoca normalmente en los tamaños y tipos de papel estándar, en el perfil de la impresión , en comparación con otros programas CAD que intentan soportar más tamaños de papel , aunque al hacer esto introd ucen complejidad la cual normal mente es innecesaria. Por lo tanto, cuando un usuario crea un arch ivo de dibujo con 1 5 pági nas de diseño que serán impresas en papel tamaño D, y 14 páginas para tamaño Carta y posteriormente imprime dichas páginas, el sistema CAD puede identificar automáticamente la impresora o g raficador en el cual se imprimirán dichas páginas, con base en los tamaños de páginas, si n modificación alg una a los archivos requeridos. Se considera que el software de bosquejo existente
carece de alg una fu nción similar, y normal mente requerirá cam bios a las config uraciones de la impresora/graficador dentro de los archivos para adaptar dichos archivos a las impresoras en particular, antes de que puedan ser i mpresas. La figura 5, ilustra en forma adicional u n archivo de deshacer
86 utilizado por el sistema CAD. El sistema CAD de la presente invención , proporciona lo que se considera como u na función novedosa para editar archivos de dibujo. Específicamente, el método de la presente invención proporciona acceso de larga vida a cada comando ejecutado por un usuario en la creación de un dibujo, a través de la función "Deshacer". A diferencia de otras aplicaciones de dibujo conocidas (y aplicaciones de procesamiento de palabras), el sistema CAD de la presente invención mantiene permanentemente la información de deshacer, incluso cuando los archivos son guardados y recuperados, a menos que el usuario elimine de manera expl ícita la información de deshacer. La información de deshacer también puede ser accesible cuando el archivo creado por un primer usuario, es transferido a u n segu ndo usuario. Tal como se muestra en la figura 1 , cada comando que puede ser deshecho se guarda en almacenamiento no voláti l , tal como en la unidad de disco del sistema CAD. Cada vez que el usuario ejecuta un comando, el sistema genera automáticamente una entrada en la fila de deshacer 86, identificando el estado del archivo de dibujo y el comando ejecutado, en el siguiente formato: (6); 9 ,28, 05; 1 1 ; 34 ,25am ; Add Wall. FCD
En este formato, el primer campo (6), indica que este comando es el sexto comando ejecutado por el usuario, 9,28 , 05, indica la fecha exacta en que el comando fue ejecutado, 1 1 ; 34 :25am , indica la hora exacta en que este comando fue ejecutado, y Add Wall FCD indica el comando ejecutado por el usuario. La figura 5, ilustra un archivo de Deshacer 86 que tiene múltiples registros de comandos que fueron invocados en secuencias en la creación del archivo de dibujo ilustrado. Se deberá apreciar que en cualq uier momento, la etapa corriente de un dibujo está asociada con una entrada corriente específica 88 en los comandos al macenados en el archivo deshacer 86. La entrada corriente 88, frecuentemente es la última entrada en la fila deshacer 86 , aunque no necesita serlo; si el usuario deshace un comando, la entrada corriente 88 es movida a las entradas previas a la última entrada , que corresponden al estado de dibujo visto por el usuario. Si el usuario rehace en forma subsecuente los comandos deshechos con una herramienta de "Rehacer", la entrada corriente 88 se mueve hacia la última entrada , que corresponde nuevamente al estado del dibujo observado por el usuario. El método de almacenamiento Deshacer aquí descrito, y sus ventajas, se consideran aplicables para cualq uier software, sin limitarse al software CAD. Por ejemplo, las aplicaciones de procesamiento de palabras tales como Word , Word Perfect, y Ami Pro, aplicaciones de hoja de cálculo tales como Excel , Quattro Pro ó 1 -2-3, aplicaciones de presentación tales como Powerpoint, y otras
aplicaciones pueden tener la ventaja de una función Deshacer como la descrita. En todas de dichas aplicaciones, debido a la falta de cuidado o a la presión de tiempo, es probable que un usuario no guarde el trabajo realizado, caso en el cual u na interrupción de la aplicación o una pérdida de energía pueden llevar a la pérdida de todo el archivo. I ncluso si el usuario ha g uardado en forma periód ica , o ha utilizado u na función automática de la aplicación para g uarda r en forma periódica, no todos los cambios realizados serán conservados. En comparación , la técnica aq uí descrita evita la pérdida de cualquier parte de un proyecto, debido a q ue cada cambio es guardado conforme fue realizado. El sistema CAD de la presente invención , protege de esta manera el tiempo invertido del usuario, proporcionando capacidades deshacer ilimitadas, incluso después de cerrar y abrir un archivo. Haciendo referencia ahora a la fig ura 6, se puede elaborar el uso de la información mostrada en la fig ura 5. En un primer paso 90 en la fig ura 6, el usuario invoca una fu nción de la ¡nterfase del usuario. En forma específica , el usuario puede invocar 92 una herramienta de dibujo, en respuesta a la cual se crea u na nueva entrada en el archivo de deshacer. En forma notable, si la entrada corriente no es la última entrada en el archivo deshacer, se deben eli minar entradas su bsecuentes. Por lo tanto, en un primer paso 93, se eliminan cualesquiera comandos almacenados en entradas subsecuentes a la entrada corriente en el archivo de deshacer. Entonces, en el paso 94, la fecha , hora , y comando de herramienta
de dibujo y sus parámetros se almacenan en una nueva entrada en el archivo de deshacer 86. Después de haber utilizado u na herramienta de di bujo, el usuario puede invocar 96 la herramienta de deshacer, caso en el cual el sistema deshace (paso 98) el comando identificado en la entrada normal del archivo de deshacer. Si n embargo, se debe observar que no se elimina el comando de deshacer, sino que se mantiene en la fila de deshacer. Más bien , en el paso 1 06 , el comando previo en la fila de deshacer se hace actual , manteniendo de esta forma el comando de deshacer para un posible "rehacer" posterior de dicho comando. Si el usuario invoca 1 02 la herramienta de rehacer, en el paso 1 04 el sistema rehace el último comando de deshacer, ejecutando el comando identificado en la siguiente entrada en el deshacer. Asimismo , la sig uiente entrada en el archivo de deshacer se hace la entrada normal , de modo que la entrada normal corresponda al estado del contenido desplegado al usuario. Haciendo referencia ahora a la figura 7, se puede elaborar el proceso para imprimir desde la interfase del usuario 90. Tal como se observó anteriormente, si el usuario invoca 1 08 un comando de impresora , el sistema CAD selecciona (paso 1 1 0), u na impresora con base en el tamaño y orientación de papel identificado de cada pági na del dibujo corriente, y en el paso 1 1 2 , se comanda la impresión de cada página a la i mpresora definida previamente con el tamaño y/u orientación de dicho papel .
Aunq ue la presente invención ha sido ilustrada a través de una descripción de varias modalidades y aunque estas modal idades han sido descritas con detalles considerables, no es la intención de los solicitantes restringir o limitar en forma algu na el alcance de las reivindicaciones adjuntas a dichos detalles. Las ventajas y modificaciones adicionales podrán ser apreciadas por los expertos en la técnica . La presente invención en sus aspectos más amplios, no se li mita por consiguiente a los detalles específicos, aparatos y métodos representativos y ejemplo ilustrativo mostrado y descrito. Por consig uiente, se pueden hacer separaciones de dichos detalles sin apartarse del espíritu o alcance del concepto i nventivo general del solicitante.