[go: up one dir, main page]

BRPI0808986B1 - método implementado por computador de gerar ordens de construção para um modelo de elemento de construção e sistema de processamento de dados - Google Patents

método implementado por computador de gerar ordens de construção para um modelo de elemento de construção e sistema de processamento de dados Download PDF

Info

Publication number
BRPI0808986B1
BRPI0808986B1 BRPI0808986A BRPI0808986B1 BR PI0808986 B1 BRPI0808986 B1 BR PI0808986B1 BR PI0808986 A BRPI0808986 A BR PI0808986A BR PI0808986 B1 BRPI0808986 B1 BR PI0808986B1
Authority
BR
Brazil
Prior art keywords
construction
model
building
elements
subassembly
Prior art date
Application number
Other languages
English (en)
Inventor
Allerelli Jacob
Sprogoe Jakobsen Jakob
Martin Ernstvang Jesper
Juul Kristensen Ole
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=BRPI0808986(B1) "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
Publication of BRPI0808986A2 publication Critical patent/BRPI0808986A2/pt
Publication of BRPI0808986B1 publication Critical patent/BRPI0808986B1/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • 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 3D models or images for computer graphics
    • G06T19/20Editing of 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

método implementado por computador de gerar ordens de construção para um modelo de elemento de construção e sistema de processamento de dados a presente invenção refere-se a um método implementado por computador de gerar instruções de construção para um modelo de elementos de construção, o modelo incluindo uma pluralidade de elementos de construção, as instruções de construção sendo indicativas de uma ordem sequencial de etapas de construção para construir o modelo de elemento de construção, cada etapa de construção incluindo acrescentar pelo menos um elemento de construção ao modelo de elemento de construção. o método compreende determinar a partir de uma representação digital do modelo de elemento de construção, uma ordem sequencial de etapas de desconstrução para desconstruir o modelo de elemento de construção em elementos de construção, cada etapa de desconstrução incluindo retirar pelo menos um elemento de construção do modelo de elementos de construção; e inverter a ordem sequencial determinada de etapas de desconstrução para obter a ordem sequencial de etapas de construção.

Description

