ES2351272T3 - Generación automática de instrucciones de construcción para modelos de elementos de construcción. - Google Patents
Generación automática de instrucciones de construcción para modelos de elementos de construcción. Download PDFInfo
- Publication number
- ES2351272T3 ES2351272T3 ES08717863T ES08717863T ES2351272T3 ES 2351272 T3 ES2351272 T3 ES 2351272T3 ES 08717863 T ES08717863 T ES 08717863T ES 08717863 T ES08717863 T ES 08717863T ES 2351272 T3 ES2351272 T3 ES 2351272T3
- Authority
- ES
- Spain
- Prior art keywords
- construction
- elements
- model
- building
- connection
- 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.)
- Active
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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating three-dimensional [3D] models or images for computer graphics
- G06T19/20—Editing of three-dimensional [3D] images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2008—Assembling, disassembling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Toys (AREA)
- Electrophonic Musical Instruments (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
Un método, ejecutado por ordenador, para generar instrucciones de construcción para un modelo de elementos de construcción, incluyendo el modelo una pluralidad de elementos de construcción, siendo las instrucciones de construcción indicativas de un orden secuencial de pasos de construcción para construir el modelo de elementos de construcción, incluyendo cada paso de la construcción añadir al menos un elemento de construcción al modelo de elementos de construcción; cuyo método comprende: - determinar, a partir de una representación digital del modelo de elementos de construcción, al menos una secuencia de pasos de deconstrucción para deconstruir, al menos parcialmente, el modelo de elementos de construcción para obtener elementos de construcción; incluyendo cada paso de deconstrucción retirar al menos un elemento de construcción del modelo de elementos de construcción; - determinar al menos un paso de construcción del orden secuencial de pasos de construcción basándose en dicha al menos una pluralidad de pasos de deconstrucción; en el que la determinación de la secuencia de pasos de deconstrucción comprende ejecutar un proceso iterativo, en el que una repetición del proceso iterativo comprende: - obtener un modelo parcial previo resultante de una repetición previa; - determinar al menos un elemento de construcción a desconectar del modelo parcial previo para obtener como resultado un nuevo modelo parcial; en el que la determinación de dicho al menos un elemento de construcción a desconectar del modelo parcial previo, incluye: - determinar un grupo de subconjuntos candidatos del modelo parcial previo, incluyendo cada subconjunto candidato elementos de construcción respectivos interconectados del modelo parcial previo; en el que la determinación del grupo de subconjuntos candidatos comprende seleccionar los subconjuntos candidatos de acuerdo con un segundo grupo de criterios de selección; y en el que al menos uno del segundo grupo de criterios de selección incluye determinar una fuerza de conexión de la conexión de uno o más de los subconjuntos candidatos con el modelo parcial previo; - seleccionar, de acuerdo con un primer grupo de criterios de selección predeterminados, un único elemento de construcción o uno del determinado grupo de subconjuntos candidatos a ser desconectados del modelo parcial previo, para tener como resultado el nuevo modelo parcial.
Description
Generación automática de instrucciones de
construcción para modelos de elementos de construcción.
El presente invento se refiere a la generación
de instrucciones de construcción para modelos de elementos de
construcción.
Existen varios tipos conocidos de conceptos para
la generación de modelos de equipos físicos de juguete para
construcción. En especial, los conceptos modulares o
semi-modulares son muy populares ya que
proporcionan una experiencia de juego interesante y exigente.
Típicamente, estos conceptos proporcionan un equipo de elementos de
construcción prefabricados que pueden interconectarse, unos con
otros, de algún modo predeterminado mediante elementos de conexión
de los elementos prefabricados. Los elementos de construcción
prefabricados recuerdan objetos bien conocidos, destinados a una
tarea específica de generación de modelos. Así, por ejemplo, para
construir un modelo de una casa, los elementos de construcción
pueden parecerse a ladrillos, tejas, puertas y ventanas. La
finalidad de seleccionar lo elementos de construcción de esta
manera es reducir significativamente el trabajo que supone la
construcción de un modelo de una casa, en comparación con una
situación en la que todos los detalles de la casa han de definirse
cada vez que debe construirse un nuevo modelo. Sin embargo, la
libertad completa para construir una casa u otro objeto se ve
comprometida por la sencillez a la hora de construir el modelo.
Por ejemplo, los equipos de construcción de
juguete disponibles bajo el nombre LEGO comprenden una pluralidad de
diferentes tipos de elementos de construcción interconectables con
protuberancias y cavidades correspondientes como elementos de
conexión. Los elementos de conexión están dispuestos de acuerdo con
diseños de retícula regulares, permitiendo por tanto una amplia
variedad de interconexiones entre los elementos de
construcción.
Típicamente, tales equipos de construcción de
juguete comprenden un equipo de elementos de construcción adecuados
para crear uno o más modelos de elementos de construcción, por
ejemplo, un animal, un robot u otra criatura, un coche, un avión,
una nave espacial, un edificio o similares. Típicamente, un equipo
de construcción incluye, además, instrucciones de construcción
impresas o instrucciones de montaje que ilustran cómo construir un
cierto modelo con los elementos de construcción del equipo. No
obstante, una característica interesante de tales equipos de
construcción reside en que inspiran a los niños para que creen sus
propios modelos.
Típicamente, las instrucciones de construcción
incluidas en un equipo de construcción de juguete comprenden una
secuencia de imágenes que ilustran, paso a paso, cómo y en que orden
añadir los elementos de construcción al modelo. Tales instrucciones
de construcción tienen la ventaja de que son fáciles de seguir,
incluso para niños que no tengan una gran experiencia en los equipos
de construcción de juguete y/o sin ser lectores expertos.
En general, una instrucción de construcción para
un modelo puede considerarse como una secuencia de pasos y pasos
secundarios de construcción en los que se ensamblan los elementos de
construcción. La secuencia comienza con uno más elementos de
construcción iniciales y se desarrolla en una serie de pasos hasta
conseguir el montaje total que es una construcción del modelo. En
cada paso, se añade un único elemento de construcción o un
subconjunto de elementos de construcción. Para los fines de la
presente descripción, el término "subconjunto" se refiere a un
subgrupo de elementos de construcción interconectados del modelo de
elementos de construcción. Añadir un subconjunto en lugar de un
elemento de construcción puede suponer, así, que a la instrucción de
construcción principal se añada una instrucción de construcción
subordinada para ese subconjunto. Para los fines de la presente
descripción, tal instrucción de construcción subordinada se
denominará, también, paso secundario. Así, la secuencia de pasos
puede representarse, generalmente, como un árbol de pasos en el que
cada rama contiene instrucciones de construcción
subordi-
nadas.
nadas.
Previamente, tales instrucciones de construcción
han sido generadas manualmente, por ejemplo determinando manualmente
los pasos de construcción razonables, dibujando las instrucciones
correspondientes en un sistema CAD y, finalmente, imprimiendo las
instrucciones así generadas. Aún cuando dichas instrucciones de
construcción son de gran calidad, es decir, son fáciles de seguir,
los anteriores procesos de producción tienen la desventaja de que
requieren una gran experiencia y suponen una fuerte carga de
trabajo. En consecuencia, las instrucciones de construcción sólo
existen, típicamente, para modelos de elementos de construcción
diseñados por el fabricante de los elementos de construcción. En
particular, los métodos de la técnica anterior para generar
instrucciones de construcción no resultan adecuados para los niños
que desean producir instrucciones de construcción para sus propios
modelos, las cuales les permitirían compartir sus modelos con sus
amigos.
Más recientemente, las instrucciones de
construcción se han generado en forma electrónica en lugar de en
forma impresa. En particular, instrucciones de construcción animadas
en las que los pasos de construcción más complicados son animados.
Sin embargo, la producción de tales instrucciones de construcción
sigue suponiendo que el diseño y el dibujo/animación de los pasos
de construcción sean realizados por diseñadores expertos.
\newpage
En un sistema complejo, tal como el sistema
LEGO, el número de posibles instrucciones de construcción para un
modelo crece exponencialmente con el número de elementos de
construcción del modelo. En consecuencia, para un proceso
automático de generación de instrucciones de construcción, el
determinar un juego de instrucciones de alta calidad de entre el
número, virtualmente infinito de posibles instrucciones de
construcción para un modelo dado supone, generalmente, un problema.
Así, es deseable proporcionar un proceso automatizado que genere
instrucciones factibles, fáciles de seguir, incluso para modelos
complejos. Además, es deseable proporcionar un proceso tal que
genere instrucciones de construcción dentro de un tiempo razonable
en un hardware de computación razonable.
Además, es deseable proporcionar un método para
generar instrucciones de construcción que sea adecuado para niños
que deseen producir instrucciones de construcción para sus propios
modelos, lo que les permitirla compartir sus modelos con sus amigos
y mejorar, además, la experiencia del juego. En particular, es
deseable proporcionar métodos que requieran poca o ninguna
interacción del usuario y entradas que estén fácilmente disponibles
para el usuario.
El diseño de instrucciones de construcción paso
a paso, efectivas, de fácil comprensión, ha sido, también, objeto de
cierta investigación. La publicación de Internet "Diseño de
instrucciones de montaje paso a paso efectivas", de M. Agrawala
y otros, recuperada de
http://graphics.stanford.edu/papers/assembly instructions/,
describe principios de diseño para instrucciones de montaje
efectivas basados en la psicología cognitiva. Este articulo
describe, además, un sistema computerizado para generar
instrucciones de montaje basándose en información acerca de cada uno
de los objetos a montar, en la orientación del montaje y en el
punto de vista de la cámara para la interpretación gráfica,
información sobre agrupamiento, información acerca de sujetadores,
la importancia de las piezas, simetrías y acerca de limitaciones en
el orden de montaje. A base de esta entrada, el sistema calcula una
secuencia de pasos de montaje basándose en un algoritmo de búsqueda
extensiva que tiene en consideración las restricciones dadas. Un
problema del mencionado sistema de la técnica anterior es que es
costoso desde el punto de vista de la computación y que requiere
datos de entrada complicados, exigiendo así un elevado grado de
pensamiento abstracto por parte del usuario.
La solicitud de patente internacional publicada
WO 2005/124696 describe un proceso automatizado para la generación
de instrucciones de construcción para un modelo de construcción
virtual, en el que las instrucciones de construcción utilizan un
orden secuencial de pasos determinado por el orden de los pasos de
construcción seguidos por un usuario durante la construcción del
modelo virtual en un entorno de construcción virtual. Aún cuando
este método de la técnica anterior proporciona un proceso
automatizado, fácil de utilizar, continúa existiendo el problema
que supone incrementar la calidad de las instrucciones de
construcción generadas automáticamente.
La tesis "Generación asistida por ordenador de
instrucciones de construcción para modelos LEGO", de Jacob
Allerelli, del Departamento de matemáticas y ciencia de los
ordenadores, de la University of Southern Denmark, de Junio de 2006,
describe un algoritmo que es capaz de generar instrucciones para un
modelo dado. El algoritmo se basa en un enfoque destructivo, en el
que los ladrillos se retiran del modelo y el orden inverso al que
fueron retirados los ladrillos constituye los pasos para las
instrucciones de construcción. El encontrar los ladrillos separables
se basa en funciones de ponderación y de detección de colisiones.
Continúa existiendo el problema que supone mejorar la calidad de
este algoritmo.
El presente invento se refiere a un método,
puesto en práctica mediante ordenador, para la generación de
instrucciones de construcción de acuerdo con las reivindicaciones 1
y 19, un sistema de tratamiento de datos de acuerdo con la
reivindicación 21, un producto de datos de ordenador de acuerdo con
la reivindicación 22 y una señal de datos de ordenador de acuerdo
con la reivindicación 23.
Por ello, se ha conseguido poder determinar de
forma eficaz una secuencia de pasos de construcción determinando
una o más secuencias de pasos de deconstrucción.
La deconstrucción de una construcción para un
modelo puede considerarse como una secuencia/proceso iterativo de
pasos y pasos secundarios siguiendo la cual se desmontan los
elementos de construcción. La secuencia se inicia con el modelo
terminado y avanza a través de una serie de pasos. En una
deconstrucción completa, el proceso continúa hasta que todos los
elementos de construcción han sido desconectados del modelo,
mientras que en una deconstrucción parcial, el proceso termina
cuando sólo queda un modelo parcial residual predeterminado. En
cada paso, se desconecta un solo elemento de construcción o un
subconjunto de elementos de construcción. Así, la desconexión de un
subconjunto en lugar de un elemento de construcción puede suponer
una deconstrucción de la construcción subordinada para ese
subconjunto que ha de ser asociada con la deconstrucción principal
de la construcción. Dicha deconstrucción subordinada de la
construcción se denominará, también, paso secundario. Así, como
para montar la construcción, la secuencia de pasos del proceso de
deconstrucción consiste, generalmente, en una estructura
arboriforme de pasos en la que cada rama contiene deconstrucciones
subordinadas de la construcción.
Cuando puede encontrarse una deconstrucción de
una construcción, esta información puede utilizarse en el proceso de
generación de una secuencia de construcción. Por ello, pueden
determinarse los pasos de la construcción en respuesta a un paso
para determinar una secuencia de deconstrucción. Además, se ha visto
que es posible buscar una secuencia de deconstrucción que cumpla
ciertos criterios de selección mediante recursos de computación
razonables, obteniéndose como resultado instrucciones de
construcción de gran calidad.
Además, se ha encontrado que las instrucciones
de construcción generadas mediante este método sencillo desde el
punto de vista del cálculo, son fáciles de comprender por los
usuarios, en particular por los niños.
Además, como la única entrada a la instrucción
de construcción es la representación digital de un modelo de
elementos de construcción, por ejemplo, grabada durante un proceso
de generación de un modelo virtual, las instrucciones de
construcción son fáciles de generar por un usuario sin exigirle que
sea un experto en diseño ni que esté en posesión de un conocimiento
abstracto de geometría, restricciones, etc. Además, la generación
de las instrucciones de construcción es independiente del orden que
el usuario ha seguido para construir realmente el modelo virtual.
Esto puede ser ventajoso ya que un entorno de construcción virtual
puede permitir el seguimiento de los pasos de construcción en un
orden que puede ser difícil o, incluso, imposible de seguir en el
caso de un modelo físico en el mundo real.
Si puede encontrarse la deconstrucción de una
construcción, se la puede invertir, obteniéndose una instrucción
de construcción, al igual que es posible deconstruir un modelo
siguiendo hacia atrás una instrucción de construcción. Por ello,
puede determinarse de manera eficaz una secuencia de pasos de
construcción determinando una o más secuencias de pasos de
deconstrucción e invirtiendo luego el orden de los pasos de
deconstrucción a fin de obtener una secuencia de pasos de
construcción. Una ventaja reside en que este proceso solamente
requiere la generación de una única secuencia de
deconstrucción.
En una realización alternativa, cada paso de
construcción se determina de tal modo que el modelo parcial
resultante puede obtenerse mediante una deconstrucción parcial del
modelo completo. En consecuencia, se proporciona un proceso eficaz
para la generación de instrucciones de construcción mediante un
proceso de construcción en el que en cada paso de construcción se
simula una deconstrucción a partir del modelo terminado hasta la
etapa de construcción corriente.
Esta realización funciona construyendo
(partiendo de un conjunto vacío de ladrillos, terminando con el
modelo acabado) en lugar de basarse totalmente en una
deconstrucción. Como se trata de una forma más intuitiva de que un
usuario considere las instrucciones de construcción, hace posibles
modos más fáciles de utilizar y más potentes de permitir que los
usuarios interaccionen con el proceso de generación de instrucciones
de construcción. Un ejemplo de interacción del usuario podría
consistir en poner objeciones a cualquier ladrillo sugerido y
solicitar una sugerencia alternativa. Esta sencilla interacción les
permite a los usuarios, de hecho, generar instrucciones de
construcción con una calidad particularmente alta en un tiempo muy
corto y con una necesidad mínima de interacción del usuario.
Además, el generador puede garantizar que nunca se violen las
restricciones importantes y que, en consecuencia, independientemente
de las objeciones por parte del usuario, solamente se realicen
sugerencias razonables.
En consecuencia, en una realización, el paso de
determinar un paso de construcción subsiguiente puede incluir
recibir una entrada de usuario, por ejemplo, en forma de, al menos,
una entre sugerencia, aprobación y rechazo de un paso de
construcción.
El paso de determinar si el modelo de elementos
de construcción puede ser deconstruido mediante una secuencia de
pasos de deconstrucción para deconstruir el modelo de elementos de
construcción, dando como resultado el segundo modelo parcial, puede
incluir el paso de determinar si el modelo de elementos de
construcción puede ser así deconstruido siguiendo una secuencia de
pasos de deconstrucción, en la que cada paso de deconstrucción es
seleccionado por uno o más grupos predeterminados de criterios de
selección. Por ello, se proporciona un método eficaz que se ha
encontrado que proporciona instrucciones de construcción de alta
calidad.
De acuerdo con el invento, la determinación del
orden secuencial de los pasos de deconstrucción, comprende realizar
un proceso iterativo, en el que una repetición del proceso iterativo
comprende:
- -
- obtener un modelo parcial previo resultante de una repetición previa;
- -
- determinar al menos un elemento de construcción para desconectarlo del modelo parcial previo obteniendo como resultado un nuevo modelo parcial.
\vskip1.000000\baselineskip
Por ello, el proceso comienza con el modelo
completo y genera una secuencia de modelos parciales retirando, en
cada repetición, uno o más elementos de construcción. En tanto que
una búsqueda de instrucciones de construcción de alta calidad exige,
generalmente, un seguimiento en retroceso y, por ello, resulta ser
muy costoso desde el punto de vista de los cálculos e, incluso,
prohibitivamente caro para grandes modelos, se deduce que puede
conseguirse la deconstrucción de una construcción mediante un
algoritmo de un paso, mucho menos exigente para el hardware de
computación.
En general, en un sistema de construcción
complejo tal como el sistema de construcción de juguete
comercializado con el nombre de LEGO, puede que no sea posible que
algunos modelos sean deconstruidos elemento de construcción por
elemento de construcción, ya que algunos elementos de construcción
pueden bloquearse entre sí de tal modo que no resulte posible
desconectar un único elemento de construcción. Sin embargo, todos
los modelos, en general, pueden desconectarse retirando en cada paso
un solo elemento de construcción o un subconjunto de elementos de
construcción.
\newpage
\global\parskip0.900000\baselineskip
En consecuencia, de acuerdo con el invento, la
determinación de, al menos, un elemento de construcción
incluye:
- -
- determinar un grupo de subconjuntos candidatos del modelo parcial previo, incluyendo cada subconjunto candidato elementos de construcción respectivos interconectados del modelo parcial previo;
- -
- seleccionar de acuerdo con un primer grupo de criterios de selección predeterminados un único elemento de construcción o uno del determinado grupo de subconjuntos candidatos a desconectar del modelo parcial previo para obtener como resultado el nuevo modelo parcial.
\vskip1.000000\baselineskip
Por ello, de acuerdo con el invento, los
subconjuntos son tratados como pseudo-elementos de
construcción para los fines de la secuencia de deconstrucción. Sin
embargo, el número de posibles subconjuntos de un modelo de
elementos de construcción crece exponencialmente con el número de
elementos de construcción del modelo. En consecuencia, incluso para
modelos de dimensiones moderadas, un enfoque descendente para buscar
a través de todos los subconjuntos posibles y seleccionar, dados
ciertos criterios, un subconjunto a desconectar, es
prohibitivamente costoso desde el punto de vista de la computación,
aún cuando dicho enfoque pueda ser perfectamente factible cuando se
considere, exclusivamente, la retirada de elementos de construcción
únicos.
En algunas realizaciones, el método descrito en
este documento combina el antes mencionado enfoque descendente con
un enfoque ascendente para generar subconjuntos candidatos a ser
sometidos a la búsqueda descendente. La generación de subconjuntos
candidatos puede realizarse de acuerdo con un grupo de uno o más
sub-procesos de generación o un segundo grupo de
criterios de selección, dando como resultado, así, un subgrupo de
subconjuntos candidatos del grupo de todos los subconjuntos
posibles del modelo. Por ello, se utiliza el enfoque ascendente
para reducir el espacio de búsqueda antes de llevar a cabo el
enfoque descendente, costoso desde el punto de vista de la
computación.
La disección, antes mencionada, de búsqueda
descendente y generación ascendente, da como resultado un proceso
que es más barato desde el punto de vista de la computación, más
fácil de programar y fácilmente ampliable, por ejemplo, añadiendo
subprocesos de generación adicionales para generar subconjuntos
candidatos.
Además, el enfoque antes mencionado proporciona
un control mejorado, ya que ofrece un mecanismo para controlar el
número de subconjuntos candidatos a generar, proporcionando así un
mecanismo para adaptar el coste de la computación en función de la
calidad de las instrucciones de construcción resultantes y para
ajustar el tamaño de la masa de candidatos según cualesquiera
requisitos dados de hardware y de tiempo.
En algunas realizaciones, al menos uno del
segundo grupo de criterios de selección incluye determinar una
fuerza de conexión de la conexión de uno o más de los subconjuntos
candidatos con el modelo parcial previo. En consecuencia, los
subconjuntos son generados/seleccionados de acuerdo con la fuerza
de su conexión con el resto del modelo parcial previo. Se ha
comprobado que la estrategia de selección/generación para los
subconjuntos tiene como consecuencia la obtención de instrucciones
de construcción de calidad particularmente alta.
Las normas de selección, adicionales o
alternativas para seleccionar eficazmente subconjuntos candidatos,
comprenden determinar cambios en la dirección de la construcción
y/o subconjuntos que estén conectados en forma movible al modelo
parcial previo, por ejemplo mediante una conexión de bisagra o un
empalme, una corredera, etc.
En algunas realizaciones, el método comprende
representar el modelo parcial previo mediante una estructura de
datos indicativa de una gráfica, por ejemplo, una gráfica indirecta,
que incluya nodos indicativos de elementos de construcción
respectivos del modelo parcial previo y bordes que conecten nodos
respectivos indicativos de conexiones entre elementos de
construcción correspondientes. Representando el modelo parcial
previo como una gráfica, pueden utilizarse técnicas de división de
gráficos y otras técnicas conocidas de la teoría de gráficas (véase,
por ejemplo, "Teoría de gráficos y sus aplicaciones", por
Jonathan L. Gross y Jay Yellen, Chapman & Hall/CRC, segunda
edición, 2006) para identificar de manera eficaz subconjuntos
candidatos adecuados, por ejemplo identificando nodos de
articulación o pares de articulación en la gráfica, con el fin de
identificar subconjuntos que se unan al resto del modelo parcial
previo mediante un único elemento de articulación o mediante un par
de elementos de construcción. Por ello, un modelo de elementos de
construcción interconectados corresponde a una gráfica conectada, y
un subconjunto corresponde a una gráfica secundaria conectada.
Los nodos y/o los bordes de la gráfica pueden
tener uno o más atributos respectivos asociados con ellos,
correspondientes a los atributos de los elementos de construcción
y a las conexiones correspondientes, respectivamente. Por ejemplo,
los nodos de la gráfica pueden tener asociados a ellos uno o más de
los siguientes atributos: tipo de elemento de construcción, volumen
del elemento de construcción, forma/geometría del elemento de
construcción, masa del elemento de construcción en volumen, una
caja circundante del elemento de construcción, una posición del
elemento de construcción en un sistema de coordenadas, una
dirección de construcción principal asociada con el elemento de
construcción, las posiciones, los tipos y/o las direcciones de los
elementos de conexión del elemento de construcción y/o similares. De
forma parecida, los bordes de la gráfica pueden tener, asociados
con ellos, uno o más de los siguientes atributos: tipo de conexión,
fuerza de la conexión, dirección de la conexión y/o similares.
Cuando los bordes de la gráfica tienen asociados con ellos
pesos/valores respectivos, indicativos de las respectivas fuerzas
de conexión de las conexiones, pueden utilizarse métodos de
división de gráficos particularmente efectivos, tales como métodos
para encontrar los cortes mínimos a fin de obtener instrucciones de
construcción de gran calidad.
\global\parskip1.000000\baselineskip
En algunas realizaciones, cada elemento de
construcción comprende uno o más elementos de conexión destinados a
aplicarse con uno o más elementos de conexión correspondientes de
otro elemento de construcción a fin de proporcionar una conexión
entre el elemento de construcción y el otro elemento de
construcción. Tales elementos de conexión pueden imponer
restricciones adicionales sobre las posibles colocaciones de los
elementos de construcción, ya que solamente es posible una conexión
entre elementos de conexión compatibles, por ejemplo,
protuberancias que ajusten en cavidades correspondientes cuando se
las pone en la posición correcta unas con relación a otras. Cada
elemento de conexión puede tener, asociada con él, una clase de
elemento de conexión, teniendo cada clase de elemento de conexión,
asociada con ella, una fuerza de conexión. En algunas realizaciones,
el método comprende determinar dicho valor de la fuerza de conexión
asociada de un borde correspondiente a una conexión entre dos
elementos de construcción a partir de, al menos, el número y las
clases respectivas de elementos de conexión que contribuyan a la
conexión correspondiente. En consecuencia, se proporciona un método
eficaz y preciso para calcular/estimar las fuerzas de conexión en un
modelo de elementos de construcción.
En algunas realizaciones, la determinación de
dicho valor asociado de la fuerza de conexión comprende determinar
la fuerza de conexión a partir de, al menos, el número y las clases
respectivas de los elementos de conexión que contribuyan a la
conexión correspondiente y a partir de un volumen de los dos
elementos de construcción, teniendo en cuenta, por tanto, no sólo
la fuerza de la conexión sino, también, el tamaño de los elementos
de construcción y, así, si los elementos de construcción son fáciles
de sostener y de manipular durante el proceso de construcción.
En algunas realizaciones, la determinación de al
menos un elemento de construcción que ha de desconectarse del
modelo parcial previo para dar como resultado un nuevo modelo
parcial, comprende calcular una o más funciones de ponderación para,
al menos, un subgrupo de los elementos de construcción y un grupo
de subconjuntos candidatos de elementos de construcción; y
seleccionar uno de entre un único elemento de construcción y un
subconjunto basándose en una comparación de las funciones de
ponderación calculadas. En consecuencia, se proporciona una armazón
escalable, ampliable y flexible para el proceso de selección, que
puede modificarse o ampliarse mediante funciones de ponderación
adicionales o alternativas y en la que pueden ponderarse diferentes
criterios de selección, unos con relación a otros, de acuerdo con su
importancia/prioridad. Las funciones de ponderación pueden incluir
cualquier función adecuada de una o más propiedades de uno o más
elementos de construcción.
En algunas realizaciones, al menos una de la o
de las funciones de ponderación, ofrece una gama de posibles
resultados, que incluyen una primera gama secundaria indicativa de
un grado de adecuación para la desconexión y una segunda gama
secundaria indicativa de un grado de no adecuado para la
desconexión, permitiendo por tanto asignar pesos positivos y
negativos a subconjuntos y/o elementos de construcción.
En consecuencia, en algunas realizaciones, la
selección de un subconjunto o de un único elemento de construcción
basándose en una comparación de las funciones de ponderación
calculadas incluye calcular el peso total a partir de la o de las
funciones de ponderación calculadas; incluyendo el cálculo del peso
total la asignación de un valor de la segunda gama al peso total si,
al menos una de las funciones de ponderación calculadas tiene un
resultado en la segunda gama, proporcionándose por tanto una
estrategia de veto que impide que subconjuntos y/o elementos de
construcción sean desconectados por no cumplir ciertos criterios,
aún cuando se les pueda asignar un peso elevado a partir de otras
funciones.
Ejemplos de funciones de ponderación que se ha
encontrado que dan como resultado instrucciones de construcción de
gran calidad, incluyen una función de ponderación que determina si
un subconjunto o elemento de construcción puede ser separado
físicamente o si la dirección de desconexión del citado subconjunto
o elemento de construcción está, por ejemplo, bloqueada por otras
partes del modelo. Por ejemplo, una función de ponderación de esta
clase puede calcularse eficientemente computando una geometría
desarrollada del subconjunto o elemento de construcción.
Otro ejemplo de tales funciones de ponderación
incluye una función de ponderación que asigna un peso menor a los
elementos de construcción de articulación y/o a los elementos de
construcción que estén comprendidos en un par de subconjuntos o
elementos de construcción de articulación, con el fin de evitar la
división del modelo en modelos parciales disjuntos/desconectados.
Cuando las funciones de ponderación incluyen una función de
ponderación que disminuye con el número de otros elementos de
construcción, a los que está conectado -directamente o a través de
otros elementos de construcción- el subconjunto o elemento de
construcción, se garantiza que, si se presentan, las pequeñas partes
disjuntas son rápidamente retiradas del modelo.
Cuando una de las funciones de ponderación es
una función de una fuerza de conexión de conexiones entre elementos
de construcción de un subconjunto, pueden aconsejarse los
subconjuntos y los elementos de construcción fácilmente
desconectables del modelo restante. En particular, se ha encontrado
que una función de ponderación que asigne un peso superior a
subconjuntos y elementos de construcción que tengan una conectividad
interna más fuerte y una conectividad externa más débil, da como
resultado instrucciones de construcción de gran calidad. Además, en
tal función de ponderación, la fuerza de la conectividad puede
calcularse como una fuerza con relación al volumen de los
subconjuntos o elementos de construcción interconectados.
Todavía otros ejemplos de funciones de
ponderación adecuadas incluyen funciones de ponderación que son
funciones de, al menos, una propiedad del subconjunto o elemento
de construcción y una propiedad del subconjunto o elemento de
construcción desconectado durante una repetición previa del proceso
iterativo, permitiendo así favorecer la retirada de subconjuntos o
elementos de construcción posicionados simétricamente, subconjuntos
o elementos de construcción que estén situados unos cerca de otros,
y/o similares. Ejemplos de tales propiedades incluyen la posición
de los elementos de construcción con relación a un sistema de
coordenadas, un tipo de elemento de construcción, y/o similares. En
algunas realizaciones una función de ponderación puede ser, además,
una función de una propiedad de más de un elemento de construcción
retirado en repeticiones previas. Por ejemplo, a una o más de las
repeticiones anteriores se les podrían asignar diferentes pesos al
comparar modelos parciales, por ejemplo, a la repetición más
reciente se le podría asignar un peso mayor que a las repeticiones
anteriores.
Las realizaciones del método descrito en este
documento reciben una representación digital del modelo de
elementos de construcción. Tal representación digital puede ser
proporcionada mediante cualquier proceso adecuado, por ejemplo, un
entorno de construcción ejecutado por ordenador y/o un proceso para
generar una representación digital de un modelo de elementos de
construcción a partir de, por ejemplo, una o más imágenes,
perteneciendo dichas imágenes a un modelo físico o a otro objeto. Un
proceso de esta clase se describe en el documento US 7.092.899. En
este proceso, se crea una representación digital de un modelo de
elementos de construcción de un articulo a partir de un modelo CAD o
de un grupo de imágenes bidimensionales de un articulo
tridimensional. Algunas realizaciones de representaciones digitales
pueden incluir información indicativa de los tipos, de la posición
y/o de la interconexión de elementos de construcción, etc., en
cualquier formato de datos adecuado. Las realizaciones de las
representaciones digitales pueden incluir, además, información
acerca de atributos globales del modelo, atributos de elementos de
construcción individuales, tales como tipo de elemento de
construcción, color, tamaño, caja circundante, etc.
Un entorno de construcción ejecutada por
ordenador para construir en forma interactiva un modelo virtual de
elementos de construcción puede comprender un programa de ordenador
que, al ser ejecutado en un ordenador, proporcione una
interconexión gráfica con el usuario que le permita a éste manipular
modelos virtuales de elementos de construcción, incluyendo
operaciones como seleccionar elementos de construcción, añadir
elementos de construcción al modelo, suprimir elementos de
construcción del modelo, cambiar la orientación de un elemento de
construcción, cambiar las propiedades de un elemento de
construcción, por ejemplo, el color, el tipo, el tamaño y/o
similares, ver el modelo, salvar una representación digital de un
modelo, cargar una representación digital de un modelo previamente
salvada, etc. Los elementos de construcción virtuales pueden ser
contrapartidas virtuales de elementos de construcción físicos
correspondientes, es decir, con color, forma, tamaño relativos,
etc., correspondientes.
Un entorno de construcción ejecutado por
ordenador puede configurarse para cumplir un grupo predeterminado de
restricciones impuestas sobre las posiciones relativas de los
elementos de construcción, unos con respecto a otros, tales como la
detección de colisiones entre elementos de construcción. Por
ejemplo, las restricciones corresponden a las restricciones
correspondientes aplicables a los elementos de construcción físicos
correspondientes, garantizando por tanto que un modelo virtual de
elementos de construcción también puede ser construido realmente a
partir de los correspondientes elementos de construcción físicos.
Por ello, resulta ventajoso que el método garantice que las
instrucciones de construcción generadas pueden ser puestas en
práctica en la realidad, es decir, conducen a un resultado
deseado.
En algunas realizaciones, las instrucciones de
construcción se generan como una secuencia de representaciones
gráficas tales como imágenes. Cada representación gráfica puede
incluir una interpretación gráfica de un modelo parcial de elementos
de construcción, denominado también modelo parcial, proporcionando
por tanto instrucciones de construcción fáciles de seguir, en las
que cada representación gráfica corresponde a un paso del proceso de
construcción en el que un número predeterminado de elementos de
construcción son añadidos al modelo. Así, todos los modelos
parciales o solamente un subgrupo de modelos parciales que
constituyen la secuencia de construcción determinada, pueden ser
incluidos en las instrucciones de construcción finales, ya que uno
o más pasos de la secuencia de construcción pueden combinarse en
una sola imagen de las instrucciones de construcción. Un usuario
puede determinar fácilmente qué elementos de construcción han de
añadirse en cada paso y cómo han de añadirse, comparando dos
representaciones gráficas sucesivas.
Cuando el método comprende, además, proporcionar
una interconexión de usuario para ver las representaciones gráficas,
cuya interconexión de usuario facilita, preferiblemente, la
manipulación controlada por el usuario de las representaciones
gráficas generadas, la representación digital del modelo de
elementos de construcción puede ser vista convenientemente en un
ordenador. En particular, como la representación digital del modelo
incluye toda la información requerida para la generación de las
instrucciones de construcción, éstas pueden ser comunicadas
convenientemente desde un ordenador a otro, por ejemplo,
almacenarse en un medio de almacenamiento, enviarse por una red de
comunicaciones, por ejemplo, como un adjunto a un correo
electrónico, cargarse en un servidor de red o similar. El receptor
de la representación digital puede ver, así, la representación
gráfica y manipularla, por ejemplo, cambiar el ángulo de visión,
acercarla o alejarla, cambiar opciones de visión, y/o similares. En
consecuencia, los usuarios pueden comunicar fácilmente sus
instrucciones de construcción a sus amigos. Otra ventaja consiste
en que la representación digital no tiene que incluir una
interpretación gráfica de cada paso de las instrucciones,
manteniéndose pequeño, por tanto, el tamaño del fichero de la
representación digital. Además, dado que la representación digital
puede comprender toda la información pertinente para el modelo, el
receptor de un modelo puede, incluso, modificar el modelo antes de
generar las instrucciones de construcción.
En algunas realizaciones, las instrucciones de
construcción pueden generarse en un formato de fichero
predeterminado, permitiendo, por tanto, la generación de
instrucciones de construcción impresas y/o en formato electrónico.
Ejemplos de formatos de fichero adecuados incluyen HTML, XML, BMP,
TIFF, etc.
En algunas realizaciones, el número
predeterminado de elementos de construcción adicionales añadidos en
un paso de las instrucciones por pasos, puede ser seleccionado por
el usuario, permitiendo por tanto que un usuario seleccione entre
instrucciones paso a paso, muy detalladas, en las que, por ejemplo,
cada paso corresponde a la colocación de un solo elemento de
construcción nuevo, e instrucciones muy compactas, en las que cada
paso corresponde a un número mayor de elementos de construcción
recién colocados. En algunas realizaciones, el número de elementos
de construcción añadidos en cada paso es el mismo en todos los
pasos. En otras realizaciones, el número de elementos de
construcción adicionales añadidos puede ser diferente para pasos
diferentes de las instrucciones de construcción. Por ejemplo, la
dimensión de los pasos puede ser controlada por el usuario para cada
paso, permitiendo por tanto la generación de instrucciones más
detalladas para las partes más complicadas de la construcción.
El presente invento puede llevarse a la práctica
de diferentes formas, incluyendo el método descrito anteriormente y
en lo que sigue, un sistema de tratamiento de datos y otros medios
de producto, ofreciendo todos ellos uno o más de los beneficios y
ventajas descritos en relación con el método primeramente
mencionado, y teniendo todos ellos una o más realizaciones
preferidas correspondientes a las realizaciones preferidas
descritas en conexión con el método primeramente mencionado y
expuesto en las reivindicaciones dependientes relacionadas con
él.
En particular, las características del método
descrito anteriormente y en lo que sigue, pueden incorporarse en
la práctica en software y ponerse en práctica en un sistema de
tratamiento de datos u otros medios de tratamiento merced a la
ejecución de instrucciones ejecutables en ordenador. Las
instrucciones pueden ser medios de código de programa cargados en
una memoria, tal como una RAM, procedentes de un medio de
almacenamiento o de otro ordenador a través de una red de
ordenadores. Alternativamente, las características descritas pueden
incorporarse en la práctica mediante circuitería cableada en lugar
de mediante software o en combinación con software.
En consecuencia, el invento se refiere, además,
a un sistema de tratamiento de datos destinado a poner en práctica
el método descrito en lo que antecede y en lo que sigue. El invento
se refiere, además, a un programa de ordenador que comprende medios
de código de programa para llevar a la práctica todos los pasos del
método descrito en lo que antecede y en lo que sigue, cuando se
ejecuta dicho programa en un ordenador. El invento se refiere,
además, a un producto de programa de ordenador que comprende medios
de código de programa para poner en práctica el método descrito en
lo que antecede y en lo que sigue, cuando se ejecuta en un ordenador
dicho producto de programa de ordenador. Los medios de código de
programa pueden almacenarse en un medio legible por ordenador y/o
incorporarse como una señal de datos propagada.
En algunas realizaciones, el programa de
ordenador comprende un primer componente de software para generar
una representación digital del modelo de elementos de construcción,
y un segundo componente de software para generar instrucciones de
construcción a partir de la representación digital generada,
proporcionando por tanto un componente de software separado para
leer la representación digital de un modelo y presentar las
correspondientes instrucciones de construcción. En consecuencia,
cuando se comunican las instrucciones de construcción, un usuario
puede comunicar la representación digital junto con el segundo
componente de software, proporcionando por tanto una representación
auto-contenida, compacta de las instrucciones de
construcción, que puede ser vista por el receptor sin necesidad de
software adicional. Sin embargo, se apreciará que ambos procesos,
es decir, la generación de una representación digital de un modelo
y la generación de las instrucciones de construcción, pueden
integrarse en un solo componente de software.
El invento se explicará más detalladamente en lo
que sigue en relación con una realización preferida y con referencia
al dibujo, en el que:
las figs. 1a-b muestran un
sistema de tratamiento de datos para generar instrucciones de
construcción de modelos de elementos de construcción;
la fig. 2 muestra un diagrama de proceso de una
realización de la generación global de instrucciones de
construcción;
la fig. 3 muestra un diagrama de proceso de una
realización de un proceso para generar una secuencia de pasos de
deconstrucción;
la fig. 4 ilustra un ejemplo de un elemento de
construcción y de sus elementos de conexión;
la fig. 5 ilustra una realización de una
estructura de datos para representar digitalmente un modelo de
elementos de construcción;
la fig. 6 ilustra una realización de una
interconexión gráfica de usuario de una aplicación de instrucciones
de construcción;
la fig. 7 ilustra una representación de un
modelo de elementos de construcción como una gráfica indirecta;
las figs. 8-13 muestran ejemplos
que ilustran realizaciones de criterios de selección;
la fig. 14 muestra un diagrama de proceso de
otra realización de la generación global de instrucciones de
construcción;
la fig. 15 muestra un diagrama de proceso de
otra realización de un proceso para generar una secuencia de pasos
de deconstrucción de una deconstrucción parcial;
la fig. 16 ilustra un diagrama de proceso de
otra realización de la generación global de instrucciones de
construcción.
Las figs. 1a-b muestran un
sistema de tratamiento de datos para generar y manipular modelos de
objetos geométricos, legibles por ordenador.
La fig. 1 muestra una vista esquemática de un
ejemplo de un sistema de ordenador. El sistema de ordenador
comprende un ordenador 101 programado en forma adecuada, por
ejemplo, un ordenador personal, que comprende un dispositivo de
presentación 120, un teclado 121 y un ratón 122 de ordenador y/u
otro dispositivo apuntador, tal como una tableta táctil, una bola de
seguimiento, un lápiz óptico, una pantalla táctil, o similar.
El sistema de ordenador designado con 101 está
destinado a generar instrucciones de construcción a partir de una
representación digital de un modelo de elementos de construcción. El
sistema de ordenador 101 puede estar destinado, además, a facilitar
el diseño, el almacenamiento, la manipulación y la compartición de
modelos virtuales de elementos de construcción así como a generar
instrucciones de construcción como se describe en este documento. El
sistema de ordenador 101 puede utilizarse como sistema autónomo o
como cliente en un sistema cliente/servidor. En algunas
realizaciones, el sistema de ordenador comprende, además, una o más
interconexiones para conectar el ordenador con una red de
ordenadores, por ejemplo, Internet.
La fig. 1b muestra un diagrama de bloques de un
sistema de tratamiento de datos para generar instrucciones de
construcción para modelos de elementos de construcción. El
ordenador 101 comprende una memoria 102 que puede estar
constituida, parcialmente como unos medios de memoria volátil y
parcialmente como unos medios de memoria no volátil, por ejemplo,
una memoria de acceso aleatorio (RAM) y un disco duro. La memoria
tiene, almacenado en ella el interpretador 107 de código de modelo,
el generador 108 de código de modelo, el gestor 109 de sucesos UI,
la aplicación 110 de generación de modelos y el generador 113 de
instrucciones de construcción, todos ellos ejecutables por la unidad
central de tratamiento 103. Además, la memoria tiene almacenados en
ella datos 111 de modelos, es decir, un grupo de estructuras de
datos que constituyen una representación digital de un modelo de
elementos de construcción.
El interpretador de códigos 107 está destinado a
leer e interpretar una representación digital que define un modelo,
por ejemplo, código que representa las estructuras de datos de los
elementos de construcción de un modelo. En una realización
preferida, el interpretador de código está destinado a leer una
representación digital del modelo y a convertir tal modelo a un
formato gráfico conocido para presentación en un dispositivo de
presentación de un ordenador, de preferencia una interpretación
tridimensional del modelo.
El gestor 109 de sucesos UI está destinado a
convertir una interacción de un usuario con una interconexión de
usuario en órdenes de usuario apropiadas reconocibles por el
generador de código 108. Un grupo de órdenes posibles y
reconocibles puede comprender: tomar un elemento de construcción de
una librería de elementos, poner un elemento de construcción para
ser conectado con otro elemento de construcción, desconectar un
elemento de construcción, descartar un elemento de construcción,
manipular un elemento de construcción, un grupo de elementos de
construcción, etc., por ejemplo, iniciando una rotación, etc. Junto
con cada orden, puede haber asociado un grupo de parámetros
respectivos, por ejemplo, coordenadas de cursor con respecto al
sistema de coordenadas de presentación, tipos de elementos de
construcción, etc.
El generador 108 de código puede estar
destinado, además, a modificar las estructuras de datos de un modelo
en respuesta a órdenes de un usuario. Como tarea concurrente o
subsiguiente, el interpretador de código puede ser ejecutado para
presentar el resultado del generador de código.
La aplicación 110 de generación de modelos está
destinada a controlar la memoria, los ficheros, la interconexión
de usuario, etc.
Una realización de una generación de un modelo
en realidad virtual, se describe en el documento US 6.389.375.
Además, una realización del proceso de situar interactivamente un
nuevo elemento de construcción virtual en una escena que incluya
una estructura tridimensional, se describe en la solicitud
internacional publicada WO04104811.
La aplicación 113 de instrucciones de
construcción está destinada a leer una representación digital de un
modelo y a generar una instrucción de construcción a partir de los
datos leídos del modelo, como se describe en este documento. La
aplicación 113 de instrucciones de construcción puede proporcionar,
además, una interconexión de usuario para presentar modelos
parciales de acuerdo con la secuencia almacenada de pasos de
construcción como se describe en este documento, o cualquier otro
formato de salida adecuado para las instrucciones de construcción
generadas. La aplicación 113 de instrucciones de construcción puede
utilizar funciones proporcionadas por el interpretador 107 de
código y el gestor 109 de sucesos de UI para la lectura e
interpretación gráfica de los modelos y para recibir una entrada de
usuario, respectivamente. En realizaciones alternativas, la
aplicación de instrucciones de construcción es autónoma, es decir,
no depende de componentes de software externos. En algunas
realizaciones, la aplicación de instrucciones de construcción genera
las instrucciones de construcción en un formato de fichero adecuado,
por ejemplo, de forma que puedan imprimirse.
Un usuario 105 es capaz de interactuar con el
sistema 101 de ordenador por medio de la interconexión de usuario
106 que, de preferencia, comprende una interconexión gráfica de
usuario presentada en una pantalla de ordenador, y uno o más
dispositivos de entrada tales como un teclado y/o un dispositivo
apuntador. Con el fin de cargar, salvar o comunicar modelos,
descripciones geométricas u otros datos, el sistema de ordenador
comprende una unidad 104 de entrada/salida (E/S). La unidad de
entrada/salida puede utilizarse como interconexión para diferentes
tipos de medios de almacenamiento y diferentes tipos de redes de
ordenadores, por ejemplo, Internet. Además, la unidad 104 de
entrada/salida (E/S) puede utilizarse para intercambiar modelos con
otros usuarios, por ejemplo, en forma interactiva. El intercambio de
datos entre la memoria 102, la unidad central de tratamiento (CPU)
103, la interconexión de usuario (UI) 106, y la unidad 104 de
entrada/salida, se consigue por medio de la línea general 112 de
transmisión de datos.
Ha de observarse que el sistema de tratamiento
de datos de la fig. 1 puede configurarse para ejecutar tanto la
aplicación de generación de modelos como la aplicación de
instrucciones de construcción. Sin embargo, en otras realizaciones,
el sistema de tratamiento de datos puede configurarse para ejecutar
solamente la aplicación de instrucciones de construcción basándose
en datos de modelos recibidos de otro ordenador, por ejemplo, un
ordenador en el que se ejecute una aplicación de generación de
modelos u otra aplicación para generar una representación digital de
un modelo. Igualmente, en dicho otro ordenador, la aplicación de
generación de modelos pueden instalarse sola o en combinación con
la aplicación de instrucciones de construcción.
La fig. 2 muestra un diagrama de proceso de una
realización de la generación de instrucciones de construcción. En
el paso S1, el proceso recibe una representación digital de un
modelo de elementos de construcción, por ejemplo como la creada
mediante un módulo de generación de modelos, por ejemplo, la
aplicación 110 de generación de modelos de la fig. 1b o mediante
cualquier otro proceso adecuado.
La representación digital puede recuperarse
desde un medio de almacenamiento 203, por ejemplo, un disco duro
local del ordenador en el que se ejecuta la aplicación de
instrucciones de construcción, un CD-ROM, un
disquete o similar. Alternativa o adicionalmente, la representación
digital del modelo puede estar almacenada remotamente, por ejemplo,
puede recibirse de otro ordenador de una red de ordenadores donde
esté almacenada. Por ejemplo, la representación digital puede
descargarse de un servidor de red, donde puede estar a disposición
de uno o más usuarios. En lo que sigue se describirán ejemplos de
estructuras de datos de la representación digital.
En los pasos S2-S4
subsiguientes, la aplicación de instrucciones de construcción genera
una instrucción de construcción 205 a partir de la representación
digital cargada. En una realización, la aplicación de instrucciones
de construcción genera una secuencia de vistas tridimensionales de
modelos parciales, cada uno de los cuales se distingue del modelo
parcial inmediatamente precedente en que se han añadido al modelo un
número predeterminado de elementos de construcción adicionales de
acuerdo con una secuencia de pasos de construcción determinada por
el proceso de instrucciones de construcción como se ha descrito en
este documento. Las instrucciones de construcción 205 pueden
presentarse electrónicamente, imprimirse o presentarse de otro modo
adecuado. En algunas realizaciones, la generación de las
instrucciones de construcción puede ser controlada por un usuario
204. Por ejemplo, el usuario puede seleccionar el número de
elementos de construcción adicionales que han de añadirse en cada
paso. Además, el usuario puede manipular las vistas tridimensionales
generadas, incluyendo cambios en la posición de una cámara, etc.
como se describirá en lo que sigue. El usuario 204 puede ser el
mismo o diferente del usuario 202.
En particular, en el paso S2, el proceso genera
una secuencia de deconstrucción a partir de la representación
digital recibida del modelo, por ejemplo, en forma de lista
secuencial de subconjuntos y/o elementos de construcción del
modelo. El proceso genera, además, secuencias de deconstrucción
subordinadas para los subconjuntos de la lista secuencial. En una
realización, el proceso representa la secuencia de deconstrucción
como una estructura arboriforme de pasos cada rama del cual puede
contener deconstrucciones subordinadas de una construcción. En lo
que sigue se describirá con mayor detalle una realización de un
proceso para generar una secuencia de deconstrucción.
En el paso S3, el proceso invierte la secuencia
de deconstrucción generada para obtener una secuencia de
construcción.
En el paso S4, el proceso genera instrucciones
de construcción a partir de la secuencia de construcción generada,
por ejemplo como una secuencia de imágenes u otras representaciones
de modelos parciales, en las que en cada modelo parcial se han
añadido, en comparación con el modelo parcial previo, uno o más de
los subconjuntos y elementos de construcción de la lista generada.
El proceso puede almacenar las instrucciones generadas y/o
emitirlas como salida en cualquier forma adecuada, como se describe
en este documento.
La fig. 3 muestra un diagrama de proceso de un
ejemplo de un proceso de deconstrucción de un modelo M. El proceso
de deconstrucción desarma el modelo M sobre la base de una
representación digital del modelo M completo, incluyendo el modelo
todos los elementos de construcción (paso 301). La entrada del
modelo M incluye información acerca de los elementos de construcción
individuales, tales como tamaño/dimensiones, número de botones,
características especiales tales como bisagras, clavijas, ejes,
etc., de los elementos de construcción. La representación digital
incluye, también, información acerca de donde está colocado en el
modelo cada elemento de construcción, por ejemplo, especificándose
las posiciones respectivas (x, y, z) de los elementos de
construcción con respecto a un sistema de coordenadas adecuado.
En el paso 302, el proceso de deconstrucción
comprueba si en el modelo M (o en un modelo parcial resultante de
una repetición previa) quedan elementos de construcción para
desconectar. Sí todavía hay elementos de construcción en el modelo,
el proceso sigue al paso 303, donde el proceso selecciona/genera uno
o más subconjuntos candidatos para ser retirados del modelo M. Los
subconjuntos candidatos incluyen elementos de construcción
interconectados. En el paso 304 subsiguiente, el proceso selecciona
un elemento de construcción o uno de los subconjuntos (E)
candidatos generados para ser desconectado de acuerdo con un primer
grupo de criterios de selección predeterminados. El primer grupo de
criterios de selección predeterminados asigna pesos a todos los
elementos de construcción y subconjuntos generados de acuerdo con
funciones de ponderación predeterminadas, ejemplos de las cuales se
describirán más a fondo en lo que sigue. Por ello, el proceso
determina un subconjunto o elemento de construcción de entre una
masa de candidatos, cuya masa incluye todos los elementos de
construcción individuales y los subconjuntos candidatos generados.
Por ello, para los fines del proceso de selección, puede
considerarse que los subconjuntos son tratados como
pseudo-elementos de construcción además de los
elementos de construcción reales. Para los fines de la presente
descripción, los miembros de la masa de elementos de construcción y
los subconjuntos candidatos se denominarán, también, candidatos a
retirar.
Los subconjuntos candidatos en el paso 303 son
encontrados/seleccionados por medio de un segundo grupo de
criterios de selección que son una determinación de cómo puede ser
separado/cortado el modelo. Ejemplos de tales criterios de selección
se describirán con mayor detalle en lo que sigue.
En el paso 305, el proceso desconecta del modelo
el subconjunto o elemento de construcción E seleccionado en el paso
304, es decir, genera un nuevo modelo parcial M'=M\E del que se ha
retirado el elemento de construcción seleccionado de todos los
elementos de construcción del subconjunto candidato seleccionado. El
proceso mantiene una estructura de datos indicativa de la secuencia
de deconstrucción y actualiza la estructura de datos con
información acerca del subconjunto/elemento de construcción
desconectado. La secuencia se almacena, de forma que pueda
invertirse después para obtener una instrucción de construcción.
Si el proceso selecciona un subconjunto a
desconectar, el subconjunto seleccionado puede ser deconstruido
ejecutando el proceso de deconstrucción en forma recursiva en el
paso 307 (es decir, sirviendo el subconjunto E seleccionado como
modelo M de entrada), antes de retornar al paso 302 para continuar
el proceso de deconstrucción iterativo y encontrar el siguiente
elemento de construcción a desconectar del modelo parcial que
queda, es decir, el modelo M'=M\E.
Cuando no hay más elementos de construcción en
el modelo, éste ha sido deconstruido por completo, y el proceso de
deconstrucción se detiene en el paso 308.
Por ello, una realización del proceso de
deconstrucción descrito en lo que antecede, puede expresarse
mediante el siguiente pseudo-código:
\vskip1.000000\baselineskip
Hacer que Candidates sea el grupo de todos los
ladrillos en M
Hacer que Result sea una secuencia vacía de
ladrillos
Mientras (Candidates no esté vacío)
- Hacer que D
- sea el subgrupo de Candidates que pueden ser separados
- Hacer que b
- sea el ladrillo que "mejor pueda separarse" de D
- Sumar b
- a Result
- Retirar b
- de Candidates
Devolver Result
\vskip1.000000\baselineskip
En el anterior pseudo-código, la
selección del ladrillo que "mejor pueda separarse" corresponde
a la selección realizada en el anterior paso 304, es decir, una
selección basada en un grupo de criterios de selección
predeterminados, por ejemplo, uno o más de los criterios de
selección descritos más abajo.
Una ventaja de seleccionar primero subconjuntos
candidatos es que pueden desconectarse del modelo y, luego, asignar
a cada candidato pesos de acuerdo con la manera preferida para su
desconexión, es decir, es posible desde el punto de vista de la
computación gestionar la selección, cuando se la separa en más
pasos, ya que la ponderación de subconjuntos solamente se realiza
en un subgrupo de todos los posibles subconjuntos del modelo.
Un ejemplo de proceso de deconstrucción lo
describe uno de los inventores en la tesis "Generación asistida
por ordenador de instrucciones de construcción pata modelos
LEGO", de Jacob Allerelli, del Departamento de matemáticas y
ciencia de los ordenadores de la University of Southern Denmark, en
Junio del 2006. En lo que sigue, se describirán con mayor detalle
ejemplos de reglas de selección del segundo grupo de criterios de
selección para determinar subconjuntos candidatos en el paso 303.
Estos criterios de selección también se denominarán heurísticas de
corte.
\vskip1.000000\baselineskip
Se ha conseguido que puedan determinarse
eficazmente subconjuntos candidatos adecuados empleando técnicas de
división de gráficos para dividir gráficos en gráficos secundarios.
Para ello, el proceso representa el modelo como una estructura de
datos indicativa de un gráfico indirecto que incluye nodos y bordes
que conectan nodos, en la que los nodos representan elementos de
construcción y los bordes representan conexiones entre elementos de
construcción. Un gráfico de esta clase se denominará, también,
gráfico de conectividad. Un ejemplo de gráfico de conectividad se
representa en la fig. 7. La fig. 7a muestra un ejemplo de un modelo
de elementos de construcción que incluye elementos de construcción
a, b, c, d y e. La fig. 7b muestra el gráfico de conectividad
correspondiente con los nodos a, b, c, d, e.
Las partes de datos de borde de la estructura de
datos de gráficos, puede incluir un atributo indicativo de la
fuerza de conexión (física) de la correspondiente conexión entre
los elementos de construcción conectados mediante la conexión
representada por el borde. Así, un proceso de división de gráficos
para identificar un corte con un peso mínimo del gráfico da como
resultado un subconjunto tal que la intensidad/fuerza física
necesaria para desconectar el subconjunto se reduce, al menos,
aproximadamente al mínimo. Así, se seleccionan los subconjuntos
conectados más débilmente. En lo que sigue, se describirá con mayor
detalle un ejemplo de determinación de la fuerza de la conexión
entre elementos de construcción.
\vskip1.000000\baselineskip
Es ventajoso cortar un modelo cuando se produce
un cambio en la dirección de construcción. Los cambios en la
dirección de construcción pueden producirse cuando se interconectan
elementos de construcción según, al menos, dos direcciones de
construcción. Las posiciones de los cambios en la dirección de
construcción pueden encontrarse mediante búsquedas locales en
gráficos en el gráfico de conectividad. Una dirección de
construcción puede definirse asociando a cada elemento de
construcción un atributo de dirección. Alternativa o adicionalmente,
una dirección de construcción puede definirse asignando un atributo
de dirección a las conexiones entre elementos de construcción. Para
ello, los nodos y/o los bordes del gráfico de conectividad pueden
tener, asociados con ellos, atributos indicativos de una dirección
de construcción de la conexión correspondiente.
\vskip1.000000\baselineskip
Los elementos de construcción que interconectan
dos o más subconjuntos/elementos de construcción se denominan
elementos de construcción de articulación y pueden constituir
buenos nodos/puntos de corte para lograr la separación del modelo.
Una vez identificado, un elemento de construcción de articulación
puede ser incluido en el subconjunto separado, es decir, puede ser
retirado, o el elemento de construcción de articulación puede ser
excluido del subconjunto separado, es decir, no ser retirado. En
el gráfico, los elementos de construcción de articulación pueden
marcarse, por ejemplo -mediante el denominado coloreado gráfico por
ejemplo- y, así, localizarse fácilmente. Los nodos de articulación
del gráfico de conectividad pueden encontrarse mediante cualquier
algoritmo adecuado para encontrar nodos de articulación de un
gráfico, basándose, por ejemplo, en una primera búsqueda en
profundidad (véase, por ejemplo, "Teoría de gráficos y sus
aplicaciones", de Jonathan L. Gross y Jay Yellen, Chapman &
Hall/CRC, segunda edición, 2006).
\vskip1.000000\baselineskip
La expresión "par de articulación" hace
referencia a dos elementos de construcción que interconectan dos o
más subconjuntos disjuntos, es decir, pares de elementos de
construcción cuya retirada provoque la separación del modelo en dos
subconjuntos disjuntos. Los subconjuntos conectados al resto del
modelo mediante elementos de construcción de articulación o pares
de articulación, pueden ser subconjuntos candidatos útiles con el
propósito de generar instrucciones de construcción.
Los pares de articulación pueden encontrarse
gracias a un proceso en el que se salva una lista A de todos los
nodos de articulación del gráfico de conectividad G. Luego, se
genera un gráfico G1 en el que se ha retirado de G un nodo n que no
es de articulación. Se salva una lista B de todos los nodos de
articulación de G'. Para cada nodo m en B\A, se encuentran los
siguientes pares de articulación: (n, m). Este proceso se repite
para todos los nodos n que no son de articulación del gráfico G.
\vskip1.000000\baselineskip
Una conexión de bisagra es una bisagra entre uno
o más elementos de construcción en torno a una dirección de bisagra.
Un elemento de construcción puede incluir una bisagra interna o un
elemento de conexión de bisagra para proporcionar una conexión de
bisagra entre dos o más elementos de construcción. Los subconjuntos
conectados al resto del modelo mediante una conexión de bisagra
pueden constituir subconjuntos candidatos útiles con el propósito
de generar instrucciones de construcción. Tales conjuntos pueden
identificarse en el gráfico de conectividad, cuando los bordes del
gráfico tienen atributos asociados indicativos de la presencia de
estructuras de bisagra. Por ejemplo, el proceso puede buscar
gráficos secundarios del gráfico de conectividad que estén
conectados al resto del gráfico de conectividad solamente mediante
una o más conexiones de bisagra. La fig. 12b ilustra un elemento de
construcción que tiene un elemento de conexión 1201 para
proporcionar una conexión de bisagra. Se comprenderá que otros tipos
de conexiones móviles pueden ser, también, útiles para identificar
subconjuntos candidatos, por ejemplo conexiones de junta, conexiones
deslizantes, etc.
\vskip1.000000\baselineskip
Algunos elementos de construcción son especiales
en cuanto a que pueden ser conectados con otros elementos de
construcción solamente de una manera. Ejemplos de estos elementos de
construcción son figuras que tienen un único elemento de conexión
debajo de la base de la figura, cristales en ventanas, cubiertas de
neumáticos en ruedas, vagones de tren sobre carriles, etc. Estos
elementos de construcción especiales son, por tanto, candidatos que
pueden ser cortados del modelo por su conexión externa, es decir,
por donde se conectan a un elemento de construcción arbitrario
diferente de su elemento de construcción correspondiente.
Por ello, en lo que antecede, se han descrito
varias heurísticas de corte para identificar subconjuntos
candidatos. Así, durante el proceso de deconstrucción pueden
utilizarse una heurística de corte o una combinación de más
heurísticas de corte como se ha descrito en lo que antecede, a fin
de encontrar de manera eficiente subconjuntos candidatos entre el
gran número de todos los posibles subconjuntos de un modelo.
Como se ha descrito en lo que antecede, en una
realización, cada candidato a la retirada -es decir, cada uno de
los elementos de construcción del modelo y cada uno de los
subconjuntos candidatos que son seleccionados por el o los proceso
heurísticos de corte anteriores o alternativos- es ponderado por
medio de una o más funciones de ponderación con el fin de encontrar
los candidatos a la retirada con el peso máximo, es decir, el
candidato E a la retirada más adecuado para ser retirado del modelo
(paso 304) y, entonces, se desconecta (paso 305) este candidato a la
retirada seleccionado.
En una realización, las funciones de ponderación
se seleccionan de tal modo que cada función de ponderación mejorará
la posibilidad de que se seleccione un subconjunto/elemento de
construcción o rechazará que se seleccione el subconjunto/elemento
de construcción, sobre la base de los criterios que incorpora en la
práctica. El proceso combina los resultados de todas las funciones
de ponderación para cada subconjunto/elemento de construcción con
el fin de obtener un peso total para el subconjunto/elemento de
construcción. El proceso puede seleccionar, entonces, el
subconjunto/elemento de construcción que tenga el peso máximo.
Cuando las funciones de ponderación individuales se seleccionan de
acuerdo con un esquema de ponderación uniforme, puede cambiarse
fácilmente el grupo de funciones de ponderación.
Por ejemplo, en una realización, cada función de
ponderación tiene como resultado un peso. Un peso es un número real
comprendido en el intervalo (0, ..., 1) o un número entero negativo
(-1, -2, -3, ...). Si se aconseja la desconexión de un
subconjunto/elemento de construcción, el peso asociado al
subconjunto/elemento de construcción está en el intervalo
(0,...,1), asignándose 0 cuando no hay una opinión a favor ni en
contra para desconectar un subconjunto/elemento de construcción, y
asignándose 1 cuando la desconexión es óptima. Los números reales
entre estos dos extremos indican que se aconseja una desconexión.
Si se desaconseja la desconexión, la función de ponderación da como
resultado la asignación de un peso negativo al subconjunto/elemento
de construcción en el intervalo (-1, -2, -3, ...), cuyos diferentes
valores negativos indican el nivel en que se desaconseja una
desconexión. Se apreciará que pueden definirse otros grupos de
funciones de ponderación que tengan intervalos diferentes.
Para incorporar en la práctica un esquema de
veto, pueden utilizarse funciones de ponderación que tengan dos
intervalos separados, por ejemplo, como se describe en lo que
sigue.
Para cada subconjunto/elemento de construcción
x, se valora cada una de un grupo de funciones de ponderación y los
pesos individuales respectivos se combinan en la forma siguiente:
Si entre los pesos asignados para x no hay pesos negativos
(denominados "VETO"), se acumulan todos los pesos para obtener
un peso total. Por otra parte, si entre los pesos asignados hay uno
o más VETO, se descartan todos los pesos que no son VETO, es decir,
se establecen como 0. De acuerdo con esto, un buen
subconjunto/elemento de construcción para desconexión es uno que
esté libre de VETO y que tenga un peso acumulado de valor alto. Por
otra parte, una vez que a un subconjunto/elemento de construcción
se le asigna un VETO, no puede abandonar el estado VETO hasta la
siguiente repetición de la deconstrucción. Si todos los
subconjuntos/elementos de construcción obtienen pesos negativos, el
proceso puede seleccionar el elemento de construcción cuyo peso
negativo total tenga el valor absoluto más bajo. Alternativamente,
el proceso puede retroceder una o más repeticiones e intentar
seleccionar un subconjunto/elemento de construcción diferente, pedir
la interacción de un usuario o proceder de otra manera
adecuada.
Se ha comprobado que el esquema de ponderación
antes mencionado tiene como consecuencia instrucciones de
construcción de alta calidad cuando se encuentra una deconstrucción
en la que, en cada paso, exista al menos un subconjunto/elemento
de construcción que esté libre de VETO.
Se describirán ahora, con mayor detalle, varios
ejemplos de funciones de ponderación:
\vskip1.000000\baselineskip
Un ejemplo de una función de ponderación
determina si un subconjunto/elemento de construcción a desconectar
es físicamente accesible y puede ser separado del resto del modelo.
Para ello, la función de ponderación verifica si se cumplen uno o
más de los dos requisitos siguientes:
1) Todas las direcciones a lo largo de las
cuales un subconjunto/elemento de construcción pueda ser
separado/desconectado, son paralelas. Esta función de ponderación
puede determinar así la dirección de construcción y/o la dirección
de conexión de todas las conexiones de un elemento de construcción,
por ejemplo basándose en atributos asociados con los nodos y/o los
bordes correspondientes del gráfico de conectividad. Si todas las
direcciones son paralelas, el elemento de construcción puede ser
desconectado mediante un movimiento de traslación. Por ejemplo los
elementos de construcción 803 de la fig. 8a tienen dos direcciones
de conexión que no son paralelas. Están conectados al eje 802 y al
elemento de construcción 804. La conexión al eje 802 tiene una
dirección asociada paralela al eje 802, ya que retirar el elemento
de construcción 803 del eje 802 exigirla un movimiento del elemento
de construcción 803 en la dirección del eje 802. Por otro lado, la
conexión al elemento de construcción 804 tiene una dirección
ortogonal al eje, a saber, en la dirección de los botones que
sobresalen de la superficie superior del elemento de construcción
804. Por ello, la retirada del elemento de construcción 803 puede
generar tensiones en el modelo y ser difícil de realizar para, por
ejemplo un niño, sin desconectar simultáneamente otras conexiones
del modelo. La fig. 12 muestra ejemplos de elementos de
construcción con sus respectivas direcciones de posible separación
indicadas mediante flechas.
2) Mover un subconjunto/elemento de construcción
en una dirección de conexión no da como resultado una colisión con
otros elementos de construcción del modelo. Por ejemplo, la función
de ponderación puede determinar una caja circundante del
subconjunto/elemento de construcción y determinar si una traslación
de la caja circundante en una distancia predeterminada en la
dirección de conexión, tiene como consecuencia una
colisión/intersección con otro elemento de construcción. La fig. 13
ilustra un modelo en el que el elemento de construcción 1301 puede
ser desplazado en la dirección en que es posible su separación, en
una distancia d. Alternativamente, la función de ponderación puede
calcular una geometría de subconjunto/elemento de construcción
desarrollada en la dirección de conexión, y determinar si la
geometría desarrollada colisiona con cualesquiera otros
subconjuntos/elementos de construcción. El espacio que ocupa un
elemento de construcción puede representarse mediante volúmenes
geométricos sencillos. Por ejemplo, un elemento de construcción de
2x4 botones, por ejemplo como el mostrado en la fig. 4, puede tener
asociadas con él 9 cajas de colisión: una caja de colisión llena
todo el elemento de construcción excepto los 8 botones y cada uno de
los 8 botones llena una caja de colisión. Esta información puede
ser utilizada para estimar si los elementos de construcción
colisionan/se solapan. La información sobre las cajas de colisión
puede utilizarse para calcular la forma/configuración/geometría
desarrollada que representa el espacio necesario con el fin de
desconectar un elemento de construcción.
Un ejemplo de cómo calcular la
geometría/forma/configuración desarrollada puede comprender
encontrar una dirección, que sea un vector d, en la que pueda
desconectarse el elemento de construcción. El elemento de
construcción tiene N volúmenes de colisión (por ejemplo, N=9, como
en el ejemplo del elemento de construcción con 2x4 botones.
anterior) y una posición (x, y, z).
Teniendo un elemento de construcción BE, un
vector d y el modelo M, el proceso de separación puede incluir los
pasos siguientes: para cada volumen de colisión k, en el BE, p1
designa la posición de k. p2 designa la posición de k cuando el BE
es movido desde p1 a lo largo del vector d. Como cada volumen de
colisión es una caja con 8 esquinas, habrá 8 puntos en p1 y 8 puntos
en p2. En total habrá 16 puntos en un grupo de puntos. Cuando los
volúmenes de colisión sean convexos, este grupo de puntos
constituirá una figura convexa f.
El proceso comprueba si la figura f colisiona
con cualesquiera elementos de construcción del modelo M. Si la
figura f colisiona con cualesquiera elementos de construcción del
modelo M, el elemento de construcción BE no puede ser desconectado.
Si la figura f no colisiona con ningún elemento de construcción del
modelo M, el proceso puede comprobar el siguiente volumen de
colisión.
Finalmente, si ninguna de las figuras f de los N
volúmenes de colisión colisiona con ningún elemento de construcción
del modelo M, el elemento de construcción BE puede ser desconectado
de acuerdo con la estrategia de separación.
El efecto de esta estrategia es que garantiza,
al menos de forma aproximada, que la deconstrucción (y, por ello, la
construcción inversa) del subconjunto/elemento de construcción es
físicamente posible sin imponer tensiones físicas sobre el
modelo.
El siguiente ejemplo de una función de
ponderación evita la desconexión de subconjuntos/elementos de
construcción que no puedan ser separados físicamente (o que, al
menos, no puedan serlo fácilmente):
Peso (x)= -1, si no se cumple para x, al menos,
una de las anteriores condiciones 1) y 2),
0, de otro modo.
\vskip1.000000\baselineskip
Como se ha mencionado en lo que antecede, los
subconjuntos/elementos de construcción cuya retirada haga que el
modelo se rompa en dos o más partes disjuntas, se denominan
subconjuntos/elementos de construcción de articulación. La
desconexión de subconjuntos/elementos de construcción de
articulación puede dar como resultado instrucciones de construcción
que muestren subconjuntos/elementos disjuntos que parezcan
flotar/volar unos con relación a otros en una interpretación
tridimensional de las instrucciones de construcción. Esto puede que
no sea deseable por cuanto complica la deconstrucción y, por tanto,
también la instrucción de construcción.
La siguiente función de ponderación evita la
desconexión de subconjuntos/elementos de construcción de
articulación.
Peso(x)= -1 si x es un
subconjunto/elemento de construcción de articulación
0 si no lo es.
\vskip1.000000\baselineskip
Por ello, los elementos de construcción de
articulación se desaconsejan con fuerza, evitándose así los
subconjuntos/elementos de construcción volantes.
En una realización alternativa, la función de
ponderación asigna un peso neutro, por ejemplo, peso=0, si x es un
subconjunto/elemento de construcción de articulación, y un peso
positivo, por ejemplo, peso=l si x no es un subconjunto/elemento de
construcción de articulación. Por ello, en esta realización, la
desconexión de elementos de articulación no se aconseja ni se
desaconseja. Esto muestra que los diferentes pesos pueden ajustarse
con el fin de adaptar el esquema de ponderación a diferentes efectos
deseados. En todavía otra realización, se asignan pesos diferentes
dependiendo de si la función de ponderación se calcula para un
subconjunto o un elemento de construcción individual. Por ejemplo,
en una realización, si x es un subconjunto, el peso(x) se
establece en -1 para los subconjuntos de articulación y en 0 si x
no es un subconjunto de articulación, mientras que en el caso de que
x sea un elemento de construcción individual, peso(x) se
establece en 0 para elementos de construcción de articulación y en
+1 de otro modo. Por ello, en esta realización, se impide la
desconexión de un subconjunto de articulación, mientras que la
desconexión de elementos de construcción de articulación simplemente
se desaconseja.
\vskip1.000000\baselineskip
Hay situaciones en las que no es posible evitar
subconjuntos/elementos de construcción desconectados (o
"volantes") en el modelo parcial que queda. Un ejemplo de
tales situaciones se muestra en la fig. 8a, que ilustra un elemento
de rueda dentada 801 posicionado en un eje 802 que sobresale a
través de orificios correspondientes de elementos de construcción
803. Cuando se deconstruye el modelo, el eje 802 puede retirarse,
con el resultado de que el elemento 801 de rueda dentada queda
desconectado del resto del modelo, como se muestra en la fig.
8b.
En tal situación, puede ser deseable retirar del
modelo el elemento 801 desconectado tan pronto como sea posible,
obteniéndose en consecuencia la situación mostrada en la fig.
8c.
La rápida retirada de elementos desconectados
puede ser aconsejada por una función de ponderación que asigne un
peso creciente a subconjuntos/elementos de construcción que estén
conectados (directa o indirectamente) con otros pocos elementos de
construcción: Un ejemplo de tal función de ponderación es:
Peso(x)= 1/(número_de_elementos de
construcción_conectados_a_x + 1) para todos los
subconjuntos/elementos de construcción x.
\vskip1.000000\baselineskip
En el ejemplo de la fig. 8b, las anteriores
funciones de ponderación asignan el peso 1 a la pequeña rueda
dentada 801, ya que no está conectada a ningún otro subconjunto o
elemento de construcción. Por otro lado, a los otros elementos de
construcción se les asigna un peso de 1/6, ya que forman parte del
conjunto que incluye los cinco elementos designados 803, 804 y
805.
La estrategia de integración reduce así el
número de pasos durante los que subconjuntos o elementos de
construcción "flotantes" inevitables se muestran en la
instrucción de construcción resultante.
\vskip1.000000\baselineskip
\global\parskip0.880000\baselineskip
La estrategia de similaridad está relacionada
con simetrías en construcción/deconstrucción. Cuando se emplea una
estrategia de similaridad en el proceso de construcción, la
construcción puede resultar, probablemente, simétrica, lo cual
simplificará el proceso de deconstrucción. Con el fin de realizar
una deconstrucción basada en esto, puede determinarse, como sigue,
una función que indique cómo de similares son dos elementos A y B
de construcción:
Las funciones de ponderación determinan las
coordenadas de los A y los B en un sistema de coordenadas en las
que el eje Y corresponde a una dirección de construcción principal,
por ejemplo, una dirección vertical. El eje X y el eje Z
corresponden a las otras direcciones de construcción principales,
por ejemplo, direcciones horizontales.
Si B es el último elemento de construcción que
se ha desconectado, entonces una función de ponderación para
determinar si A y B son similares, puede tener la forma
siguiente:
Peso(x) = suma de
a si A y B pertenecen al mismo tipo de elemento
de construcción
b si A y B tienen la misma coordenada X o la
misma coordenada Z en el sistema de coordenadas
c si A y B están dotados de los mismos atributos
(tales como color, decoración, etc.)
para los pesos predeterminados a, b, c, donde
a+b+c=1.
\vskip1.000000\baselineskip
Un peso mayor que 0 refleja cierto grado de
similaridad. Podrían considerarse, también, criterios alternativos
y/o adicionales.
La estrategia consiste en desconectar un
subconjunto/elemento de construcción que sea similar al o a los
últimos subconjuntos/elementos de construcción desconectados. El
efecto de esta estrategia es que un modelo que contenga partes
simétricas, con frecuencia será deconstruido simétricamente.
Un ejemplo de la estrategia de similaridad para
la deconstrucción se ofrece en la fig. 9, que en las figs.
9a-c ilustra, respectivamente, un ejemplo de tres
pasos de deconstrucción consecutivos. En la fig. 9 se ve que en la
parte izquierda del modelo, primero se desconecta un elemento de
construcción oblongo 901 y, después, se desconecta un elemento de
construcción oblongo 902, similar, situado en relación de simetría
con respecto al primer elemento de construcción oblongo. El
siguiente paso podría ser desconectar los dos elementos de
construcción oblongos, similares, 903 de la parte derecha del
modelo.
\vskip1.000000\baselineskip
Subconjuntos o elementos de construcción
especiales, como grandes placas o placas configuradas de forma
irregular constituirán, con frecuencia, un elemento de construcción
de base/partida del modelo y, por tanto, serán el último elemento
de construcción a desconectar. Con el fin de examinar si una placa u
otro elemento de construcción es un elemento de construcción de
partida, el tipo y/o el tamaño pueden compararse con el tipo/tamaño
de los otros elementos de construcción, o compararse con un valor
de umbral que indique cuando un elemento de construcción es grande
ya que, con frecuencia, un elemento de construcción de partida será
un elemento grande porque forma la base del modelo. Además, también
puede examinarse si un elemento de construcción grande es un
elemento de construcción de partida analizando lo abajo que esté
situado en el modelo. Es probable que un elemento de construcción
que sea grande y que esté situado en la parte inferior del modelo
sea un elemento de construcción de partida. Para ello, los nodos del
gráfico de conectividad pueden tener, asociados con ellos, atributos
respectivo indicativos del tamaño/volumen de los elemento de
construcción. Alternativamente, el proceso de instrucciones de
construcción puede permitirle a un usuario indicar un elemento de
construcción de partida, por ejemplo señalando un elemento de
construcción de partida con el puntero de un ratón o con otro
dispositivo apuntador. En consecuencia, una función de ponderación
que impida que los elementos de construcción de partida sean
retirados del modelo, puede tener la forma siguiente:
Peso(x) = -1 si x es un elemento de
construcción de partida
0 si no lo es.
\vskip1.000000\baselineskip
Alternativamente, la función de ponderación
puede asignar el peso 0 si x es un subconjunto/elemento de
construcción de partida, indicando así que no se aconseja la
desconexión de x, mientras que asigna un peso positivo alto, por
ejemplo, peso=l si x no es un subconjunto/elemento de construcción
de partida ya que, entonces, se aconseja su desconexión.
\global\parskip1.000000\baselineskip
El efecto es que en la instrucción de
construcción resultante, algunos subconjuntos o elementos de
construcción de base comunes serán conectados inicialmente o en una
etapa temprana del proceso de construcción.
\vskip1.000000\baselineskip
De acuerdo con una realización, para cada
subconjunto candidato x, existen dos aspectos contributivos que
reflejan la calidad de la conectividad o contribuyen a ella. El
primer aspecto es la fuerza de la conectividad interna entre los
elementos de construcción del subconjunto x, y el segundo aspecto
es la fuerza de la conectividad externa de los elementos de
construcción del subconjunto x. Si la conectividad interna es
relativamente fuerte y la conectividad externa es relativamente
débil, es de esperar que el subconjunto pueda ser retirado
fácilmente, ya que los elementos de construcción del subconjunto
están conectados fuertemente con los otros elementos de
construcción de ese subconjunto y sólo están conectados débilmente
con el resto del modelo. De forma correspondiente, durante el
proceso de construcción, un subconjunto que tenga una conexión
interna fuerte y una conexión débil con el resto del modelo, puede
ser construido, en forma relativamente fácil, como un subconjunto
estable y conectarse al resto del modelo sin correr el riesgo de que
el subconjunto se rompa durante el proceso de unión.
Con el fin de investigar lo fuerte que está
conectado internamente un subconjunto, es decir, cómo están
conectados entre sí los diferentes elementos de construcción del
subconjunto, puede utilizarse el gráfico de conectividad u otra
representación adecuada de la conectividad entre todos los
elementos de construcción. El gráfico de conectividad puede incluir
los pesos que reflejen la fuerza física entre elementos de
construcción, como se ha descrito en lo que antecede, por ejemplo
cuando cada borde tiene, asociado con él, un atributo/peso
indicativo de la fuerza de la conexión correspondiente.
Por ejemplo, cada elemento de construcción puede
incluir uno o más elementos de conexión para aplicación con
elementos de conexión correspondientes de otros elementos de
construcción, con el fin de proporcionar una conexión entre los
elementos de construcción. Por ejemplo, la fig. 4 muestra un ejemplo
de elemento de construcción con protuberancias en forma de botones
destinadas a aplicarse en orificios /denominados, también,
anti-botones) de otro elemento de construcción. En
general, los elementos de construcción pueden tener elementos de
conexión de una o más clases diferentes de elementos de conexión,
pudiendo proporcionar cada clase de elemento de conexión o cada par
de clases de elementos de conexión, una conexión con una fuerza
correspondiente. La fuerza total de una conexión entre dos
elementos de construcción puede determinarse/estimarse así a partir
del número de elementos de conexión/pares de elementos de conexión
cooperantes, que contribuyan a la conexión entre dos elementos de
construcción y a partir de las respectivas clases/tipos de los
elementos de conexión que contribuyen. Por ejemplo, el proceso puede
sumar las fuerzas de conexión individuales para obtener una fuerza
de conexión total. La información acerca del número y de los tipos
de elementos de conexión que contribuyen a una conexión, puede
obtenerse a partir de la representación digital del modelo de
elementos de construcción y/o incluirse en los nodos y/o en los
bordes del gráfico de conectividad. Ejemplos de
estructuras de datos que soportan la definición de elementos de conexión se describen en el documento WO 04/034333.
estructuras de datos que soportan la definición de elementos de conexión se describen en el documento WO 04/034333.
Por ejemplo, la fuerza de una conexión entre
elementos de construcción x e y puede calcularse como sigue:
Donde la suma reúne todas las clases c de
conexión, S_{c} es la fuerza de la clase c de conexión y
N(c) es el número de elementos de conexión de clase c que
contribuyen a la conexión entre x e y.
Un ejemplo de cómo puede determinarse la fuerza
física de una conexión entre dos elementos de construcción x e y
del tipo mostrado en la fig. 4 y que tienen elementos de conexión en
forma de pares botón/antibotón (u orificio), clavijas y ejes, puede
definirse como sigue:
Fuerza (x, y)=Suma de:
1 para cada par botón/anti-botón
de conexión
10 para cada clavija
5 para cada eje.
\vskip1.000000\baselineskip
Se apreciará que los valores numéricos del
ejemplo anterior son, únicamente, ilustrativos.
La fuerza efectiva de la conectividad puede
estimarse de manera aún más precisa cuando el cálculo de la fuerza
efectiva tiene además en cuenta la geometría de los elementos de
construcción.
Por ejemplo, la fig. 10 muestra dos
subconjuntos, cada uno de los cuales incluye dos elementos de
construcción interconectados mediante un único elemento de conexión
de la forma descrita en relación con la fig. 4. Sin embargo, aunque
el subconjunto de la fig. 10a esté bien conectado, es decir, resulte
difícil desmontarlo, el subconjunto de la fig. 10b no lo está, ya
que le seria muy fácil a un usuario retirar el elemento de
construcción 1001 de la placa de base 1002. El proceso puede
ajustarse para esta diferencia incorporando el volumen o la masa del
elemento de construcción más pequeño/más ligero en lo que respecta
a la fuerza de su conexión. Alternativa o adicionalmente, puede
utilizarse otra magnitud adecuada indicativa de las propiedades
geométricas del elemento de construcción. Esto simula lo fácil que
es para, por ejemplo, un usuario, coger el elemento de construcción
con sus dedos, ya que un elemento de construcción grande es más
fácil de agarrar que un elemento de construcción pequeño.
Por ello, una función de ponderación modificada
de esta clase puede expresarse como:
Conexión(x, y)=Fuerza(x,
y)/Mínimo(volumen de x, volumen de y)
\vskip1.000000\baselineskip
Así, en el ejemplo mostrado en la fig. 10, los
dos subconjuntos tienen la misma fuerza entre elementos de
construcción, ya que en ambos casos el elemento de construcción
pequeño está conectado en un par botón-antibotón.
Sin embargo, en el subconjunto de la fig. 10a, el elemento de
construcción más pequeño 1003 tiene un volumen menor, mientras que
en el subconjunto de la fig. 10b, el elemento de construcción 1001
más pequeño tiene un volumen mayor, de modo que la función
Conexión(x, y) será máxima para el subconjunto de la fig.
10a.
Un ejemplo de función de ponderación basada en
la anterior medición conectiva, puede ser como sigue:
Peso(x)= -1 si x es un subconjunto y
su conexión interna más débil < valor interno
de umbral -1 si x es un subconjunto y
su conexión externa más fuerte > valor
externo de umbral 0 en otro caso.
\vskip1.000000\baselineskip
Los valores de umbral para las conexiones
interna y externa pueden predeterminarse, ser controlados por el
usuario, hallarse empíricamente o establecerse de otra manera
adecuada.
El ajustar los valores de umbral es una forma
eficaz de regular la cantidad y la calidad de pasos secundarios en
la instrucción de construcción resultante. Fijando los valores de
umbral en valores relativamente altos, pueden obtenerse pocos
subconjuntos candidatos de alta calidad en lugar de obtener muchos
de menor calidad. Esto hace que el proceso de deconstrucción sea más
fácil y más rápido.
\vskip1.000000\baselineskip
A los subconjuntos/elementos de construcción
también se les puede asignar un peso de acuerdo con su distancia al
subconjunto/elemento de construcción previamente desconectado. Más
específicamente, el peso(x) puede ser función de la
distancia, el cuadrado de la distancia u otra medición de distancia
adecuada del centro de masas de x al centro de masas del
subconjunto/elemento de construcción que fue desconectado
previamente. Se comprenderá que, en lugar del centro de masas, puede
utilizarse otro punto de referencia adecuado de los
subconjuntos/elementos de
construcción.
construcción.
Los elementos de construcción que se encuentran
más cerca del subconjunto/elemento de construcción previamente
desconectado, pueden recibir un peso superior. Cuando los elementos
de construcción están en contacto mutuo en, al menos, un punto, la
distancia entre ellos puede hacerse cero. La estrategia del más
próximo puede diferenciar entre elementos de construcción que apoyen
por sus superficies unos contra otros y elementos de construcción
que, simplemente, estén unos en contacto con otros en sus esquinas,
como se ilustra en la fig. 11a y en la fig. 11b, respectivamente. En
una realización, una función de ponderación puede ser, así, una
función creciente del tamaño de la zona de apoyo entre dos elementos
de construcción. El que los elementos de construcción apoyen o no
unos contra otros o estén en contacto de otro modo unos con otros,
puede determinarse basándose en las cajas circundantes o en otra
información geométrica almacenada como parte de la representación
digital. Una forma de aproximar tal medida es calcular la distancia
más grande entre puntos de los respectivos elementos de
construcción. Cuando mayor sea la distancia, menor será,
generalmente, el área de apoyo, como se ilustra en la fig. 11.
\vskip1.000000\baselineskip
Cuando se construye un modelo, con frecuencia
será preferible construirlo desde abajo y hacia arriba. Por tanto, a
un subconjunto/elemento de construcción se le puede asignar un peso
de acuerdo con su distancia desde el elemento de construcción más
bajo del modelo. Cuanto más alejado esté de la parte inferior un
subconjunto/elemento de construcción, mayor será el peso que se le
asignará dentro del proceso de deconstrucción. Por ello, en general,
una función de ponderación puede ser una función creciente de las
coordenadas de un elemento de construcción a lo largo de una o más
direcciones de un sistema de coordenadas.
\newpage
Por ello, en lo que antecede se han descrito
varios ejemplos de funciones de ponderación, cada una de ellas
correspondiente a una estrategia correspondiente de deconstrucción
del modelo. Se comprenderá que un proceso de deconstrucción puede
incluir funciones de ponderación alternativas o adicionales y/o
estrategias de deconstrucción alternativas o adicionales. Además,
pueden definirse funciones de ponderación alternativas y/o
adicionales correspondientes a las estrategias de deconstrucción
descritas en esta memoria.
Se apreciará, además, que algunas de las
estrategias descritas en esta memoria tienen uno más parámetros que
pueden hacerse variar para reforzar un aspecto u otro del resultado,
haciendo por tanto de la armazón una herramienta para generar
instrucciones de construcción mediante interacción con humanos, en
lugar de una caja negra.
Los inventores han obtenido resultados
particularmente buenos con una combinación de funciones de
ponderación correspondientes a las siguientes estrategias
asegurando la integridad de la deconstrucción de la construcción.
Juntas, pueden formar la columna vertebral de una realización de un
generador automático de instrucciones de construcción que
proporciona buenos resultados sin necesidad de interacción con el
usuario:
- -
- Estrategia de separación: Solamente permite desconectar subconjuntos o elementos de construcción cuya retirada sea físicamente posible, dada la geometría y la conectividad del subconjunto o elemento de construcción.
- -
- Estrategia de integridad de pasos secundarios: Solamente permite desconectar conjuntos que estén fuertemente conectados internamente y débilmente conectados externamente. El requisito exacto puede hacerse variar para garantizar pasos secundarios de calidad deseada, como se ha descrito anteriormente.
- -
- Estrategia de articulación: Solamente permite desconectar subconjuntos que no dividan el modelo en dos o más conjuntos desconectados. Además, desaconsejan desconectar elementos de construcción individuales que dividan el modelo en dos o más subconjuntos desconectados.
- -
- Estrategia de integración: Si se retiró un elemento de construcción de articulación individual, han de retirarse los subconjuntos o elementos de construcción desconectados tan pronto como sea posible.
\vskip1.000000\baselineskip
En una realización, las cuatro estrategias antes
mencionadas, separación, integración de pasos secundarios,
articulación e integración - son utilizadas para toda la
construcción/deconstrucción, mientras que para ajustar el resultado
en diferentes situaciones pueden emplearse una o más estrategias
adicionales, por ejemplo, una o más de las estrategias restantes
descritas en este documento, por ejemplo, similaridad, base,
proximidad y apilamiento. Tales estrategias pueden ser seleccionadas
por un usuario.
La fig. 4 ilustra un ejemplo de un elemento de
construcción y sus elementos de conexión. En particular, la fig. 4
muestra una vista en perspectiva de un elemento de construcción 401.
El elemento de construcción 401 tiene una superficie superior 402
con ocho botones 403a-h que pueden aplicarse con
orificios correspondientes de otro elemento de construcción, por
ejemplo, orificios en la superficie inferior de otro elemento de
construcción. En forma correspondiente, el elemento de construcción
401 comprende una superficie inferior (no mostrada) con orificios
correspondientes. El elemento de construcción 401 comprende, además,
caras laterales 404 que no comprenden ningún elemento de
conexión.
Generalmente, los elementos de conexión pueden
agruparse en clases diferentes de elementos de conexión, por
ejemplo, conectadores, receptores y elementos mezclados. Los
conectadores son elementos de conexión que pueden ser recibidos por
un receptor de otro elemento de construcción, proporcionando por
tanto una conexión entre los elementos de construcción. Por ejemplo,
un conectador puede ajustar entre partes de otro elemento, en un
orificio o similar. Los receptores son elementos de conexión que
pueden recibir un conectador de otro elemento de construcción. Los
elementos mixtos son partes que pueden funcionar como receptor y
como conectador, dependiendo típicamente del tipo del elemento de
conexión cooperante del otro elemento de construcción.
Los elementos de construcción del tipo ilustrado
en la fig. 4 están disponibles con el nombre de LEGO en una gran
variedad de formas, tamaños y colores. Además, tales elementos de
construcción están disponibles con una variedad de elementos de
conexión diferentes. Se comprenderá que el elemento de construcción
antes mencionado sirve, simplemente, como ejemplo de posibles
elementos de construcción.
La fig. 5 ilustra una realización de una
estructura de datos para representar digitalmente un modelo de
elementos de construcción. La estructura de datos 501 puede
comprender uno o más registros 502 de datos que incluyan parámetros
globales del modelo relacionados con el modelo completo. Ejemplos de
tales parámetros del modelo incluyen un nombre del modelo, un
nombre del creador del modelo, un número de versión del programa de
la aplicación de generación de modelos, una fecha de creación, etc.
La estructura 501 de datos del modelo comprende, además, una lista
503 u otra estructura adecuada de registros de datos de elementos
de construcción. En el ejemplo de la fig. 5, la lista comprende N
registros de datos "Elemento de construcción 1", "Elemento de
construcción 2", ..., "Elemento de construcción J", ...,
"Elemento de construcción N". Cada registro de datos de
elementos de construcción de la lista 503 tiene la estructura
ilustrada por la estructura de datos 504 para el "Elemento de
construcción J".
En particular, cada registro de datos de
elemento de construcción comprende una ID (identificación) 505 del
elemento de construcción, que indica un identificador
correspondiente al tipo de elemento de construcción. La ID del
elemento de construcción puede identificar, en forma singular, las
propiedades del elemento de construcción o del tipo de elemento de
construcción.
El registro de datos de elemento de construcción
puede comprender, además, un número de atributos 506 de elemento de
construcción que indiquen uno o más atributos del elemento de
construcción, tales como color, textura, decoraciones, etc.
Además, el registro 504 de datos de elemento de
construcción comprende artículos de datos 507 y 508 que representan,
respectivamente, la posición y la orientación de un sistema interno
de coordenadas del elemento de construcción. La posición y la
orientación del elemento de construcción están definidas por las
coordenadas de un origen del sistema interno de coordenadas del
elemento de construcción con respecto a un sistema de coordenadas
"mundial" global, y por la orientación del sistema interno de
coordenadas con respecto al sistema global de
coorde-
nadas.
nadas.
Un ejemplo de formato de datos para almacenar
modelos de elementos de construcción que incluye una jerarquía de
sistemas de coordenadas, se describe en la patente norteamericana
núm. 6.389.375.
Además, el registro 504 de datos de elementos de
construcción puede comprender artículos de datos, 509 y 510, que
representan una o más cajas circundantes y datos de conectividad del
elemento de construcción, respectivamente, utilizados en la
detección de propiedades de conectividad del elemento de
construcción con otros elementos de construcción. Una realización
de una representación de los datos de conectividad del tipo de
elementos de construcción mostrados en la fig. 4 incluye estructuras
de datos que representan los planos definidos por la superficie de
una caja circundante del elemento de construcción. Los elementos de
conexión del elemento de construcción están situados en estos
planos, de tal modo que cada elemento de conexión tenga un eje
asociado con él. Los ejes de todos los elementos de conexión del
mismo plano corresponden a puntos de retícula respectivos de una
retícula regular, por ejemplo, una retícula ortogonal, con
distancias fijas entre puntos vecinos de la retícula. Los planos
asociados con el elemento de construcción 401 de la fig. 4 son
paralelos entre sí de dos en dos, e incluyen un grupo de planos
horizontales correspondientes a las caras superior e inferior del
elemento de construcción y varios planos verticales
correspondientes a las caras laterales del elemento de
construcción. Las distancias entre puntos vecinos de la retícula
pueden ser iguales en todos los planos horizontales. En algunas
realizaciones, las distancias entre puntos vecinos de la retícula
en planos verticales, con diferentes de las distancias entre puntos
vecinos de la retícula en planos horizontales. Una representación
digital de las propiedades de conectividad de los elementos de
construcción del tipo representado en la fig. 4, se describen en el
documento WO 04/034333.
Se comprenderá que la representación digital
puede codificarse en cualquier formato adecuado de ficheros o de
datos, por ejemplo, como un fichero binario, un fichero de texto de
acuerdo con un lenguaje predeterminado de descripción de la
generación de modelos, o similar. Se comprenderá, además, que otras
realizaciones de la información digital pueden utilizar estructuras
de datos alternativas o adicionales y/o representar datos de
modelos alternativos o adicionales.
La fig. 6 ilustra una realización de una
interconexión gráfica de usuario de un programa de aplicación de
instrucciones de construcción. La interconexión de usuario
comprende un área de visión 701 que ilustra una representación
gráfica de un paso de un grupo de instrucciones de construcción
paso a paso. La representación gráfica muestra una vista
tridimensional de un modelo parcial 702 tomada desde una posición
predeterminada de la cámara. El modelo parcial 702 consiste en un
subgrupo de todos los elementos de construcción del modelo completo,
cuyo subgrupo incluye los elementos de construcción posicionados
inicialmente. El área de visión 701 comprende, además, una
representación gráfica 703 de los elementos de construcción más
recientemente colocados, es decir, los elementos de construcción
que distinguen el presenta modelo parcial 702 del modelo parcial
del paso previo. En este ejemplo, éstos son los elementos de
construcción 714, 715 y 716 del modelo parcial 702.
La interconexión de usuario comprende, además,
un elemento de control deslizante 709 que puede ser movido en
intervalos discretos merced a una operación de arrastre
correspondiente del ratón, permitiéndole a un usuario seleccionar
cualquiera de los pasos de las instrucciones paso a paso. En el
ejemplo de la fig. 6, en cada paso de las instrucciones se añaden
tres nuevos elementos de construcción.
La interconexión de usuario comprende, además,
elementos 705 de control de botón que le permiten a un usuario
invocar varias funciones frecuentemente utilizadas, tales como
saltar en secuencia de las representaciones hacia delante y hacia
atrás, respectivamente, saltar al primero y al último paso de las
instrucciones, cambiar la posición de la cámara, imprimir las
instrucciones de construcción generadas e iniciar una función de
"juego automático". La función de juego automático presenta la
secuencia de modelos parciales, de uno en uno, de tal modo que cada
modelo parcial se muestre durante un período de tiempo
predeterminado. De preferencia, en la función de juego automático,
el usuario puede configurar el tiempo de visión para cada modelo
parcial.
Finalmente, la interconexión de usuario
comprende varios menús desplegables 704, que le permiten al usuario
iniciar una funcionalidad tal como una función de ayuda, funciones
para cambiar la posición de la cámara, funciones de
acercamiento/alejamiento de la imagen, etc. Otra funcionalidad
proporcionada por la aplicación de instrucciones de construcción
incluye la carga de representaciones digitales, una función de
impresión para imprimir las representaciones gráficas de los modelos
parciales, y funciones de exportación para exportar la secuencia de
representaciones gráficas de los modelos parciales, por ejemplo a un
formato HTML o a cualquier otro formato de ficheros gráficos
adecuado, tal como TIF, JPG, BMP, etc.
Otros ejemplos de funciones proporcionadas por
la aplicación de instrucciones de construcción incluyen una cuenta
de funciones de material, que le permite a un usuario ver o imprimir
una lista de todos los elementos de construcción del modelo.
La fig. 14 muestra un diagrama de proceso de
otra realización de la generación de instrucciones de construcción.
En el paso S1, el proceso recibe una representación digital M de un
modelo de elementos de construcción, por ejemplo como se describe
en relación con el paso S1 de la fig. 2.
En los pasos S2-S12
subsiguientes, la aplicación de instrucciones de construcción genera
una instrucción de construcción 205 a partir de la representación
digital cargada, la instrucción de construcción 205 generada puede
tener una forma como la descrita en relación con la fig. 2.
En el paso S2, el proceso realiza la
inicialización. En particular, el proceso inicializa una estructura
de datos Result (Resultado) para contener la secuencia de
construcción que ha de generarse. El proceso inicializa la secuencia
Result de modo que sea una secuencia vacía. El proceso inicializa,
además, un grupo de elementos de construcción candidatos,
denominados Candidates, para que sea el grupo de todos los
subconjuntos y elementos de construcción del modelo M. Por ello,
como en las realizaciones anteriores, el proceso puede determinar
uno o más subconjuntos candidatos para ser retirados del modelo M y
tratar los subconjuntos como elementos de construcción
generalizados. Los subconjuntos candidatos pueden
encontrarse/seleccionarse por medio de un grupo de criterios de
selección, que son una determinación de cómo puede ser
separado/cortado el modelo. Ejemplos de tales criterios de selección
se han descrito más a fondo en lo que antecede, en particular el
segundo grupo de criterios de selección descritos en conexión con
el paso 303 de la fig. 3. Se apreciará que, en otras realizaciones,
el proceso puede considerar, solamente, elementos de
construcción.
En el paso S3 el proceso determina si el grupo
Candidates está vacío, es decir, si han sido tratados todos los
ele-
mentos de construcción. Si éste es el caso, el proceso sigue al paso S12; de otro modo, el proceso continúa al paso S4.
mentos de construcción. Si éste es el caso, el proceso sigue al paso S12; de otro modo, el proceso continúa al paso S4.
En los S4-S11, el proceso
determina si puede encontrarse un paso b de construcción en un
nuevo modelo parcial tal que el modelo completo M pueda ser
deconstruido hasta llegar a este nuevo modelo parcial.
En particular, en el paso S4, el proceso genera
un grupo auxiliar C de subconjuntos y elementos de construcción
como copia del grupo Candidates.
En el paso S5, el proceso determina si el grupo
C está vacío, es decir, si se ha identificado un candidato b. Si
éste es el caso, el proceso retorna al paso S3; de otro modo el
proceso sigue al paso S6.
En el paso S6, el proceso selecciona un elemento
de construcción candidato b -o un subconjunto candidato- a partir
del grupo C.
La selección de candidatos en la presente
realización puede realizarse en forma similar a la selección de un
elemento de construcción para retirada en el caso de deconstrucción
de la realización previa, es decir, por medio de un grupo de
criterios de selección. En particular, los criterios de selección
pueden basarse en una o más funciones de ponderación que representen
diferentes estrategias de construcción tales como una o más de las
funciones de ponderación anteriormente descritas, en particular las
funciones de ponderación del primer grupo de criterios de selección
descritos en conexión con el peso 304 de la fig. 3. Algunas
funciones de ponderación pueden ser idénticas o casi idénticas en
las versiones constructiva y deconstructiva, respectivamente, por
ejemplo, como las funciones de ponderación descritas con mayor
detalle en lo que antecede. Por ejemplo, una estrategia puede
asignar un peso a elementos de construcción de acuerdo con su
distancia desde el elemento de construcción añadido en el paso
previo. El proceso puede seleccionar entonces el elemento de
construcción más próximo al elemento de construcción previamente
añadido. Otras funciones de ponderación pueden ser muy diferentes.
Por ejemplo, la "estrategia de articulación" en el caso de
deconstrucción anteriormente descrito evita romper el gráfico de
conectividad, mientras que en el caso constructivo de la presente
realización simplemente garantiza que se selecciona un elemento de
construcción que, realmente, conecta con cualquier elemento de
construcción previamente seleccionado. No obstante, en ambos casos,
se evitan los elementos de construcción "volantes". Como las
funciones de ponderación descritas en esta memoria pueden ponderar
subconjuntos (pseudo-elementos de construcción) así
como simples elementos de construcción, tanto el proceso
constructivo como el deconstructivo pueden generalizarse para
tratar subconjuntos. Como en el caso destructivo puro, esto no sólo
es práctico sino, algunas veces, deseable.
Alternativa o adicionalmente, la selección de un
candidato puede basarse parcialmente o por completo en una
entrada/interacción de un usuario. Por ejemplo, el proceso puede
recibir una entrada de un usuario indicativa de un candidato b.
Alternativamente, el proceso puede seleccionar, por ejemplo, al azar
o basándose en las funciones de ponderación anteriormente
descritas, uno o más posibles candidatos e indicar el o los
candidatos al usuario. El proceso puede re-
cibir, entonces, una entrada de usuario indicativa de una aprobación o un rechazo del o de los candidatos sugeridos.
cibir, entonces, una entrada de usuario indicativa de una aprobación o un rechazo del o de los candidatos sugeridos.
En el paso S7, el proceso genera una secuencia
de deconstrucción parcial a partir de la representación digital
recibida del modelo hasta el modelo residual que puede obtenerse
merced a la unión de la secuencia de construcción corriente Result y
el candidato b seleccionado. La secuencia de deconstrucción puede
ser generada en forma de lista secuencial de subconjuntos y/o
elementos de construcción del modelo. Además, el proceso puede
generar secuencias de deconstrucción subordinadas para los
subconjuntos de la lista secuencial. En una realización, el proceso
representa la secuencia de deconstrucción como una estructura
arboriforme de pasos en la que cada rama puede contener
deconstrucciones de construcciones subordinadas.
En lo que sigue se describirá, con mayor
detalle, una realización de un proceso para generar una secuencia de
deconstrucción parcial.
En el paso S8, el proceso determina si podría
encontrarse una secuencia de deconstrucción. Si el proceso de
deconstrucción del paso S7 tiene éxito al determinar una secuencia
de deconstrucción, el proceso continúa hasta el paso S9; de otro
modo, el proceso sigue al paso S10.
En el paso S9, el proceso actualiza los grupos
Candidates, Result y C. En particular, el proceso añade el
candidato b seleccionado a la secuencia resultante corriente
Result, elimina el candidato b del grupo de candidatos Candidates y
elimina todos los elementos del grupo auxiliar C (cuando ha sido
identificado con éxito un candidato). El proceso retorna, entonces,
a S5.
En el paso S10, el proceso elimina b del grupo
auxiliar C de candidatos todavía por comprobar. En el paso Sil, el
proceso determina si sigue habiendo candidatos en C. Si es éste el
caso, el proceso retorna al paso S5 para identificar un candidato
alternativo; de otro modo, el proceso finaliza, por ejemplo, con una
marca o mensaje de error adecuado indicando que ha fallado la
generación de una instrucción de construcción constructiva. Por
ejemplo, esta situación puede darse si el modelo presenta
restricciones excesivas y/o si las funciones de ponderación
utilizadas durante el proceso de deconstrucción que representan las
limitaciones de construcción del modelo son, también,
estrictas/restrictivas. Por ello, en tales casos, algunas o todas
las funciones de ponderación utilizadas en el proceso de
deconstrucción pueden relajarse/hacerse más tolerantes, por
ejemplo, automáticamente o debido a una interacción del usuario, y
el proceso puede reiniciarse con las funciones de ponderación más
tolerantes.
En el paso S12, el proceso genera instrucciones
de construcción a partir de la secuencia de construcción generada
Result, por ejemplo como una secuencia de imágenes u otras
representaciones de modelos parciales, en las que, en cada modelo
parcial se añaden, en comparación con el modelo parcial previo, uno
o más de los subconjuntos y elementos de construcción de la lista
Result generada. El proceso puede almacenar las instrucciones
generadas y/o emitirlas como salida en cualquier forma adecuada,
como se ha descrito en esta memoria.
La fig. 15 muestra un diagrama de proceso de un
ejemplo del proceso de deconstrucción parcial de un modelo M hasta
llegar a un modelo residual N. El proceso de deconstrucción desarma
el modelo M sobre la base de una representación digital del modelo
completo M, incluyendo todos los elementos de construcción del
modelo (paso 301). La entrada del modelo M incluye información
acerca de los elementos de construcción individuales, tal como
tamaño/dimensiones, número de botones, características especiales
tales como bisagras, clavijas, ejes, etc., de los elementos de
construcción. La representación digital incluye, también,
información acerca de donde está situado cada elemento de
construcción en el modelo, por ejemplo especificando las
respectivas posiciones (x, y, z) de los elementos de construcción
con respecto a un sistema de coordenadas adecuado. El proceso
recibe, además, información acerca del grupo residual, N, es decir
un modelo secundario del modelo M. El proceso de deconstrucción
parcial genera una secuencia de pasos de deconstrucción de los que,
en cada paso de deconstrucción, sólo se retiran uno o más elementos
de construcción de M\N (es decir, elementos de construcción del
modelo M que no están incluidos en el modelo residual N) hasta que
únicamente queda el modelo residual N.
En el paso 302, el proceso de deconstrucción
comprueba si en el modelo M\N (o en un modelo parcial M'\N
resultante de una repetición previa) quedan elementos de
construcción por desconectar. Si en el modelo todavía hay elementos
de construcción por retirar, el proceso sigue al paso 303, donde el
proceso selecciona/genera uno o más subconjuntos candidatos para su
retirada del modelo M\N (o un modelo parcial M'\N resultante de una
repetición previa). Los subconjuntos candidatos incluyen elementos
de construcción interconectados. En el paso 304 subsiguiente, el
proceso selecciona un elemento de construcción o uno de los
subconjuntos candidatos generados (E) para ser desconectado de
acuerdo con un primer grupo de criterios de selección
predeterminados, por ejemplo como se ha descrito en relación con la
fig. 3. En el paso 303, los subconjuntos candidatos pueden ser
hallados/seleccionados por medio de un segundo grupo de criterios
de selección, que constituyen una determinación de cómo puede ser
separado/cortado el modelo. Ejemplos de tales criterios de selección
se han descrito más a fondo en lo que antecede.
En el paso 305, el proceso desconecta del modelo
el subconjunto o elemento de construcción E seleccionado en el paso
304, es decir, genera un nuevo modelo parcial M'=M\E en el que se
retira el elemento de construcción seleccionado de todos los
elementos de construcción del subconjunto candidato seleccionado. El
proceso puede mantener una estructura de datos indicativa de la
secuencia de deconstrucción, y actualiza la estructura de datos con
información acerca del subconjunto/elemento de construcción
desconectado.
Si el proceso selecciona un subconjunto a
desconectar, el subconjunto seleccionado puede ser deconstruido
ejecutando un proceso de deconstrucción de manera recursiva en el
paso 307 (es decir, sirviendo como entradas el subconjunto E
seleccionado y el modelo residual N) antes de volver al paso 302
para continuar el proceso de deconstrucción iterativo y encontrar
el siguiente elemento de construcción a desconectar del modelo
parcial restante, es decir, el modelo M'\N=M\E\cupN).
\global\parskip0.950000\baselineskip
Cuando no hay más elementos de construcción para
ser retirados del modelo M que no sean, también, parte del modelo
residual N, se han completado las deconstrucciones parciales del
modelo M para obtener el modelo residual N, y el proceso de
deconstrucción se detiene en el paso 308.
Por ello, en general, se ha establecido que,
para un modelo M dado, si M pude deconstruirse hasta N, entonces N
puede construirse hasta obtener M. Dicho de otro modo, una
construcción en su etapa N es un modelo intermedio adecuado durante
una secuencia de pasos de construcción si (y solamente si) el modelo
M completo puede ser deconstruido hasta llegar a él.
La realización de un proceso para generar una
secuencia de construcción descrita en conexión con las figs. 14 y
15, puede expresarse mediante el siguiente
pseudo-código:
\vskip1.000000\baselineskip
Construir modelo M:
Hacer que Candidates sea el grupo de todos los
ladrillos y subconjuntos de M
Hacer que Result sea una secuencia vacía de
ladrillos
Mientras (Candidates no esté vacío)
- Hacer que C sea una copia de Candidates
- Mientras (C no esté vacío)
- Hacer que b sea un ladrillo de C
- Si (Deconstruir M hasta (unión de Result y b))
- Retirar todos los ladrillos de C
- Candidates = Candidates \ b
- Sumar b a Result
- Si no
- Retirar b de C
- Si (C está vacío)
- Error: "No fue posible la construcción"
- Devolver Falso
\vskip1.000000\baselineskip
Deconstruir modelo M hasta N:
Hacer que Candidates sea el grupo de todos los
ladrillos de M/N;
Mientras (Candidates no esté vacío)
- Hacer que D sea el subconjunto de Candidates que pueden ser separados
- Si (D está vacío)
- Devolver Falso;
- Si no
- Hacer que b sea el ladrillo "que mejor pueda separarse" de D;
- Retirar b de Candidates;
- Devolver Verdadero;
\global\parskip1.000000\baselineskip
En el pseudo-código anterior, la
selección del ladrillo que "mejor pueda separarse" corresponde
a la selección realizada en el paso 304 anterior, es decir, una
selección basada en un grupo predeterminado de criterios de
selección, por ejemplo, uno o más de los criterios de selección
descritos en lo que antecede.
Una realización del proceso también puede
expresarse mediante el siguiente pseudo-código; un
diagrama de proceso de esta realización se muestra en la fig.
16:
\vskip1.000000\baselineskip
Construir modelo M:
Hacer que Candidates sea el grupo de todos los
ladrillos y subconjuntos de M
Hacer que Result sea una secuencia vacía de
ladrillos
Mientras (Candidates no esté vacío)
- Hacer que C sea una copia de Candidates
- Si (Encontrar paso de construcción b de C)
- Sumar b a Result
- Candidates = Candidates \ b
- Si no
- Error: "No es posible una instrucción constructiva de construcción"
- Devolver Falso
Devolver Verdadero
\vskip1.000000\baselineskip
Encontrar paso de construcción b de C:
- Mientras (C no esté vacío)
- Hacer que b sea un ladrillo "bueno" de C
- Si (Deconstruir M hasta (unión de Result y b))
- Devolver Verdadero
- Si no
- Retirar b de C
- Devolver falso.
\vskip1.000000\baselineskip
Por ello, en esta realización, la determinación
de si puede encontrarse un paso de construcción b siguiente se lleva
a cabo como una función separada. La fig. 16a muestra el proceso
global, mientras que la fig. 16b muestra un diagrama de proceso de
un ejemplo de la función que identifica un paso de construcción
siguiente posible/válido.
El proceso se inicia con un paso de entrada S1 y
un paso de inicialización S2 como se ha descrito en relación con la
fig. 14. En el paso S3, el proceso determina si el grupo Candidates
está vacío, es decir, si todos los elementos de construcción han
sido tratados. Si éste es el caso, el proceso continúa en el paso
S12 con la generación de las instrucciones de construcción como se
ha descrito en lo que antecede; de otro modo, el proceso sigue en
el paso S4.
En el paso S4, el proceso genera un grupo
auxiliar C de subconjuntos y elementos de construcción como una
copia del grupo Candidates.
En el paso S20, el proceso determina si puede
encontrarse un siguiente paso b de construcción válido. Si éste es
el caso, el proceso actualiza las estructuras de datos Results y
Candidates, añadiendo el paso b identificado a la estructura de
datos Results y eliminando el correspondiente elemento de
construcción (o subconjunto) de la estructura de datos Candidates;
el proceso vuelve entonces al paso S3. Si no puede encontrarse un
paso de construcción válido, el proceso finaliza, por ejemplo con un
mensaje o una marca de error adecuado que indique que la generación
de una instrucción constructiva de construcción ha fallado, como se
ha descrito en relación con la fig. 14.
La fig. 16a muestra un diagrama de proceso de un
ejemplo de paso S20 de puesta en práctica de un proceso secundario:
Inicialmente, el proceso determina si el grupo C está vacío, es
decir, si se han tratado todos los candidatos b. Si éste es el caso,
el proceso devuelve un valor que indica que no pudo encontrarse un
candidato b válido; de otro modo, el proceso continúa en el paso
S6.
En el paso S6, el proceso selecciona un elemento
de construcción b candidato -o un subconjunto candidato- del grupo
C, por ejemplo como se ha descrito en relación con el paso S6 de la
fig. 14.
En el paso S7, el proceso genera una secuencia
de deconstrucción parcial a partir de la representación digital
recibida del modelo hasta el modelo residual que puede obtenerse
mediante la unión de la secuencia de construcción corriente Result y
el candidato seleccionado b, como se ha descrito en relación con el
paso S7 de la fig. 14.
Si el proceso de deconstrucción del paso S7
tiene éxito al determinar una secuencia de deconstrucción, el
proceso devuelve un valor que inda que el proceso tuvo éxito; de
otro modo, el proceso sigue al paso S10.
En el paso S10, el proceso elimina b del grupo
auxiliar C de candidatos todavía por comprobar, y vuelve al
comienzo del proceso secundario para determinar si C está vacío.
En este ejemplo, la función "Deconstruir
modelo M hasta llegar a N" puede ser la misma función que en el
ejemplo anterior.
En las realizaciones descritas en relación con
las figs. 14-16, la construcción de un modelo con N
elementos de construcción, supone N pasos de construcción y, en
general, para cada paso de construcción, puede que hayan tenido que
ejecutarse varias deconstrucciones con el fin de encontrar un
ladrillo b candidato que sea válido.
El número de repeticiones requeridas puede
estimarse en la forma siguiente: Una instrucción constructiva
completa de construcción de N ladrillos requiere, aproximadamente,
N pasos de construcción. Cada paso de construcción puede necesitar,
aproximadamente, N/2 deconstrucciones. Cada deconstrucción consiste
en, aproximadamente, N pasos de deconstrucción. Cada paso de
deconstrucción requiere, aproximadamente, N/2 ponderaciones de
ladrillos. En total, una instrucción constructiva completa de
construcción puede requerir hasta, aproximadamente (N^4)/4
ponderaciones de elementos de construcción. Esto es, incluso, mucho
mejor que las x^N ponderaciones necesarias para una búsqueda pura de
seguimiento en retroceso. Similarmente, el proceso de
deconstrucción completo descrito en relación con las figs. 2 y 3,
requiere, aproximadamente, (N^2)/2 ponderaciones.
Claims (23)
1. Un método, ejecutado por ordenador, para
generar instrucciones de construcción para un modelo de elementos de
construcción, incluyendo el modelo una pluralidad de elementos de
construcción, siendo las instrucciones de construcción indicativas
de un orden secuencial de pasos de construcción para construir el
modelo de elementos de construcción, incluyendo cada paso de la
construcción añadir al menos un elemento de construcción al modelo
de elementos de construcción; cuyo método comprende:
- -
- determinar, a partir de una representación digital del modelo de elementos de construcción, al menos una secuencia de pasos de deconstrucción para deconstruir, al menos parcialmente, el modelo de elementos de construcción para obtener elementos de construcción; incluyendo cada paso de deconstrucción retirar al menos un elemento de construcción del modelo de elementos de construcción;
- -
- determinar al menos un paso de construcción del orden secuencial de pasos de construcción basándose en dicha al menos una pluralidad de pasos de deconstrucción;
en el que la determinación de la secuencia de
pasos de deconstrucción comprende ejecutar un proceso iterativo, en
el que una repetición del proceso iterativo comprende:
- -
- obtener un modelo parcial previo resultante de una repetición previa;
- -
- determinar al menos un elemento de construcción a desconectar del modelo parcial previo para obtener como resultado un nuevo modelo parcial;
en el que la determinación de dicho al menos un
elemento de construcción a desconectar del modelo parcial previo,
incluye:
- -
- determinar un grupo de subconjuntos candidatos del modelo parcial previo, incluyendo cada subconjunto candidato elementos de construcción respectivos interconectados del modelo parcial previo; en el que la determinación del grupo de subconjuntos candidatos comprende seleccionar los subconjuntos candidatos de acuerdo con un segundo grupo de criterios de selección; y en el que al menos uno del segundo grupo de criterios de selección incluye determinar una fuerza de conexión de la conexión de uno o más de los subconjuntos candidatos con el modelo parcial previo;
- -
- seleccionar, de acuerdo con un primer grupo de criterios de selección predeterminados, un único elemento de construcción o uno del determinado grupo de subconjuntos candidatos a ser desconectados del modelo parcial previo, para tener como resultado el nuevo modelo parcial.
\vskip1.000000\baselineskip
2. Un método de acuerdo con la reivindicación 1,
en el que los elementos de construcción son interconectables según,
al menos, dos direcciones de construcción; y en el que al menos uno
del segundo grupo de criterios de selección incluye determinar una
o más posiciones en el modelo parcial previo en las que ocurre un
cambio de la dirección de construcción.
3. Un método de acuerdo con una cualquiera de
las reivindicaciones 1 a 2, en el que uno o más elementos de
construcción incluyen un elemento conectador para proporcionar una
conexión movible en torno a, por lo menos, una dirección; y en el
que al menos uno del segundo grupo de criterios de selección incluye
determinar uno o más subconjuntos conectados de forma movible al
modelo parcial previo.
4. Un método de acuerdo con una cualquiera de
las reivindicaciones 1 a 3, que comprende representar el modelo
parcial previo mediante una estructura de datos indicativa de un
gráfico que incluye nodos indicativos de respectivos elementos de
construcción del modelo parcial previo y bordes que conectan nodos
respectivos indicativos de conexiones entre elementos de
construcción correspondientes.
5. Un método de acuerdo con la reivindicación 4,
en el que un borde de dicho gráfico tiene un valor de fuerza de
conexión asociado indicativo de una fuerza de conexión de una
conexión entre elementos de construcción correspondientes a nodos
conectados mediante dicho borde.
6. Un método de acuerdo con la reivindicación 5,
en el que cada elemento de construcción comprende uno o más
elementos de conexión destinados a aplicarse con uno o más elementos
de conexión correspondientes de otro elemento de construcción para
proporcionar una conexión entre el elemento de construcción y el
otro elemento de construcción, teniendo asociada con él cada
elemento de conexión una clase de elemento de conexión, teniendo
asociada con ella cada clase de elemento de conexión una fuerza de
conexión, y cuyo método comprende determinar dicho valor de fuerza
de conexión asociada de un borde correspondiente a una conexión
entre dos elementos de construcción a partir de, al menos, el número
y las clases respectivas de elementos de conexión que contribuyen a
la conexión correspondiente.
\newpage
7. Un método de acuerdo con la reivindicación 5
o la reivindicación 6, en el que la determinación de dicho valor de
la fuerza de conexión asociada comprende determinar la fuerza de la
conexión a partir del número y de las clases respectivas de
elementos de conexión que contribuyen a la conexión correspondiente
y de un volumen de los dos elementos de construcción.
8. Un método de acuerdo con una cualquiera de
las reivindicaciones 1 a 7, en el que la determinación de, al menos,
un elemento de construcción a desconectar del modelo parcial previo
para dar como resultado un nuevo modelo parcial, comprende calcular
una o más funciones de ponderación para al menos uno de un subgrupo
de los elementos de construcción y un grupo de subconjuntos
candidatos de elementos de construcción; y seleccionar uno de un
único elemento de construcción y un subconjunto basándose en una
comparación de las funciones de ponderación calculadas.
9. Un método de acuerdo con la reivindicación 8,
en el que al menos una de la o de las funciones de ponderación,
tiene un intervalo de posibles resultados que incluye un primer
intervalo secundario indicativo del grado de adecuación para la
desconexión y un segundo intervalo secundario indicativo del grado
de no adecuación para la desconexión.
10. Un método de acuerdo con la reivindicación
9, en el que la selección de un único subconjunto o elemento de
construcción basándose en una comparación de las funciones de
ponderación calculadas, incluye calcular el peso total a partir de
la o de las funciones de ponderación calculadas; en el que el
cálculo del peso total incluye asignar un valor del segundo
intervalo al peso total si, por lo menos, una de las funciones de
ponderación calculadas tiene un resultado en el segundo
intervalo.
11. Un método de acuerdo con una cualquiera de
las reivindicaciones 8 a 10, en el que cada elemento de construcción
incluye uno o más elementos de conexión para aplicarse con uno o
más elementos de conexión correspondientes de otro de los elementos
de construcción; en el que cada elemento de conexión define una
dirección de desconexión a lo largo de la cual puede desconectarse
el elemento de construcción de otro elemento de construcción; y en
el que el cálculo de una primera de la o de las funciones de
ponderación para un subconjunto o elemento de construcción,
comprende determinar si las respectivas direcciones de desconexión
de todos los conectadores del subconjunto o elemento de
construcción que están conectados a otro u otros elementos de
construcción del modelo parcial previo, son mutuamente
paralelas.
12. Un método de acuerdo con una cualquiera de
las reivindicaciones 8 a 11, en el que el cálculo de una segunda de
la o de las funciones de ponderación para un subconjunto o elemento
de construcción, comprende además determinar si el subconjunto o
elemento de construcción es un subconjunto o elemento de
construcción de articulación.
13. Un método de acuerdo con una cualquiera de
las reivindicaciones 8 a 12, en el que el cálculo de una tercera de
la o de las funciones de ponderación para un subconjunto o elemento
de construcción comprende, además, determinar si el subconjunto o
elemento de construcción es parte de un par de articulación de
subconjuntos o elementos de construcción.
14. Un método de acuerdo con una cualquiera de
las reivindicaciones 8 a 13, en el que una cuarta de la o de las
funciones de ponderación para un subconjunto o elemento de
construcción es una función que disminuye con el número de otros
elementos de construcción a los que está conectado el subconjunto o
elemento de construcción.
15. Un método de acuerdo con una cualquiera de
las reivindicaciones 8 a 14, en el que una quinta de la o de las
funciones de ponderación es una función de una fuerza de conexión de
conexiones entre elementos de construcción de un subconjunto.
16. Un método de acuerdo con una cualquiera de
las reivindicaciones 8 a 15, en el que una sexta de la o de las
funciones de ponderación es una función de una fuerza de conexión de
conexiones de elementos de construcción de un subconjunto con otros
elementos de construcción del modelo parcial previo.
17. Un método de acuerdo con una cualquiera de
las reivindicaciones 8 a 15, en el que una séptima de la o de las
funciones de ponderación de un subconjunto o elemento de
construcción, es una función de una coordenada de una posición del
subconjunto o elemento de construcción a lo largo de una dirección
predeterminada con relación a un sistema de coordenadas.
18. Un método de acuerdo con una cualquiera de
las reivindicaciones 8 a 17, en el que una octava de la o de las
funciones de ponderación de un subconjunto o elemento de
construcción es una función de, al menos, una propiedad del
subconjunto y elemento de construcción y una propiedad de un
subconjunto o elemento de construcción desconectado durante una
repetición previa del proceso iterativo.
19. Un método, ejecutado por ordenador, para
generar instrucciones de construcción para un modelo de elementos de
construcción, incluyendo el modelo una pluralidad de elementos de
construcción, siendo las instrucciones de construcción indicativas
de un orden secuencial de pasos de construcción para construir el
modelo de elementos de construcción, incluyendo cada paso de
construcción añadir, al menos, un elemento de construcción al
modelo de elementos de construcción; cuyo método comprende realizar
un proceso iterativo, en el que una repetición del proceso
iterativo, comprende:
obtener un orden secuencial de pasos de
construcción resultantes de una repetición previa, dando como
resultado el orden secuencial de pasos de construcción, un primer
modelo parcial;
determinar un paso de construcción subsiguiente
del orden secuencial de pasos de construcción basándose en, al
menos, una pluralidad de pasos de deconstrucción mediante la puesta
en práctica de los siguientes pasos:
- -
- determinar un paso de construcción candidato indicativo de una conexión de, al menos, un elemento de construcción subsiguiente al primer modelo parcial para dar como resultado un segundo modelo parcial,
- -
- determinar, a partir de una representación digital del modelo de elementos de construcción, al menos una secuencia de pasos de deconstrucción para deconstruir, al menos parcialmente, el modelo de elementos de construcción a fin de obtener elementos de construcción, incluyendo cada operación de deconstrucción retirar al menos un elemento de construcción del modelo de elementos de construcción con el fin de determinar si el modelo de elementos de construcción puede ser deconstruido a través de una secuencia de pasos de deconstrucción para deconstruir el modelo de elementos de construcción a fin de dar como resultado el segundo modelo parcial;
- -
- si se determina que el modelo de elementos de construcción puede ser deconstruido a través de la secuencia de pasos de deconstrucción para deconstruir el modelo de elementos de construcción dando como resultado el segundo modelo parcial, añadir el paso de construcción subsiguiente candidato determinado como paso de construcción subsiguiente al orden secuencial obtenido de pasos de construcción.
\vskip1.000000\baselineskip
20. Un método de acuerdo con una cualquiera de
las reivindicaciones 1 a 19, que comprende generar una secuencia de
representaciones gráficas de una secuencia correspondiente de
modelos parciales que incluyen un modelo parcial inicial, una
secuencia de modelos parciales incrementales, y un modelo completo;
en el que cada uno de los modelos parciales incrementales incluye
todos los elementos de construcción del modelo parcial incremental
inmediatamente precedente de la secuencia y un número predeterminado
de elementos de construcción adicionales de la pluralidad de
elementos de construcción, en el que los elementos de construcción
adicionales son determinados por la secuencia determinada de pasos
de construcción.
21. Un sistema de tratamiento de datos que
tiene, almacenado en él medios de código de programa destinados a
hacer que el sistema de tratamiento de datos ejecute los pasos del
método de acuerdo con una cualquiera de las reivindicaciones 1 a 20,
cuando dichos medios de código de programa son ejecutados en el
sistema de tratamiento de datos.
22. Un producto de programa de ordenador que
comprende medios de código de programa destinados a hacer que un
sistema de tratamiento de datos lleve a cabo los pasos del método de
acuerdo con una cualquiera de las reivindicaciones 1 a 20, cuando
dichos medios de código de programa son ejecutados en el sistema de
tratamiento de datos.
23. Una señal de datos de ordenador incorporada
en una onda portadora y que representa secuencias de instrucciones
que, cuando son ejecutadas por un sistema de tratamiento de datos,
hacen que el sistema de tratamiento de datos lleve a cabo los pasos
del método de acuerdo con una cualquiera de las reivindicaciones 1 a
20.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/724,915 US7979251B2 (en) | 2007-03-16 | 2007-03-16 | Automatic generation of building instructions for building element models |
| US724915 | 2007-03-16 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2351272T3 true ES2351272T3 (es) | 2011-02-02 |
Family
ID=39473765
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES08717863T Active ES2351272T3 (es) | 2007-03-16 | 2008-03-14 | Generación automática de instrucciones de construcción para modelos de elementos de construcción. |
Country Status (13)
| Country | Link |
|---|---|
| US (1) | US7979251B2 (es) |
| EP (1) | EP2135222B1 (es) |
| JP (1) | JP2010521727A (es) |
| KR (1) | KR101470665B1 (es) |
| CN (1) | CN101675458B (es) |
| AT (1) | ATE479167T1 (es) |
| BR (1) | BRPI0808986B1 (es) |
| CA (1) | CA2680256C (es) |
| DE (1) | DE602008002331D1 (es) |
| DK (1) | DK2135222T3 (es) |
| ES (1) | ES2351272T3 (es) |
| MX (1) | MX2009009733A (es) |
| WO (1) | WO2008113768A1 (es) |
Families Citing this family (56)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7979251B2 (en) * | 2007-03-16 | 2011-07-12 | Lego A/S | Automatic generation of building instructions for building element models |
| US8374829B2 (en) * | 2007-03-16 | 2013-02-12 | Lego A/S | Automatic generation of building instructions for building element models |
| US9087164B2 (en) * | 2008-01-26 | 2015-07-21 | National Semiconductor Corporation | Visualization of tradeoffs between circuit designs |
| US7966588B1 (en) * | 2008-01-26 | 2011-06-21 | National Semiconductor Corporation | Optimization of electrical circuits |
| US8334893B2 (en) * | 2008-11-07 | 2012-12-18 | Honeywell International Inc. | Method and apparatus for combining range information with an optical image |
| WO2011026268A1 (en) | 2009-09-02 | 2011-03-10 | Autodesk, Inc. | Automatic explode based on occlusion |
| CN105373651B (zh) * | 2009-09-02 | 2019-01-18 | 欧特克公司 | 基于遮断的自动分解 |
| US8628393B1 (en) * | 2009-09-24 | 2014-01-14 | Autodesk, Inc. | 3D puzzle generation, algorithms for generation, and physical instantiations |
| BR112012007559B1 (pt) * | 2009-10-02 | 2021-04-27 | Lego A/S | Método implementado por computador para visualizar/renderizar um modelo de computador |
| JP5628083B2 (ja) * | 2011-04-13 | 2014-11-19 | 株式会社日立製作所 | 計算機システム、及び組立アニメーション生成方法 |
| PL2714223T3 (pl) * | 2011-05-23 | 2015-10-30 | Lego As | Generowanie instrukcji budowania dla modeli z konstrukcyjnych elementów |
| BR112013029916B1 (pt) | 2011-05-23 | 2021-02-09 | Lego Ns | sistema de construção de brinquedo, método implementado por computador para gerar uma imagem de um modelo de construção de brinquedo, sistema de processamento de dados, meio legível por computador, e conjunto de construção de brinquedo |
| CN102401334B (zh) * | 2011-11-18 | 2013-11-27 | 深圳市华星光电技术有限公司 | 平板显示装置的背框以及背光系统 |
| WO2013080206A1 (en) * | 2011-11-29 | 2013-06-06 | Wainztein Amitay | Building unit toy |
| JP6098120B2 (ja) * | 2012-11-01 | 2017-03-22 | 富士通株式会社 | 組立順序生成プログラム、組立順序生成装置、および製造方法 |
| KR101441230B1 (ko) * | 2013-01-22 | 2014-09-17 | 울산대학교 산학협력단 | 부품의 조립순서 자동 생성방법 및 장치 |
| CN104123306B (zh) * | 2013-04-27 | 2019-06-25 | 厦门雅迅网络股份有限公司 | 一种基于历史分析的无人智能驱动的数据文件生成方法 |
| US10583588B2 (en) | 2013-06-21 | 2020-03-10 | Pavestone, LLC | Manufactured retaining wall block with improved false joint |
| US9701046B2 (en) | 2013-06-21 | 2017-07-11 | Pavestone, LLC | Method and apparatus for dry cast facing concrete deposition |
| USD791346S1 (en) | 2015-10-21 | 2017-07-04 | Pavestone, LLC | Interlocking paver |
| KR101735683B1 (ko) * | 2014-01-07 | 2017-05-15 | 한국전자통신연구원 | 목조 건조물 조립 시뮬레이션 장치 및 그 방법 |
| US9517423B1 (en) | 2014-02-13 | 2016-12-13 | Maurice S. Kanbar Revocable Trust | Toy construction set |
| USD737468S1 (en) | 2014-05-07 | 2015-08-25 | Pavestone, LLC | Front face of a retaining wall block |
| US10583354B2 (en) | 2014-06-06 | 2020-03-10 | Lego A/S | Interactive game apparatus and toy construction system |
| KR102435699B1 (ko) | 2014-10-02 | 2022-08-25 | 레고 에이/에스 | 게임 시스템 |
| KR102233148B1 (ko) | 2015-01-27 | 2021-03-29 | 한국전자통신연구원 | 건축 문화재 모델링 장치 및 방법 |
| US10379524B2 (en) * | 2015-06-26 | 2019-08-13 | The Boeing Company | Management of a display of an assembly model |
| US9814997B1 (en) | 2015-07-23 | 2017-11-14 | Mega Brands Inc. | Toy construction element with moving members |
| US9947140B2 (en) * | 2015-09-15 | 2018-04-17 | Sartorius Stedim Biotech Gmbh | Connection method, visualization system and computer program product |
| USD786984S1 (en) | 2015-10-15 | 2017-05-16 | Mega Brands Inc. | Construction set element |
| US10102768B2 (en) * | 2016-03-19 | 2018-10-16 | Fujitsu Limited | Behavior variability and complexity modeling using a construction toy |
| US10650222B2 (en) * | 2016-05-09 | 2020-05-12 | Lego A/S | System and method for toy recognition |
| CN109562294A (zh) * | 2016-07-05 | 2019-04-02 | 乐高公司 | 用于创建虚拟对象的方法 |
| US11430195B2 (en) | 2016-08-31 | 2022-08-30 | Sony Corporation | Information processing apparatus, information processing method, and program for improving user-friendliness of an animated tutorial depicting assembling parts for creating a robot |
| WO2018195583A1 (en) * | 2017-04-26 | 2018-11-01 | Emmet Pty Ltd | Construction system and method |
| USD844394S1 (en) | 2018-03-29 | 2019-04-02 | Kraft Foods Group Brands Llc | Mold |
| US10894342B2 (en) | 2018-03-29 | 2021-01-19 | Kraft Foods Group Brands Llc | System and method for molding comestible building blocks |
| JP7022640B2 (ja) * | 2018-03-30 | 2022-02-18 | Kddi株式会社 | 経路探索装置、経路探索方法及びコンピュータプログラム |
| CN108549624B (zh) * | 2018-04-18 | 2021-08-27 | 宁夏通信规划设计院(有限责任公司) | 通信工程设计预算和说明文本自动化生成系统和方法 |
| US12030185B2 (en) * | 2018-11-09 | 2024-07-09 | Autodesk, Inc. | Techniques for CAD-informed robotic assembly |
| JP6539000B1 (ja) * | 2019-02-13 | 2019-07-03 | 株式会社白紙とロック | 複数個体の数値演算システム、数値演算方法、プログラム |
| KR102433186B1 (ko) * | 2019-04-12 | 2022-08-18 | 레고 에이/에스 | 안정성 체크 장치, 방법 및 컴퓨터 프로그램 제품 |
| KR102341778B1 (ko) * | 2019-04-12 | 2021-12-22 | 레고 에이/에스 | 조립식 완구의 조립 순서 결정 및 매뉴얼 생성 방법 |
| CN110175366A (zh) * | 2019-04-26 | 2019-08-27 | 南京友谱信息科技有限公司 | 区域级构筑及建筑整体透视三维模型建模方法 |
| US11423799B2 (en) * | 2019-07-03 | 2022-08-23 | Rockwell Automation Technologies, Inc. | Systems and methods for generating custom assembly instructions for product packages |
| US11029805B2 (en) | 2019-07-10 | 2021-06-08 | Magic Leap, Inc. | Real-time preview of connectable objects in a physically-modeled virtual space |
| CN111179422B (zh) * | 2019-12-31 | 2023-08-04 | 深圳市优必选科技股份有限公司 | 一种模型构建方法、装置及终端设备 |
| DK181187B1 (en) | 2021-03-25 | 2023-04-13 | Lego As | Modular construction system motor unit for modular construction system |
| CN113032889B (zh) * | 2021-05-31 | 2022-03-01 | 北京盈建科软件股份有限公司 | 由基础结构和上部结构拼接成联合建筑模型的方法及其装置 |
| CN113742808B (zh) * | 2021-09-08 | 2024-03-26 | 深圳千帜科技有限公司 | 一种拼装积木模型设计方法 |
| CN114042311A (zh) * | 2021-11-15 | 2022-02-15 | 中国联合网络通信集团有限公司 | 信息处理方法、边缘服务器、电子设备、计算机介质 |
| USD1037491S1 (en) | 2021-12-14 | 2024-07-30 | Pavestone, LLC | Wall block |
| CN114896812B (zh) * | 2022-06-08 | 2024-08-02 | 深圳千帜科技有限公司 | 一种积木打印的自动排版方法、设备、存储介质及系统 |
| DE102022118246B4 (de) | 2022-07-21 | 2025-03-20 | Dr. Ing. H.C. F. Porsche Aktiengesellschaft | System, Verfahren und Computerprogrammprodukt zur Optimierung der Anzahl von Produktvarianten eines Produkts |
| CN115364494B (zh) * | 2022-07-26 | 2024-02-23 | 福州市鹭羽智能科技有限公司 | 一种基于图样的积木自动堆放装置及方法 |
| CN118505936B (zh) * | 2024-07-19 | 2024-10-22 | 汕头市高砖文化科技有限公司 | 一种3d模型积木化智能转换和搭建系统 |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3024350B2 (ja) * | 1991-04-04 | 2000-03-21 | 株式会社日立製作所 | 製造性自動評価方法およびシステム |
| US6004021A (en) | 1995-09-28 | 1999-12-21 | Chaos, L.L.C. | Toy system including hardware toy pieces and toy design software for designing and building various toy layouts using the hardware toy pieces |
| JPH10240324A (ja) * | 1997-02-27 | 1998-09-11 | Toshiba Corp | 組立順序抽出方法及びその装置 |
| EP0972272B1 (en) | 1997-04-03 | 2003-08-13 | Intergraph Corporation | Interactive timeline visualization |
| AU2382300A (en) * | 1998-12-23 | 2000-07-12 | National Institute Of Standards And Technology ("Nist") | Method and system for a virtual assembly design environment |
| US6389375B1 (en) | 1999-01-22 | 2002-05-14 | Interlego Ag | Virtual reality modelling |
| US6725184B1 (en) * | 1999-06-30 | 2004-04-20 | Wisconsin Alumni Research Foundation | Assembly and disassembly sequences of components in computerized multicomponent assembly models |
| JP2002117107A (ja) * | 1999-09-02 | 2002-04-19 | Ricoh Co Ltd | 生産管理システム、生産管理システムにおけるクライアント、生産管理システムにおける生産管理方法、生産管理システムにおけるデータ検索方法、およびその方法を実行させるためのプログラムを記録したコンピュータが読取可能な記録媒体 |
| US6859768B1 (en) * | 2000-03-03 | 2005-02-22 | The Beck Technology | Computer-implemented automated building design and modeling and project cost estimation and scheduling system |
| JP2001353631A (ja) * | 2000-06-09 | 2001-12-25 | Ricoh Co Ltd | 組立工程設計支援装置および分解工程設計支援装置 |
| US6826500B2 (en) * | 2001-06-29 | 2004-11-30 | General Electric Company | Method and system for automated maintenance and training instruction generation and validation |
| US20030097195A1 (en) * | 2001-11-20 | 2003-05-22 | General Electric Company | Method for computing disassembly sequences from geometric models |
| JP4509789B2 (ja) | 2002-10-11 | 2010-07-21 | レゴ エー/エス | コンピュータ読み取り可能なモデル |
| WO2004068300A2 (en) * | 2003-01-25 | 2004-08-12 | Purdue Research Foundation | Methods, systems, and data structures for performing searches on three dimensional objects |
| US7596473B2 (en) * | 2003-05-20 | 2009-09-29 | Interlego Ag | Method of constructing a virtual construction model |
| US7480597B2 (en) | 2003-05-20 | 2009-01-20 | Lego A/S | Method, system and storage medium for generating virtual brick models |
| US20070262984A1 (en) | 2004-06-17 | 2007-11-15 | Lego A/S | Automatic Generation of Building Instructions for Building Block Models |
| US7660641B2 (en) * | 2004-07-21 | 2010-02-09 | International Business Machines Corporation | System, graphical user interface (GUI), method and program product for configuring an assembly line |
| US7295201B2 (en) * | 2005-09-29 | 2007-11-13 | General Electronic Company | Method and system for generating automated exploded views |
| US7680554B2 (en) * | 2006-12-19 | 2010-03-16 | International Business Machines Corporation | Method for associating objects in a manufacturing process |
| US7979251B2 (en) * | 2007-03-16 | 2011-07-12 | Lego A/S | Automatic generation of building instructions for building element models |
-
2007
- 2007-03-16 US US11/724,915 patent/US7979251B2/en active Active
-
2008
- 2008-03-14 WO PCT/EP2008/053124 patent/WO2008113768A1/en not_active Ceased
- 2008-03-14 CN CN200880014715.5A patent/CN101675458B/zh active Active
- 2008-03-14 KR KR1020097021645A patent/KR101470665B1/ko active Active
- 2008-03-14 AT AT08717863T patent/ATE479167T1/de active
- 2008-03-14 DE DE602008002331T patent/DE602008002331D1/de active Active
- 2008-03-14 MX MX2009009733A patent/MX2009009733A/es active IP Right Grant
- 2008-03-14 BR BRPI0808986-8 patent/BRPI0808986B1/pt active IP Right Grant
- 2008-03-14 EP EP08717863A patent/EP2135222B1/en active Active
- 2008-03-14 DK DK08717863.8T patent/DK2135222T3/da active
- 2008-03-14 CA CA2680256A patent/CA2680256C/en active Active
- 2008-03-14 ES ES08717863T patent/ES2351272T3/es active Active
- 2008-03-14 JP JP2009553161A patent/JP2010521727A/ja active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| KR20090125272A (ko) | 2009-12-04 |
| US7979251B2 (en) | 2011-07-12 |
| JP2010521727A (ja) | 2010-06-24 |
| CA2680256C (en) | 2016-02-23 |
| BRPI0808986B1 (pt) | 2019-12-03 |
| CA2680256A1 (en) | 2008-09-25 |
| HK1138092A1 (zh) | 2010-08-13 |
| DK2135222T3 (da) | 2010-12-13 |
| US20080228450A1 (en) | 2008-09-18 |
| BRPI0808986A2 (pt) | 2014-09-09 |
| CN101675458A (zh) | 2010-03-17 |
| CN101675458B (zh) | 2016-02-24 |
| WO2008113768A1 (en) | 2008-09-25 |
| EP2135222B1 (en) | 2010-08-25 |
| ATE479167T1 (de) | 2010-09-15 |
| EP2135222A1 (en) | 2009-12-23 |
| MX2009009733A (es) | 2009-11-09 |
| DE602008002331D1 (de) | 2010-10-07 |
| KR101470665B1 (ko) | 2014-12-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2351272T3 (es) | Generación automática de instrucciones de construcción para modelos de elementos de construcción. | |
| US8374829B2 (en) | Automatic generation of building instructions for building element models | |
| Harding et al. | Meta-parametric design | |
| Shaer et al. | Tangible user interfaces: past, present, and future directions | |
| BR112013030077B1 (pt) | Sistema de construção de brinquedo, método implementado por computador e conjunto de construção de brinquedo | |
| Fischer | Designing (tools (for designing (tools for...))) | |
| Nourian et al. | Generative design in architecture: From mathematical optimization to grammatical customization | |
| Ellingsen et al. | “The six blind men and the elephant”: An Interdisciplinary Selection of Measurement Features | |
| Baez | This Week's Finds in Mathematical Physics (1-50) | |
| Keshavarzi | Contextual Spatial Computing: A Generative Approach | |
| Pinochet | Computational gestural Making: a framework for exploring the creative potential of gestures, materials, and computational tools | |
| Murturi et al. | Melete: Play testing and 3D environments for Mixed Initiative Artificial Intelligence as a method for prototyping video game levels | |
| Wu | Machine learning in housing design: exploration of generative adversarial network in site plan/floorplan generation | |
| Etchebehere et al. | L-systems and procedural generation of virtual game maze sceneries | |
| Tan | Themes for schemes: Design creativity as the conceptualization, transformation, and representation of emergent forms | |
| Andersen | Superagency: The Hidden Blueprint of Reality, Formula for Traveling Dimensions, and The Ultimate Invariant Principle | |
| WO2025233314A1 (en) | Generation of toy construction models | |
| Din | Emergent symmetries: A group theoretic analysis of an exemplar of late modernism: the Smith House by Richard Meier | |
| Rincon Jr | Shaping Space as Information: A Conceptual Framework for New Media Architectures | |
| Lawson | Of sails and sieves and sticky tape | |
| Benedict et al. | Procedural Low-Poly Buildings using L-System for Turn-based Tactic Game MECH. AI | |
| Vale | Proving Grounds: Speculative Scenography and Staging the Future | |
| Sun | Controllable Generation of Simulations for Training Embodied AI and Foundation Models | |
| Almethen | Centralised and Distributed Shape Formation with a Linear-Strength Model | |
| Ohmori et al. | Incrementally modular abstraction hierarchy using algebraic topology |