ES2242587T3 - Operacion trim mejorada basada en la definicion de cara incrementada. - Google Patents

Operacion trim mejorada basada en la definicion de cara incrementada.

Info

Publication number
ES2242587T3
ES2242587T3 ES00402717T ES00402717T ES2242587T3 ES 2242587 T3 ES2242587 T3 ES 2242587T3 ES 00402717 T ES00402717 T ES 00402717T ES 00402717 T ES00402717 T ES 00402717T ES 2242587 T3 ES2242587 T3 ES 2242587T3
Authority
ES
Spain
Prior art keywords
face
faces
originated
data
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES00402717T
Other languages
English (en)
Inventor
Jean-Pierre Dreyfus
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dassault Systemes SE
Original Assignee
Dassault Systemes SE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dassault Systemes SE filed Critical Dassault Systemes SE
Application granted granted Critical
Publication of ES2242587T3 publication Critical patent/ES2242587T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three-dimensional [3D] modelling for computer graphics
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes

Landscapes

  • Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Numerical Control (AREA)
  • Image Processing (AREA)
  • Inorganic Insulating Materials (AREA)

Abstract

Un método de diseño asistido por ordenador, que comprende: a) obtener (60) un primer conjunto de datos que especifiquen la configuración física de un primer cuerpo (A), comprendiendo dicho primer conjunto de datos un conjunto de caras (23, 24, 25) de dicho primer cuerpo; b) obtener (61) un segundo conjunto de datos que especifiquen la configuración física de un segundo cuerpo (B), comprendiendo dicho segundo conjunto de datos un conjunto de caras (20, 21, 22) de dicho segundo cuerpo; c) definir (62) un tercer conjunto de datos que especifiquen un tercer cuerpo que comprende una combinación del primero (A) y del segundo (B) cuerpos, comprendiendo dicho tercer conjunto de datos un conjunto de caras (26-32) de dicho tercer cuerpo, e indicando dicho tercer conjunto de datos, para cada cara de dicho tercer cuerpo, la cara del primer o segundo cuerpo a partir de la cual se originó la cara del tercer cuerpo; d) recibir una entrada (70; 70'') que selecciona una cara de dicho tercer cuerpo; e) determinar (76; 76'') la cara del primer o segundo cuerpo a partir de la cual se originó la citada cara seleccionada de dicho tercer cuerpo; f) identificar (77, 78, 79; 77'', 78'', 79'') una cara de dicho tercer cuerpo, adyacente a la cara seleccionada, que se originó a partir de una cara perteneciente a un cuerpo distinto del cuerpo correspondiente a la cara a partir de la cual se originó la cara seleccionada, y g) especificar (81; 81''), para su posterior procesamiento, la porción de dicho tercer cuerpo definida por la citada cara seleccionada y por dicha cara adyacente.

Description