Relatório Descritivo da Patente de Invenção para "MÉTODO IMPLEMENTADO POR COMPUTADOR DE GERAR ORDENS DE CONSTRUÇÃO PARA UM MODELO DE ELEMENTO DE CONSTRUÇÃO E SISTEMA DE PROCESSAMENTO DE DADOS".
Campo Técnico [001] A presente invenção refere-se à geração de instruções de construção para construção de modelos de elementos.
Sumário [002] Há vários tipos conhecidos de conceitos de modelagem de conjuntos de brinquedo de construção física. Conceitos especialmente modulares ou semimodulares são muito populares visto que fornecem uma experiência de brincar interessante e um desafio. Tipicamente, esses conceitos fornecem um conjunto de elementos de construção pré-fabricados que podem ser interconectados entre si em algum modo predeterminado por meio de elementos de conexão dos elementos pré-fabricados. Os elementos de construção pré-fabricados lembram objetos bem conhecidos adaptados a uma tarefa de modelagem específica. Desse modo, por exemplo, na construção de um modelo de uma casa os elementos de construção podem se parecer com tijolos de parede, telhas, portas e janelas. O objetivo de selecionar os elementos de construção desse modo é que o trabalho envolvido com a construção de um modelo de uma casa é reduzido significativamente em comparação com uma situação onde todos os detalhes da casa devem ser definidos cada vez em que um novo modelo deve ser feito. Entretanto, a liberdade total na construção de uma casa ou outro objeto é equilibrado pela simplicidade de construir o modelo.
[003] Por exemplo, os conjuntos de construção de brinquedo disponíveis sob o nome LEGO compreendem uma pluralidade de tipos diferentes de elementos de construção interconectáveis com protube-râncias e cavidades correspondentes como elementos de conexão. Os elementos de conexão são dispostos de acordo com padrões de grade regulares, desse modo permitindo uma ampla variedade de intercone-xões entre os elementos de construção.
[004] Tipicamente, tais conjuntos de construção de brinquedo compreendem um conjunto de elementos de construção apropriado para criar um ou mais modelos de construção, por exemplo, um animal, um robô, ou outra criatura, um carro, um avião, uma espaçonave, um edifício ou similares. Tipicamente, um conjunto de construção inclui ainda instruções de construção impressas ou instruções de montagem que ilustram como construir um certo modelo a partir dos elementos de construção do conjunto. Não obstante, é uma característica interessante de tais conjuntos de construção que os mesmos inspirem as crianças a criarem seus próprios modelos.
[005] Tipicamente, as instruções de construção encerradas em um conjunto de construção de brinquedo compreendem uma sequência de imagens que ilustram etapa por etapa como e em qual ordem acrescentar os elementos de construção ao modelo. Tais instruções de construção têm a vantagem de que são fáceis de seguir, mesmo para crianças sem grande experiência em conjuntos de construção de brinquedo e/ou sem habilidade de leitura.
[006] Geralmente uma instrução de construção para um modelo pode ser considerada como uma sequência de etapas e subetapas de construção na qual elementos de construção são montados. A sequência inicia com um ou mais elementos de construção iniciais e desenvolve através de uma série de etapas até a montagem total que é uma construção do modelo. Em cada etapa um elemento de construção único ou uma submontagem de elementos de construção é acrescentado. Para fins da presente descrição, o termo submontagem se refere a um subconjunto de elementos de construção interconectados do modelo de elemento de construção. O acréscimo de uma submon- tagem em vez de um elemento de construção pode envolver, desse modo, uma instrução de construção subordinada para aquela submon-tagem a ser acrescentada à instrução de construção principal. Para fins da presente descrição, uma tal instrução de construção subordinada também será denominada uma subetapa. Desse modo, a sequência de etapas pode ser geralmente representada como uma árvore ramificada de etapas onde cada ramo contém instruções de construção subordinadas.
[007] Anteriormente, tais instruções de construção foram geradas manualmente, por exemplo, por determinar manualmente etapas de construção razoáveis, desenhar as instruções correspondentes em um sistema CAD, e finalmente imprimir as instruções desse modo geradas. Embora tais instruções de construção sejam de alta qualidade, isto é, sejam fáceis de seguir, os processos de produção acima têm a desvantagem de que exigem grande habilidade e são de muito esforço. Como consequência, instruções de construção existem somente tipicamente para modelos de elemento de construção projetados pelo fabricante dos elementos de construção. Em particular, os métodos da técnica anterior acima para gerar instruções de construção não são apropriados para crianças que desejam produzir instruções de construção para seus próprios modelos, o que permitiria que eles compartilhassem seus modelos com seus amigos.
[008] Mais recentemente, instruções de construção foram geradas em forma eletrônica em vez de impressa. Em particular, instruções de construção animadas onde as etapas de construção mais complicadas são animadas. A produção de tais instruções de construção, entretanto, ainda envolve um projeto e um desenho/animação das etapas de construção por projetistas especializados.
[009] Em um sistema complexo como o sistema LEGO, o número de instruções de construção possíveis para um modelo cresce expo- nencialmente com o número de elementos de construção no modelo. Consequentemente, é geralmente um problema para um processo de instrução de construção automática determinar um conjunto de instruções de alta qualidade a partir do número virtualmente infinito de instruções de construção possíveis para um dado modelo. Desse modo, é desejável fornecer um processo automatizado que gere instruções fáceis de seguir, trabalhável mesmo para modelos complexos. É adicionalmente desejável fornecer um tal processo que gera instruções de construção em um tempo razoável em um hardware computacional razoável.
[0010] É adicionalmente desejável fornecer um método para gerar instruções de construção que seja apropriado para crianças que desejam produzir instruções de construção para seus próprios modelos, o que permitiria que elas compartilhassem seus modelos com seus amigos e ainda aperfeiçoassem a experiência de brincar. Em particular, é desejável fornecer métodos que exigem pouca ou nenhuma interação de usuário e entradas que sejam prontamente disponíveis para o usuário.
[0011] O projeto de instruções de construção etapa por etapa eficazes e fáceis de entender foi também o tema de pesquisa. A publicação de Internet "Designing Effective step-by-step assembly instructions", de M. Agrawala e outros, recuperado de http://graphics.stanford.edu/papers/assembly instructions/, descreve princípios de projeto para instruções de montagem eficazes com base em psicologia cognitiva. Esse artigo descreve ainda um sistema computadorizado para gerar instruções de montagem com base em informações sobre cada um dos objetos a ser montado, a orientação de montagem e o ponto de vista de câmera para renderização gráfica, informações de agrupamento, informações sobre prendedores, a importância das partes, simetrias, e sobre limitações na ordem de montagem. Com base nessa entrada, o sistema calcula uma sequência de etapas de montagem com base em um algoritmo de busca extensa levando em consideração as limitações dadas. É um problema do sistema da técnica anterior acima que é computacionalmente caro e requer dados de entrada complicados, desse modo exigindo um alto grau de pensamento abstrato do usuário.
[0012] O pedido de patente internacional publicado WO 2005/124696 descreve um processo automatizado para gerar instruções de construção para um modelo de construção virtual no qual as instruções de construção utilizam uma ordem sequencial de etapas determinada pela ordem de etapas de construção utilizada por um usuário durante construção do modelo virtual em um ambiente de construção virtual. Embora esse método da técnica anterior forneça um processo automatizado fácil de utilizar, permanece um problema aumentar a qualidade de instruções de construção automaticamente geradas.
[0013] É descrito aqui um método implementado por computador de gerar instruções de construção para um modelo de elemento de construção, o modelo incluindo uma pluralidade de elementos de construção, as instruções de construção sendo indicativas de uma ordem sequencial de etapas de construção para construir o modelo de elemento e construção, cada etapa de construção incluindo acrescentar pelo menos um elemento de construção ao modelo de elemento de construção; o método compreendendo: - determinar, de uma representação digital do modelo de elemento de construção, pelo menos uma sequência de etapas de desconstrução para pelo menos parcialmente desconstruir o modelo de elemento de construção em elementos de construção, cada etapa de desconstrução incluindo retirar pelo menos um elemento de construção a partir do modelo de elemento de construção; - determinar pelo menos uma etapa de construção da ordem sequencial de etapas de construção com base pelo menos em uma pluralidade de etapas de desconstrução.
[0014] Consequentemente, foi percebido que uma sequência de etapas de construção pode ser determinada eficientemente por determinar uma ou mais sequências de etapas de desconstrução.
[0015] Uma desconstrução de construção para um modelo pode ser considerado como um processo de sequência/interativo de etapas e subetapas no qual elementos de construção são desmontados. A sequência inicia com o modelo completo e prossegue através de uma série de etapas. Em uma desconstrução completa o processo continua até que todos os elementos de construção tenham sido desconectados do modelo, enquanto em uma desconstrução parcial, o processo termina quando somente um modelo de parte residual predeterminada permanece. Em cada etapa um único elemento de construção ou uma submontagem de elementos de construção é desconectado. A desconexão de uma submontagem em vez de um elemento de construção pode envolver, desse modo, uma desconstrução de construção subordinada para aquela submontagem a ser associada à desconstrução de construção principal. Tal desconstrução de construção subordinada também será denominada uma subetapa. Desse modo, similar à construção de edificação, a sequência de etapas do processo de descons-trução é geralmente uma árvore ramificada de etapas onde cada ramo contém desconstruções de construção subordinadas.
[0016] Quando uma desconstrução de construção pode ser encontrada, essa informação pode ser utilizada no processo de gerar uma sequência de construção. Consequentemente as etapas de construção podem ser determinadas responsivas a uma etapa de determinar uma seqüência de desconstrução. Além disso, verificou-se que a busca por uma sequência de desconstrução que atenda certos critérios de sele- ção é possível com recursos computacionais razoáveis e resulta em instruções de construção de alta qualidade.
[0017] Verificou-se ainda que as instruções de construção geradas por esse método computacionalmente simples são fáceis de entender por usuários, em particular crianças.
[0018] Além disso, como a única entrada da instrução de construção é a representação digital de um modelo de elemento de construção, por exemplo, como gravado durante um processo de geração de modelo virtual, é fácil para um usuário gerar as instruções de construção sem exigir que o usuário possua habilidades de projeto ou conhecimento abstrato sobre geometria, limitações, etc. Adicionalmente, a geração das instruções de construção é independente da ordem na qual o usuário construiu efetivamente o modelo virtual. Isso pode ser vantajoso, uma vez que um ambiente de construção virtual pode permitir a execução de etapas de construção em uma ordem que pode ser difícil ou mesmo impossível de executar com um modelo de mundo real físico.
[0019] Em algumas modalidades, o método compreende: - determinar, a partir de uma representação digital do modelo de elemento de construção, uma ordem sequencial de etapas de desconstrução para desconstruir o modelo de elemento de construção em elementos de construção, cada etapa de desconstrução incluindo retirar pelo menos um elemento de construção do modelo de elemento de construção; - inverter a ordem sequencial determinada de etapas de desconstrução para obter a ordem sequencial de etapas de construção.
[0020] Se uma desconstrução de construção pode ser encontrada, a mesma pode ser revertida, fornecendo uma instrução de construção, exatamente como é possível desconstruir um modelo passando atra- vés de uma instrução de construção reversa. Consequentemente, uma sequência de etapas de construção pode ser determinada, de forma eficiente, por determinar uma ou mais seqüências de etapas de des-construção e então reverter a ordem de etapas de desconstrução para obter uma sequência de etapas de construção. É uma vantagem que esse processo exija somente a geração de uma sequência de des-construção única.
[0021] Em modalidades alternativas, o método compreende executar um processo iterativo, onde uma iteração do processo iterativo compreende: [0022] - obter uma ordem sequencial de etapas de construção que resulte de uma iteração anterior, a ordem sequencial de etapas de construção resultando em um primeiro modelo em peças; - determinar uma etapa de construção subsequente indicativa de uma conexão de pelo menos um elemento de construção subsequente ao primeiro modelo em peças resultando em um segundo modelo em peças. - determinar se o modelo de elemento de construção é des-construtível por uma sequência de etapas de desconstrução para des-construir o modelo de elemento de construção resultando no segundo modelo em peças; - se o modelo de elemento de construção for determinado como sendo desconstrutível pela sequência de etapas de desconstru-ção para desconstruir o modelo de elemento de construção resultando no segundo modelo em peças, anexando à etapa de construção subsequente determinada à ordem sequencial obtida de etapas de construção.
[0023] Consequentemente, nessa modalidade, cada etapa de construção é determinada de tal modo que o modelo em peças resultante pode ser obtido por uma desconstrução parcial do modelo com- pleto. Como consequência, um processo eficiente para gerar instruções de construção é fornecido por um processo de construção onde uma desconstrução do modelo completo até o estágio de construção atual é simulada em cada etapa de construção.
[0024] Essa modalidade trabalha por construção (iniciando a partir de um conjunto vazio de blocos, terminando com o modelo completo), em vez de ser totalmente baseada em uma desconstrução. Uma vez que esse é um modo mais intuitivo para um usuário considerar instruções de construção, permite modos poderosos e de uso mais fácil de se permitir que usuários interajam com o processo de gerar instruções de construção. Um exemplo de uma interação de usuário poderia ser fazer objeções a qualquer bloco sugerido, e obter uma sugestão alternativa. Essa interação simples permite, na realidade, que usuários gerem instruções de construção particularmente de alta qualidade em um período de tempo muito curto e necessidade mínima de interação de usuário. Além disso, o gerador pode assegurar que limitações difíceis nunca são violadas, e consequentemente não importa o que o usuário faça objeção, somente sugestões razoáveis são feitas.
[0025] Por conseguinte, em uma modalidade, a etapa de determinar uma etapa de construção subsequente pode incluir receber uma entrada de usuário, por exemplo, na forma de pelo menos uma entre sugestão, aprovação e rejeição de uma etapa de construção.
[0026] A etapa de determinar se o modelo de elemento de construção é desconstrutível por uma sequência de etapas de desconstru-ção para desconstruir o modelo de elemento de construção resultando no segundo modelo em peças pode incluir a etapa de determinar se o modelo de elemento de construção é de tal modo desconstrutível por uma sequência de etapas de desconstrução, onde cada etapa de des-construção é selecionada por um ou mais conjunto predeterminado de critérios de seleção. Consequentemente, um método eficiente é forne- cido que foi considerado como fornecendo instruções de construção de alta qualidade.
[0027] Em algumas modalidades, a determinação da ordem sequencial de etapas de desconstrução compreende executar um processo iterativo, onde uma iteração do processo iterativo compreende: - obter um modelo de peças anterior que resulta de uma iteração anterior; determinar pelo menos um elemento de construção para desconectar do modelo de peças anterior resultando em um modelo de peças novo.
[0028] Consequentemente, o processo inicia com o modelo completo e gera uma sequência de parte de modelo por retirar, em cada iteração, um ou mais elementos de construção. Embora uma busca por instruções de construção de alta qualidade exija geralmente retrocesso, e desse modo seja computacionalmente muito caro e mesmo excessivamente caro para modelos grandes, verificou-se que a des-construção de construção pode ser realizada por um algoritmo de uma passagem que é muito menos exigente no hardware computacional. [0029] Geralmente, em um sistema de construção complexo, como o sistema de construção de brinquedo comercializado sob o nome LEGO, pode não ser possível para alguns modelos serem desconstru-ídos elemento de construção por elemento de construção, porque alguns elementos de construção podem travar entre si de tal modo que nenhum elemento de construção único pode ser desconectado. Entretanto, geralmente todos os modelos podem ser desconectados por retirar, em cada etapa, um único elemento de construção ou uma sub-montagem de elementos de construção.
[0030] Por conseguinte, em algumas modalidades, a determinação de pelo menos um elemento de construção inclui: [0031] determinar um conjunto de submontagens candidatas do modelo em peças anterior, cada submontagem candidata incluindo elementos de construção interconectados respectivos do modelo em peças anterior;
[0032] selecionar, de acordo com um primeiro conjunto de critérios de seleção predeterminados, um único elemento de construção ou um do conjunto determinado de submontagens candidatas para ser des-conectado do modelo em peças anterior resultando no novo modelo em peças.
[0033] Consequentemente, em algumas modalidades, submonta-gens são tratadas como elementos de pseudoconstrução para fins da sequência de desconstrução. Entretanto, o número de submontagens possíveis de um modelo de elemento de construção geralmente cresce exponencialmente com o número de elementos de construção no modelo. Como consequência, mesmo para modelos de tamanho moderado uma abordagem de parte superior para baixo para busca através de todas as submontagens possíveis e seleção, dados certos critérios, de uma submontagem a ser desconectada é computacionalmente excessivamente caro, embora uma tal abordagem possa bem ser exequível ao considerar exclusivamente retirada de elementos de construção únicos.
[0034] Em algumas modalidades, o método descrito aqui combina a abordagem de parte superior para baixo acima com uma abordagem parte inferior para cima para gerar submontagens candidatas para serem submetidas à busca parte superior para baixo. A geração de sub-montagem candidata pode ser realizada de acordo com um conjunto de um ou mais subprocessos geradores ou um segundo conjunto de critérios de seleção, desse modo resultando em um subconjunto de submontagens candidatas do conjunto de todas as submontagens possíveis do modelo. Consequentemente, a abordagem parte inferior para cima é utilizada para aparar o espaço de busca antes de executar a abordagem parte superior para baixo computacionalmente cara. [0035] A dissecação acima da busca de parte superior - para baixo e geração de parte inferior - para cima resulta em um processo que é computacionalmente mais barato, programaticamente mais fácil, e facilmente extensível, por exemplo, por adição de subprocessos geradores adicionais para gerar submontagens candidatas.
[0036] Além disso, a abordagem acima provê um controle aperfeiçoado, uma vez que provê um mecanismo para controlar o número de submontagem candidata a gerar, desse modo fornecendo um mecanismo para equilibrar custo computacional contra qualidade das instruções de construção resultantes e para ajustar o tamanho do grupo de candidatos para quaisquer exigências de tempo e hardware dadas. [0037] Em algumas modalidades, pelo menos um do segundo conjunto de critérios de seleção inclui determinar uma resistência de conexão da conexão de uma ou mais submontagens candidatas com o modelo em peças anterior. Consequentemente, submontagens são geradas/selecionadas de acordo com a resistência de sua conexão ao restante do modelo em peças anterior. Verificou-se que essa estratégia de seleção/geração para submontagens resulta em instruções de construção particularmente de alta qualidade.
[0038] Regras de seleção adicionais ou alternativas para selecionar eficientemente submontagens candidatas compreendem determinar alterações na direção de construção e/ou submontagens que são conectadas de forma móvel a modelo em peças anterior, por exemplo, por intermédio de uma articulação ou conexão de junção, uma corredi-ça, etc.
[0039] Em algumas modalidades o método compreende representar o modelo em peças anterior por uma estrutura de dados indicativa de um gráfico, por exemplo, um gráfico não-orientado, incluindo nós indicativos dos respectivos elementos de construção do modelo em peças anterior e bordas conectando nós respectivos indicativos de conexões entre elementos de construção correspondentes. Por representar o modelo em peças anterior como um gráfico, técnicas de divisão de gráfico e outras técnicas conhecidas a partir da teoria de gráfico (vide, por exemplo, "Graph Theory and its applications" de Jonathan L. Gross e Jay Yellen, Chapman & Hall/CRC, segunda edição, 2006) podem ser utilizadas para identificar eficientemente submontagens candidatas apropriadas, por exemplo, por identificar nós de articulação ou pares de articulação no gráfico, de modo a identificar submonta-gens que são ligadas ao restante do modelo em peças anterior por um elemento de construção de articulação único ou por um par de elementos de construção. Consequentemente, um modelo de elementos de construção interconectados corresponde a um gráfico conectado, e uma submontagem corresponde a um subgráfico conectado.
[0040] Os nós e/ou bordas do gráfico podem ter um ou mais atributos respectivos associados aos mesmos correspondendo a atributos dos elementos de construção e conexões correspondentes, respectivamente. Por exemplo, nós do gráfico podem ter um ou mais dos seguintes atributos ligados a eles: tipo do elemento de construção, volume de elemento de construção, geometria/formato do elemento de construção, massa do elemento de construção de volume, uma caixa de limitação do elemento de construção, uma posição do elemento de construção em um sistema de coordenada, uma direção principal de construção associada ao elemento de construção, as posições, tipos, e/ou direções de elementos de conexão do elemento de conexão, e/ou similares. Similarmente, bordas do gráfico podem ter um ou mais dos seguintes atributos associados a eles: tipo de conexão, resistência de conexão, direção de conexão, e/ou similares. Quando as bordas do gráfico têm valores/pesos respectivos associados a elas, indicativos da resistência de conexão respectivas das conexões, métodos de divisão de gráficos particularmente eficientes, como métodos para encontrar cortes mínimos podem ser utilizados para obter instruções de construção de alta qualidade.
[0041] Em algumas modalidades, cada elemento de construção compreende um ou mais elementos de conexão adaptados para engatar-se com um ou mais elementos de conexão correspondentes de outro elemento de construção para fornecer uma conexão entre o elemento de construção e o outro elemento de construção. Tais elementos de conexão podem impor restrições adicionais em possíveis colocações de elementos de construção, visto que uma conexão é somente possível entre elementos de conexão compatíveis, por exemplo, protuberâncias que se adaptam em cavidades correspondentes, quando colocadas em uma posição correta em relação mútua. Cada elemento de conexão pode ter associado ao mesmo uma classe de elemento de conexão, cada classe de elemento de conexão tendo associado à mesma uma resistência de conexão. Em algumas modalidades, o método compreende determinar o valor de resistência de conexão associado de uma borda que corresponde a uma conexão entre dois elementos de construção a partir pelo menos do número e classes respectivas de elementos de conexão contribuindo para a conexão correspondente. Consequentemente, um método eficiente e preciso para calcular/estimar resistências de conexão em um modelo de elemento de construção é fornecido.
[0042] Em algumas modalidades, a determinação do valor de resistência de conexão associado compreende determinar a resistência de conexão a partir pelo menos do número e classes respectivas de elementos de conexão que contribuem para a conexão correspondente e a partir de um valor dos dois elementos de construção, desse modo não somente levando em consideração a resistência de conexão como também o tamanho dos elementos de construção, e desse modo se os elementos de construção são fáceis de segurar e manipular durante o processo de construção.
[0043] Em algumas modalidades, a determinação de pelo menos um elemento de construção a desconectar a partir do modelo em peças anterior resultando em um novo modelo em peças compreende computar uma ou mais funções de peso para pelo menos um de um subconjunto dos elementos de construção e um conjunto de submon-tagens candidatas de elementos de construção; e selecionar um entre um elemento de construção único e uma submontagem baseada em uma comparação das funções de peso computadas. Consequentemente, uma estrutura escalonável, extensível e flexível para o processo de seleção é fornecida, que pode ser modificada ou estendida por funções de peso alternativas ou adicionais, e onde critérios de seleção diferentes podem ser ponderados relativamente entre si de acordo com sua importância/prioridade. As funções de peso podem incluir qualquer função apropriada de uma ou mais propriedades de um ou mais elementos de construção.
[0044] Em algumas modalidades, pelo menos uma ou mais funções de peso tem uma gama de resultados possíveis incluindo uma primeira subfaixa indicativa de um grau de adequação para ser desco-nectado e uma segunda subfaixa indicativa de um grau de inadequação para ser desconectado, desse modo permitindo atribuir pesos positivos e negativos a elementos de construção e/ou submontagens. [0045] Por conseguinte, em algumas modalidades, a seleção de um único elemento de construção ou submontagem baseada em uma comparação das funções de peso computadas inclui computar um peso total a partir de uma ou mais funções de peso computadas; onde a computação do peso total inclui atribuir um valor na segunda faixa ao peso total, se pelo menos uma das funções de peso computadas tiver um resultado na segunda faixa, desse modo fornecendo uma veto- estratégia que evita que elementos de construção e/ou submontagens sejam desconectados que não atendam certos critérios, embora possam obter um elevado peso a partir de outras funções de peso.
[0046] Os exemplos de funções de peso que se verificou resultar em instruções de construção de alta qualidade incluem uma função de peso que determina se um elemento de construção ou submontagem é fisicamente desprendível ou se a direção de desconexão do elemento de construção ou submontagem é, por exemplo, bloqueada por outras partes do modelo. Por exemplo, uma tal função de peso pode ser eficientemente calculada por computar uma geometria estirada do elemento de construção ou submontagem.
[0047] Outro exemplo de tais funções de peso inclui uma função de peso que atribui um peso inferior a elementos de construção de articulação e/ou elementos de construção que são compreendidos em um par de articulações de elementos de construção ou submontagens, de modo a evitar dividir o modelo em modelos em peças separa-das/desconectadas. Quando as funções de peso incluem uma função de peso que diminui com o número de outros elementos de construção com os quais o elemento de construção ou submontagem é - diretamente ou através de outros elementos de construção - conectado, é assegurado que partes separadas pequenas sejam rapidamente removidas do modelo, se ocorrer.
[0048] Quando uma das funções de peso é uma função de uma resistência de conexão de conexões entre elementos de construção de uma submontagem, elementos de construção e submontagens que são facilmente desconectáveis a partir do modelo restante podem ser favorecidas. Em particular, verificou-se que uma função de peso que atribui um peso mais elevado a elementos de construção e submonta-gens tendo uma conectividade interna mais forte e uma conectividade externa mais fraca, resultam em instruções de construção de qualida- de elevada. Além disso, em uma tal função de peso, a resistência de conectividade pode ser calculada como uma resistência em relação ao volume dos elementos de construção interconectados ou submonta-gens.
[0049] Ainda exemplos adicionais de funções de peso apropriadas incluem funções de peso que são funções de pelo menos uma propriedade do elemento de construção ou submontagem e uma propriedade de um elemento de construção ou submontagem desconectada durante uma iteração anterior do processo iterativo, desse modo permitindo favorecer a retirada de submontagens ou elementos de construção simetricamente posicionados, elementos de construção ou sub-montagens que estão localizados em uma proximidade mútua, e/ou similar. Os exemplos de tais propriedades incluem a posição de elementos de construção em relação a um sistema de coordenada, um tipo de elemento de construção e/ou similar. Em algumas modalidades, uma função de peso pode ser ainda uma função de uma propriedade de mais de um elemento de construção retirado em iterações anteriores. Por exemplo, uma ou mais das iterações anteriores poderia ser atribuída com pesos diferentes ao comparar modelos em peças; por exemplo, a iteração mais recente poderia ser atribuída a um peso mais elevado do que as iterações anteriores.
[0050] As modalidades do método descrito aqui recebem uma representação digital do modelo de elemento de construção. Uma tal representação digital pode ser fornecida por qualquer processo apropriado, por exemplo, um ambiente de construção implementado por computador e/ou um processo para gerar uma representação digital de um modelo de elemento de construção a partir, por exemplo, de uma ou mais imagens, como imagens de um modelo físico ou outro objeto. Um tal processo é descrito na US 7.092.899. Nesse processo uma representação digital de um modelo de elemento de construção de um item é criado a partir de um modelo CAD ou um conjunto de imagens bidimensionais de um item tridimensional. Algumas modalidades de representações digitais podem incluir informações indicativas dos tipos, posição, e/ou interconexão de elementos de construção, etc. em qualquer formato de dados apropriado. As modalidades de representações digitais podem incluir ainda informações sobre atributos de modelo global, atributos de elementos de construção individuais, como um tipo de elemento de construção, cor, tamanho, caixa de limitação, etc.
[0051] Um ambiente de construção implementado por computador para construir iterativamente um modelo de elemento de construção virtual pode compreender um programa de computador que, quando executado em um computador, provê uma interface de usuário gráfico que permite a um usuário manipular modelos de elemento de construção virtual, incluindo operações como selecionar elementos de construção, acrescentar elementos de construção ao modelo, eliminar elementos de construção do modelo, alterar a orientação de um elemento de construção, alterar propriedades de um elemento de construção, por exemplo, cor, tipo, tamanho e/ou similares, visualizar um modelo, salvar uma representação digital de um modelo, carregar uma representação digital de um modelo anteriormente salvo, etc. Os elementos de construção virtuais podem ser cópias virtuais de elementos de construção física correspondentes, isto é, ter tamanho relativo correspondente, formato, cor, etc.
[0052] Um ambiente de construção implementado por computador pode ser configurado para executar um conjunto predeterminado de restrições impostas nas posições relativas de elementos de construção em relação mútua, como detecção de colisão entre elementos de construção. Por exemplo, as restrições correspondem às restrições correspondentes aplicáveis aos elementos de construção física cor- respondentes, desse modo assegurando que um modelo de elemento de construção virtual possa ser efetivamente construído a partir também dos elementos de construção física correspondentes. Consequentemente, é uma vantagem que o método assegura que as instruções de construção geradas sejam efetivamente realizáveis, isto é, levem a um resultado desejado.
[0053] Em algumas modalidades, instruções de construção são geradas como uma sequência de representações gráficas como imagens. Cada representação gráfica pode incluir uma renderização gráfica de um modelo de elemento de construção parcial também mencionado como modelo em peças, desse modo fornecendo instruções de construção fáceis de seguir onde cada representação gráfica corresponde a uma etapa no processo de construção onde um número predeterminado de elementos de construção é acrescentado ao modelo. Desse modo, todos os modelos em peças ou somente um subconjunto dos modelos em peças que compõem a sequência de construção determinada podem ser incluídos nas instruções de construção finais, visto que uma ou mais etapas da sequência de construção podem ser combinadas em uma única imagem das instruções de construção. Um usuário pode determinar facilmente quais elementos de construção devem ser acrescentados em cada etapa e como devem ser adicionados por comparar duas representações gráficas consecutivas.
[0054] Quando o método compreende ainda fornecer uma interface de usuário para visualizar as representações gráfica, onde a interface de usuário facilita preferivelmente uma manipulação controlada por usuário das representações gráficas geradas, a representação digital do modelo de elemento de construção pode ser convenientemente visualizada em um computador. Em particular, uma vez que a representação digital do modelo inclui todas as informações necessárias para a geração das instruções de construção, instruções de constru- ção podem ser convenientemente comunicadas de um computador para outro, por exemplo, armazenadas em um meio de armazenagem, enviadas através de uma rede de comunicação, por exemplo, como um anexo de e-mail, uploaded em um servidor de rede, ou similar. Um recebedor da representação digital pode desse modo visualizar a representação gráfica e manipular a mesma, por exemplo, alterar um ângulo de visualização, zoom, alterar as operações de visualização e/ou similar. Consequentemente, os usuários podem comunicar facilmente suas instruções de construção a amigos. É uma vantagem adicional que a representação digital não necessita incluir uma renderização gráfica de cada etapa das instruções, desse modo mantendo o tamanho do arquivo da representação digital pequeno. Além disso, uma vez que a representação digital pode compreender todas as informações de modelo relevantes, o recebedor de um modelo pode até mesmo modificar o modelo antes de gerar as instruções de construção.
[0055] Em algumas modalidades, as instruções de construção podem ser geradas em um formato de arquivo predeterminado, desse modo permitindo a geração de instruções de construção impressa e/ou eletrônica. Os exemplos de formatos de arquivo apropriados incluem HTML, XML, BMP, TIFF, etc.
[0056] Em algumas modalidades, o número predeterminado de elementos de construção adicionais acrescentados em uma etapa das instruções em etapas é selecionável por usuário, desse modo permitindo que um usuário selecione entre instruções de etapa por etapa muito detalhadas, onde, por exemplo, cada etapa corresponde à colocação de um único elemento de construção novo, e instruções muito compactas onde cada etapa corresponde a um número maior de elementos de construção recentemente colocados. Em algumas modalidades o número de elementos de construção acrescentados em cada etapa é igual em todas as etapas. Em outras modalidades, o número de elementos de construção adicionais acrescentados pode ser diferente para etapas diferentes das instruções de construção. Por exemplo, o tamanho da etapa pode ser controlado por um usuário para cada etapa, desse modo permitindo a geração de instruções de definição mais alta para partes mais complicadas da construção.
[0057] A presente invenção pode ser implementada em modos diferentes incluindo o método descrito acima e a seguir, um sistema de processamento de dados e meios de produto adicionais, cada um fornecendo um ou mais dos benefícios e vantagens descritos com relação ao método primeiramente mencionado, e cada um tendo uma ou mais modalidades preferidas que corresponda a modalidades preferidas descritas com relação ao método primeiramente mencionado e descrito nas reivindicações dependentes relacionadas ao mesmo. [0058] Em particular, as características do método descrito acima e a seguir podem ser implementadas em software e realizadas em um sistema de processamento de dados ou outro meio de processamento causado pela execução de instruções executáveis por computador. As instruções podem ser meios de código de programa carregadas em uma memória, como uma RAM, a partir de um meio de armazenagem ou a partir de outro computador através de uma rede de computadores. Alternativamente, as características descritas podem ser implementadas por conjunto de circuitos de ligação física em vez de software ou em combinação com software.
[0059] Por conseguinte, a invenção refere-se ainda a um sistema de processamento de dados adaptado para executar o método descrito acima e a seguir. A invenção refere-se ainda a um programa de computador que compreende meio de código de programa para executar todas as etapas do método descrito acima e a seguir quando o programa é rodado em um computador. A invenção refere-se ainda a um produto de programa de computador que compreende meio de có- digo de programa para executar o método descrito acima e a seguir quando o produto de programa de computador é rodado em um computador. O meio de código de programa pode ser armazenado em um meio legível por computador e/ou incorporado como um sinal de dados propagado.
[0060] Em algumas modalidades, o programa de computador compreende um primeiro componente de software para gerar uma representação digital do modelo de elemento de construção; e um segundo componente de software para gerar instruções de construção a partir da representação digital gerada, desse modo fornecendo um componente de software separado par ler a representação digital de um modelo e apresentar as instruções de construção correspondentes. Consequentemente, ao comunicar as instruções de construção um usuário pode comunicar a representação digital juntamente com o segundo componente de software, desse modo fornecendo uma representação independente compacta das instruções de construção que pode ser vista pelo recebedor sem a necessidade de software adicional. Será reconhecido, entretanto que os dois processos, isto é, a geração de uma representação digital de um modelo e a geração das instruções de construção podem ser integradas em um único componente de software.
Breve Descrição dos Desenhos [0061] A invenção será explicada mais completamente abaixo com relação a uma modalidade preferida e com referência ao desenho, no qual: [0062] As figuras 1a-b mostram um sistema de processamento de dados para gerar instruções de construção de modelos de elementos de construção;
[0063] A figura 2 mostra um fluxograma de uma modalidade da geração de instruções de construção geral;
[0064] A figura 3 mostra um fluxograma de uma modalidade de um processo para gerar uma sequência de etapas de desconstrução; [0065] A figura 4 ilustra um exemplo de um elemento de construção e seus elementos de conexão;
[0066] A figura 5 ilustra uma modalidade de uma estrutura de dados para representar digitalmente um modelo de elemento de construção;
[0067] A figura 6 ilustra uma modalidade de uma interface de usuário gráfico de uma aplicação de instrução de construção;
[0068] A figura 7 ilustra uma representação de um modelo de elemento de construção como um gráfico não-orientado;
[0069] As figuras 8 a 13 mostram exemplos que ilustram modalidades de critérios de seleção;
[0070] A figura 14 mostra um fluxograma de outra modalidade da geração de instrução de construção geral;
[0071] A figura 15 mostra um fluxograma de uma modalidade de um processo para gerar uma sequência de etapas de desconstrução de uma desconstrução parcial;
[0072] A figura 16 mostra um fluxograma de outra modalidade da geração de instruções de construção geral.
Descrição detalhada [0073] As figuras 1a-b mostram um sistema de processamento de dados para gerar e manipular modelos legíveis por computador de objetos geométricos.
[0074] A figura 1a mostra uma vista esquemática de um exemplo de um sistema de computador. O sistema de computador compreende um computador apropriadamente programado 101, por exemplo, um computador pessoal, que compreende um display 120, um teclado 121 e um mouse de computador 122 e/ou outro dispositivo de indicação, como uma mesa sensível ao toque, um track ball, uma caneta de luz, uma tela sensível ao toque ou similar.
[0075] O sistema de computador designado 101 é adaptado para gerar instruções de construção a partir de uma representação digital de um modelo de elemento de construção. O sistema de computador 101 pode ser adicionalmente adaptado para facilitar projeto, armazenamento, manipulação e compartilhamento de modelos de elemento de construção virtuais bem como geração de instruções de construção, como descrito aqui. O sistema de computador 101 pode ser utilizado como um sistema independente ou como um cliente em um sistema de cliente/servidor. Em algumas modalidades, o sistema de computador compreende ainda uma ou mais interfaces para conectar o computador a uma rede de computador, por exemplo, a Internet. [0076] A figura 1b mostra um diagrama de blocos de um sistema de processamento de dados para gerar instruções de construção para modelos de elemento de construção. O computador 101 compreende memória 102 que pode ser parcialmente implementada como um meio de memória volátil e parcialmente como meio de memória não-volátil, por exemplo, uma memória de acesso aleatório (RAM) e um disco rígido. A memória tem armazenada na mesma intérprete de código de modelo 107, gerador de código de modelo 108, tratador de evento UI 109, aplicação de modelagem 110, e gerador de instruções de construção 113, cada um executável pela unidade de processamento central 103. Além disso, a memória tem armazenada na mesma, dados de modelo 111, isto é, um conjunto de estruturas de dados que representa uma representação digital de um modelo de elemento de construção.
[0077] O intérprete de código 107 é adaptado para ler e interpretar uma representação digital que define um modelo, por exemplo, código que representa as estruturas de dados dos elementos de construção de um modelo. Em uma modalidade preferida o intérprete de código é adaptado para ler uma representação digital do modelo e converter tal modelo em um formato gráfico conhecido para apresentação em um display de computador, preferivelmente uma renderização 3D do modelo.
[0078] O tratador de evento-UI 109 é adaptado para converter a interação de um usuário com uma interface de usuário em comandos adequados de usuário reconhecíveis pelo gerador de código 108. Um conjunto de comandos reconhecíveis e possíveis pode compreender: obter um elemento de construção a partir de uma biblioteca de elementos, colocar um elemento de construção para ser conectado com outro elemento de construção, desconectar um elemento de construção, descartar um elemento de construção, manipular um elemento de construção, um grupo de elementos de construção, etc, por exemplo, por iniciar uma rotação, etc. Juntamente com cada comando, pode haver associado um conjunto de parâmetros respectivos, por exemplo, coordenadas de cursor com relação ao sistema de coordenadas de display, tipos de elementos de construção, etc.
[0079] O gerador de código 108 pode ser adicionalmente adaptado para modificar as estruturas de dados de um modelo em resposta aos comandos de um usuário. Como tarefa simultânea ou subsequente, o intérprete de código pode ser executado para apresentar o resultado do gerador de código.
[0080] A aplicação de modelagem 110 é adaptada para controlar memória, arquivos, a interface de usuário, etc.
[0081] Uma modalidade de uma modelagem de realidade virtual é descrita em US 6.389.375. Além disso, uma modalidade do processo de colocar de forma interativa um novo elemento de construção virtual em uma cena que inclui uma estrutura 3D é descrita no pedido internacional publicado WO04104811. Os dois documentos são incorporados aqui a título de referência na íntegra.
[0082] A aplicação de instrução de construção 113 é adaptada para ler uma representação digital de um modelo e gerar uma instrução de construção a partir dos dados de modelo de leitura, como descrito aqui. A aplicação de instrução de construção 113 pode prover ainda uma interface de usuário para exibir modelos em peças, de acordo com a sequência armazenada de etapas de construção, como descrito aqui, ou qualquer outro formato de saída apropriado para as instruções de construção geradas. A aplicação de instrução de construção 113 pode utilizar funções fornecidas pelo intérprete de código 107 e o tratador de evento UI 109 para a leitura e renderização gráfica dos modelos e para receber entrada de usuário, respectivamente. Em modalidades alternativas, a aplicação de instrução de construção é independente, isto é, não depende de componentes de software externos. Em algumas modalidades, a aplicação de instrução de construção gera as instruções de construção em um formato de arquivo apropriado, por exemplo, em forma imprimível.
[0083] Um usuário 105 é capaz de interagir com o sistema de computador 101 por intermédio da interface de usuário 106, compreendendo preferivelmente uma interface de usuário gráfico exibida em uma tela de computador, e um ou mais dispositivos de entrada como um teclado e/ou um dispositivo de indicação. Para carregar, salvar ou comunicar modelos, descrições geométricas ou outros dados, o sistema de computador compreende uma unidade de entrada/saída (I/O) 104. A unidade de entrada/saída pode ser utilizada como uma interface para tipos diferentes de mídia de armazenagem e tipos diferentes de redes de computador, por exemplo, a Internet. Além disso, a unidade de entrada/saída (I/O) 104 pode ser utilizada para permutar modelos com outros usuários, por exemplo, interativamente. A permuta de dados entre a memória 102, a unidade de processamento central (CPU) 103, a interface de usuário (UI) 106, e a unidade de entra- da/saída 104 é realizada por meio do barramento de dados 112.
[0084] Observa-se que o sistema de processamento de dados da figura 1 pode ser configurado para executar tanto a aplicação de modelagem como a aplicação de instruções de construção. Entretanto, em outras modalidades o sistema de processamento de dados pode ser configurado para executar somente a aplicação de instrução de construção baseada em dados de modelo recebidos de outro computador, por exemplo, um computador no qual uma aplicação de modelagem ou outra aplicação para gerar uma representação de modelo digital é executada. De modo similar, no outro computador, a aplicação de modelagem pode ser instalada sozinha ou em combinação com a aplicação de instrução de construção.
[0085] A figura 2 mostra um fluxograma de uma modalidade da geração de instrução de construção. Na etapa S1, o processo recebe uma representação digital de um modelo de elemento de construção, por exemplo, como criado por um módulo de geração de modelo, por exemplo, a aplicação de modelagem 110 da figura 1b, ou por qualquer outro processo apropriado.
[0086] A representação digital pode ser recuperada de uma mídia de armazenagem 203, por exemplo, o disco rígido local do computador rodando a aplicação de instrução de construção, um CD ROM, um disquete ou similares. Alternativa ou adicionalmente, a representação digital do modelo pode ser armazenada remotamente, por exemplo, recebida de outro computador de uma rede de computador onde é armazenada. Por exemplo, a representação digital pode ser carregada a partir de um servidor de rede, onde pode ser tornada disponível para um ou mais usuários. Os exemplos de estruturas de dados da representação digital serão descritos abaixo.
[0087] Nas etapas subsequentes S2 - S4, a aplicação de instrução de construção gera uma instrução de construção 205 a partir da representação digital carregada. Em uma modalidade, a aplicação de instrução de construção gera uma sequência de vistas 3D ou modelos em peças, onde cada modelo em peças é distinguido do modelo em peças imediatamente precedente em que um número predeterminado de elementos de construção adicionais é acrescentado ao modelo de acordo com uma sequência de etapas de construção determinadas pelo processo de instrução de construção como descrito aqui. As instruções de construção 205 podem ser apresentadas eletronicamente, impressas, ou apresentadas em outro modo apropriado. Em algumas modalidades, a geração das instruções de construção pode ser controlada por um usuário 204. Por exemplo, o usuário pode selecionar o número de elementos de construção adicionais a ser acrescentado em cada etapa. Além disso, o usuário pode manipular as vistas 3D geradas, incluindo alterações da posição de uma câmera, etc, como será descrito abaixo. O usuário 204 pode ser o mesmo ou um usuário diferente do usuário 202.
[0088] Em particular, na etapa S2, o processo gera uma sequência de desconstrução a partir da representação digital recebida do modelo, por exemplo, na forma de uma lista sequencial de elementos de construção e/ou submontagens do modelo. O processo gera ainda sequências de desconstrução subordinadas para as submontagens da lista sequencial. Em uma modalidade, o processo representa a sequência de desconstrução como uma árvore ramificada de etapas onde cada ramo pode conter desconstruções de construção subordinadas. Uma modalidade de um processo para gerar uma sequência de desconstru-ção será descrita em maior detalhe abaixo.
[0089] Na etapa S3, o processo reverte a sequência de descons-trução gerada para obter uma sequência de construção.
[0090] Na etapa S4, o processo gera instruções de construção a partir da sequência de construção gerada, por exemplo, como uma sequência de imagens ou outras representações de modelos em peças, onde em cada modelo em peças um ou mais dos elementos de construção e submontagens a partir da lista gerada são acrescentados em comparação com o modelo em peças anterior. O processo pode armazenar as instruções gradas e/ou transmitir as mesmas em qualquer forma apropriada, como descrito aqui.
[0091] A figura 3 mostra um fluxograma de um exemplo de um processo de desconstrução de um modelo M. O processo de descons-trução desconstrói o modelo M com base em uma representação digital do modelo completo M, incluindo todos os elementos de construção no modelo (etapa 301). A entrada do modelo M inclui informações sobre os elementos de construção individuais, como tama-nho/dimensões, número de botões, características especiais como articulações, pinos, eixos, etc. dos elementos de construção. A representação digital também inclui informação sobre onde no modelo cada elemento de construção é colocado, por exemplo, por especificar as posições respectivas (x, y, z) dos elementos de construção com relação a um sistema de coordenadas apropriado.
[0092] Na etapa 302, o processo de desconstrução testa se há elementos de construção deixados no modelo M (ou um modelo em peças resultante de uma iteração anterior) para serem desconectados. Caso haja ainda elementos de construção no modelo, o processo prossegue na etapa 303 onde o processo seleciona/gera uma ou mais submontagens candidatas para retirada do modelo M. As submonta-gens candidatas incluem elementos de construção interconectados. Na etapa subsequente 304, o processo seleciona um elemento de construção ou uma das submontagens candidatas geradas (E) para ser desconectado de acordo com um primeiro conjunto de critérios de seleção predeterminados. Esse primeiro conjunto de critérios de seleção predeterminados atribui pesos a cada elemento de construção e submontagem gerada, de acordo com funções de peso predeterminadas, cujos exemplos serão descritos mais completamente abaixo. Consequentemente, o processo determina um elemento de construção ou submontagem a partir de um grupo de candidatos, onde o grupo inclui todos os elementos de construção individuais e as submonta-gens candidatas geradas. Consequentemente, para fins do processo de seleção, as submontagens podem ser consideradas como sendo tratadas como elementos de pseudoconstrução além dos elementos de construção efetivos. Para fins da presente descrição, membros do grupo de elementos de construção e submontagens candidatas também serão referidos como candidatos para retirada.
[0093] As submontagens candidatas na etapa 303 são encontra-das/selecionadas por intermédio de um segundo conjunto de critérios de seleção, que são uma determinação de como o modelo pode ser separado/cortado. Os exemplos de tais critérios de seleção serão descritos mais completamente abaixo.
[0094] Na etapa 305, o processo desconecta o elemento de construção ou submontagem E selecionada na etapa 304 a partir do modelo, isto é, gera um novo modelo em peças M'=M\E onde o elemento de construção selecionado de todos os elementos de construção da sub-montagem candidata selecionada é retirado. O processo mantém uma estrutura de dados indicativa da sequência de desconstrução, e atualiza a estrutura de dados com informações sobre o elemento de cons-trução/submontagem desconectado. A sequência é armazenada, de modo que possa ser revertida posteriormente para obter uma instrução de construção.
[0095] Se o processo selecionar uma submontagem para ser des-conectada, a submontagem selecionada pode ser desconstruída por executar o processo de desconstrução em um modo recursivo na etapa 307 (isto é, com a submontagem selecionada E servindo como mo- delo de entrada M), antes de retornar à etapa 302 para continuar o processo de desconstrução iterativo e encontrar o próximo elemento de construção a desconectar do modelo em peças restante, isto é, o modelo M’=M\E.
[0096] Quando não há mais elementos de construção no modelo, o modelo é totalmente desconstruído, e o processo de desconstrução para na etapa 308.
[0097] Consequentemente, uma modalidade do processo de desconstrução descrito acima pode ser expressa pelo seguinte pseudocó-digo: Deconstruct model M: Let Candidates be the set of all bricks in M Let Result be an empty sequence of bricks While (Candidates is not empty) Let D be the subset of Candidates that are detachable Let b be the "best detachable" brick from D
Add b to Result Remove b from Candidates Return Result [0098] No pseudocódigo acima a seleção do bloco "mais bem desprendível" corresponde à seleção executada na etapa 304 acima, isto é, uma seleção com base em um conjunto de critérios de seleção predeterminados, por exemplo, um ou mais dos critérios de seleção descritos abaixo.
[0099] É uma vantagem selecionar primeiramente as submontagens candidatas, que podem ser desconectadas do modelo e então posteriormente atribuir a cada candidata pesos de acordo com a prefe- rência de desconectar, que é computacionalmente possível tratar a seleção, ao separar a mesma em mais etapas, uma vez que a ponderação de submontagens somente é executada em um subconjunto de todas as submontagens possíveis do modelo.
[00100] Um exemplo de um processo de desconstrução é descrito por um dos inventores na tese "Computer-aided generation of building instructions for LEGO models", de Jacob Allerelli, Department of Mathematics and Computer Science, University of Southern Denmark, junho de 2006, que é incorporada aqui a título de referência. A seguir, os exemplos de regras de seleção do segundo conjunto de critérios de seleção para determinar submontagens candidatas na etapa 303 serão descritos em maior detalhe. Esses critérios de seleção também serão mencionados como heurística de corte.
[00101] Cortes mínimos/divisão de gráfico: [00102] Foi percebido que submontagens candidatas apropriadas podem ser determinadas de forma eficiente utilizando técnicas de divisão de gráfico para dividir gráficos em subgráficos. Para essa finalidade, o processo representa o modelo em uma estrutura de dados indicativa de um gráfico não direcionado incluindo nós e bordas que conectam nós, no qual os nós representam elementos de construção e as bordas representam conexões entre elementos de construção. Um tal gráfico também será mencionado como gráfico de conectividade. Um exemplo, de um gráfico de conectividade é mostrado na figura 7. A figura 7a mostra um exemplo de um modelo de elemento de construção que inclui elementos de construção a, b, c, d e e. A figura 7b mostra o gráfico de conectividade correspondente com nós a, b, c, d, e. [00103] Os itens de dados de borda da estrutura de dados de gráfico podem incluir um atributo indicativo da resistência de conexão (física) da conexão correspondente entre os elementos de construção conectados pela conexão representada pela borda. Assim um processo de divisão de gráfico para identificar um corte de peso mínimo do gráfico resulta em uma submontagem de tal modo que a força/resistência física necessária para desconectar a submontagem é pelo menos aproximadamente minimizada. Desse modo, as submontagens mais frouxamente conectadas são selecionadas. Um exemplo de determinar a resistência de conexão entre elementos de construção será descrito em maior detalhe abaixo.
[00104] Alteração de direção de construção: [00105] É vantajoso cortar um modelo onde uma alteração em direção de construção ocorrer. Alterações em direção de construção podem ocorrer quando elementos de construção são interconectados ao longo de pelo menos duas direções de construção. As posições de alterações na direção de construção podem ser encontradas por buscas de gráfico locais no gráfico de conectividade. Uma direção de construção pode ser definida por associar um atributo de direção com cada elemento de construção. Alternativa ou adicionalmente uma direção de construção pode ser definida por atribuir um atributo de direção às conexões entre elementos de construção. Para essa finalidade, os nós e/ou bordas do gráfico de conectividade podem ter atributos associados aos mesmos indicativos de uma direção de construção da conexão correspondente.
[00106] Cortes de articulação de elemento de construção único: [00107] Elementos de construção que interconectam dois ou mais elementos de construção/submontagem são denominados elementos de construção de articulação, e podem ser bons pontos/nós de corte para separação do modelo. Após identificação, um elemento de construção de articulação pode ser incluído na submontagem separada, isto é, ser retirado, ou o elemento de construção de articulação pode ser excluído da submontagem separada, isto é, não ser retirado. No gráfico, elementos de construção de articulação podem, por exemplo, ser indicados - por exemplo, pela denominada coloração de gráfico -e desse modo facilmente localizados. Nós de articulação do gráfico de conectividade podem ser encontrados por qualquer algoritmo apropriado para encontrar nós de articulação de um gráfico, por exemplo, com base em uma primeira busca de profundidade (vide, por exemplo, "Graph theory and its applications" de Jonathan L. Gross e Jay Yellen, Chapman & Hall/CRC, segunda edição, 2006).
[00108] Cortes do par de articulações de elemento de construção: [00109] O termo par de articulações se refere a dois elementos de construção que interconectam duas ou mais submontagens separadas, isto é, pares de elementos de construção cuja retirada faz com que o modelo se separe em duas submontagens separadas. As sub-montagens conectadas ao restante do modelo por elementos de construção de articulação ou pares de articulação podem ser submonta-gens candidatas úteis para fins de gerar instruções de construção. [00110] Pares de articulação podem ser encontrados por um processo onde uma lista A de todos os nós de articulação no gráfico de conectividade G é salva. Então um gráfico G' é gerado, onde um nó não-articulação n em G é retirado. Uma lista B de todos os nós de articulação em G' é salva. Para cada nó m em B\A, os seguintes pares de articulação são encontrados: (n, m). Esse processo é repetido para todos os nós de não articulação n no gráfico G.
[00111] Conexão de junção ou de articulação: [00112] Uma conexão de articulação é uma articulação entre um ou mais elementos de construção em torno de uma direção de articulação. Um elemento de construção pode incluir uma articulação interna ou um elemento de conexão de articulação para fornecer uma conexão de articulação entre dois ou mais elementos de construção. Sub-montagens conectadas ao resto do modelo por uma conexão de articulação podem ser submontagens candidatas para fins de gerar ins- truções de construção. Tais montagens podem ser identificadas no gráfico de conectividade, quando bordas do gráfico têm atributos associados indicativos da presença de estruturas de articulação. Por exemplo, o processo pode buscar subgráficos do gráfico de conectividade que são conectados ao restante do gráfico de conectividade somente por uma ou mais conexões de articulação. A figura 12b ilustra um elemento de construção tendo um elemento de conexão 1201 para fornecer uma conexão de articulação. Será entendido, que outros tipos de conexões móveis podem ser úteis para identificar também submon-tagens candidatas, por exemplo, conexões de junção, conexões deslizantes, etc.
[00113] Casos especiais: [00114] Alguns elementos de construção são especiais no modo em que são conectáveis a outros elementos de construção somente em uma maneira. Os exemplos desses elementos de construção são figuras tendo um elemento de conexão único sob a base da figura, vidro nas janelas, pneus em rodas, vagões de trem em trilhos, etc. Esses elementos de construção especiais são, portanto, candidatos que podem ser cortados do modelo em sua conexão externa, isto é, onde são conectados a um elemento de construção arbitrário diferente de seu elemento de construção correspondente.
[00115] Consequentemente, no acima, diversas heurísticas de corte para identificar submontagens candidatas foram reveladas. Uma heurística de corte ou uma combinação de mais heurísticas de corte, como descrito acima, pode ser desse modo utilizada durante o processo de desconstrução para encontrar eficientemente submontagens entre o número grande de todas as submontagens possíveis de um modelo. [00116] Como descrito acima, em uma modalidade, cada candidata de retirada - isto é, cada um dos elementos de construção do modelo e cada uma das submontagens candidatas que são selecionadas pe- lo(s) processo(s) de heurística de corte alternativo(s) ou acima - é ponderada por intermédio de uma ou mais funções de peso de modo a encontrar a candidata de retirada com o peso mais elevado, isto é, a candidata de retirada E mais apropriada para ser removida do modelo (etapa 304), e então essa candidata de retirada selecionada é desco-nectada (etapa 305).
[00117] Em uma modalidade, as funções de peso são selecionadas de tal modo que cada função de peso aumentará a chance de uma submontagem/elemento de construção ser selecionado ou rejeitará a submontagem/elemento de construção de ser selecionado, com base nos critérios que implementa. O processo combina os resultados de todas as funções de peso para cada submontagem/elemento de construção de modo a obter um peso geral para a submontagem/elemento de construção. O processo pode então selecionar a submonta-gem/elemento de construção com o peso mais elevado. Quando as funções de ponderação individuais são selecionadas, de acordo com um esquema de ponderação uniforme, o conjunto de funções de ponderação é facilmente alterável.
[00118] Por exemplo, em uma modalidade, cada função de peso resulta em um peso. Um peso é um número real na faixa [0, ..., 1] ou um número inteiro negativo (-1, -2, -3, ...). Se a desconexão de uma submontagem/elemento de construção for favorecida, o peso atribuído à submontagem/ elemento de construção está na faixa [0, ..., 1], onde 0 é atribuído quando não é desfavorecido nem favorecido para desconectar uma submontagem/elemento de construção, e 1 é atribuído quando a desconexão é ótima. Os números reais entre esses dois extremos indicam favorecimento de desconexão entre os mesmos. Se a desconexão for desfavorecida, a função de peso resulta em um peso negativo atribuído à submontagem/elemento de construção na faixa (1, -2, -3, ...), onde os valores negativos diferentes indicam quão desfa- vorecido é uma desconexão. Será reconhecido que outros conjuntos de funções de peso podem ser definidos tendo faixas diferentes. [00119] Funções de peso tendo duas faixas separadas podem ser utilizadas para implementar um esquema veto, por exemplo, como descrito abaixo: [00120] Para cada submontagem/elemento de construção x, cada um conjunto de funções de peso é avaliada, e os pesos individuais respectivos são combinados como a seguir: se não houver pesos negativos (denominados "VETO"s) entre os pesos atribuídos para x, todos os pesos são acumulados para obter um peso total. Se, por outro lado, houver um ou mais VETOs entre os pesos atribuídos, todos os pesos não VETO são descartados, isto é, definidos iguais a 0. De acordo com isso, uma boa submontagem/elemento de construção para desconectar é uma que é isenta de VETOs e tenha um peso acumulado elevado. Por outro lado, após uma submontagem/elemento de construção receber um VETO, não pode deixar o estado de VETO até a próxima iteração na desconstrução. Se todos os elementos de cons-trução/submontagens obtiverem pesos negativos, o processo pode selecionar o elemento de construção com o peso negativo total tendo o menor valor absoluto. Alternativamente, o processo pode retroceder uma ou mais iterações e tentar selecionar uma submontagem / elemento de construção diferente, solicitar uma interação de usuário ou prosseguir em outro modo apropriado.
[00121] Verificou-se que o esquema de ponderação acima resulta em instruções de construção de alta qualidade quando uma descons-trução é encontrada onde, em cada etapa, há pelo menos uma sub-montagem/elemento de construção que é isento de VETOs.
[00122] Um número de exemplos de funções de peso será descrito agora em maior detalhe: [00123] Estratégia de desprender;
[00124] Um exemplo de uma função de peso determina se uma submontagem/elemento de construção a ser desconectada é fisicamente acessível e desprendível do resto do modelo. Para essa finalidade, a função de peso verifica se uma ou mais das duas exigências a seguir são atendidas: 1) todas as direções ao longo das quais uma submonta-gem/elemento de construção é desprendível/conectável são paralelas. A função de peso pode determinar, desse modo, a direção de construção e/ou a direção de conexão de todas as conexões de um elemento de construção, por exemplo, com base em atributos associados ao nó e/ou bordas correspondentes no gráfico de conectividade. Se todas as direções forem paralelas, o elemento de construção pode ser desco-nectado por um movimento de translação. Por exemplo, os elementos de construção 803 da figura 8a têm duas direções de conexão que não são paralelas: são conectados ao eixo 802 e ao elemento de construção 804. A conexão ao eixo 802 tem uma direção associada paralela ao eixo 802, uma vez que a retirada do elemento de construção 803 a partir do eixo 802 exigiria um movimento do elemento de construção 803 em uma direção ao longo do eixo 802. A conexão ao elemento de construção 804, por outro lado tem uma direção ortogonal ao eixo, a saber, na direção dos botões que se projetam para fora da superfície superior do elemento de construção 804. Consequentemente a retirada do elemento de construção 803 pode causar tensão no modelo e ser de difícil execução para, por exemplo, uma criança sem desconec-tar simultaneamente outras conexões do modelo. A figura 12 mostra exemplos de elementos de construção com suas respectivas direções de desprendimento indicadas por setas. 2) o deslocamento de um elemento de constru-ção/submontagem em uma direção de conexão não resulta em uma colisão com outros elementos de construção do modelo. Por exemplo, a função de peso pode determinar uma caixa de limite do elemento de construção/submontagem, e determinar se uma translação da caixa de limite por uma distância predeterminada na direção de conexão resulta em uma colisão/interação com outro elemento de construção. A figura 13 ilustra um modelo no qual o elemento de construção 1301 é móvel ao longo de sua direção de desprendimento por uma distância d. Alternativamente, a função de peso pode calcular uma geometria de submontagem/elemento de construção estirada na direção de conexão, e determinar se a geometria estirada colide com quaisquer outros elementos de construção/submontagens. A quantidade de espaço que um elemento de construção ocupa pode ser representada por volumes geométricos simples. Por exemplo, um elemento de construção com 2x4 botões, por exemplo, como mostrado na figura 4 pode ter associado ao mesmo 9 caixas de colisão: uma caixa de colisão enche o elemento de construção inteiro exceto pelos 8 botões, e os 8 botões enchem uma caixa de colisão cada. Essa informação pode ser utilizada para estimar se os elementos de construção colidem/sobrepõem. As informações de caixa de colisão podem ser utilizadas para calcular a geometria/formato/forma estirada que representa o espaço que é necessário para desconectar um elemento de construção.
[00125] Um exemplo de como calcular o formato/forma/geometria estirada pode compreender encontrar uma direção, que é um vetor d, no qual o elemento de construção pode ser desconectado. O elemento de construção tem N volumes de colisão (por exemplo, N=9 como no exemplo do elemento de construção com 2x4 botões acima) e uma posição (x, y, z).
[00126] Tendo um elemento de construção BE, um vetor d e o modelo M, o processo de desprender pode incluir as seguintes etapas: para cada volume de colisão k no BE, p1 indica posição k's. p2 indica posição k's quando o BE é movido de p1 ao longo do vetor d. Uma vez que cada volume de colisão é uma caixa com 8 cantos, haverá 8 pontos em p1 e 8 pontos em p2. No total haverá 16 pontos em um conjunto de pontos. Quando os volumes de colisão são convexos esse conjunto de pontos constituirá uma figura convexa f.
[00127] O processo testa se a figura f colide com quaisquer elementos de construção do modelo M. Se a figura f colidir com quaisquer elementos de construção do modelo M, o elemento de construção BE não pode ser desconectado. Se a figura f não colidir com nenhum elemento de construção no modelo M, o processo pode testar o volume de colisão seguinte.
[00128] Finalmente, se nenhuma das figuras f dos volumes de colisão N colidir com quaisquer elementos de construção do modelo M, o elemento de construção BE pode ser desconectado de acordo com a estratégia de desprender.
[00129] O efeito dessa estratégia é que assegura pelo menos aproximadamente que a desconstrução (e desse modo a construção reversa) do elemento de construção / submontagem é fisicamente possível sem colocar tensão física no modelo.
[00130] O exemplo a seguir de uma função de peso evita desconexão de elementos de construção/submontagens que não são fisicamente desprendíveis (ou pelo menos somente facilmente): Peso(x) = -1, se pelo menos uma das condições acima 1) e 2) não for atendida para x, 0, de outro modo [00131] Estratégia de articulação: [00132] Como mencionado acima, submontagens/elementos de construção cuja retirada faz com que o modelo se divida em duas ou mais partes separadas são denominadas submontagens/elementos de construção de articulação. A desconexão de submontagens/elementos de construção de articulação pode resultar em instruções de constru- ção que mostram submontagens/elementos de construção separados que parecem flutuar/voar em relação mútua em uma renderização 3D das instruções de construção. Isso pode ser indesejável, porque complica a desconstrução e desse modo também a instrução de construção.
[00133] A seguinte função de peso evita desconexão de submonta-gens/elementos de construção de articulação: Peso(x) = -1 se x for uma submontagem/elemento de construção de articulação 0 se não for [00134] Consequentemente, elementos de construção de articulação são fortemente desfavorecidos, desse modo evitando submonta-gens/elementos de construção que voam.
[00135] Em uma modalidade alternativa, a função de peso atribui um peso neutro, por exemplo, peso=0 se x for uma submonta-gem/elemento de construção de articulação, e um peso positivo, por exemplo, peso=1, se x não for uma submontagem/elemento de construção de articulação. Consequentemente, nessa modalidade a desconexão dos elementos de articulação não é desfavorecida nem favorecida. Isso mostra que os pesos diferentes podem ser ajustados de modo a adaptar o esquema de ponderação a efeitos desejados diferentes. Ainda em outra modalidade, pesos diferentes são atribuídos dependendo de se a função de peso é calculada para um elemento de construção individual ou uma submontagem. Por exemplo, em uma modalidade, se x for uma submontagem, o peso(x) é definido em -1 para submontagens de articulação e em 0, se x não for uma submon-tagem de articulação, enquanto no caso de x ser um elemento de construção individual, o peso(x) é definido em 0 para elementos de construção de articulação e +1 de outro modo. Consequentemente, nessa modalidade, a desconexão de uma submontagem de articula- ção é evitada, enquanto a desconexão de elementos de construção de articulação é meramente desfavorecida.
[00136] Estratégia de integração: [00137] Há situações onde não é possível evitar submonta-gens/elementos de construção desconectados (ou "voando") no modelo em peças restante. Um exemplo de uma tal situação é mostrado na figura 8a, que mostra um elemento de engrenagem 801 posicionado em um eixo 802 o qual se projeta através de furos correspondentes de elementos de construção 803. Ao desconstruir o modelo, o eixo 802 pode ser retirado, resultando no elemento de engrenagem 801 permanecendo desconectado do resto do modelo, como mostrado na figura 8b.
[00138] Em uma tal situação pode ser desejável retirar o elemento desconectado 801 o mais rápido possível do modelo, resultando na situação mostrada na figura 8c.
[00139] A retirada rápida de elementos desconectados pode ser favorecida por uma função de peso atribuindo um peso crescente a submontagens/elementos de construção que são (direta ou indiretamente) conectados a um número menor de outros elementos de construção: um exemplo de uma tal função de peso é: Peso(x) = 1 / (number_of_building ele- ments_connected_to_x + 1) para todas as submontagens/elementos de construção x [00140] No exemplo da figura 8b, as funções de peso acima atribuem o peso 1 a pequena engrenagem 801, uma vez que não é conectada a nenhum outro elemento de construção ou submontagem. Por outro lado, os outros elementos de construção são atribuídos com peso 1/6, porque fazem parte de uma montagem que inclui os cinco elementos designados 803, 804 e 805.
[00141] A estratégia de integração reduz, desse modo, o número de etapas durante as quais submontagens ou elementos de construção "que voam" inevitáveis são mostradas na instrução de construção resultante.
[00142] Estratégia de similaridade: [00143] A estratégia de similaridade se refere a simetrias em cons-trução/desconstrução. Ao empregar uma estratégia de similaridade no processo de construção, a construção pode se tornar provavelmente simétrica, o que simplificará o processo de desconstrução. Para executar uma desconstrução com base nisso, uma função, que indica quanto dois elementos de construção A e B são "similares" pode ser determinada como a seguir.
[00144] Funções de peso determinam coordenadas A's e B's em um sistema de coordenadas onde o eixo geométrico y corresponde a uma direção de construção principal, por exemplo, uma direção vertical. O eixo geométrico x e o eixo geométrico z correspondem a outras direções de construção principais, por exemplo, direções horizontais. [00145] Se B for o último elemento de construção que foi desconec-tado, então uma função de peso para determinar se A e B são similares, pode ter a seguinte forma: Peso(x) = soma de a se A e B for o mesmo tipo de elemento de construção b se A e B tiverem a mesma coordenada x ou a mesma co- ordenada z no sistema de coordenadas c se A e B tiverem os mesmos atributos (como cor, decora- ção etc.) para pesos predeterminados a, b, c onde a+b+c=1.
[00146] Um peso mais elevado do que 0 reflete algum grau de similaridade. Critérios alternativos e/ou adicionais também poderiam ser considerados.
[00147] A estratégia é desconectar uma submontagem/elemento de construção, que é similar aos últimos elementos/s de construção ou submontagem (ns) desconectados. O efeito dessa estratégia é que um modelo, que contém partes simétricas, será frequentemente simetricamente desconstruído.
[00148] Um exemplo da estratégia de similaridade para desconstrução é dado na figura 9 que ilustra um exemplo de três etapas de des-construção consecutivas nas figuras 9a)-c), respectivamente. Vê-se a partir da figura 9 que na parte esquerda do modelo, primeiramente um elemento de construção oblongo 901 é desconectado e posteriormente um elemento de construção oblongo similar 902, que é colocado em relação simétrica ao primeiro elemento de construção oblongo, é des-conectado. A etapa seguinte poderia ser desconectar os dois elementos de construção oblongos similares 903 na parte direita do modelo. [00149] Estratégia de base: [00150] Submontagens ou elementos de construção especiais, como placas grandes ou placas de formato irregular serão frequentemente um elemento de construção de partida/base do modelo, e serão posteriormente o último elemento de construção a desconectar. Para examinar se uma placa ou outro elemento de construção é um elemento de construção de partida, o tipo e/ou tamanho do mesmo pode ser comparado com o tipo/tamanho dos outros elementos de construção, ou ser comparado com um valor limite indicando quando um elemento de construção é grande, uma vez que um elemento de construção de partida será frequentemente grande, porque forma a base do modelo. Além disso, também pode ser examinado se um elemento de construção grande é um elemento de construção de base por analisar quão para baixo é colocado no modelo. Um elemento de construção sendo grande e sendo colocado no fundo do modelo é provavelmente um elemento de construção de partida. Para essa finalidade, os nós do gráfico de conectividade podem ter associado aos mesmos atributos respectivos indicativos do tamanho/volume dos elementos de construção. Alternativamente, o processo de instrução de construção pode permitir que um usuário indique um elemento de construção de partida, por exemplo, por indicar um elemento de construção de partida com um mouse ou outro dispositivo de indicação. Por conseguinte, uma função de peso que evita que os elementos de construção de partida sejam removidos do modelo pode ter a seguinte forma: Peso(x) = -1 se x for um elemento de construção de partida 0 se não for.
[00151] Alternativamente, a função de peso pode atribuir o peso 0 se x for uma submontagem/elemento de construção de partida desse modo indicando que a desconexão de x não é favorecida, enquanto atribui um peso positivo elevado, por exemplo, peso = 1 se x não for uma submontagem/elemento de construção de partida, porque então a desconexão é favorecida.
[00152] O efeito é que na instrução de construção resultante algumas submontagens ou elementos de construção de base comuns serão conectados inicialmente ou cedo no processo de construção. [00153] Estratégia de integridade de subetapa: [00154] De acordo com uma modalidade, para cada submontagem candidata x, há dois aspectos de contribuição que refletem/contribuem para a qualidade da conectividade. O primeiro aspecto é a resistência da conectividade interna entre os elementos de construção da sub-montagem x, e o segundo aspecto é a resistência da conectividade externa dos elementos de construção da submontagem x. Se a conectividade interna for relativamente forte e a conectividade externa for relativamente fraca, pode-se esperar que a submontagem seja removível, uma vez que os elementos de construção na submontagem são fortemente conectados aos outros elementos de construção na qual submontagem, e somente fracamente conectados ao resto do modelo.
De forma correspondente, durante o processo de construção uma submontagem que tem uma conexão interna forte e uma conexão fraca ao resto do modelo pode ser construída relativamente fácil como uma submontagem estável e conectada ao restante do modelo sem o risco de que a submontagem se divida durante o processo de fixação. [00155] Para investigar quão fortemente uma submontagem é internamente conectada, isto é, como os diferentes elementos de construção da submontagem são conectadas entre si, o gráfico de conectividade ou outra representação apropriada de conectividade entre todos os elementos de construção pode ser utilizada. O gráfico de conectividade pode incluir pesos que refletem a resistência física entre elementos de construção, como descrito acima, por exemplo, quando cada borda tem um atributo/peso associado ao mesmo indicativo da resistência da conexão correspondente.
[00156] Por exemplo, cada elemento de construção pode incluir um ou mais elementos de conexão para engatar elementos de conexão correspondentes de outros elementos de construção de modo a fornecer uma conexão entre os elementos de construção. Por exemplo, a figura 4 mostra um exemplo de um elemento de construção com pro-tuberâncias na forma de botões adaptadas para engatar furos (também mencionados como antibotões) de outro elemento de construção. Em geral, elementos de construção podem ter elementos de conexão de uma ou mais classes diferentes de elementos de conexão, cada classe de elemento de conexão ou cada par de classes de elemento de conexão pode fornecer uma conexão de uma resistência correspondente. A resistência total de uma conexão entre dois elementos de construção pode ser desse modo determinada/estimada a partir do número de elementos de conexão/pares de elementos de conexão co-operantes que contribuem para a conexão entre dois elementos de construção, e a partir dos tipos/classes respectivos dos elementos de conexão de contribuição. Por exemplo, o processo pode acrescentar as resistências de conexão individuais para obter uma resistência de conexão total. Informações sobre o número e tipos de elementos de conexão contribuindo para a uma conexão podem ser obtidas da representação digital do modelo de elemento de construção e/ou incluídas nos nós e/ou bordas do gráfico de conectividade. Os exemplos de estruturas de dados que suportam a definição de elementos de conexão são descritos em WO 04/034333.
[00157] Por exemplo, a resistência de uma conexão entre elementos de construção x e y pode ser calculada como a seguir: Resistência 5 [00158] onde a soma examina rapidamente todas as classes de conexão c, Sc é a resistência de conexão de classe de conexão c, e N(c) é o número de elementos de conexão de classe c contribuindo para a conexão entre x e y.
[00159] Um exemplo de como a resistência física de uma conexão pode ser determinada entre dois elementos de construção x e y do tipo mostrado na figura 4 e tendo elementos de conexão na forma de pares de botão/antibotão (ou furo), pinos e eixos pode ser definido como a seguir: Resistência (x,y) = soma de: 1 para cada par de botão/antibotão de conexão 10 para cada pino 5 para cada eixo [00160] Será reconhecido que os valores numéricos no exemplo acima servem meramente como um exemplo.
[00161] A resistência efetiva da conectividade pode ser estimada ainda mais precisamente quando o cálculo da resistência efetiva leva ainda em consideração a geometria dos elementos de construção.
[00162] Por exemplo, a figura 10 mostra duas submontagens, cada uma incluindo dois elementos de construção interconectados por um único elemento de conexão da forma descrita com relação à figura 4. Entretanto, embora a submontagem da figura 10a seja bem conectada, isto é, difícil de desmontar, a submontagem da figura 10b não o é, visto que seria muito fácil para um usuário retirar o elemento de construção 1001 da placa de base 1002. O processo pode ajustar essa diferença por incorporar o volume ou massa do elemento de construção menor/mais leve em relação à resistência de sua conexão. Alternativa ou adicionalmente outra quantidade apropriada indicativa das propriedades geométricas do elemento de construção pode ser utilizada. Isso simula quão fácil é, por exemplo, para um usuário segurar o elemento de construção com os dedos do usuário, uma vez que um elemento de construção grande é mais fácil de segurar do que um elemento de construção pequeno.
[00163] Consequentemente, uma tal função de peso modificada pode ser expressa como: Conexão(x,y) = resistência(x,y) / mínimo (volume de x, volume de y) [00164] Assim no exemplo mostrado na figura 10, as duas submon-tagens têm a mesma resistência entre elementos de construção, porque nos dois casos o elemento de construção pequeno é conectado em um par de botão-antibotão. Entretanto, na submontagem da figura 10a, o elemento de construção menor 1003 tem um volume menor, enquanto na submontagem da figura 10b o elemento de construção menor 1001 tem um volume maior, de modo que a conexão de função (x,y) será maior para a submontagem da figura 10a.
[00165] Um exemplo de uma função de peso com base na medida de conectividade acima pode ser como a seguir: Peso(x) = -1 se x for uma submontagem e Sua conexão interna mais fraca < valor limite interno -1 se x for uma submontagem e sua conexão externa mais forte > valor limite externo 0 de outro modo [00166] Os valores de limite para as conexões interna e externa podem ser predeterminados, controlados por usuário, empiricamente encontrados ou de outro modo adequadamente definidos.
[00167] O ajuste dos valores de limite é um modo eficaz de regular a quantidade e qualidade de subetapas na instrução de construção resultante. Por definir os valores de limite em valores relativamente elevados, poucas submontagens candidatas de alta qualidade podem ser obtidas em vez de obter muitas de qualidade inferior. Isso torna o processo de desconstrução mais fácil e mais rápido.
[00168] Estratégia mais próxima: [00169] Submontagens/elementos de construção também podem ser cedidas um peso de acordo com sua distância a partir da submon-tagem/elemento de construção anteriormente desconectado. Mais especificamente, o peso(x) pode ser uma função da distância, distância quadrada, ou outra medida de distância apropriada do centro de massa de x para o centro de massa da submontagem/elemento de construção, que foi anteriormente desconectada. Será entendido que em vez do centro de massa, outro ponto de referência apropriado dos elementos de construção/submontagens pode ser utilizado.
[00170] Elementos de construção que estão mais próximos da submontagem/elemento de construção anteriormente desconectado pode receber peso mais elevado. Quando elementos de construção estão se contatando mutuamente pelo menos em um ponto, a distância entre os mesmos pode ser definida em zero. A estratégia mais próxima pode diferenciar entre elementos de construção que encostam-se às superfícies um do outro e elementos de construção apenas conta- tando entre si em seus cantos, como ilustrado na figura 11a e figura 11b, respectivamente. Em uma modalidade, uma função de peso pode ser desse modo uma função crescente do tamanho da área de encosto entre dois elementos de construção. O fato de se os elementos de construção encostam ou não entre si ou estão de outro modo em contato entre si pode ser determinado com base na caixa de limite ou outra informação geométrica armazenada como parte da representação digital. Um modo de aproximar uma tal medida é pelo cálculo da distância maior entre os pontos dos respectivos elementos de construção. Quanto maior é essa distância, menor é geralmente a área de encosto como ilustrado pela figura 11.
[00171] Estratégia de empilhar: [00172] Ao construir um modelo será frequentemente preferível construir da parte inferior e para cima. Portanto, um peso pode ser atribuído a uma submontagem/elemento de construção de acordo com sua distância a partir do elemento de construção mais baixo no modelo. Quanto mais distante uma submontagem/elemento de construção está da parte inferior, mais elevado um peso será atribuído no processo de desconstrução. Consequentemente, em geral uma função de ponderação pode ser uma função crescente das coordenadas de um elemento de construção ao longo de uma ou mais direções de um sistema de coordenadas.
[00173] Consequentemente, acima um número de exemplos de funções de peso foi descrito, cada um correspondendo a uma estratégia de desconstrução de modelo correspondente. Será entendido que um processo de desconstrução pode incluir funções de peso alternativas ou adicionais e/ou estratégias de desconstrução alternativas ou adicionais. Além disso, funções de peso alternativas e/ou adicionais podem ser definidas correspondendo às estratégias de desconstrução descritas aqui.
[00174] Será adicionalmente reconhecido que algumas das estratégias descritas aqui têm um ou mais parâmetros que podem variar para reforçar um aspecto ou outro do resultado, desse modo tornando a estrutura uma ferramenta para gerar instruções de construção por interação humana, em vez de uma caixa preta.
[00175] Os inventores obtiveram resultados particularmente bons com uma combinação de funções de peso que correspondem às seguintes estratégias para assegurar a integridade da desconstrução de construção. Juntos podem formar a espinha dorsal de uma modalidade de um gerador automático de instruções de construção que provê bons resultados sem a necessidade de interação de usuário: - estratégia de desprender: somente permite desconexão de elementos de construção ou submontagens que sejam fisicamente possíveis retirar, dada a geometria e conectividade do elemento de construção ou submontagem. - estratégia de integridade de subetapa: somente permite desconectar montagens que são fortemente conectadas internamente, e fracamente conectadas externamente. A exigência exata pode variar para assegurar subetapas de qualidade desejada, como descrito acima. - estratégia de articulação: somente permite desconectar submontagens que não dividem o modelo em duas ou mais montagens desconectadas. Além disso, desfavorece a desconexão de elementos de construção individuais que dividem o modelo em duas ou mais submontagens desconectadas. - estratégia de integração: se um elemento de construção de articulação individual foi retirado, retire os elementos de construção ou submontagens desconectados o mais rápido possível.
[00176] Em uma modalidade, as quatro estratégias acima mencionadas - desprender, integração de subetapa, articulação e integração - são utilizadas para toda construção/desconstrução, ao passo que uma ou mais estratégias adicionais, por exemplo, uma ou mais das estratégias restantes descritas aqui, por exemplo, similaridade, base, mais próxima e empilhar podem ser utilizadas para ajustar o resultado em situações diferentes. Tais estratégias podem ser selecionáveis por um usuário.
[00177] A figura 4 ilustra um exemplo de um elemento de construção e seus elementos de conexão. Em particular, a figura 4 mostra uma vista em perspectiva de um elemento de construção 401. O elemento de construção 401 tem uma superfície superior 402 com oito botões 403a-h que podem engatar-se com furos correspondentes de outro elemento de construção, por exemplo, furos na superfície inferior de outro elemento de construção. De forma correspondente, o elemento de construção 401 compreende uma superfície inferior (não-mostrada) com furos correspondentes. O elemento de construção 401 compreende ainda superfícies laterais 404 que não compreendem nenhum elemento de conexão.
[00178] Geralmente, os elementos de conexão podem ser agrupados em classes diferentes de elementos de conexão, por exemplo, conectores, receptores, e elementos misturados. Conectores são elementos de conexão que podem ser recebidos por um receptor de outro elemento de construção, desse modo fornecendo uma conexão entre os elementos de construção. Por exemplo, um conector pode adaptar-se entre partes de outro elemento, em um furo ou similar. Receptores são elementos de conexão que podem receber um conector de outro elemento de construção. Elementos misturados são partes que podem funcionar tanto como receptor como conector, tipicamente dependendo do tipo do elemento de conexão cooperante do outro elemento de construção.
[00179] Elementos de construção do tipo ilustrado na figura 4 são disponíveis sob o nome LEGO em uma grande variedade de formatos, tamanhos e cores. Além disso, tais elementos de construção são disponíveis com uma variedade de elementos de conexão diferentes. Entende-se que o elemento de construção acima meramente serve como exemplos de possíveis elementos de construção.
[00180] A figura 5 ilustra uma modalidade de uma estrutura de dados para representar digitalmente um modelo de elemento de construção. A estrutura de dados 501 pode compreender um ou mais registros de dados 502 incluindo parâmetros de modelo global referentes ao modelo inteiro. Os exemplos de tais parâmetros de modelo incluem um nome de modelo, um nome do criador de um modelo, um número de versão de programa da aplicação de modelagem, uma data de criação, etc. A estrutura de dados de modelo 501 compreende ainda uma lista 503 ou outra estrutura apropriada de registros de dados de elemento de construção. No exemplo da figura 5, a lista compreende N registros de dados "Elemento de construção 1", "elemento de construção 2", ..., "Elemento de construção J", ..., "Elemento de construção N". Cada registro de dados de elemento de construção da lista 503 tem a estrutura ilustrada pela estrutura de dados 504 para "Elemento de construção J".
[00181] Em particular, cada registro de dados de elemento de construção compreende um ID de elemento de construção 505, que indica um identificador correspondendo ao tipo de elemento de construção. O ID de elemento de construção pode identificar exclusivamente as propriedades do elemento de construção ou tipo de elemento de construção.
[00182] O registro de dados de elemento de construção pode compreender ainda um número de atributos de elemento de construção 506 indicando um ou mais atributos do elemento de construção, como cor, textura, decorações, etc.
[00183] Além disso, o registro de dados de elemento de construção 504 compreende itens de dados 507 e 508 que representam a posição e orientação de um sistema de coordenadas interno do elemento de construção, respectivamente. A posição e orientação do elemento de construção são definidas pelas coordenadas de uma origem do sistema de coordenadas interno do elemento de construção com relação a um sistema de coordenadas "mundial" global, e pela orientação do sistema de coordenadas interno com relação ao sistema de coordenadas global.
[00184] Um exemplo de um formato de dados para armazenar modelos de elementos de construção que inclui uma hierarquia de sistemas de coordenadas é descrito na patente US número 6.389.375. [00185] Além disso, o registro de dados do elemento de construção 504 pode compreender itens de dados 509 e 510 que representam uma ou mais caixas de limite e dados de conectividade do elemento de construção, respectivamente, utilizados na detecção de propriedades de conectividade do elemento de construção com outros elementos de construção. Uma modalidade de uma representação dos dados de conectividade do tipo de elementos de construção mostrados na figura 4 inclui estruturas de dados que representam os planos definidos pela superfície de uma caixa de limite do elemento de construção. Os elementos de conexão do elemento de construção são localizados nesses planos, de tal modo que cada elemento de conexão tem um eixo geométrico associado a ele. Os eixos geométricos de todos os elementos de conexão no mesmo plano correspondem a respectivos pontos de grade de uma grade regular, por exemplo, uma grade orto-gonal, com distâncias fixas entre pontos de grade vizinhos. Os planos associados ao elemento de construção 401 da figura 4 são paralelos em pares entre si, e incluem um conjunto de planos horizontais que correspondem às superfícies superior e inferior do elemento de cons- trução e um número de planos verticais correspondendo às superfícies laterais do elemento de construção. As distâncias entre pontos de grade vizinhos podem ser iguais em todos os planos horizontais. Em algumas modalidades, as distâncias entre pontos de grade vizinhos em planos verticais são diferentes das distâncias entre pontos de grade vizinhos em planos horizontais. Uma representação digital das propriedades de conectividade dos elementos de construção do tipo mostrado na figura 4 são descritos em WO 04/034333 que é incorporada na íntegra aqui a título de referência.
[00186] Entende-se que a representação digital pode ser codificada em qualquer formato de arquivo ou dados apropriado, por exemplo, como um arquivo binário, como um arquivo de texto de acordo com linguagem de descrição de modelagem predeterminada, ou similar. Será adicionalmente entendido que outras modalidades de informação digital podem utilizar estruturas de dados alternativas ou adicionais e/ou representam dados de modelo alternativos ou adicionais.
[00187] A figura 6 ilustra uma modalidade de uma interface de usuário gráfico de um programa de aplicação de instrução de construção. A interface de usuário compreende uma área de visualização 701 que ilustra uma representação gráfica de uma etapa de um conjunto de instruções de construção de etapa por etapa. A representação gráfica mostra uma vista 3D de um modelo em peças 702 mostrado a partir de uma posição de câmera predeterminada. O modelo em peças 702 consiste em um subconjunto de todos os elementos de construção do modelo completo, onde o subconjunto inclui os elementos de construção inicialmente posicionados. A área de visualização 701 compreende ainda uma representação gráfica 703 dos elementos de construção mais recentemente colocados, isto é, os elementos de construção que distinguem o presente modelo em peças 702 do modelo em peças da etapa anterior. Nesse exemplo, são os elementos de construção 714, 715, e 716 do modelo em peças 702.
[00188] A interface de usuário compreende ainda um elemento de controle deslizante 709 que pode ser movido em intervalos distintos por uma operação de arrasto correspondente com o mouse, permitindo que um usuário selecione alguma das etapas das instruções etapa por etapa. No exemplo da figura 6, três elementos de construção novos são acrescentados em cada etapa das instruções.
[00189] A interface de usuário compreende ainda elementos de controle de botão 705 que permitem que um usuário invoque um número de funções frequentemente utilizadas como movimento sequencialmente através das representações gráficas em uma direção para frente e para trás, respectivamente, saltando para a primeira e última etapa das instruções, alterando a posição de câmera, imprimindo as instruções de construção geradas, e iniciando uma função "auto-play". A função auto-play exibe a sequência de modelos em peças uma a uma de tal modo que cada modelo em peças é mostrada por um período de tempo predeterminado. Preferivelmente, o usuário pode configurar o tempo de visualização para cada modelo em peças na função auto-play.
[00190] Finalmente, a interface de usuário compreende diversos menus suspensos 704, permitindo que um usuário inicie funcionalidade como função de ajudar, funções para alterar a posição da câmera, funções zoom, etc. Além disso, a funcionalidade fornecida pela aplicação de instrução de construção inclui o carregamento de representações digitais, uma função imprimir para imprimir as representações gráficas dos modelos em peças e funções exportar para exportar a sequência de representações gráficas dos modelos em peças, por exemplo, em um formato HTML ou qualquer outro formato de arquivo gráfico apropriado, como TIF, JPG, BMP, etc.
[00191] Exemplos adicionais de funções fornecidas pela aplicação de instrução de construção incluem uma função de lista de material, permitindo a um usuário visualizar ou imprimir uma lista de todos os elementos de construção no modelo.
[00192] A figura 14 mostra um fluxograma de outra modalidade da geração de instrução de construção. Na etapa S1, o processo recebe uma representação digital M de um modelo de elemento de construção, por exemplo, como descrito com relação à etapa S1 da figura 2. [00193] Nas etapas subsequentes S2 - S12, a aplicação de instrução de construção gera uma instrução de construção 205 a partir da representação digital carregada. A instrução de construção gerada 205 pode estar em uma forma como descrito com relação à figura 2.
[00194] Na etapa S2 o processo inicializa o processo. Em particular, o processo inicializa uma estrutura de dados Result para reter a sequência de construção a ser gerada. O processo inicializa a sequência Result para ser uma sequência vazia. O processo inicializa ainda um conjunto de elementos de construção candidatos, indicados Candidates, para ser o conjunto de todos os elementos de construção e sub-montagens no modelo M. Consequentemente, como nas modalidades anteriores, o processo pode determinar mais submontagens candidatas para retirada do modelo M e tratar submontagens como elementos de construção generalizados. As submontagens candidatas podem ser encontradas/selecionadas por intermédio de um conjunto de critérios de seleção, que são uma determinação de como o modelo pode ser separado/cortado. Os exemplos de tais critérios de seleção foram descritos mais completamente acima, em particular o segundo conjunto de critérios de seleção descrito com relação à etapa 303 da figura 3. Será reconhecido que em outras modalidades, o processo pode somente considerar elementos de construção.
[00195] Na etapa S3, o processo determina se o conjunto Candidates está vazio, isto é, se todos os elementos de construção foram pro- cessados. Se esse for o caso, o processo prossegue na etapa S12; de outro modo o processo prossegue na etapa S4.
[00196] Nas etapas S4-S11, o processo determina se uma etapa de construção b resultando em um novo modelo em peças pode ser encontrada de tal modo que o modelo completo M pode ser desconstruí-do nesse novo modelo em peças.
[00197] Em particular, na etapa S4, o processo gera um conjunto auxiliar C de elementos de construção e submontagem como uma cópia do conjunto Candidates.
[00198] Na etapa S5, o processo determina se o conjunto C está vazio, isto é, se um candidato b foi identificado. Se esse for o caso, o processo retorna para a etapa S3; de outro modo o processo prossegue na etapa S6.
[00199] Na etapa S6, o processo seleciona um elemento de construção candidato b - ou uma submontagem candidata - a partir do conjunto C.
[00200] A seleção de candidatos na presente modalidade pode ser feita em um modo similar ao da seleção de um elemento de construção para retirada no caso de desconstrução da modalidade anterior, isto é, por intermédio de um conjunto de critérios de seleção. Em particular, os critérios de seleção podem ser baseados em uma ou mais funções de peso que representam estratégias de construção diferentes como uma ou mais das funções de peso descritas acima, em particular as funções de peso do primeiro conjunto de critérios de seleção descritos com relação à etapa 304 da figura 3. Algumas funções de peso podem ser idênticas ou quase idênticas nas versões construtiva e des-construtiva, respectivamente, por exemplo, como as funções de peso descritas em maior detalhe acima. Por exemplo, uma estratégia pode atribuir um peso a elementos de construção de acordo com sua distância a partir do elemento de construção acrescentado na etapa ante- rior. O processo pode então selecionar o elemento de construção mais próximo ao elemento de construção anteriormente adicionado. Outras funções de peso podem ser bem diferentes. Por exemplo, a ‘estratégia de articulação’ no caso de desconstrução descrita acima, evita quebrar o gráfico de conectividade, ao passo que no caso construtivo da presente modalidade simplesmente assegura que um elemento de construção é selecionado o qual efetivamente conecta a qualquer elemento de construção anteriormente selecionado. Não obstante, nos dois casos elementos de construção "que voam" são evitados. Uma vez que as funções de peso descritas aqui podem ponderar submontagens (elementos de pseudoconstrução) bem como elementos de construção simples, o processo tanto construtivo como desconstrutivo pode ser generalizado para tratar de submontagens. Como no caso destrutivo simples, isso não somente é prático como às vezes desejável.
[00201] Alternativa ou adicionalmente, a seleção de um candidato pode parcial ou totalmente ser baseado em uma interação/entrada de usuário. Por exemplo, o processo pode receber uma entrada de usuário indicativa de um candidato b. Alternativamente, o processo pode selecionar, por exemplo, aleatoriamente ou com base nas funções de peso descritas acima, um ou mais candidatos possíveis e indicar o(s) candidato(s) para o usuário. O processo pode receber então uma entrada de usuário indicativa de uma aprovação ou rejeição de um ou mais candidatos sugeridos.
[00202] Na etapa S7, o processo gera uma sequência de descons-trução parcial a partir da representação digital recebida do modelo para baixo até o modelo residual obtenível pela união da sequência de construção atual Result e o candidato selecionado b. A sequência de desconstrução pode ser gerada na forma de uma lista sequencial de elementos de construção e/ou submontagens do modelo. O processo pode gerar ainda sequências de desconstrução subordinadas para as submontagens da lista sequencial. Em uma modalidade, o processo representa a sequência de desconstrução como uma árvore ramificada de etapas onde cada ramo pode conter desconstruções de construção subordinadas.
[00203] Uma modalidade de um processo para gerar uma sequência de desconstrução parcial será descrita em maior detalhe abaixo. [00204] Na etapa S8, o processo determina se uma sequência de desconstrução poderia ser encontrada. Se o processo de desconstru-ção da etapa S7 obtiver sucesso na determinação de uma sequência de desconstrução, o processo prossegue na etapa S9; de outro modo o processo prossegue na etapa S10.
[00205] Na etapa S9, o processo atualiza os conjuntos Candidates, Result e C. Em particular, o processo acrescenta o candidato selecionado b à sequência de resultado atual Result, retira o candidato b do conjunto de candidatos Candidates, e retira todos os elementos do conjunto auxiliar C (visto que um candidato bem sucedido foi identificado). O processo então retorna para S5.
[00206] Na etapa S10, o processo retira b do conjunto auxiliar C de candidatos ainda a experimentar. Na etapa S11, o processo determina se há ainda candidatos restantes em C. Se esse for o caso, o processo retorna para a etapa S5 para identificar um candidato alternativo; de outro modo o processo termina, por exemplo, com uma mensagem ou indicador de erro apropriado indicando que a geração de uma instrução de construção construtiva falhou. Por exemplo, essa situação pode ocorrer se o modelo for restrito em excesso e/ou se as funções de peso utilizadas durante o processo de desconstrução representando as limitações de construção do modelo forem demasiadamente for-tes/restritivas. Consequentemente, em tais casos, algumas ou todas as funções de peso utilizadas no processo de desconstrução podem ser relaxadas/enfraquecidas, por exemplo, automaticamente ou por uma interação de usuário, e o processo pode ser reiniciado com as funções de peso relaxadas.
[00207] Na etapa S12, o processo gera instruções de construção a partir da sequência de construção gerada Result, por exemplo, como uma sequência de imagens ou outras representações de modelos em peças, onde em cada modelo em peças um ou mais dos elementos de construção e submontagens a partir da lista gerada Result são adicionados em comparação com o modelo em peças anterior. O processo pode armazenar as instruções geradas e/ou transmitir as mesmas em qualquer forma apropriada como descrito aqui.
[00208] A figura 15 mostra um fluxograma de um exemplo de um processo de desconstrução parcial de um modelo M para baixo até um modelo residual N. O processo de desconstrução desconstroi o modelo M com base em uma representação digital do modelo completo M, incluindo todos os elementos de construção no modelo (etapa 301). A entrada do modelo M inclui informações sobre os elementos de construção individuais, como tamanho/dimensões, número de botões, características especiais como articulações, pinos, eixos, etc, dos elementos de construção. A representação digital também inclui informações sobre onde no modelo cada elemento de construção é colocado, por exemplo, por especificar as posições respectivas (x, y, z) dos elementos de construção com relação a um sistema de coordenadas apropriado. O processo recebe ainda informações sobre o conjunto residual N, isto é, um submodelo do modelo M. O processo de des-construção parcial gera uma sequência de etapas de desconstrução, onde em cada etapa de desconstrução um ou mais elementos de construção de M\N (isto é, elementos de construção do modelo M que não são incluídos no modelo residual N) são retirados até que somente o modelo residual N seja deixado.
[00209] Na etapa 302 o processo de desconstrução testa se há elementos de construção restantes no modelo M\N (ou um modelo em peças M'\N resultante de uma iteração anterior) a serem desconectados. Se houver ainda elementos de construção a serem retirados no modelo, o processo prossegue na etapa 303 onde o processo selecio-na/gera uma ou mais submontagens candidatas para retirada do modelo M\N (ou um modelo em peças M'\N resultante de uma iteração anterior). As submontagens candidatas incluem elementos de construção interconectados. Na etapa subsequente 304, o processo seleciona um elemento de construção ou uma das submontagens candidatas geradas (E) a serem desconectadas de acordo com um primeiro conjunto de critérios de seleção predeterminados, por exemplo, como descrito com relação à figura 3. As submontagens candidatas na etapa 303 podem ser encontradas/selecionadas por intermédio de um segundo conjunto de critérios de seleção, que são uma determinação de como o modelo pode ser separado/cortado. Os exemplos de tais critérios de seleção foram descritos mais completamente acima.
[00210] Na etapa 305, o processo desconecta o elemento de construção ou submontagem E selecionado na etapa 304 do modelo, isto é, gera um novo modelo em peças M'=M/E onde o elemento de construção selecionado de todos os elementos de construção da submon-tagem candidata selecionada é retirado. O processo pode manter uma estrutura de dados indicativa da sequência de desconstrução, e atualizar a estrutura de dados com informações sobre o elemento de cons-trução/submontagem desconectado.
[00211] Se o processo selecionar uma submontagem para ser des-conectada, a submontagem selecionada pode ser desconstruída por executar o processo de desconstrução em um modo recursivo na etapa 307 (isto é, com a submontagem selecionada E e o modelo residual N servindo como entradas), antes de retornar à etapa 302 para continuar o processo de desconstrução iterativo e encontrar o elemento de construção seguinte a desconectar do modelo em peças restante, isto é, o modelo M'\N = M\(EuN).
[00212] Quando não há mais elementos de construção para serem removidos do modelo M que não fazem parte também do modelo residual N, as desconstruções parciais do modelo M para baixo em modelo residual N são concluídas, e o processo de desconstrução para na etapa 308.
[00213] Consequentemente, geralmente verificou-se que para um dado modelo M, se M pode ser desconstruído em N, então N pode ser construído em M. Em outras palavras, uma construção no estágio N é um modelo intermediário apropriado durante uma sequência de etapas de construção, se (e somente se) o modelo total M pode ser descons-truído para baixo no mesmo.
[00214] A modalidade de um processo para gerar uma sequência de construção descrita com relação às figuras 14 e 15 pode ser expressa pelo seguinte pseudocódigo: Construct model M: Let Candidates be the set of all bricks and sub-assemblies in M
Let Result be afi empty sequeíice of bricks While {Candidates is not empty) Let C be a copy of Candidates While <C is not empty) Let b be a brick from C
If (Deconstruct H down to (union of Result and b) ) Remove all bricks from C
Candidates = Candidates \ b Add b to Result Else Remove b from C If (C is empty) Error: ^Construction was not possible" Return False Deconstruct model Aí down to JV;
Let Candidates be the set of all bricks in M/JV/ While (Candidates is not empty) Let £> be the subset of Candidates that are detachable If (£> is empty) Return False;
Else Let b be the "best detachable" brick from D;
Remove b from Candidates;
Return True;
[00215] No pseudocódigo acima a seleção do bloco "mais bem desprendível" corresponde à seleção executada na etapa 304 acima, isto é, uma seleção baseada em um conjunto de critérios de seleção predeterminados, por exemplo, um ou mais dos critérios de seleção descritos acima.
[00216] Uma modalidade do processo também pode ser expressa pelo seguinte pseudocódigo; um fluxograma dessa modalidade é mostrado na figura 16: Construct model M;
Let Candidates be the set of all bricks and sub- assemblies in M
Let Result be an empty sequence of bricks Whíle (Candidates is not empty) Let C be a copy of Candidates If (Find construction step b from C) Add b to Result Candidates = Candidates \ b Else Error: "constructive Building instruction not possible" Return False Return True Find construction step b from C: While (C is not empty) Let b be a 'good' brick from C
If (Deconstruct M down to (union of Result and b) ) Return True Else Remove b from C
Return False.
[00217] Consequentemente, nessa modalidade, a determinação com relação a se uma etapa de construção seguinte b pode ser encontrada é implementada como uma função separada. A figura 16a mostra o processo geral, enquanto a figura 16b mostra um fluxograma de um exemplo da função que identifica uma etapa de construção seguinte válida/possível.
[00218] O processo inicia com uma etapa de entrada S1 e uma etapa de inicialização S2 como descrito com relação à figura 14. Na etapa S3, o processo determina se o conjunto Candidates está vazio, isto é, se todos os elementos de construção foram processados. Se esse for o caso, o processo prossegue na etapa S12 com a geração das instruções de construção como descrito acima; de outro modo o processo prossegue na etapa S4.
[00219] Na etapa S4, o processo gera um conjunto auxiliar C de elementos de construção e submontagem como uma cópia do conjunto Candidates.
[00220] Na etapa S20 o processo determina se uma etapa de construção seguinte válida b pode ser encontrada. Se esse for o caso, o processo atualiza as estruturas de dados Results e Candidates, por anexar a etapa identificada b à estrutura de dados Results, e por retirar o elemento de construção correspondente (ou submontagem) a partir da estrutura de dados Candidates; o processo retorna então para a etapa S3. Se nenhuma etapa de construção válida puder ser encon- trada, o processo termina, por exemplo, com um indicador de erro apropriado ou mensagem indicando que a geração de uma instrução de construção construtiva falhou, como descrita com relação à figura 14.
[00221] A figura 16a mostra um fluxograma de um exemplo de etapa de implementar subprocesso S20: inicialmente, o processo determina se o conjunto C está vazio, isto é, se todos os candidatos b foram processados. Se esse for o caso, o processo retorna um valor indicado que nenhum candidato válido b pode ser encontrado; de outro modo o processo prossegue na etapa S6.
[00222] Na etapa S6, o processo seleciona um elemento de construção candidato b - ou uma submontagem candidata - a partir do conjunto C, por exemplo, como descrito com relação à etapa S6 da figura 14.
[00223] Na etapa S7, o processo gera uma sequência de descons-trução parcial a partir da representação digital recebida do modelo para baixo ao modelo residual obtenível pela união da sequência de construção atual Result e o candidato selecionado b, como descrito com relação à etapa S7 da figura 14.
[00224] Se o processo de desconstrução da etapa S7 tiver sucessão na determinação de uma sequência de desconstrução, o processo retorna um valor indicando que o processo teve sucesso; de outro modo o processo prossegue na etapa S10.
[00225] Na etapa S10, o processo remove b do conjunto auxiliar C de candidatos ainda a experimentar, e retorna ao início do subproces-so para determinar se C está vazio.
[00226] Nesse exemplo, a função "Deconstruct modelo M down to N" pode ser a mesma função como no exemplo acima.
[00227] Nas modalidades descritas com relação às figuras 14-16, uma construção de um modelo com N elementos de construção toma N etapas de construção, e geralmente para cada etapa de construção, várias desconstruções podem ter de ser feitas para encontrar um bloco candidato b que é válido.
[00228] O número de iterações exigidas pode ser estimado como a seguir: uma instrução de construção construtiva completa de N blocos necessita aproximadamente N etapas de construção. Cada etapa de construção pode necessitar aproximadamente N/2 desconstruções. Cada desconstrução consiste em aproximadamente N etapas de des-construção. Cada etapa de desconstrução requer aproximadamente N/2 ponderações de bloco. No total, uma Instrução de Construção construtiva total pode exigir até aproximadamente (NA4)/4 ponderações de elementos de construção. Isso é ainda muito melhor do que xAN ponderações necessárias para uma busca de retrocesso simples. Similarmente, o processo desconstrutivo total descrito com relação às figuras 2 e 3 requer aproximadamente (NA2)/2 ponderações.
REIVINDICAÇÕES

