HK1115505A - Automatic generation of building instructions for building block models - Google Patents

Automatic generation of building instructions for building block models Download PDF

Info

Publication number
HK1115505A
HK1115505A HK07108797.1A HK07108797A HK1115505A HK 1115505 A HK1115505 A HK 1115505A HK 07108797 A HK07108797 A HK 07108797A HK 1115505 A HK1115505 A HK 1115505A
Authority
HK
Hong Kong
Prior art keywords
model
building blocks
building block
building
virtual
Prior art date
Application number
HK07108797.1A
Other languages
Chinese (zh)
Inventor
马丁.普鲁斯
Original Assignee
乐高公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 乐高公司 filed Critical 乐高公司
Publication of HK1115505A publication Critical patent/HK1115505A/en

Links

Description

Automatic generation of building instructions for building block models
Technical Field
The invention relates to generation of building instructions for building block models.
Background
There are various types of modeling concepts for physically constructing toy sets. In particular, concepts using modular or semi-modular concepts are very popular because they provide interesting and challenging play experiences. Typically, these concepts provide a set of prefabricated elements or building blocks that can be interconnected with each other in some predetermined manner according to a model of the prefabricated elements. The pre-fabricated elements mimic well-known objects that are adapted to the specific modeling task. Thus, the element may imitate wall tiles, roof tiles, doors, and windows when, for example, a model of a house is built. The purpose of selecting the elements in this way is that the work involved in the construction of a model of a house is significantly reduced compared to the situation in which all details of the house are defined each time a new model should be formed. However, the complete freedom in building a house or another object is compromised for the simplicity of building the model.
For example, the toy construction set available under the name LEGO comprises a plurality of different types of interconnectable building blocks having protrusions and corresponding cavities as connecting elements. The connecting elements are arranged according to a regular grid pattern, thereby allowing a wide variety of interconnections between building blocks.
Typically, such a construction set includes a set of building blocks adapted to create one or more building block models, such as an animal, a robot, or another living being, an automobile, an airplane, a spacecraft, a building, and so forth. Typically, the construction set also includes printed building instructions or assembly instructions that indicate how to construct a model from the building blocks of the set. Nevertheless, it is the interesting feature of such building sets that motivates children to create their own models.
Typically, the building instructions enclosed in the toy building set comprise a series of pictures that show step by step how and in which order building blocks are added to the model. Such building instructions have the advantage that they are easy to follow, even for children who have no major experience of the toy building set and/or no reading skills.
However, such construction instructions have the disadvantage that they are labor intensive and expensive to produce. Typically, the model to be created by the build instructions is broken down into reasonable build steps, and each build step is then drawn into the CAD system and finally printed.
More recently, build instructions have been generated electronically rather than in printed form. Specifically, there are animated (animated) build instructions where animation is a more complex build step. However, the generation of such building instructions still involves design and drawing/animation through the building steps of a skilled designer.
The above production processes have the disadvantage that they require great skill and use a lot of labour. As a result, the building instructions typically exist only for the building block models designed by the manufacturer of the building blocks. In particular, the above prior art methods for generating build instructions are not suitable for children who wish to generate build instructions for their own models that allow them to share their models with their friends.
The design of efficient, easily understood step-wise build instructions has also been the subject of some research. Fromhttp:// graphics. stanford. edu/papers/assembly instructions/retrieval M.AgrawalaThe internet gazette "design Effective Step-by-Step assembly Instructions" describes the design principle for Effective assembly Instructions based on psychology. This article also discloses a method based on information about each of the objects to be assembled, the assembly orientation and the camera viewpoint for the graphic reproduction; grouping information; a computerized system for generating assembly instructions based on information about the meaning of the fasteners, the parts, the symmetry, and about constraints on the assembly sequence. Based on this input, the system is based on extensive research calculations that take into account given constraintsThe method calculates a series of assembly steps.
The problems with the above prior art systems are: it is computationally expensive and requires complex input data, thus requiring a high degree of abstract thinking from the user.
Thus, in particular, none of the above prior art methods for generating building instructions are suitable for children who wish to generate building instructions for their own models, which allow them to share their models with their friends and further improve the play experience.
Disclosure of Invention
The above and other problems are solved by a computer-implemented method of generating building instructions for a building block model, the model comprising a plurality of building blocks; the method comprises the following steps:
a) retrieving a digital representation of the building block model; wherein the digital representation indicates a sequential construction order in which a plurality of virtual building blocks have been positioned in response to user commands during a computer-implemented virtual construction process that produces a virtual building block model; and
b) generating a graphical representation of at least first and second partial models of respective first and second subsets of the plurality of virtual building blocks; wherein the second subset comprises the first subset and a predetermined number of further virtual building blocks of the plurality of virtual building blocks; and wherein further virtual building blocks follow all virtual building blocks in the first subset with respect to a sequential instruction order derived from the sequential construction order.
It has therefore been achieved that a user building a virtual version of a model for which building instructions are to be generated employs a natural sequence of assembly steps. Therefore, by recording and storing the sequence of assembly steps taken by the user, the sequence of steps can be used in the generation of the building instructions. As a result, the construction instructions generated by this computationally simple method are easily understood by other users, particularly children.
Furthermore, since the only inputs to the building instructions are the virtual model and the digital representation and information about the sequence of virtual construction steps recorded during the virtual model generation, the building instructions are easy for the user to generate without requiring the user to possess design skills or abstract knowledge about geometry, finishing conditions, etc.
The positioning of the virtual building blocks may comprise a selection of a desired orientation of the building blocks, e.g. with respect to a reference coordinate system. Thus, in some embodiments, the positioning of the virtual building blocks comprises positioning and selecting a position of the virtual building blocks with respect to the 3-dimensional coordinate system.
In a preferred embodiment, the digital representation comprises a series of data records, each representing one of a plurality of building blocks; and the series represents a sequential construction order in which the virtual building blocks are located during model generation. Thus, when data records for individual building blocks are stored in the same order as the blocks are added to or relocated in the model, information about the sequential order is automatically included in the digital representation without the need for further data items, thereby providing a particularly compact representation. Furthermore, when generating a graphical representation of a partial model, no look-up by data logging is required in order to identify the next building block to be added in a later step.
In an alternative embodiment, the digital representation includes a plurality of data records, each representing one of the plurality of building blocks; and wherein each data record comprises a data item indicating the position of the corresponding virtual building block in the consecutive order in which the virtual building block was located during model generation. Therefore, the method does not impose any ordering constraints on the format of the digital representation, as the position of each building block in the sequential ordering is clearly stored. It is understood that the ordering information may be included in the digital representation in various ways, such as by assigning a sequence number to each building block, by storing data records as linked lists, where each data record includes a pointer to the next building block in the sequence, and so forth.
In one embodiment, the sequential instruction order is the same as the record sequential construction order, thereby avoiding any need to reclassify the stored data records. In another preferred embodiment, the method further comprises modifying the sequential instruction order according to predetermined sorting criteria resulting in a sequential instruction order, thereby providing a mechanism for taking into account limitations of the physical construction process which are not enforced during the virtual construction process. In some embodiments, the modification of the sequential order is performed before the classification of the digital representation, resulting in a digital representation of the model that includes information about the build sequence and any modifications to the sequential order. For example, the building block data records may be stored in modified sequential order. Alternatively, the digital representations are stored in the order of the record construction and any modifications are made as part of the generation of the graphical representation.
Specifically, the results are: user instructions that are particularly easy to follow are obtained when the numerical representation comprises respective position coordinates of each of the virtual building blocks with respect to a predetermined coordinate system, and when said classification criterion comprises said position coordinates along at least one predetermined direction, preferably a direction projecting from the base plate on which the building block model is constructed.
In another preferred embodiment, the method further comprises generating a digital representation of the building block model by means of a computer-implemented construction environment for interactively constructing the virtual building block model, wherein the generating comprises:
-positioning a plurality of virtual building blocks in respective positions relative to each other, resulting in a virtual building block model, wherein the virtual building blocks are positioned in a sequential building order in response to user commands;
-storing a digital representation of the virtual building block model comprising information about the sequential construction order.
Preferably, the computer implemented construction environment for interactively constructing the virtual building block model comprises a computer program which, when executed on a computer, provides a graphical user interface allowing a user to manipulate the virtual building block model, including operations like selecting a building block, adding a building block to the model, deleting a building block from the model, changing the orientation of a building block, changing the properties of a building block, such as color, type, size, and/or the like, viewing the model, saving a digital representation of the model, loading a digital representation of a previously saved model, and the like.
Preferably, the virtual building blocks are virtual counterparts to the corresponding physical building blocks, i.e. having corresponding relative sizes, shapes, colors, etc.
In a further preferred embodiment, the computer-implemented construction environment is configured to enforce a predetermined set of constraints imposed on the relative positions of the construction blocks with respect to each other. Preferably, the constraints correspond to corresponding constraints applicable to the corresponding physical building blocks, thereby ensuring that the virtual building block model can actually also be constructed from the corresponding physical building blocks. It is therefore an advantage that the method ensures that the generated build instructions are practically realizable, i.e. lead to the desired result.
One example of such a limitation is collision detection between a newly placed building block and a previously placed building block. Furthermore, in a plurality of toy building sets the building blocks are interconnectable with each other, i.e. they comprise connecting elements adapted to engage with connecting elements of other such building blocks. Such connecting elements impose further restrictions on the possible placement of building blocks, since a connection is only possible between compatible connecting elements, such as protrusions that fit into corresponding cavities when placed in the correct position relative to each other. Thus, in a preferred embodiment, the computer-implemented construction environment is configured to retrieve connectivity information of corresponding connection elements of the virtual building blocks, the information indicating whether connection elements of two building blocks located in predetermined proximity to each other provide a connection between the two building blocks.
Preferably, each graphical representation comprises a graphical rendering of a part of the building block model, i.e. the building block model comprises a continuously ordered sequence of part-blocks. In a further preferred embodiment, each of the first and second sub-groups is formed of virtual building blocks of an uninterrupted partial sequence from a stored sequential order, thereby providing easy to follow building instructions, wherein each graphical representation corresponds to a step in the building process, wherein a predetermined number of building blocks are added to the model. The user can easily determine which building blocks to add in each step and how they are to be added by comparing two consecutive graphical representations.
When the method further comprises providing a user interface for viewing the graphical representation, wherein the user interface preferably facilitates user-controlled manipulation of the generated graphical representation, the digital representation of the building block model may conveniently be viewed on a computer. In particular, since the digital representation of the model includes all of the information required for the generation of the build instructions, the build instructions may be conveniently communicated from one computer to another, for example stored on a storage medium, sent over a communications network, for example as an email attachment, loaded on a web server, or the like. The recipient of the digital representation may thus view the graphical representation and manipulate it, e.g., change the viewing angle, zoom, change the viewing options, and/or the like. Thus, the user can easily communicate their build instructions to friends. A further advantage is that the digital representation does not have to include a graphical representation of each step of the instruction, thereby keeping the file size of the digital representation small. Furthermore, since the digital representation preferably includes all relevant model information, the recipient of the model may modify the model even before generating the build instructions.
Preferably, the user interface provides functionality for viewing selected representations of the generated graphical representation and for providing operations like zooming, rotating, etc. Therefore, the user can pick and even change the preferred viewpoint when viewing the instructions, thereby avoiding any problems caused by a newly placed building block being placed in a position where it is not visible without the need for computationally expensive 3D calculations. More preferably, the user interface provides functionality to view a series of graphical representations of a portion of the model, wherein each graphical representation is displayed for a predetermined period of time before the next graphical representation is automatically displayed. Therefore, the user can view the build instructions as a sliding representation or animation of the actual build process, thereby further facilitating the understanding of the instructions.
Preferably, the user interface further provides functionality for printing at least one of the graphical representations and/or for storing at least one of the graphical representations in a predetermined file format, thereby allowing the generation of printed and/or electronic building instructions. Examples of suitable file formats include HTML, XML, BMP, TIFF, and the like.
In a preferred embodiment, the predetermined number of additional virtual building blocks added in the step of the step-like instruction is user selectable, thereby allowing the user to select between very detailed steps by means of step instructions-wherein each step corresponds to the placement of a single new building block, for example, and very compact instructions-wherein each step corresponds to a large number of newly placed blocks. The result is that for a number of models, easy to follow instructions are achieved when the predetermined number is chosen between 1 and 6, preferably between 2 and 4. However, other step sizes are possible. In certain embodiments, the number of building blocks added in each step is the same in all steps. In other embodiments, the number of additional blocks added may be different for different steps of the build instruction. For example, the step size may be controlled by the user for each step, thereby allowing for the generation of more refined instructions for more complex parts of the construct.
Particularly effective building instructions are provided when the method further comprises presenting the second graphical representation of the model together with a graphical representation of further building blocks that distinguish the second part model from the first part model, since the user can immediately see which building blocks are added in each step. Alternatively or additionally, the newly placed building blocks may be highlighted in a different manner, such as by rendering the newly placed building blocks in different colors, semi-transparency, with constraint boxes, and so forth in the partial model.
The invention can be implemented in different ways, including the method described above and in the following a data processing system, and further product means, each yielding one or more of the benefits and advantages described in connection with the first-mentioned method, and each having one or more preferred embodiments corresponding to the preferred embodiments described in connection with the first-mentioned method and disclosed in the dependent claims related thereto.
In particular, the features of the methods described above and below may be implemented in software and may be implemented on a data processing system or other processing device caused by the execution of computer-executable instructions. The instructions may be program code means loaded in a memory, such as a RAM, from a storage medium or from another computer via a computer network. Alternatively, the described features may be implemented by hardwired circuitry instead of software or in combination with software.
The invention thus also relates to a data processing system adapted to carry out the method described above and in the following. The invention also relates to a computer program comprising program code means for performing all the steps of the methods described above and in the following when said program is run on a computer. The invention also relates to a computer program product comprising program code means for performing the method described above and in the following when said program product is run on a computer. The program code means may be stored on a computer readable medium and/or embodied as a propagated data signal.
Preferably, the computer program comprises: a first software part (component) for performing steps a) and b) of the first-mentioned method; and a second software portion (component) for performing the step of generating a digital representation of the building block model by means of a computer-implemented construction environment for interactively constructing the virtual building block model, thereby providing a separate software portion for reading the digital representation of the model and presenting corresponding construction instructions. Thus, when communicating the build instructions, the user can communicate the digital representation with the second software portion, thereby providing a compact, self-contained representation of the build instructions viewable by the recipient without the need for additional software.
Drawings
The present invention will be explained more fully below in connection with preferred embodiments and with reference to the accompanying drawings, in which:
FIGS. 1a-b illustrate a data processing system for generating building instructions for building block models;
FIG. 2 shows a flow diagram of an embodiment of build instruction generation;
FIG. 3 shows a graphical user interface of a virtual building block system;
FIG. 4 illustrates an example of a building block and its connecting elements;
FIG. 5 illustrates an embodiment of a data structure for numerically representing a building block model;
FIG. 6 illustrates another embodiment of a data structure for numerically representing a building block model;
FIG. 7 illustrates an embodiment of a graphical user interface for building an instructional application;
FIG. 8 illustrates an exemplary sequence of partial models of a building block model forming a graphical representation of a step build instruction;
FIG. 9 illustrates another embodiment of a viewing area of a graphical user interface for building an instructional application;
FIG. 10 illustrates an example of a series of construction steps for a virtual building block model; and
fig. 11 illustrates an embodiment of building instructions for a virtual building block model created according to the sequence of fig. 10.
Detailed Description
Fig. 1a-b show a data processing system for generating and manipulating a computer readable model of a geometric object.
FIG. 1a shows a schematic diagram of an example of a computer system. The computer system comprises a suitably programmed computer 101, for example a personal computer, which computer 101 comprises a display 120, a keyboard 121 and a computer mouse 122 and/or another pointing device, such as a touch pad, trackball, light pen, touch screen, etc.
The computer system, designated 101, is adapted to facilitate designing, storing, manipulating, and sharing virtual building block models and generating building instructions, as described herein. Computer system 101 may be used as a stand-alone system or as a client in a client/server system. In some embodiments, the computer system further includes one or more interfaces for connecting the computer to a computer network, such as the Internet.
FIG. 1b shows a block diagram of a data processing system for generating building instructions for building block models. The computer 101 includes memory 102, such as Random Access Memory (RAM) and a hard disk, which may be implemented in part as volatile and in part as non-volatile memory devices. The memory has stored thereon a model code interpreter 107, a model code generator 108, a UI event handler 109, a modeling application 110, and a build instruction generator 113, each executable by the central processing unit 103. In addition, the memory has stored therein model data 111, a set of data structures representing a digital representation of the virtual building block model.
The code interpreter 107 is adapted to read and interpret code defining a model, i.e. code representing a data structure of a building block of the model. In a preferred embodiment, the code interpreter is adapted to read a model and to convert such a model into a known graphical format for representation on a computer display, preferably a 3D rendering of the model.
The UI event handler 109 is adapted to translate user interaction with the user interface into appropriate user instructions that are recognizable by the code generator 108. A set of possible and recognizable commands may include: obtaining a building block from a component library; placing a building block to be connected to another building block; removing the building block; discarding the building blocks; manipulating a building block, a set of building blocks; etc., such as by initiating rotation, etc. Along with each command, a respective set of parameters may be associated, such as cursor coordinates relative to a display coordinate system, type of building block, and so forth.
The code generator 108 is adapted to modify the data structure of the model in response to a user's command. The code generator may be executed as a parallel or subsequent task to present the results of the code generator.
The modeling application 110 is adapted to control memory, files, user interfaces, and the like.
The build instructions application 113 is adapted to read model data and provide a user interface for displaying portions of the model according to a stored sequence of build steps, as described below. The build instruction application 113 uses the functions provided by the code interpreter 107 and the UI event handler 109 for reading and graphical rendering of the model and for receiving user input, respectively. In an alternative embodiment, the build instruction application is self-contained, i.e., does not rely on external software components.
The user 105 is able to interact with the computer system 101 by means of a user interface 106, which user interface 106 preferably comprises a graphical user interface displayed on a computer screen, and one or more input devices, such as a keyboard and/or pointing device.
To load, store, or communicate models, geometry descriptions, or other data, a computer system includes input/output units (I/O) 104. The input/output unit may serve as an interface to different types of storage media and different types of computer networks, e.g. the internet. Also, input/output units (I/O)104 may be used to exchange models with other users, for example interactively.
Data exchange between the memory 102, the Central Processing Unit (CPU)103, the User Interface (UI)106, and the input/output unit 104 is accomplished by means of a data bus 112.
Note that the data processing system of FIG. 1 is configured to execute a modeling application and a build instruction application. However, in other embodiments, the data processing system may be configured to execute the build instruction application based only on model data received from another computer on which the modeling application is executing. Also, on the other computers, the modeling application may be installed alone or in combination with the build instruction application.
FIG. 2 shows a flow diagram of an embodiment of building instruction generation. The process comprises the following steps: a model generation phase 206 comprising steps S1 and S2; and a building instruction generation stage 207 including steps S3 and S4. The model generation stage 206 generates a digital representation of the building block model, which is an input to the build instruction generation stage 207. The advantage of this modular process is that the two phases can be executed on the same or different computers.
In an initial step S1, a digital representation of the virtual as-built model is created by a model generation module, such as modeling application 110 of FIG. 1 b. Modeling is performed interactively, allowing user 202 to build a virtual building block model from a set of predetermined virtual building blocks. The virtual building blocks are stored as corresponding data structures on the storage medium 201. For example, the data records may be stored locally on a computer on which the modeling application is executed. Alternatively or additionally, the building block definition may be retrieved from a storage device, such as a CD ROM, or via a computer network, such as by downloading the building block definition from a website on the Internet.
During model generation, a user typically creates a virtual building block model by selecting one of a plurality of building blocks at a time and adding the selected building block to the model, i.e., positioning it relative to previously placed building blocks. Conveniently, such a positioning operation may be performed by a drag and drop operation or similar interactive selection and positioning operation.
An embodiment of virtual reality modeling is described in US 6,389,375. Furthermore, an embodiment of a process of interactively placing new virtual building blocks in a setting comprising a 3D structure is described in co-pending International application PCT/DK 2004/000341. Both embodiments are incorporated herein by reference in their entirety.
It is to be understood that the construction process may also include manipulation of building blocks that have been placed in the model, including deleting building blocks, moving building blocks to another location, reorienting building blocks, changing properties/properties of building blocks, and/or the like.
When a user typically positions building blocks one at a time, the construction process imposes a sequential sequence of construction steps, for example by adding a newly selected building block or by repositioning a previously placed building block. This sequential order is recorded by the modeling application. Nevertheless, in some embodiments, several building blocks may be placed simultaneously. For example, in some embodiments, the modeling application provides copy and paste functionality, wherein one or more interconnected building blocks may be selected in response to user commands, and copies of selected substructures may be located at different locations of the model. In this embodiment, each of the selected building blocks has a position in the sequential ordering. When copies of multiple building blocks are generated, they maintain their relatively continuous ordering with respect to other selected and copied building blocks, thereby simply maintaining their relatively continuous ordering with respect to one another during the copy operation.
Once the creation of the model in step S1 is complete, a digital representation of the model is saved by the modeling application in step S2. Typically, the saving step is initiated by a corresponding user command.
In step S2, the digital representation is stored in the storage medium 203, for example, on a local hard disk of a computer running the modeling application, on a CD ROM, on a floppy disk, or the like. Alternatively or additionally, the digital representation of the model may also be stored remotely, e.g. sent to another computer of a computer network where it is stored. For example, the digital representation may be uploaded to a web server, where it may be made available to other users.
A preferred data structure of the digital representation will be described below. In step S3, a digital representation including storage information about the recording sequential order of the construction steps is loaded from the storage medium 203 by the construction instruction application.
In step S4, the build instructions application generates the build instructions 205 from the loaded digital representation. In particular, the build instruction application generates a series of 3D views of the part model, wherein each part model is distinguished from the immediately preceding part model in that a predetermined number of further building blocks are added to the model according to a stored sequence of construction steps or according to a sequence derived therefrom. A preferred embodiment of the building instruction process is described below with reference to fig. 7 to 11. The build instructions 205 can be electronically presented, printed, or presented in another suitable manner. In some embodiments, the generation of the build instructions may be controlled by user 204. For example, the user may select the number of additional building blocks to be added at each step. In addition, the user may manipulate the generated 3D view, including changes in camera position, and so forth, as will be described below. User 204 may be the same or a different user than user 202.
Fig. 3 shows a graphical user interface of a virtual building block system. The user interface comprises a display area 301, the display area 301 representing a view of a 3D set with a base plate 302, and a 3D structure 303 comprising a plurality of interconnected virtual building blocks 304. The set is represented by a predetermined viewpoint. In the following, this viewpoint will also be referred to as the (virtual) camera position, since it corresponds to a position from which the camera records a picture of the real structure corresponding to the graphical picture represented in the display area.
Each of the building blocks 304 corresponds to an active element of the graphical user interface that can be actuated, for example, by clicking on it with a computer mouse, to select the building block. In one embodiment, the selected virtual building blocks change appearance. For example, selected building blocks may change color, texture, etc.; it may be highlighted by representing a bounding box or the like around the selected building block. The user may manipulate the selected building block, for example to change its properties, for example its colour; delete it; carrying out copy and paste operations; dragging it to different positions; rotating it; and so on.
The user interface further comprises a palette panel 305, which palette panel 305 comprises a plurality of different building blocks 306 that can be selected by the user. For example, a user may click on one of the building blocks 306 with a mouse, thereby selecting the building block, and drag the selected building block into the display area 301 to connect it to the structure 303 or to the base plate 302.
The user interface also includes a menu bar 307, the menu bar 307 including a plurality of menu buttons 308 for actuating various functions or tools. For example, the toolbar may include a rotating tool that is used to change the position of the virtual camera, thereby allowing the user to view the build area from different directions. The menu bar may also include a zoom tool to zoom to/from the 3D scene. Other examples of tools include: a palette tool for selecting different palettes 305, each palette 305 comprising a different set of building blocks; a coloring tool for coloring a portion of the structure; an erase tool to erase the build block; and so on.
The menu bar 307 may also provide standard functions such as functions for saving a model, opening a previously saved model, printing an image of a model; a help function; and so on.
Fig. 4 shows an example of a building block and its connecting elements. Specifically, fig. 4 shows a perspective view of building block 401. Building block 401 has a top surface 402, the top surface 402 having eight hillocks 403a-h that are engageable with corresponding holes of another building block, e.g. holes on the bottom surface of another building block. Correspondingly, building block 401 includes a bottom surface (not shown) with corresponding holes. Building block 401 also includes a side face 404, which side face 404 does not include any connecting elements.
Generally, the connection elements may be grouped into different classes of connection elements, such as connectors, receivers, and hybrid elements. A connector is a connecting element that can be received by a receiver of another building block, thereby providing a connection between the building blocks. For example, the receiver may fit between portions of another element, fit into a hole, and so forth. The receiver is a connecting element that can receive a connector of another building block. The mixing element is a part that can function as both a receiver and a connector, typically depending on the type of cooperating connecting elements of the other building blocks.
Building blocks of the type indicated in fig. 4 are available under the name LEGO in a wide variety of shapes, sizes, and colors. Furthermore, such building blocks are available with a variety of different connecting elements. It is to be understood that the above building blocks are only used as examples of possible building blocks.
FIG. 5 illustrates an embodiment of a data structure for numerically representing a building block model. During the creation of the virtual building block model, the modeling application maintains a data structure representing the model created thus far. When the model is saved, the corresponding data structure is saved. In one embodiment, the save data structure 501 includes one or more data records 502, the data records 502 including global model parameters that relate to the entire model. Examples of such model parameters include the model name, the name of the model creator, the program version number of the modeling application, the creation data, and so forth. The model data structure 501 includes a list 503 that also includes the building block data structure. In the example of fig. 5, the list includes N data structures "building block 1", "building block 2", … "," building block J ", …", "building block N".
Each building block data record of the list 503 has a structure indicated by the data structure 504 for "building block J".
Specifically, each building block data record includes a building block ID 505 indicating an identifier corresponding to the type of building block. Preferably, the building block ID uniquely identifies the nature of the building block or the type of building block.
The building block data record also includes a plurality of block attributes 506 indicating one or more attributes of the building block, such as color, texture, decoration, and the like.
Further, building block data record 504 includes data items 507 and 508 that represent the location and orientation, respectively, of the building block's internal coordinate system. The position and orientation of the building blocks are defined by the coordinates of the building blocks relative to the origin of the internal coordinate system of the ball 'world' coordinate system and by the orientation of the internal coordinate system relative to the ball coordinate system.
An example of a data format for storing a virtual build model comprising a hierarchy of coordinate systems is disclosed in us patent No.6,389,375.
In addition, building block data record 504 includes data items 509 and 510 representing one or more bounding boxes and connectivity data of the building block, respectively, for use in the detection of connectivity properties of the building block with other building blocks. An embodiment of a representation of the connectivity data for the building block type represented in fig. 4 includes a data structure representing a plane defined by a surface of a bounding box of the building block. The connecting elements of the building blocks are arranged in these planes so that each connecting element has an axis associated with it. The axes of all the connecting elements in the same plane correspond to respective grid points of a regular grid, for example an orthogonal grid, with a fixed distance between adjacent grid points. The planes associated with building blocks 401 of fig. 4 are parallel to each other in pairs, and they include a set of horizontal planes corresponding to the top and bottom facades of the building blocks, and a plurality of vertical planes corresponding to the side facades of the building blocks. Preferably, the distance between adjacent grid points is the same in all horizontal planes. In one embodiment, the distance between adjacent grid points in the vertical plane is different from the distance between adjacent grid points in the horizontal plane. The digital representation of the connectivity properties of building blocks of the type represented in fig. 4 and the enforcement of the corresponding connectivity rules during the generation of the virtual model are disclosed in WO04/034333, WO04/034333 being hereby incorporated by reference in its entirety.
It is to be understood that the digital representation may be encoded in any suitable data or file format, e.g., as a binary file, as a text file according to a predetermined modeling description language, etc.
In the above example of the model data structure, the building blocks are ordered in a sequential order of their respective placements. Building block 1 is the first building block placed in the model and building block N is the newly placed or relocated building block. The above data structure is updated each time the model is manipulated.
Examples of such manipulations include:
-a change in a property of the building block, such as its color or appearance. This variation does not involve a variation of the sequential order of building blocks.
-addition of new building blocks: such changes include appending a new building block data structure to the list, resulting in a list of N +1 building blocks, where building block N +1 is the newly added building block.
-deletion of building blocks: such changes include removing the building block data records from the list.
-repositioning of the building blocks, e.g. movement of the building blocks to a new position, change of orientation of the building blocks, or a combination thereof: this change involves removing the corresponding building block data structure from its current position in the list, and appending the data record at the end of the list with the corresponding new position and orientation coordinates and any changes in connectivity data.
FIG. 6 illustrates another embodiment of a data structure for numerically representing a building block model. This embodiment is similar to the data structure of fig. 5. However, in this embodiment, each building block data record of list 503 includes a sequence index 601 that indicates the location of the building blocks in the order of connection in which the building blocks have been added to the model or have been relocated within the model.
FIG. 7 illustrates an embodiment of a graphical user interface for building an instructional application. The graphical user interface includes a viewing area 701 that indicates a graphical representation of the steps of a set of step build instructions. The graphical representation indicates a 3D view of the partial model 702 represented from a predetermined camera position. The partial model 702 includes a subset of all building blocks of the complete model, where the subset includes the initial positioning building blocks. The viewing area 701 further comprises a graphical representation 703 of the newly placed building blocks, i.e. building blocks that distinguish the current partial model 702 from the partial models of the previous steps. In this example, these are building blocks 714, 715, and 716 of the partial model 702.
The user interface further comprises a slider control element 709, which slider control element 709 can be moved at discrete intervals by a corresponding dragging operation by means of a mouse, allowing the user to select any of the steps of the step instruction. In the example of fig. 7, three new building blocks are added at each step of the instruction.
The user interface also includes a button control element 705 that allows the user to invoke a number of frequently used functions, such as continuously flipping the graphical representation in the forward and backward directions, jumping to the first and last steps of the instruction, changing the camera position, printing the resulting build instruction, and initiating an "auto-cast" function, respectively. The auto-shadow function displays a sequence of partial models one by one so that each partial model displays a predetermined period of time. Preferably, the user can configure the viewing time for each partial model in the auto-cast function.
Preferably, the number of building blocks added in each step is configurable. In the example of fig. 7, it is assumed that the number is set to 3, i.e., three building blocks are added to the model in each step of the building instruction. Thus, the first partial model comprises the first, second and third building blocks recording the successive order of the construction steps, while the second partial model comprises the first, second, third, fourth, fifth and sixth building blocks, and so on.
Finally, the user interface includes a plurality of drop down menus 704 that allow the user to initiate functionality such as help functions, functions to change the position of the camera, zoom functions, and the like. Additional functionality provided by the build instruction application includes: loading of the digital representation; a print function to print a graphical representation of a portion of the model; and an output function for outputting a sequence of graphical representations of the partial models, for example in HTML format, or any other suitable graphical file format, such as TIF, JPG, BMP, etc.
Additional examples of functionality provided by the build instruction application include a bill of material function, allowing a user to view or print a list of all building blocks in the model.
Figures 8a-l illustrate an exemplary sequence of partial models of a building block model forming a graphical representation of a step build instruction. Each graphical representation is represented in a display area 801 and includes a view of a portion of the model 802 and a view of the building blocks 803 added in the current step. Also in this example, three building blocks are added in each step. Therefore, FIG. 8a represents the initial partial model of the first three building blocks 803 in sequential order, i.e., the first three building blocks added to the model during model creation. Fig. 8b shows the next partial model comprising 6 building blocks, i.e. three building blocks of fig. 8a and three further building blocks. FIGS. 8 c-8 k show subsequent incremental portion models in sequential order of step instructions. Finally, FIG. 8l represents the completed model after the last three building blocks have been added. It is to be understood that in the case where the total number of building blocks in the model is not a multiple of the number of building blocks added in each step, a different number of blocks are added in one of the steps, for example in the last step.
It is to be understood that in some embodiments, more than one partial model may be displayed simultaneously in the viewing area of the user interface.
FIG. 9 illustrates another embodiment of a viewing area for a graphical user interface for building an instructional application. In this embodiment, the viewing area 701 represents the current partial model 702 and the sequence of building blocks 903 in the sequential order in which they were added to the model. The slider control element 904 adjacent to the sequence of building blocks 903 indicates the current position in the sequence: the partial model 902 currently displayed in the display area 901 includes all the building blocks up to the building block 913 indicated by the current slider position.
By moving slider control element 904 up and down, the user can select which portion of the model to view in the viewing area. Therefore, in this embodiment, each incremental partial model differs from the previous partial model by only a single tile.
Fig. 10 illustrates an example of a series of building steps of a virtual building block model. 10a-d represent a display area 1000 of a modeling application, such as the modeling application described in connection with FIG. 3, at different steps of a sequence of building steps that results in a virtual building block model 1010. For simplicity, it is assumed in this example that the building block model is created from only one type of building blocks, i.e., the type described in connection with FIG. 4. Figure 10a shows the display area after the placement of the first building block 1001. Figure 10b shows the display area after the second building block 1002 has been partially placed on top of the second building block so that some of the hills on the top surface of the first building block 1001 engage with corresponding cavities in the bottom surface of the second building block 1002. Figure 10c shows the display area after the third building block 1003 has been placed and figure 10d shows the display area after the fourth building block 1004 has been placed.
It should be noted that placement of fourth building block 1004 in this position is not possible for a physical building block of the type described in connection with fig. 4 without first removing blocks 1001 or 1003, because the hillocks on the respective top surfaces of building blocks 1001 and 1004 prevent insertion of building block 1004 in the gap between building blocks 1001 and 1003. In some embodiments of virtual modeling, the positioning of building blocks 1004 may still be allowed because the generation location is valid. Once positioned within the gap, the hills of building blocks 1001 and 1004 properly engage with the corresponding cavities of building blocks 1004 and 1003, respectively. Allowing such a positioning in a virtual modeling application provides for more efficient manipulation of building blocks, such as replacement of building blocks at the center of the model, without the need to eliminate a significant number of other building steps.
Nonetheless, when generating build instructions for the construction of a physical model, it may be desirable to ensure that the sequence of build steps can proceed in the order presented.
This problem is solved by modifying the sequence of record building steps according to a secondary ordering condition that leads to a derived sequence. An example of such a secondary condition in the example of fig. 10 is the location of the building blocks. For example, the coordinates of the building blocks in the y-direction of the spherical coordinate system 1011 may be used as a quadratic classification criterion. The y-direction in the global coordinate system of fig. 10 corresponds to the vertical direction from the base plate, i.e. to the natural direction of the stacked building blocks on top of each other.
The list of building block data records generated by the modeling application for the example of FIG. 10 has the following sequential order:
building block y-coordinate
Building block 1001 y1
Building block 1002 y2
Building block 1003 y3
Building block 1004 y4
Here, the y-coordinates of the building blocks indicate y1, y2, and y3, where y1 < y2 < y 3.
In one embodiment, the above record sequential order is modified by sorting the building blocks according to their y-coordinates. Building blocks with equal y-coordinates maintain their relative sequential order as recorded.
This modification results in a modified sequence as follows:
building block y-coordinate
Building block 1001 y1
Building block 1002 y2
Building block 1004 y2
Building block 1003 y3
Building blocks 1003 and 1004 are interchanged. The corresponding steps of the building instructions are shown in fig. 11a-d, where additional building blocks are added in each step.
Fig. 11 illustrates an embodiment of building instructions for a virtual building block model created according to the sequence of fig. 10. In particular, FIGS. 11a-d show a display area 1100 of a user interface of a build instruction application, showing a partial model of a corresponding step of a generated step build instruction. In the example of fig. 11, the sequence of steps in the build instruction results from the modified sequence of steps described in connection with fig. 10. Thus, FIG. 11a represents an initial part model of a first building block 1101 having a sequence of instructions. Figure 11b shows the partial model after the addition of the second building block 1102 of the instruction sequence. Figure 11c shows the part model after the addition of the third building block 1104 of the instruction sequence. Finally, fig. 11d shows the completed model after the addition of the fourth building block 1103 of the instruction sequence.