Operación TRIM mejorada basada en la definición de cara incrementada.
Antecedentes
La presente invención se refiere a programas de utilidad de software de ordenador en el campo del diseño asistido por ordenador (CAD), la fabricación asistida por ordenador (CAM), el diseño de ingeniería asistido por ordenador (CAE), y a sistemas de software de gestión de datos de programa (PDM II), y más en particular, a aplicaciones de ensamblaje y diseño de piezas en tales sistemas.
En las operaciones de diseño y ensamblaje de piezas, una pieza se construye normalmente combinando dos o más cuerpos. Por ejemplo, los sub-cuerpos pueden adoptar la forma de configuraciones tridimensionales simples tales como cubos, esferas, cilindros, cajas rectangulares, o conos, o configuraciones más complejas. Tales cuerpos se definen, entre otros modos, definiendo la carcasa externa del cuerpo, la cual está compuesta por un número de "caras". Así, por ejemplo, un cuerpo que tiene forma de cubo, tendrá seis caras, cada una de las cuales es un cuadrado.
En los sistemas CAD ya existentes, las piezas se ensamblan con frecuencia combinando dos cuerpos de tal modo que los volúmenes de los dos cuerpos se intersectan. Esto se ha representado, por ejemplo, en la Figura 1, en la que intersectan dos cajas rectangulares. En el diseño de piezas, resulta con frecuencia deseable retirar, o por el contrario, mantener, determinadas porciones de un cuerpo cuando ese cuerpo se ensambla con otro cuerpo. Por ejemplo, con referencia a la Figura 1, un diseñador puede desear retirar una porción del montaje, tal como la porción señalada con 10, mientras que mantiene el resto del ensamblaje. En un sistema CAD/CAM/CAE conocido, vendido por Dassault Systèmes de Suresnes, Francia, bajo la marca CATIA®, esto puede realizarse mediante una operación conocida como operación TRIM.
La primera etapa de la operación TRIM consiste en una etapa de dividisión de los volúmenes de los dos cuerpos en conjuntos de nuevos volúmenes, o celdas. Las celdas caen dentro de tres grupos: Grupo I, celdas que tienen un volumen que se origina únicamente a partir del Cuerpo A; Grupo II, celdas que tienen un volumen que se origina únicamente a partir del Cuerpo B; y Grupo III, celdas que tienen un volumen común con ambos cuerpos. Esta etapa se conoce como operación de "CortarCuerpos". Según se muestra en la Figura 1, el ensamblaje de las dos cajas rectangulares, según se muestra, da como resultado la creación de cinco "celdas". Las celdas 12 y 13 se originan exclusivamente a partir del primer cuerpo, el Cuerpo A. Las celdas 10 y 11 se originan exclusivamente a partir del segundo cuerpo, el Cuerpo B, y la celda 14 se origina a partir del Cuerpo A y del Cuerpo B. Como puede apreciarse, las cinco celdas tienen, cada una de ellas, un conjunto de caras que definen las celdas.
La segunda etapa de la operación TRIM, consiste en mantener, o retirar, celdas, con el fin de crear un ensamblaje acabado que cumpla con las especificaciones del usuario de acuerdo con operaciones Booleanas. Específicamente, si el usuario especifica que el primer cuerpo debe ser añadido al segundo cuerpo, entonces se fusionan todas las celdas. Si el usuario especifica que se debe mantener la intersección entre los dos cuerpos, entonces solamente se mantienen las celdas que pertenecen a ambos cuerpos. Si el usuario especifica que una celda del primer cuerpo debe ser retirada del ensamblaje (operación "retirar"), entonces la celda es retirada. Por el contrario, si el usuario especifica que una celda del primer cuerpo debe ser mantenida (operación "mantener"), entonces se mantiene la celda seleccionada, todas las demás celdas del primer cuerpo se retiran, se mantienen las celdas derivadas exclusivamente del segundo cuerpo, y se mantienen todas las celdas comunes a ambos cuerpos. En la práctica, el usuario elige una de las caras de una celda para definir qué celda ha de ser mantenida o eliminada.
El documento EP-361787 describe un sistema de modelación de sólidos de representación perimetral para diseño de productos, el cual utiliza el resultado de la operación de conjunto de unión no múltiple sobre modelo geométrico para actualizar el archivo de datos de representación perimetral.
El documento US-5.847.956 describe un método de ordenación de diseño automático para un sistema CAD/CAM, para crear automáticamente y visualizar una geometría que represente la interacción ordenada de dos modelos primitivos.
El documento EP-681243 describe la realización de operaciones Booleanas sobre objetos geométricos en un sistema CAD, e incluye la corrección de posiciones espaciales de puntos de intersección inconsistentes si la inconsistencia entre los puntos de intersección y la intersección correspondiente sigue el rastro.
Tales sistemas ya existentes trabajan bien siempre que la cara seleccionada por el usuario, que se origina necesariamente en un primer cuerpo, no se extienda por ambos lados del otro cuerpo, es decir, no esté dividida o cortada por una cara del otro cuerpo. Más específicamente, cuando las dos piezas están ensambladas, es frecuente el caso de que la configuración del ensamblaje dé como resultado la alteración de una o más de las caras de cada cuerpo. En este caso, se crean tres clases de caras: 1) caras que se dejan sin cambio en el proceso (caras "sin cambio" o "no impactadas"), 2) caras que se dividen en dos o más porciones (caras "cortadas"), y 3) caras que tienen la misma superficie de fondo en los dos cuerpos originales. La última categoría de caras se fusionan en una sola cara, y por lo tanto se denominan "caras simplificadas". Estos tres tipos de caras se han representado en la Figura 2, donde la cara 26 se mantiene sin cambio, puesto no ha cambiado desde su configuración como cara 20 del Cuerpo B. Las caras 27 y 30 son caras cortadas, puesto cada una de ellas es una porción de la cara 22 del Cuerpo B. Las caras 27 y 30 se extienden por los lados opuestos del Cuerpo A. De igual modo, las caras 28 y 31 son caras cortadas, que se originan a partir de la cara 23 del Cuerpo A. La cara 32 es una cara simplificada, resultante de la combinación de la cara 24 (Cuerpo A) y de la cara 21 (Cuerpo B).
En el sistema CATIA® ya existente, un usuario puede designar directamente sólo caras sin cambio para la aplicación de una operación de retirada o de mantenimiento. Si el usuario selecciona una cara dividida para designar una celda para una función de retirada o de mantenimiento, la operación se realizará sobre todas las celdas que incluyan la cara cortada resultante. Para evitar esto, el usuario debe añadir una característica, tal como un orificio, a la cara. Esto constituye un proceso que lleva tiempo, que añade una complejidad innecesaria al proceso de diseño, especialmente debido a que la característica innecesaria (por ejemplo el orificio) debe ser añadida con anterioridad al ensamblaje de las partes del cuerpo, y por lo tanto requiere una deliberación previa significativa que impide la libertad del proceso de diseño. En muchos ensamblajes, las caras sin cambio no son accesibles para el usuario, de modo que las únicas caras que pueden ser seleccionadas prácticamente, son las caras cortadas. En muchos casos, resulta simplemente más lógico para el usuario seleccionar una cara cortada en vez de una cara sin cambio. Además, en muchos casos, simplemente no existe ninguna cara sin cambio en el ensamblaje, de modo que las únicas caras que pueden ser seleccionadas son caras cortadas. La experiencia demuestra que al menos la mitad de la totalidad de operaciones TRIM requieren la selección de una cara cortada, y por tanto la adición de una característica innecesaria a la cara cortada.
La Figura 3 ilustra el problema. La Figura 3A muestra dos cuerpos intersectantes, uno principal 50 que contiene una pared 51 delgada, y uno más pequeño 52 que está previsto, por ejemplo, para fortalecer la pared delgada. El usuario desea retirar la porción 52a del cuerpo de fortalecimiento, que sobresale por el lado próximo de la pared 51. Con el sistema conocido, el usuario no tiene ninguna cara útil para seleccionar, puesto que todas las caras de la parte 52a del cuerpo que ha de ser retirada, son caras cortadas. Para lograr el resultado final deseado, mostrado en la Figura 3C, el usuario debe recurrir a una operación de desvío, mostrada en la Figura 3B, en la que el usuario añade una pequeña característica 53 a la geometría de la parte del cuerpo que desea eliminar. De esta manera, el usuario está en condiciones de etiquetar la porción particular de un cuerpo que desea retirar o mantener. Esta necesidad de añadir una característica, por otra parte inútil, es rechazada por la mayor parte de los diseñadores debido a que es una operación incómoda y no natural, y sirve para limitar el extenso uso de la operación TRIM.
Existe, por tanto, la necesidad de un sistema que permita a un usuario seleccionar una cara cortada de una celda a mantener o retirar en la operación TRIM, sin necesidad de adición alguna de partes innecesarias.
Sumario de la invención
En consecuencia, la presente invención proporciona un método para permitir a un usuario realizar una operación TRIM sin imponer al usuario la necesidad de añadir una característica geométrica, por otra parte innecesaria, al cuerpo involucrado en la opera-
ción.
De acuerdo con un aspecto de la invención, la operación TRIM empieza con la operación CortarCuerpos, como se ha descrito anteriormente, la cual divide a los dos cuerpos A y B en celdas. Según se ha expuesto, la división proporciona tres categorías de celdas: (I) celdas que se originan exclusivamente a partir de A; (II) celdas que se originan exclusivamente a partir de B; y (III) celdas que son comunes a A y B (Figura 1). De acuerdo con la invención, la siguiente etapa consiste en clasificar todas las caras en el ensamblaje resultante de la unión de los dos cuerpos ("la operación A\cupB") en tres categorías, de acuerdo con una comparación de su situación tras la operación de CortarCuerpos (la situación "hijo") con su situación previa (la situación "padre"). Esta comparación se realiza utilizando los respectivos registros de topología para su cuerpo de origen.
Según se explica aquí, se debe entender que cualquier cara del registro A\cupB tiene una cara padre en, ya sea el registro de topología para el Cuerpo A, o ya sea el registro de tipología para el Cuerpo B, o en ambos. Por otra parte, una cara padre en el registro A o el registro B, puede tener varios hijos en el registro A\cupB. En el proceso de clasificación de caras, se da categoría a las caras como se ha descrito anteriormente, es decir, caras que no están impactadas por la operación de ensamblaje, caras que son cortadas durante la operación, y que por tanto necesitan ser delimitadas para permitir al usuario seleccionar las porciones apropiadas de las mismas, y caras simplificadas.
La siguiente etapa del proceso conforme a la invención, consiste en determinar si el usuario ha elegido una operación de "mantener" o "retirar", y realizar entonces la operación especificada. Se va a describir primero una operación de retirada. Si la cara seleccionada es una cara simplificada, se informa al usuario de que la selección es un error debido a que ello daría como resultado la eliminación del ensamblaje completo. Si la cara seleccionada es una cara no impactada, el sistema identifica la celda del cuerpo a la que pertenece la cara y la elimina. Esto ya se ha conseguido en el sistema existente mencionado en la sección de Antecedentes. Si, no obstante, la cara seleccionada es una cara cortada, el método conforme a la invención consiste en utilizar la información en los registros de topología para encontrar una celda definida por la cara elegida y una cara que tenga un padre no relacionado (padre procedente de un cuerpo diferente del padre de la cara seleccionada). La celda se retira a continuación.
Una operación de mantenimiento es muy similar a una operación de retirada. En una operación de mantenimiento, se utiliza el mismo método para identificar la celda seleccionada. Se observa el grupo al que pertenece la celda seleccionada, y se retiran todas las demás celdas de ese grupo. La celda seleccionada, y las celdas de los otros grupos, se mantienen. De este modo, con referencia a la Figura 1, si se selecciona la celda 10 (Grupo II) para su mantenimiento, la celda 10 se mantiene, pero la celda 1 (Grupo II) se retira. Las celdas 12 y 13 (Grupo I), y la celda 14 (Grupo III), se mantienen.
Breve descripción de los dibujos
La Figura 1 ilustra el resultado de la operación CortarCuerpos, en la que dos cuerpos fusionados en un ensamblaje, son divididos en celdas de acuerdo con su cuerpo de origen;
La Figura 2 ilustra los dos cuerpos y sus caras con anterioridad a la fusión de los cuerpos en un ensamblaje, y las caras resultantes tras la fusión de los dos cuerpos;
La Figura 3A ilustra un ejemplo de la intersección de dos cuerpos en un ensamblaje, un cuerpo principal y cuerpo de fortalecimiento;
La Figura 3B ilustra la adición de una parte innecesaria a la cara de la porción del cuerpo de fortalecimiento que ha de ser retirada, de acuerdo con el método de la técnica anterior;
La Figura 3C ilustra el ensamblaje de la Figura 3A después de la retirada de la porción indeseada del cuerpo de fortalecimiento;
La Figura 4 es un diagrama de bloques de un sistema de ordenador susceptible de uso con la presente invención;
La Figura 5 muestra registros de topología para dos cuerpos;
La Figura 6 representa el registro de topología para el ensamblaje formado por la fusión de los dos cuerpos de la Figura 5;
La Figura 7 es una representación esquemática del método global de la presente invención;
La Figura 8 es una representación esquemática de una operación de "eliminación" de acuerdo con la presente invención;
La Figura 9 es una representación esquemática de la operación de "mantener" de acuerdo con la presente invención.
Descripción detallada de la invención
Con referencia a la Figura 4, se han representado los recursos físicos de un sistema 100 de ordenador, el cual puede ser programado de acuerdo con la presente invención. El ordenador 100 posee un procesador central 101 conectado a un bus 102 de ordenador central sobre el que proporciona señales de datos, de dirección y de control. Los procesadores 101 pueden ser cualquier microprocesador convencional de chip simple o multi-chip, de propósito general, tal como un procesador serie Pentium®, un procesador K6, un procesador MISS®, un procesador Power PC®, o un procesador ALPHA®. Adicionalmente, el procesador 101 puede ser cualquier microprocesador convencional de propósito especial, tal como un procesador de señal digital o un procesador de gráficos. El microprocesador 101 puede tener líneas convencionales de dirección, datos y control, que lo acoplan al bus 102 de ordenador central.
El ordenador 101 puede incluir un controlador de sistema 103 que posee un controlador 104 de memoria RAM integrado. El controlador de sistema 103 puede estar conectado al bus anfitrión 102, y proporcionar una interfaz para la memoria 105 de acceso aleatorio. El controlador 103 de sistema, puede proporcionar también un bus anfitrión para funciones de puenteo de bus periférico. El controlador 103 puede permitir con ello que las señales en el bus 102 de ordenador central, sean intercambiadas compatiblemente con señales del bus 110 periférico primario. El bus 110 periférico primario puede ser, por ejemplo, un bus Peripheral Component Interconnect (PCI), un bus Industry Standard Architecture (ISA), o un bus Micro-Canal. Adicionalmente, el controlador 103 puede proporcionar amortiguación de datos, y emparejamiento de velocidad de transferencia de datos entre el bus anfitrión 102 y el bus periférico 110. El controlador 103 puede permitir con ello, por ejemplo, que un procesador 101 que tenga una interfaz de 64 bits a 66 MHz, y una velocidad de transferencia de datos de 533 Mbytes/segundo, se disponga en relación de interfaz con un bus PCI 110 que tenga una trayectoria de datos que sea diferente en cuanto a anchura de bit de transferencia de datos, velocidad de reloj, o velocidad de transferencia de datos.
Dispositivos accesorios incluyendo, por ejemplo, una interfaz 11 de control de actuador de disco duro acoplada a un actuador 113 de disco duro, un controlador 112 de visualización de video acoplado a un visualizador de video 115, y un controlador 121 de teclado y ratón, pueden ser acoplados a un bus 120 y controlados por el procesador 101. El sistema de ordenador puede incluir una conexión a una red de sistema de ordenador, una intranet o una internet. Los datos y la información pueden ser enviados y recibidos por dicha conexión.
El ordenador 100 puede incluir también una memoria ROM no volátil 122 para almacenar las rutinas de software de ordenador básicas. La ROM 122 puede incluir memoria alterable, tal como EEPROM (Electronically Erasable Programmable Read Only Memory, Memoria de Sólo Lectura Programable y Borrable Electrónicamente), para almacenar datos de configuración. Las rutinas BIOS 123 pueden estar incluidas en la ROM 122 y proporcionar servicios de inicialización básica del ordenador, de comprobación de sistemas, y de entrada/salida (I/O). La BIOS 123 puede incluir también rutinas que permitan que se "cargue" el sistema operativo desde el disco 113. Ejemplos de sistemas operativos de alto nivel son: Microsoft Windows 98®, Windows NT®, UNIX, LINUX, el sistema operativo Apple MacOS®, u otros sistemas operativos.
Un sistema operativo puede ser cargado completamente en la memoria RAM 105 o puede incluir partes en la memoria RAM 105, almacenamiento en el actuador de disco 113, o almacenamiento en una posición de red. El sistema operativo puede proporcionar funcionalidad para ejecutar aplicaciones de software, sistemas de software y herramientas de sistemas de software. La funcionalidad de software puede acceder al controlador 112 de visualización de video y a otros recursos del sistema de ordenador 100 para proporcionar modelos de diseños en el visualizador 115 de ordenador de video, de acuerdo con la presente invención.
El concepto de registro de topología, según se utiliza aquí, se explica por referencia a la Figura 5. Según se muestra aquí, el registro de topología para el Cuerpo A, consiste en datos para cada una de las caras del cuerpo, es decir, (a1, a2, a3, a4, a5, a6). Las caras a4, a5 y a6 no han sido representadas debido a que se han ocultado a la vista en la Figura. De igual modo, el registro de tipología para el Cuerpo B consiste en sus seis caras (b1, b2, b3, b4, b5, b6), con caras ocultas que no se muestran en la Figura. Con referencia a la Figura 6, se ha indicado el registro de topología para el Cuerpo A\cupB, conteniendo datos para cada una de las caras del cuerpo. De este modo, por ejemplo, la cara c1 es una cara simplificada, resultante de la combinación de sus caras padre, las caras a3 y b3. La cara c2 es una cara sin cambio, y su cara padre es b1. La cara c3 es una cara partida; su cara padre es la cara b2, y su cara de partición es a1.
Con referencia a la Figura 7, se ha representado un diagrama de flujo que muestra el método de la presente invención. Según se ha representado aquí, el proceso empieza con la selección de los dos cuerpos que se someterán a la operación TRIM (60, 61). La primera etapa de la operación TRIM consiste en la operación de CortarCuerpos, la cual divide el volumen de los dos cuerpos en celdas delineadas por los contornos entre volúmenes que pertenecen exclusivamente al Cuerpo A, exclusivamente al Cuerpo B, o que son comunes a ambos cuerpos (62, 63). Los registros de topología de los dos cuerpos son comparados a continuación para determinar la historia para cada cara del cuerpo creado por la unión del Cuerpo A y del Cuerpo B, es decir, las caras "hijo" (64). El registro de topología para el Cuerpo A\cupB indica cada (cada una de las) cara(s) padre de las hijo, y de este modo indica el cuerpo al que pertenece la cara padre. La siguiente etapa del proceso consiste en comprobar si el usuario ha elegido una operación de mantener o eliminar (65, 66). Estas operaciones se encuentran descritas en las Figuras 7 y 8.
Con referencia al diagrama de flujo de la Figura 8 y al registro de topología de la Figura 6, se describe el proceso de la operación de retirada. El sistema recibe la entrada de usuario que indica que la cara ha sido seleccionada para la función de eliminación (70). En caso de que el usuario haya elegido una cara simplificada, se envía un mensaje (71) al usuario que indica que la selección tendrá como resultado la eliminación del ensamblaje completo. En caso de que el usuario haya elegido una cara no impactada (72, sí), entonces se utiliza la cara para identificar la celda que ha de ser retirada (73). En caso de que la celda haya sido ya etiquetada para su retirada, entonces no se hace nada, debido a que la celda habrá sido ya retirada, y el sistema busca la siguiente cara seleccionada (74, sí). Si la celda no ha sido etiquetada previamente para esa acción, entonces se retira del ensamblaje la celda a la que pertenece la cara seleccionada (75).
En caso de que el usuario haya seleccionado una cara impactada (es decir, una cara cortada) (72, no), entonces se buscan los registros de topología con el propósito de determinar la cara padre de la cara seleccionada (76). Una vez que ésta ha sido determinada, se busca el registro de topología A\cupB para encontrar caras adyacentes a la cara seleccionada (77). Las caras adyacentes se definen como caras en la carcasa externa del ensamblaje que comparten un borde común con una cara seleccionada. De este modo, con referencia a la Figura 6, si el usuario ha elegido la cara cortada c3, entonces las caras adyacentes a la cara c3 son la cara simplificada c1, la cara no impactada c2, la cara cortada c4, y la cara trasera del ensamblaje, la cual no es visible en la Figura, pero que tiene una forma idéntica a la cara simplificada c1. Una vez que las caras adyacentes han sido identificadas, se buscan los registros de topología para Cuerpo A y Cuerpo B con el propósito de encontrar el (los) padre(s) de la cara adyacente, y determinar si algún(os) padre(s) de la cara adyacente pertenece(n) al mismo cuerpo que el padre de la cara seleccionada (78, 79). En caso de que exista un padre común (79, sí), entonces el método avanza saltando a la siguiente cara adyacente, y buscando de nuevo los registros de topología del Cuerpo A y del Cuerpo B con el propósito de encontrar el (los) padre(s) de la cara adyacente y determinar si algún(os) padre(s) de la cara adyacente pertenece(n) al mismo cuerpo que el padre de la cara (80) seleccionada. Se investigan los registros hasta que se encuentra una cara adyacente que no tenga un mismo padre que la cara seleccionada (79, no). Esa cara se utiliza entonces para definir lo que debe ser eliminado, es decir, la celda que tiene la cara seleccionada, como vínculo, y limitada por la cara adyacente que tiene un padre diferente (81). La celda identificada se retira a continuación (75), y se repite el proceso completo para la siguiente cara seleccionada (83, sí), a menos que no haya sido seleccionada ninguna otra cara, en cuyo caso el proceso termina (83, no).
Se debe entender aquí que el proceso que antecede da como resultado la identificación específica de una celda. En la operación de eliminación, una vez que la celda ha sido identificada, ésta es retirada (Figura 8, etapa 75). El método de la operación de mantener, es idéntico en cuanto a la manera en que se identifica la celda. El método de mantener (Figura 9) difiere solamente en la etapa 75', en la que una vez que la celda seleccionada ha sido identificada, y su grupo ha sido determinado, ésta se mantiene, junto con celdas de otros grupos. Las celdas no seleccionadas del mismo grupo que la celda seleccionada (y por lo tanto el mismo cuerpo), son retiradas. Uno puede preguntarse por qué es necesario proporcionar ambas operaciones de mantenimiento y de retirada, puesto que ambas consiguen el mismo resultado. La razón es que muchos diseñadores encuentran más natural definir lo que desean mantener frente a lo que desean eliminar.
La invención, según se implementa en la operación de eliminación, va a ser descrita ahora con referencia a las Figuras 1, 5, 6 y 8. Se debe recordar que la Figura 6 es el resultado de la combinación de cuerpos A y B, mostrados en la Figura 5. En este ejemplo, el usuario decide que desea eliminar la celda más superior, etiquetada con 10 en la Figura 1. La celda 10 es una celda del Grupo II, puesto que su volumen se originó solamente a partir del Cuerpo B (Figura 1). A efectos ilustrativos, se supone que el usuario elige la cara c3, mostrada en la Figura 6, y especifica una operación de retirada. Puesto que c3 no es una cara simplificada, ni tampoco una cara sin cambio, el sistema procederá directamente a la etapa de determinar el padre de c3 (Figura 8, etapa 76). En este caso, determinará a partir del registro de topología, que el padre de c3 es b2, del Cuerpo B. El sistema identificará a continuación todas las caras que son adyacentes a la cara c3 (Figura 8, etapa 77). Las caras adyacentes son c1, c2, c4, y la cara trasera del ensamblaje, la cual es una cara simplificada idéntica en cuanto a configuración a c1, y la cual se designará como c14 en este ejemplo.
La siguiente etapa consistirá en seleccionar una de las caras adyacentes y determinar si la cara padre de esa cara adyacente pertenece al mismo cuerpo que el padre de la cara c3 (Figura 8, etapas 78, 79). Suponiendo que la cara adyacente c1 sea interrogada en primer lugar, determinará que los padres de c1 son a3 y b3 que tenían su origen en ambos cuerpos A y B. De este modo, la respuesta a la pregunta 79 de la Figura 8 será afirmativa, es decir, la cara c3 y la cara c1 tienen, cada una de ellas, un padre que se originó en el mismo cuerpo, es decir, el Cuerpo B. El mismo resultado se obtendrá para la pregunta con respecto a la cara c14. Suponiendo que la siguiente a ser comprobada sea c2, se determinará que el padre de c2 es b1, que se originó a partir del Cuerpo B. De nuevo, la respuesta a la pregunta 79 de la Figura 8 será afirmativa, es decir, la cara c3 y la cara c2 tienen, cada una de ellas, un padre que se originó en el mismo cuerpo, el Cuerpo B. Finalmente, la pregunta vuelve a la cara adyacente c4. El padre de c4 es a1. De este modo, el padre de c4 (a partir del Cuerpo A), no se ha originado a partir del mismo cuerpo que el padre de la cara c3 (Cuerpo B). Por lo tanto, la respuesta a la pregunta de la etapa 79 de la Figura 8 será negativa, con lo que el sistema identificará y etiquetará la celda 10 (Figura 1), la cual está definida por la cara c3 limitada por la cara c4, para su posterior procesamiento (Figura 8, etapa 81). En este ejemplo, la celda etiquetada será retirada posteriormente (Figura 8, etapa 75). El proceso completo se repite a continuación si el usuario ha elegido otras caras (Figura 8, etapa 83, sí), o en caso contrario, el proceso finaliza (Figura 8, etapa 83, no). En el caso ocasional de que la pregunta 79 de la Figura 8 sea contestada como afirmativa para cada cara adyacente (es decir, el padre de la cara seleccionada y el padre de la cara adyacente proceden del mismo cuerpo), y no existan más caras adyacentes para comprobar, entonces se enviará un mensaje al usuario indicando que se ha producido un error (Figura 8, etapa 82).
Supongamos que el usuario solicitó una función de mantenimiento, en vez de una función de eliminación. En ese caso, el método de determinación de la celda en cuestión, será el mismo. La diferencia estriba en que las celdas son retiradas por el sistema una vez que la celda en cuestión ha sido identificada. En este ejemplo, una vez que la celda 10 ha sido identificada, el sistema mantendrá la celda 10, una celda del Grupo II, pero eliminará el resto de celdas del Grupo II, es decir, la celda 11 (Figura 9, etapa 75'). Adicionalmente, el sistema mantendrá las celdas del Grupo I (12 y 13) y las celdas del Grupo III (14).
La invención puede ser implementada con circuitería electrónica digital, o en hardware de ordenador, microprogramación, software, o mediante una combinación de los mismos. Un aparato de la invención puede ser implementado en un producto de programa de ordenador materializado tangiblemente en un dispositivo de almacenamiento leíble con máquina, para su ejecución mediante un procesador programable, y las etapas de método de la invención pueden ser realizadas mediante un procesador programable que ejecute un programa de instrucciones para la realización de las funciones de la invención operando sobre los datos de entrada y generando una salida.
La invención puede ser implementada ventajosamente en uno o más programas de ordenador que sean ejecutables en un sistema programable, incluyendo al menos un procesador programable acoplado para recibir datos e instrucciones desde, y transmitir datos e instrucciones a, al menos un dispositivo de salida. El programa de aplicación puede ser implementado en un lenguaje de programación de alto nivel orientado al procedimiento o al objeto, o en lenguaje máquina o de ensamblaje, si se desea; en cualquier caso, el lenguaje puede consistir en un lenguaje compilado o interpretado.
Por lo general, un procesador recibirá instrucciones y datos desde una memoria de sólo lectura y/o una memoria de acceso aleatorio. Los dispositivos de almacenamiento adecuados para materializar tangiblemente las instrucciones y datos de programa de ordenador, incluyen todas las formas de memoria no volátil, incluyendo a título de ejemplo dispositivos de memoria semiconductores, tales como dispositivos EPROM, EEPROM y de memoria flash; discos magnéticos tales discos duros internos y discos extraíbles; discos magneto-ópticos; y discos CD-ROM. Cualquiera de los que anteceden puede ser suplementado con, o incorporado en, ASICs especialmente diseñados (circuitos integrados de aplicación específica).
Un número de realizaciones de la presente invención han sido descritas en lo que antecede. Se comprenderá que pueden introducirse diversas modificaciones sin apartarse del alcance de las reivindicaciones que siguen.

Claims (13)

1. Un método de diseño asistido por ordenador, que comprende:
a) obtener (60) un primer conjunto de datos que especifiquen la configuración física de un primer cuerpo (A), comprendiendo dicho primer conjunto de datos un conjunto de caras (23, 24, 25) de dicho primer cuerpo;
b) obtener (61) un segundo conjunto de datos que especifiquen la configuración física de un segundo cuerpo (B), comprendiendo dicho segundo conjunto de datos un conjunto de caras (20, 21, 22) de dicho segundo cuerpo;
c) definir (62) un tercer conjunto de datos que especifiquen un tercer cuerpo que comprende una combinación del primero (A) y del segundo (B) cuerpos, comprendiendo dicho tercer conjunto de datos un conjunto de caras (26-32) de dicho tercer cuerpo, e indicando dicho tercer conjunto de datos, para cada cara de dicho tercer cuerpo, la cara del primer o segundo cuerpo a partir de la cual se originó la cara del tercer cuerpo;
d) recibir una entrada (70; 70') que selecciona una cara de dicho tercer cuerpo;
e) determinar (76; 76') la cara del primer o segundo cuerpo a partir de la cual se originó la citada cara seleccionada de dicho tercer cuerpo;
f) identificar (77, 78, 79; 77', 78', 79') una cara de dicho tercer cuerpo, adyacente a la cara seleccionada, que se originó a partir de una cara perteneciente a un cuerpo distinto del cuerpo correspondiente a la cara a partir de la cual se originó la cara seleccionada, y
g) especificar (81; 81'), para su posterior procesamiento, la porción de dicho tercer cuerpo definida por la citada cara seleccionada y por dicha cara adyacente.
2. El método de la reivindicación 1, que comprende además:
recibir una entrada (66) instruyendo que dicha porción del citado tercer cuerpo especificado para su procesamiento adicional, sea retirada de dicho tercer cuerpo, y
retirar (75) la citada porción de dicho tercer cuerpo.
3. El método de la reivindicación 1, que comprende además: recibir una entrada (65) instruyendo que dicha porción del citado tercer cuerpo especificada para su procesamiento adicional, sea mantenida como parte de dicho tercer cuerpo;
determinar si la citada porción de dicho tercer cuerpo se originó a partir de dicho primer cuerpo o de dicho segundo cuerpo, y
retirar (75') de dicho tercer cuerpo, todas las porciones de dicho tercer cuerpo que se originaron únicamente a partir del cuerpo correspondiente a la porción de dicho tercer cuerpo especificada para procesamiento adicional, excepto la citada porción especificada para procesamiento adicional.
4. El método de la reivindicación 1, en el que la etapa de definir comprende, además, dividir el citado tercer cuerpo en tres categorías de celdas, comprendiendo las tres citadas categorías celdas (14) que abarcan el espacio común a ambos primero (A) y segundo (B) cuerpos, celdas (12, 13) que abarcan el espacio derivado únicamente del primer cuerpo (A), y celdas (10, 11) que abarcan el espacio derivado únicamente del segundo cuerpo (B); comprendiendo
además el proceso:
recibir (65) una entrada instruyendo que la citada porción de dicho tercer cuerpo especificada para procesamiento adicional, sea mantenida como parte de dicho tercer cuerpo;
retirar (75') de dicho tercer cuerpo, todas las celdas que estén dentro de la categoría a la que pertenece dicha celda especificada para procesamiento adicional, excepto la citada celda especificada.
5. El método de una de las reivindicaciones 1 a 4, en el que la etapa de identificar comprende:
determinar (77; 77') un conjunto de caras de dicho objeto que sean adyacentes a dicha cara seleccionada;
buscar (78, 79, 80; 78', 79', 80') el citado conjunto de caras adyacentes hasta que se encuentre una cara adyacente que tenga una cara padre que no se origine a partir del mismo cuerpo del que se originó la cara padre de dicha cara seleccionada.
6. El método de una de las reivindicaciones 1 a 5, que comprende además:
visualizar un conjunto que comprende la combinación de un primer y un segundo cuerpo, en el que dicha visualización indica gráficamente las porciones de dicho conjunto que se originaron a partir del citado primer cuerpo.
7. Código ejecutable por ordenador almacenado en un medio leíble con ordenador, causando el código que el ordenador realice etapas que comprenden:
a) obtener (60) un primer conjunto de datos que especifiquen la configuración física de un primer cuerpo (A), comprendiendo dicho primer conjunto de datos un conjunto de caras (23, 24, 25) de dicho primer cuerpo;
b) obtener (61) un segundo conjunto de datos que especifiquen la configuración física de un segundo cuerpo (B), comprendiendo dicho segundo conjunto de datos un conjunto de caras (20, 21, 22) de dicho segundo cuerpo;
c) definir (62) un tercer conjunto de datos que especifiquen un tercer cuerpo que comprende una combinación del primero (A) y del segundo (B) cuerpos, comprendiendo dicho tercer conjunto de datos un conjunto de caras (26-32) de dicho tercer cuerpo, e indicando dicho tercer conjunto de datos, para cada cara de dicho tercer cuerpo, la cara del primer o segundo cuerpo a partir de la cual se originó la cara del tercer cuerpo;
d) recibir una entrada (70; 70') que selecciona una cara de dicho tercer cuerpo;
e) determinar (76; 76') la cara del primer o segundo cuerpo a partir de la cual se originó la citada cara seleccionada de dicho tercer cuerpo;
f) identificar (77, 78, 79; 77', 78', 79') una cara de dicho tercer cuerpo, adyacente a la cara seleccionada, que se originó a partir de una cara perteneciente a un cuerpo distinto del cuerpo correspondiente a la cara a partir de la cual se originó la cara seleccionada, y
g) especificar (81; 81'), para su posterior procesamiento, la porción de dicho tercer cuerpo definida por la citada cara seleccionada y por dicha cara adyacente.
8. El código ejecutable por ordenador de la reivindicación 7, provocando además dicho código que un ordenador emprenda etapas que comprenden:
recibir una entrada (66) instruyendo que la citada porción de dicho tercer cuerpo especificada para su procesamiento adicional, sea retirada de dicho tercer cuerpo, y
retirar (75) la citada porción de dicho tercer cuerpo.
9. El código ejecutable por ordenador de la reivindicación 7, provocando además dicho código que un ordenador realice etapas que comprenden:
recibir una entrada (65) instruyendo que dicha porción del citado tercer cuerpo especificada para su procesamiento adicional, se mantenga como parte de dicho tercer cuerpo;
determinar si la citada porción de dicho tercer cuerpo se originó a partir de dicho primer cuerpo o de dicho segundo cuerpo, y
retirar (75') de dicho tercer cuerpo, todas las porciones de dicho tercer cuerpo que se originaron únicamente a partir del cuerpo correspondiente a la porción de dicho tercer cuerpo especificada para procesamiento adicional, excepto la citada porción especificada para procesamiento adicional.
10. El código ejecutable por ordenador de la reivindicación 7, que provoca además que el ordenador realice las etapas de:
dividir el citado tercer cuerpo en tres categorías de celdas, comprendiendo las tres citadas categorías celdas (14) que abarcan el espacio común a ambos primero (A) y segundo (B) cuerpos, celdas (12, 13) que abarcan el espacio derivado únicamente del primer cuerpo (A), y celdas (10, 11) que abarcan el espacio derivado únicamente del segundo cuerpo (B); recibir (65) una entrada instruyendo que la citada porción de dicho tercer cuerpo especificada para procesamiento adicional, sea mantenida como parte de dicho tercer cuerpo;
retirar (75') de dicho tercer cuerpo, todas las celdas que estén dentro de la categoría a la que pertenece dicha celda especificada para procesamiento adicional, excepto la citada celda especificada.
11. El código ejecutable por ordenador de una de las reivindicaciones 7 a 10, que provoca además que el ordenador, en la etapa de identificación, realice las etapas de:
determinar (77; 77') un conjunto de caras de dicho objeto que sean adyacentes a dicha cara seleccionada;
buscar (78, 79, 80; 78', 79', 80') el citado conjunto de caras adyacentes hasta que se encuentre una cara adyacente que tenga una cara padre que no se origine a partir del mismo cuerpo del que se originó la cara padre de dicha cara seleccionada.
12. El código ejecutable por ordenador de una de las reivindicaciones 7 a 11, que provoca además que el ordenador realice la etapa de visualizar un conjunto que comprende la combinación de un primer y un segundo cuerpo, en el que dicha visualización indica gráficamente las porciones de dicho conjunto que se originaron a partir del citado primer cuerpo.
13. Una señal de datos de ordenador materializada en una corriente de datos digitales, que comprende datos que incluyen la representación de un ensamblaje, comprendiendo dicho ensamblaje la combinación de un primer cuerpo (A) y un segundo cuerpo (B), en el que una porción de dicho ensamblaje que representa una pieza de uno de dichos primer o segundo cuerpos, ha sido etiquetada para su procesamiento adicional, teniendo dicha pieza su origen solamente en uno de los cuerpos primero o segundo, en el que la señal de datos de ordenador se genera mediante el método de una de las reivindicaciones 1 a 6.
ES00402717T 1999-10-08 2000-10-03 Operacion trim mejorada basada en la definicion de cara incrementada. Expired - Lifetime ES2242587T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/415,888 US6654011B1 (en) 1999-10-08 1999-10-08 Trim operation based on enhanced face definition
US415888 1999-10-08

Publications (1)

Publication Number Publication Date
ES2242587T3 true ES2242587T3 (es) 2005-11-16

Family

ID=23647632

Family Applications (1)

Application Number Title Priority Date Filing Date
ES00402717T Expired - Lifetime ES2242587T3 (es) 1999-10-08 2000-10-03 Operacion trim mejorada basada en la definicion de cara incrementada.

Country Status (7)

Country Link
US (1) US6654011B1 (es)
EP (1) EP1091324B1 (es)
JP (1) JP3606372B2 (es)
AT (1) ATE294979T1 (es)
CA (1) CA2322071C (es)
DE (2) DE60019867T2 (es)
ES (1) ES2242587T3 (es)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8654145B2 (en) * 2005-06-01 2014-02-18 Siemens Product Lifecycle Management Software Inc. Binding using rollback
KR100790892B1 (ko) * 2006-10-18 2008-01-02 삼성전자주식회사 투명 객체의 화질 향상을 위한 3차원 그래픽스 데이터렌더링 방법 및 장치

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0623989B2 (ja) * 1988-09-30 1994-03-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 境界表現ソリツド・モデリング・システム
EP0681243B1 (en) * 1994-04-28 1998-12-02 Hewlett-Packard GmbH Method for performing boolean operations on geometric objects in a computer-aided design system
US5847956A (en) * 1996-09-26 1998-12-08 Computervision Corporation Automatic trimming of geometric objects in CAD/CAM systems

Also Published As

Publication number Publication date
ATE294979T1 (de) 2005-05-15
CA2322071C (en) 2005-04-05
US6654011B1 (en) 2003-11-25
DE1091324T1 (de) 2001-10-11
DE60019867D1 (de) 2005-06-09
JP2001142936A (ja) 2001-05-25
EP1091324B1 (en) 2005-05-04
EP1091324A3 (en) 2004-01-02
DE60019867T2 (de) 2006-02-23
EP1091324A2 (en) 2001-04-11
JP3606372B2 (ja) 2005-01-05
CA2322071A1 (en) 2001-04-08

Similar Documents

Publication Publication Date Title
US11203157B2 (en) Three-dimensional printing preparation
US6654027B1 (en) Tool for three-dimensional analysis of a drawing
US9030475B2 (en) Method of computer-aided design of a modeled object having several faces
Sapidis et al. Delaunay triangulation of arbitrarily shaped planar domains
US6812924B2 (en) Apparatus and method for obtaining shape data of analytic surface approximate expression
Eggert et al. Computing the perspective projection aspect graph of solids of revolution
CN106558091A (zh) 用于遍历树的设备和遍历树的方法
US7392498B1 (en) Method and apparatus for implementing a pre-implemented circuit design for a programmable logic device
CN110059332A (zh) 包含晶格结构的3d部件的3d有限元网格的设计
Venkataraman et al. Reconstruction of feature volumes and feature suppression
Tanase et al. Polygon decomposition based on the straight line skeleton
US20040268288A1 (en) Coding of fpga and standard cell logic in a tiling structure
JP2000090144A (ja) 薄板金属製作設備全体にわたって設計製作情報を分配する装置および方法
ES2242587T3 (es) Operacion trim mejorada basada en la definicion de cara incrementada.
US10719982B2 (en) Surface extrction method, apparatus, and non-transitory computer readable storage medium thereof
US8918751B1 (en) Methods, systems, and articles of manufacture for implementing physical design decomposition with custom connectivity
Qamhiyah et al. Geometric reasoning for the extraction of form features
US20080295042A1 (en) System for delay reduction during technology mapping in fpga
Khvatov et al. Development of an IP-cores Libraries as Part of the Design Flow of Integrated Circuits on FPGA
US8826214B2 (en) Implementing Z directional macro port assignment
Owens Pinter et cetera
KR20000072426A (ko) 반도체 기판상의 3차원 구조물에 대한 비구조형 사면체메쉬 생성 시스템 및 방법
CN110136261A (zh) 一种巷道虚拟现实快速建模方法
KR20030026300A (ko) 3차원 구조물에 대한 비구조형 사면체 메쉬 생성 방법
PI et al. Development of a nationally competitive program in computer vision technologies for effective human-computer interaction in virtual environments