Claims (37)

1. Método implementado por computador de gerar ordens de construção para um modelo de elemento de construção, o modelo incluindo uma pluralidade de elementos de construção (401, 901, 902, 903), as ordens de construção sendo indicativas de uma ordem sequencial de etapas de construção para construir o modelo de elemento de construção, cada etapa de construção incluindo acrescentar pelo menos um elemento de construção ao modelo de elemento de construção; o método compreendendo: - determinar (S2), de uma representação digital do modelo de elemento de construção, pelo menos uma sequência de etapas de desconstrução para pelo menos parcialmente desconstruir o modelo de elemento de construção em elementos de construção, cada etapa de desconstrução incluindo retirar pelo menos um elemento de construção a partir do modelo de elemento de construção; - determinar (S3) pelo menos uma etapa de construção da ordem sequencial de etapas de construção com base pelo menos em uma pluralidade de etapas de desconstrução; em que a determinação da sequência de etapas de des-construção compreende executar um processo iterativo, em que uma iteração do processo iterativo compreende: - obter um modelo em peças anterior resultante de uma iteração anterior; - determinar (304) pelo menos um elemento de construção a desconectar do modelo em peças anterior resultando em um novo modelo em peças, em que a determinação de pelo menos um elemento de construção a desconectar do modelo em peças anterior inclui: - determinar (303) um conjunto de submontagens candidatas do modelo em peças anterior, cada submontagem candidata inclu- indo elementos de construção interconectados respectivos do modelo em peças anterior; em que a determinação do conjunto de submontagens candidatas compreende selecionar as submontagens candidatas de acordo com um segundo conjunto de critérios de seleção; - selecionar, de acordo com um primeiro conjunto de critérios de seleção predeterminados, um elemento de construção único ou um do conjunto determinado de submontagens candidatas para ser desconectado do modelo em peças anterior resultando no novo modelo em peças; caracterizado pelo fato de que pelo menos um do segundo conjunto de critérios de seleção inclui determinar uma resistência de conexão da conexão de uma ou mais das submontagens candidatas com o modelo em peças anterior.
2. Método de acordo com a reivindicação 1 caracterizado pelo fato de que os elementos de construção são interconectáveis ao longo de pelo menos duas direções de construção; e em que pelo menos um do segundo conjunto de critérios de seleção inclui determinar uma ou mais posições no modelo em peças anterior em que uma alteração em direção de construção ocorre.
3. Método de acordo com qualquer uma das reivindicações 1 a 2 caracterizado pelo fato de que um ou mais elementos de construção inclui um elemento conector (1201) para fornecer uma conexão móvel em torno de pelo menos uma direção; e em que pelo menos um do segundo conjunto de critérios de seleção inclui determinar uma ou mais submontagens conectadas de forma móvel ao modelo em peças anterior.
4. Método de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que compreende ainda determinar uma sequência de etapas de desconstrução para cada submontagem selecionada para retirada durante iteração do processo iterativo.
5. Método de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que compreende representar o modelo em peças anterior por uma estrutura de dados indicativa de um gráfico que incluem nós indicativos de elementos de construção respectivos do modelo em peças anterior e bordas que conectam nós respectivos indicativos de conexões entre elementos de construção correspondentes.
6. Método de acordo com a reivindicação 5, caracterizado pelo fato de que uma borda do gráfico tem um valor de resistência de conexão associado indicativo de uma resistência de conexão de uma conexão entre elementos de construção correspondendo a nós conectados pela borda.
7. Método de acordo com a reivindicação 6, caracterizado pelo fato de que cada elemento de construção compreende um ou mais elementos de conexão adaptado para engatar com um ou mais elementos de conexão correspondentes de outro elemento de construção para fornecer uma conexão entre o elemento de construção e o outro elemento de construção, cada elemento de conexão tendo associado a ele uma classe de elemento de conexão, cada classe de elemento de conexão tendo associado a ela uma resistência de conexão e em que o método compreende determinar o valor de resistência de conexão associada de uma borda correspondendo a uma conexão entre dois elementos de construção pelo menos do número e classes respectivas de elementos de conexão contribuindo para a conexão correspondente.
8. Método de acordo com a reivindicação 6 ou 7, caracterizado pelo fato de que a determinação do valor de resistência de conexão associado compreende determinar a resistência de conexão do número e classes respectivas de elemento de conexão que contribuem para a conexão correspondente e de um volume dos dois ele- mentos de construção.
9. Método de acordo com qualquer uma das reivindicações 5 a 8, caracterizado pelo fato de que compreende executar um processo de divisão de gráfico para determinar um conjunto de submon-tagens candidatas do modelo em peças anterior inclui.
10. Método de acordo com qualquer uma das reivindicações 5 a 9, caracterizado pelo fato de que uma borda do gráfico tem um valor associado indicativo de uma direção de construção de uma conexão entre elementos de construção que correspondem a nós conectados pela borda.
11. Método de acordo com qualquer uma das reivindicações 5 a 10, caracterizado pelo fato de que compreende identificar um ou mais nós de articulação do gráfico de modo a determinar um conjunto de submontagens candidatas do modelo em peças anterior.
12. Método de acordo com qualquer uma das reivindicações 5 a 11, caracterizado pelo fato de que compreende identificar um ou mais pares de nós de articulação do gráfico de modo a determinar um conjunto de submontagens candidatas do modelo em peças anterior.
13. Método de acordo com qualquer uma das reivindicações 5 a 12, caracterizado pelo fato de que um ou mais elementos de construção inclui um conector para fornecer uma conexão móvel em torno de pelo menos uma direção, e em que pelo menos um entre um nó e uma borda do gráfico tem um valor associado indicativo de uma presença de uma conexão móvel.
14. Método de acordo com qualquer uma das reivindicações 1 a 13, caracterizado pelo fato de que a determinação de pelo menos um elemento de construção a desconectar do modelo em peças anterior resultando em um novo modelo em peças compreende computar uma ou mais funções de peso para pelo menos um de um subconjunto dos elementos de construção e um conjunto de submontagens candidatas de elementos de construção; e selecionar um de um elemento de construção único e uma submontagem baseado em uma comparação das funções de peso computadas.
15. Método de acordo com a reivindicação 14, caracterizado pelo fato de que pelo menos uma de uma ou mais funções de peso tem uma faixa de resultados possíveis incluindo uma primeira subfaixa indicativa de um grau de adequação a ser desconectado e uma segunda subfaixa indicativa de um grau de inadequação para ser desconectada.
16. Método de acordo com a reivindicação 15, caracterizado pelo fato de que a seleção de um único elemento de construção ou submontagem baseada em uma comparação das funções de peso computadas inclui computar um peso total de uma ou mais funções de peso computadas; em que a computação do peso total inclui atribuir um valor na segunda faixa ao peso total, se pelo menos uma das funções de peso computadas tiver um resultado na segunda faixa.
17. Método de acordo com qualquer uma das reivindicações 14 a 16, caracterizado pelo fato de que cada elemento de construção inclui um ou mais elementos de conexão (403a-h) para engatar com um ou mais elementos de conexão correspondentes de outro dos elementos de construção; em que cada elemento de conexão define uma direção de desconexão ao longo da qual o elemento de construção é desconectável de outro elemento de construção; e em que o cálculo de uma primeira de uma ou mais funções de peso para um elemento de construção ou submontagem compreende determinar se as respectivas direções de desconexão de todos os conectores do elemento de construção ou submontagem que são conectados a um ou mais outros elementos de construção do modelo em peças anterior são paralelos entre si.
18. Método de acordo com a reivindicação 17, caracterizado pelo fato de que o cálculo da primeira função de peso para um elemento de construção ou submontagem compreende ainda determinar uma distância mínima entre o elemento de construção ou submon-tagem para qualquer outro elemento de construção ou submontagem do modelo em peças anterior em uma direção de desconexão.
19. Método de acordo com a reivindicação 17, caracterizado pelo fato de que o cálculo da primeira função de peso para um elemento de construção ou submontagem compreende ainda - determinar uma geometria estirada do elemento de construção ou submontagem, em que a geometria estirada é estirada em uma direção de desconexão, e - determinar se a geometria estirada intersecta com qualquer outro elemento de construção ou submontagem do modelo em peças anterior.
20. Método de acordo com qualquer uma das reivindicações 14 a 19, caracterizado pelo fato de que o cálculo de uma segunda de uma ou mais funções de peso para um elemento de construção ou submontagem compreende ainda determinar se o elemento de construção ou submontagem é um elemento de construção de articulação ou submontagem.
21. Método de acordo com qualquer uma das reivindicações 14 a 20, caracterizado pelo fato de que o cálculo de uma terceira de uma ou mais funções de peso para um elemento de construção ou submontagem compreende ainda determinar se o elemento de construção ou submontagem é uma parte de um par de articulação de elementos de construção ou submontagens.
22. Método de acordo com qualquer uma das reivindicações 14 a 21, caracterizado pelo fato de que uma quarta de uma ou mais funções de peso para um elemento de construção ou submonta- gem é uma função que diminui com o número de outros elementos de construção aos quais o elemento de construção ou submontagem está conectado.
23. Método de acordo com qualquer uma das reivindicações 14 a 22, caracterizado pelo fato de que uma quinta de uma ou mais funções de peso é uma função de uma resistência de conexão de conexões entre elementos de construção ou submontagem.
24. Método de acordo com a reivindicação 23, caracterizado pelo fato de que o cálculo da quinta função de peso compreende determinar uma resistência de conexão mais fraca entre elementos de construção interconectados da submontagem, e em que a quinta função de peso é uma função decrescente da resistência de conexão mais fraca determinada.
25. Método de acordo com qualquer uma das reivindicações 14 a 24, caracterizado pelo fato de que uma sexta de uma ou mais funções de peso é uma função de uma resistência de conexão de conexões de elementos de construção de uma submontagem com outros elementos de construção do modelo em peças anterior.
26. Método de acordo com a reivindicação 25, caracterizado pelo fato de que o cálculo da sexta função de peso compreende determinar uma resistência de conexão mais forte entre os elementos de construção da submontagem e um ou mais outros elementos de construção do modelo em peças anterior não incluído na submonta-gem, e em que a sexta função de peso é uma função decrescente da resistência de conexão mais forte determinada.
27. Método de acordo com qualquer uma das reivindicações 14 a 24, caracterizado pelo fato de que uma sétima de uma ou mais funções de peso de um elemento de construção ou submonta-gem é uma função de uma coordenada de uma posição do elemento de construção ou submontagem ao longo de uma direção predetermi- nada em relação a um sistema de coordenadas.
28. Método de acordo com qualquer uma das reivindicações 14 a 27, caracterizado pelo fato de que uma oitava de uma ou mais funções de peso de um elemento de construção ou submonta-gem é uma função de pelo menos uma propriedade do elemento de construção e submontagem e uma propriedade de um elemento de construção ou submontagem desconectada durante uma iteração anterior do processo iterativo.
29. Método de acordo com a reivindicação 28, caracterizado pelo fato de que a oitava função de peso é uma função de uma distância entre o elemento de construção ou submontagem e um elemento de construção ou submontagem desconectado durante uma iteração anterior do processo iterativo.
30. Método de acordo com a reivindicação 28 ou 29, caracterizado pelo fato de que a oitava função de peso é uma função de uma medida predeterminada de similaridade indicativa de pelo menos uma relação espacial predeterminada entre o elemento de construção ou submontagem e um elemento de construção ou submontagem des-conectada durante uma iteração anterior do processo iterativo, e uma comparação de um ou mais atributos associados ao elemento de construção ou submontagem e um elemento de construção ou sub-montagem desconectado durante uma iteração anterior do processo iterativo.
31. Método implementado por computador de gerar ordens de construção para um modelo de elemento de construção, o modelo incluindo uma pluralidade de elementos de construção, as ordens de construção sendo indicativas de uma ordem sequencial de etapas de construção para construir o modelo de elemento de construção, cada etapa de construção incluindo acrescentar pelo menos um elemento de construção ao modelo de elemento de construção; o método com- preendendo executar um processo iterativo, em que uma iteração do processo iterativo compreende: - obter uma ordem sequencial de etapas de construção resultante de uma iteração anterior, a ordem sequencial de etapas de construção resultando em um primeiro modelo em peças; caracterizado por - determinar uma etapa de construção subsequente da ordem sequencial de etapas de construção baseada pelo menos em uma pluralidade de etapas de desconstrução por executar as seguintes etapas: - determinar (S6) uma etapa de construção candidata indicativa de uma conexão de pelo menos um elemento de construção subsequente ao primeiro modelo em peças resultando em um segundo modelo em peças, - determinar (S7, S8), a partir de uma representação digital do modelo de elemento de construção, pelo menos uma sequência de etapas de desconstrução para pelo menos desconstruir parcialmente o modelo de elemento de construção em elementos de construção, cada etapa de desconstrução incluindo retirar pelo menos um elemento de construção do modelo de elemento de construção de modo a determinar se o modelo de elemento de construção é desconstrutível por uma sequência de etapas de desconstrução para desconstruir o modelo de elemento de construção resultando no segundo modelo em peças; - se o modelo de elemento de construção for determinado como sendo desconstrutível pela sequência de etapas de desconstru-ção para desconstruir o modelo de elemento de construção resultando no segundo modelo em peças, anexando (S9) a etapa de construção subsequente candidata determinada como etapa de construção subsequente à ordem sequencial obtida, de etapas de construção.
32. Método de acordo com a reivindicação 31, caracteri- zado pelo fato de que os elementos de construção são mutuamente interconectados.
33. Método de acordo com qualquer uma das reivindicações 1 a 32, caracterizado pelo fato de que a representação digital inclui coordenadas de posição respectivas de cada um dos elementos de construção com relação a um sistema de coordenadas predeterminado.
34. Método de acordo com qualquer uma das reivindicações 1 a 33, caracterizado pelo fato de que compreende ainda gerar a representação digital do modelo de elemento de construção por meio de um ambiente de construção implementado por computador para construir interativamente um modelo de elemento de construção virtual.
35. Método de acordo com qualquer uma das reivindicações 1 a 34, caracterizado pelo fato de que compreende gerar uma sequência de representações gráficas de uma sequência correspondente de modelos em peças incluindo um modelo em peças inicial, uma sequência de modelos em peças incrementais, e um modelo completo; em que cada um dos modelos em peças incrementais inclui todos os elementos de construção do modelo em peças incremental imediatamente anterior da sequência e um número predeterminado de elementos de construção adicionais a partir da pluralidade de elementos de construção, em que os elementos de construção adicionais são determinados pela sequência determinada de etapas de construção.
36. Método de acordo com a reivindicação 35, caracterizado pelo fato de que compreende ainda fornecer uma interface de usuário que facilita uma manipulação controlada por usuário das representações gráficas geradas.
37. Sistema de processamento de dados (101) caracterizado pelo fato de que tem armazenado no mesmo, meios de proces- samento adaptados para fazer com que o sistema de processamento de dados execute as etapas do método, como definido em qualquer uma das reivindicações 1 a 36, quando os meios de processamento são executados no sistema de processamento de dados.
BRPI0808986-8 2007-03-16 2008-03-14 método implementado por computador de gerar ordens de construção para um modelo de elemento de construção e sistema de processamento de dados BRPI0808986B1 (pt)