Claims (24)

1. A computer-implemented method of generating building instructions for a building block model, the model comprising a plurality of building blocks; the method comprises the following steps:
a) retrieving a digital representation of the building block model; wherein the digital representation indicates a sequential construction order in which a plurality of virtual building blocks have been located in response to user commands during a computer-implemented virtual construction process that produces a virtual building block model; and
b) generating a graphical representation of at least first and second partial models of respective first and second subsets of the plurality of virtual building blocks; wherein the second subset comprises the first subset and a predetermined number of further virtual building blocks of the plurality of virtual building blocks; and wherein the further virtual building blocks follow all virtual building blocks in the first sub-group with respect to a sequential instruction order derived from the sequential construction order.
2. The method of claim 1, wherein the digital representation comprises a series of data records, each representing one of the plurality of building blocks; and the series represents a sequential construction sequence in which virtual building blocks are located during model generation.
3. The method of claim 1, wherein the digital representation comprises a plurality of data records, each representing one of a plurality of building blocks; and each data record comprises a data item indicating the position of the corresponding virtual building block in the sequential construction order in which the virtual building blocks were located during model generation.
4. A method according to any one of claims 1 to 3 wherein the sequential instruction order is the same as the sequential construct order.
5. A method according to any of claims 1 to 3, further comprising modifying the sequential construction order according to predetermined sorting criteria to obtain a sequential instruction order.
6. The method of claim 5, wherein the digital representation comprises respective position coordinates of each of the virtual building blocks relative to a predetermined coordinate system; and said classification criteria comprise said position coordinates in at least one predetermined direction.
7. The method of any one of claims 1 to 6, further comprising generating a digital representation of the building block model by means of a computer-implemented construction environment for interactively constructing the virtual building block model, wherein generating comprises:
-positioning a plurality of virtual building blocks in respective positions relative to each other, resulting in a virtual building block model, wherein the virtual building blocks are positioned in a sequential building order in response to user commands;
-storing a digital representation of the virtual building block model comprising information about the sequential construction order.
8. The method of claim 7, wherein the computer-implemented construction environment is configured to enforce a predetermined set of constraints imposed on the locations of the construction blocks relative to each other.
9. The method according to claim 8, wherein the computer-implemented construction environment is configured to retrieve connectivity information of corresponding connection elements of the virtual building blocks, the information indicating whether connection elements of two building blocks located in a predetermined proximity to each other provide a connection between the two building blocks.
10. The method of any of claims 1 to 9, wherein each of the first and second subsets comprises an uninterrupted partial sequence of virtual building blocks from stored sequential instruction sequences.
11. The method of any of claims 1 to 10, wherein generating the graphical representation comprises generating a sequence of graphical representations of a corresponding sequence of partial models, the partial models comprising an initial partial model, a sequence of incremental partial models, and a completion model; wherein each of the incremental portion models comprises all virtual building blocks of an immediately preceding incremental portion model of the sequence and a predetermined number of further virtual building blocks from the plurality of building blocks; and wherein the completion model includes all of the plurality of virtual building blocks.
12. The method of any of claims 1 to 11, further comprising providing a user interface that facilitates user-controlled manipulation of the graphical representation.
13. The method of claim 12, wherein the user interface provides at least one of manipulating zoom and rotation.
14. A method according to claim 12 or 13, wherein the user interface provides functionality for viewing a selected representation of the generated graphical representation.
15. The method of claim 14, wherein the user interface provides functionality to view a sequence of graphical representations of the partial model, wherein each graphical representation is displayed for a predetermined period of time before automatically displaying the next graphical representation.
16. The method of any of claims 12 to 15, wherein the user interface further provides functionality to at least one of print the at least one graphical representation and store the at least one graphical representation in a predetermined file format.
17. The method of any one of claims 1 to 16, wherein the predetermined number is user selectable.
18. The method according to any one of claims 1 to 17, wherein the predetermined number is between 1 and 6, preferably between 2 and 4.
19. The method according to any one of claims 1 to 18, further comprising presenting a second graphical representation of the model together with a graphical representation of a further building block, the further building block distinguishing the second part model from the first part model.
20. A data processing system having stored thereon program code means adapted to cause the data processing system to carry out the steps of the method according to any one of claims 1 to 19 when said program code means are executed on the data processing system.
21. A computer program product comprising program code means adapted to cause a data processing system to perform the steps of the method according to any one of claims 1 to 19 when said program code means are executed on the data processing system.
22. A computer program product according to claim 21, comprising a computer readable medium having stored thereon the program code means.
23. The computer program product of claim 19 or 20, comprising: a first software portion for performing steps a) and b) of the method according to any one of claims 1 to 19; and a second software portion for performing the step of generating a digital representation of the building block model by means of a computer implemented construction environment for interactively constructing the virtual building block model.
24. A computer data signal embodied in a carrier wave and representing sequences of instructions which, when executed by a processor, cause the processor to perform the steps of the method according to any one of claims 1 to 19.
HK07108797.1A 2004-06-17 2005-06-16 Automatic generation of building instructions for building block models HK1115505A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DKPA200400942 2004-06-17

