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 PDF

Info

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
Application number
ES08717863T
Other languages
English (en)
Inventor
Jakob SprogØE Jakobsen
Ole Juul Kristensen
Jacob Allerelli
Jesper Martin Ernstvang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lego AS
Original Assignee
Lego AS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=39473765&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2351272(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Lego AS filed Critical Lego AS
Application granted granted Critical
Publication of ES2351272T3 publication Critical patent/ES2351272T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three-dimensional [3D] modelling for computer graphics
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating three-dimensional [3D] models or images for computer graphics
    • G06T19/20Editing of three-dimensional [3D] images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2008Assembling, 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.
Campo de la técnica
El presente invento se refiere a la generación de instrucciones de construcción para modelos de elementos de construcción.
Sumario
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.
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.
Breve descripción de los dibujos
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.
Descripción detallada
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
Deconstruir modelo M
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
División gráficos/cortes mínimos
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
Cambio de dirección de la construcción
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
Cortes por articulación única de elementos de construcción
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
Cortes por pares de articulación de elementos de construcción
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
Conexión de bisagra o de junta
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
Casos especiales
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
Estrategia de separación
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
Estrategia de articulación
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
Estrategia de integración
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
Estrategia de similaridad
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
Estrategia de base
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
Estrategia de integridad de pasos secundarios
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.
Por ejemplo, la fuerza de una conexión entre elementos de construcción x e y puede calcularse como sigue:
100
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
Estrategia del más próximo
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.
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
Estrategia de apilamiento
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.
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.
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.
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.
ES08717863T 2007-03-16 2008-03-14 Generación automática de instrucciones de construcción para modelos de elementos de construcción. Active ES2351272T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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