Applications Claiming Priority (3)

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
US11/724,915 2007-03-16
PCT/EP2008/053124 WO2008113768A1 (en) 2007-03-16 2008-03-14 Automatic generation of building instructions for building element models

Publications (2)

Publication Number Publication Date
BRPI0808986A2 BRPI0808986A2 (pt) 2014-09-09
BRPI0808986B1 true BRPI0808986B1 (pt) 2019-12-03

Family

ID=39473765

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0808986-8 BRPI0808986B1 (pt) 2007-03-16 2008-03-14 método implementado por computador de gerar ordens de construção para um modelo de elemento de construção e sistema de processamento de dados

Country Status (13)

Country Link
US (1) US7979251B2 (pt)
EP (1) EP2135222B1 (pt)
JP (1) JP2010521727A (pt)
KR (1) KR101470665B1 (pt)
CN (1) CN101675458B (pt)
AT (1) ATE479167T1 (pt)
BR (1) BRPI0808986B1 (pt)
CA (1) CA2680256C (pt)
DE (1) DE602008002331D1 (pt)
DK (1) DK2135222T3 (pt)
ES (1) ES2351272T3 (pt)
MX (1) MX2009009733A (pt)
WO (1) WO2008113768A1 (pt)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8374829B2 (en) * 2007-03-16 2013-02-12 Lego A/S Automatic generation of building instructions for building element models
US7979251B2 (en) * 2007-03-16 2011-07-12 Lego A/S Automatic generation of building instructions for building element models
US7966588B1 (en) * 2008-01-26 2011-06-21 National Semiconductor Corporation Optimization of electrical circuits
US9087164B2 (en) * 2008-01-26 2015-07-21 National Semiconductor Corporation Visualization of tradeoffs between circuit designs
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 株式会社日立製作所 計算機システム、及び組立アニメーション生成方法
US9827507B2 (en) 2011-05-23 2017-11-28 Lego A/S Toy construction system for augmented reality
JP6113718B2 (ja) * 2011-05-23 2017-04-12 レゴ エー/エス 構造要素モデルの組立指示の生成
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 厦门雅迅网络股份有限公司 一种基于历史分析的无人智能驱动的数据文件生成方法
USD791346S1 (en) 2015-10-21 2017-07-04 Pavestone, LLC Interlocking paver
US20140373479A1 (en) 2013-06-21 2014-12-25 Pavestone, LLC Adjustable locator retaining wall block and mold apparatus
US10583588B2 (en) 2013-06-21 2020-03-10 Pavestone, LLC Manufactured retaining wall block with improved false joint
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
MX375582B (es) * 2014-10-02 2025-03-06 Lego As Sistema de juego.
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
WO2017194439A1 (en) * 2016-05-09 2017-11-16 Lego A/S System and method for toy recognition
CN109562294A (zh) * 2016-07-05 2019-04-02 乐高公司 用于创建虚拟对象的方法
CN109643500B (zh) * 2016-08-31 2022-04-19 索尼公司 信息处理装置、信息处理方法和存储介质
CA3061471A1 (en) * 2017-04-26 2018-11-01 Emmet. Ai Pty Ltd Construction system and method
US10894342B2 (en) 2018-03-29 2021-01-19 Kraft Foods Group Brands Llc System and method for molding comestible building blocks
USD844394S1 (en) 2018-03-29 2019-04-02 Kraft Foods Group Brands Llc Mold
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 株式会社白紙とロック 複数個体の数値演算システム、数値演算方法、プログラム
KR102341778B1 (ko) * 2019-04-12 2021-12-22 레고 에이/에스 조립식 완구의 조립 순서 결정 및 매뉴얼 생성 방법
KR102433186B1 (ko) * 2019-04-12 2022-08-18 레고 에이/에스 안정성 체크 장치, 방법 및 컴퓨터 프로그램 제품
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 組立順序抽出方法及びその装置
DE69817168T2 (de) 1997-04-03 2004-06-03 Intergraph Corp., Huntsville Interaktive zeitspannenanzeige
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 レゴ エー/エス コンピュータ読み取り可能なモデル
US8429174B2 (en) * 2003-01-25 2013-04-23 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
RU2007101498A (ru) 2004-06-17 2008-07-27 Лего А/С (Dk) Автоматическое генерирование инструкций для построения моделей из стандартных блоков
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
WO2008113768A1 (en) 2008-09-25
US7979251B2 (en) 2011-07-12
EP2135222A1 (en) 2009-12-23
DE602008002331D1 (de) 2010-10-07
KR101470665B1 (ko) 2014-12-08
ATE479167T1 (de) 2010-09-15
US20080228450A1 (en) 2008-09-18
EP2135222B1 (en) 2010-08-25
MX2009009733A (es) 2009-11-09
BRPI0808986A2 (pt) 2014-09-09
CA2680256A1 (en) 2008-09-25
JP2010521727A (ja) 2010-06-24
CA2680256C (en) 2016-02-23
HK1138092A1 (zh) 2010-08-13
CN101675458B (zh) 2016-02-24
ES2351272T3 (es) 2011-02-02
DK2135222T3 (da) 2010-12-13
KR20090125272A (ko) 2009-12-04
CN101675458A (zh) 2010-03-17