Publications (1)

Publication Number Publication Date
HK1115505A true HK1115505A (en) 2008-11-28

Family

ID=

Similar Documents

Publication Publication Date Title
CN1993712A (en) Automatic generation of building instructions for building block models
US7979251B2 (en) Automatic generation of building instructions for building element models
EP2714223B1 (en) Generation of building instructions for construction element models
US8374829B2 (en) Automatic generation of building instructions for building element models
US10078325B2 (en) Systems and methods for designing programmable parts for models and optimizing 3D printing
EP2483868B1 (en) Connectivity depended geometry optimization for real-time rendering
US8914259B2 (en) Passive associativity in three-dimensional (3D) modeling
US20210287451A1 (en) System and method for handling assets for fabrication
CN1791850A (en) Method and system for manipulating a digital representation of a three-dimensional object
CN1299244C (en) System and method for building three-dimentional scene dynamic model and real-time simulation
HK1115505A (en) Automatic generation of building instructions for building block models
de Vries et al. Interactive 3D Modeling in the Inception Phase of Architectural Design.
WO2010000774A1 (en) Product development support system
Gerhard et al. Mastering Autodesk 3ds Max Design 2011
Gerhard et al. Mastering Autodesk 3ds Max Design 2010
Weichel Mixed physical and virtual design environments for digital fabrication
GOEPEL et al. AUGMENTED REALITY-BASED COLLABORATION
Tran Thi Importing a 3D model from an industrial design
Bala tCAD: a 3D modeling application on a depth enhanced tabletop computer
HK1090720B (en) Method and system for manipulating a digital representation of a three-dimensional object