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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three-dimensional [3D] modelling for computer graphics
- G06T17/10—Constructive 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.
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.
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.
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.
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.
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:
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.
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)
| 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)
| 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 |
-
1999
- 1999-10-08 US US09/415,888 patent/US6654011B1/en not_active Expired - Lifetime
-
2000
- 2000-10-03 DE DE60019867T patent/DE60019867T2/de not_active Expired - Lifetime
- 2000-10-03 AT AT00402717T patent/ATE294979T1/de not_active IP Right Cessation
- 2000-10-03 EP EP00402717A patent/EP1091324B1/en not_active Expired - Lifetime
- 2000-10-03 CA CA002322071A patent/CA2322071C/en not_active Expired - Lifetime
- 2000-10-03 DE DE1091324T patent/DE1091324T1/de active Pending
- 2000-10-03 ES ES00402717T patent/ES2242587T3/es not_active Expired - Lifetime
- 2000-10-10 JP JP2000309793A patent/JP3606372B2/ja not_active Expired - Lifetime
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 |