Similar Documents

Publication Publication Date Title
BRPI0808986B1 (pt) método implementado por computador de gerar ordens de construção para um modelo de elemento de construção e sistema de processamento de dados
US8374829B2 (en) Automatic generation of building instructions for building element models
US10596479B2 (en) Method and system for designing and producing a user-defined toy construction element
Andreasen et al. Level set topology and shape optimization by density methods using cut elements with length scale control
BR112012007559B1 (pt) Método implementado por computador para visualizar/renderizar um modelo de computador
BR112013030077B1 (pt) Sistema de construção de brinquedo, método implementado por computador e conjunto de construção de brinquedo
US9881119B1 (en) Methods, systems, and computer program product for constructing a simulation schematic of an electronic design across multiple design fabrics
Wasserfall et al. Topology-aware routing of 3D-printed circuits
Merrill et al. Echidna: Mixed-domain computational implementation via decision trees
Boa et al. Evolving lego: Prototyping requirements for a customizable construction kit
Fanni et al. Approximating Shapes with Standard and Custom 3D Printed LEGO Bricks.
Aghaei Meibodi Generative design exploration: computation and material practice
Eng et al. Flexm: Designing a physical construction kit for 3d modeling
Merrill Hungry for Fully Automated Design of Embedded Systems?
HK1138092B (en) Automatic generation of building instructions for building element models
Velazco Automatic placement of electronic components to maximize heat dissipation on PCB's using particle swarm optimization
Roussel Crafting chaos: computational design of contraptions with complex behaviour
Li Evolutionary techniques applied to mask-layout synthesis in micromechanical-electronic systems (MEMS)
WO2025233314A1 (en) Generation of toy construction models
da Silva Virtual Reality Integration on Tomo-GPU System
Silva et al. Virtual modeling and numerical simulation of aneurysms and stenoses
Kring Jr Partitioning electronic systems onto a hierarchy of packaging
HK1193066B (en) Method and system for designing and producing a user-defined toy construction element

Legal Events

Date Code Title Description
B15K Others concerning applications: alteration of classification

Ipc: G06T 17/10 (2006.01), G06T 19/20 (2011.01)

B06T Formal requirements before examination [chapter 6.20 patent gazette]
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 03/12/2019, OBSERVADAS AS CONDICOES LEGAIS. (CO) 10 (DEZ) ANOS CONTADOS A PARTIR DE 03/12/2019, OBSERVADAS AS CONDICOES LEGAIS