CONSTRUCTIONAL SYSTEM
Field of the invention
The invention relates to constructional systems suitable for children or otherwise used for entertainment purposes. The invention relates particularly to constructional toys for children.
Background of the invention
Constructional toys for children are many and varied. Existing toy building systems such as Lego™ and Meccano™ are popular with many children. One reason for the enduring popularity of such systems is possibly the inherent flexibility a child has to construct a variety of different objects using the components provided.
It is an object of the invention to provide a constructional system which attempts to address these and other limitations of existing construction-based toy systems.
Summary of the invention
The inventive concept resides in a recognition that a constructional system is advantageously based on "virtual" elements that can be manipulated using, for example, a computer software programme, to generate a model representation which can be subsequently rendered in physical form.
The invention provides a constructional system for constructing three-dimensional models, the system including:
a digital storage medium on which is stored software adapted for use by a compatible computing device to allow a user to generate a model representation;
a constructional unit able to construct a three-dimensional model corresponding with said generated model representation by machining pieces of material, said constructional unit deriving machining instructions to machine said models from said computing device; and
wherein said model representation is generated by selecting one or more elements of possible model representations.
Preferably, the constructional unit is adapted for machining one side of the material at a time and requiring, if necessary, manual inversion of the piece of material to complete machining of the model. Preferably, the constructional unit has a machining accuracy of no better than 0.1 mm.
The invention also provides a constructional unit able to construct a three- dimensional model corresponding with a model representation generated by software installed in a suitable computing device, said three-dimensional model being constructed by machining respective pieces of material in accordance with machining instructions received from said computing device, wherein:
(a) said model representation is generated by selecting one or more elements of possible model representations; or
(b) the constructional unit is adapted for machining one side of the material at a time and requiring, if necessary, manual inversion of the piece of material to complete machining of the models; or
(c) the constructional unit constructs said model with a precision unsuitable for professional applications but suitable for entertainment purposes; or
(d) the constructional unit has a machining accuracy of no better than 0.1 mm.
Preferably the volume of the pieces of material used in the constructional unit is less than 0.01 m3, more preferably less than 0.001 m3, say 0.0005m3. Preferably the maximum dimension of the pieces of material is no greater than 0.2m, say 0.15m.
Preferably the constructional unit has a tray on which the pieces of material are inserted, and withdrawn when construction of the model is complete. Preferably the tray of the constructional unit is dimensioned such that preferably dimensioned pieces of material can be snugly inserted and withdrawn.
The invention also includes computer software including coded instructions which,
when installed on a compatible computing device, allow a user to generate a model representation suitable for use by a constructional unit, wherein said model representation is generated from a selection of one or more elements of possible model representations, and/or said machining instructions are unable to be used to construct said model with a precision suitable for professional applications.
The invention also includes a method of facilitating the constructing of three- dimensional models, the method including:
accepting information in respect of a model representation generated by a user;
converting said information to machining instructions suitable for a constructional unit to machine a model corresponding with said generated model representation;
wherein said machining instructions are unable to be used to construct said model with a precision suitable for professional applications.
In the various above mentioned aspects of the invention, the elements of potential model representations are preferably provided from one or more libraries, each library comprising a number of component collections in which each component collection comprises a number of specific components of a generic type. Preferably, this allows a variety of different models sharing a general form to be constructed from corresponding model representations generated from combinations of specific elements selected from the component collections of each library. By way of example, libraries are preferably provided for cars and other vehicles, and dolls and other figures. Models of the general form of a car or doll can thus be constructed from model representations generated by selecting from component collections specific combinations of wheels, bodies, etc, or heads, torsos, legs etc as appropriate.
Description of drawings
Fig. 1 is a schematic view of a constructional system according to an embodiment
of the present invention.
Fig. 2 is a view of a tray of a constructional unit represented in Fig. 1.
Fig. 3 is a rear view of the constructional unit represented in Fig. 1.
Fig. 4 is front view of the constructional unit represented in Fig. 1. Fig. 5 is a view of the positioning equipment of the constructional unit of Figs. 3 and 4.
Fig. 6 is a detail of one stepper motor and drive belt combination used in the constructional unit of Figs. 3 and 4.
Fig. 7 is a further view of the tray shown in Fig. 2, indicating the axis about which material positioned in the tray can be rotated.
Fig. 8 is a detail of a cutting assembly used in the constructional unit of Figs. 3 and 4.
Fig. 9 is a schematic drawing of the electronic circuitry used in the constructional unit of Figs. 3 and 4. Fig. 10 is a schematic drawing of components of software used in combination with the constructional unit of Figs. 3 and 4.
Fig. 11 is a flowchart of the steps involved in using the software represented in Fig. 10.
Fig. 12 is a schematic drawing of the various constructional systems of Fig. 1 connected via a computer network.
Description of embodiments
The components of a preferred constructional system are a computing device such as a personal computer 100, and a constructional unit 200, as illustrated in Fig. 1. Details of the constructional unit are illustrated in further details in Figs. 2 to 9.
The constructional unit 200 and the personal computer 100 can be connected to each other through one of the peripheral ports of the personal computer 100, via a connecting cable 130. It is preferred that a parallel port 140 be used, though a standard serial port or a SCSI (small computer serial interface) or USB (universal
serial bus) can be adapted for use. Constructional unit
The constructional unit 200 is preferably provided as a boxed "machine" of a size that can be readily lifted and handled by children. The constructional unit 200 bears some functional similarities with analogous construction systems used in industry. However, these corresponding analogous systems are relatively, heavy, bulky, expensive, and produce results of high accuracy. The existing systems also require professional operation and maintenance.
Power for the constructional unit 200 is preferably supplied to a DC power port 222 by an AC-to-DC power plug 220 connectable to the power mains supply 228. It is of course possible to provide systems which alternatively source electrical power from the personal computer 100.
With reference to Figs. 2 to 4, the constructional unit 200 has a tray 210 which allows for insertion of modelling material 212 (the nature and variety of which is discussed below), and retrieval of finished models. The modelling material 212 is clamped securely in place on the tray 210 using clamps 214.
As described in further detail later, the computer 100 also has a parallel port 224 for communication with the personal computer 100.
The constructional unit 200 is essentially a 3-axis machining centre cutting element (for example, a small cutting tool 286, such as a ball-nose end mill, which is driven by electric motors) driven in perpendicular X, Y and Z directions by motors 260, 262, 264 and drive belts 266 as indicated in Fig. 4. Each of the X, Y and Z axes has a drive belt 266 and guide rails 268 to provide accurate movement. One side of a model or "part" is machined, then the part is manually turned over to construct the other side. This system provides an accuracy of around 0.1 mm which is insufficient for professional use, such as in engineering or design prototyping, but is satisfactory to represent structures for entertainment purposes.
Stepper motors 260, 262 and 264 are preferably used to drive the system as this eliminates the need for encoders and a limit switch, compared with the alterative of using high-speed DC motors.
If high-speed DC motors are used, the respective shafts are driven via a gearbox to reduce the rotational speed and increase torque. An encoder is mounted on the rear of the motor to provide positional feedback, to a resolution of around 0.1 mm. If high speed DC motors are used to drive the system, the encoder used is preferably an optical mechanism which reads the edges of rotating slots. However, in an analogous manner, a potentiometer or other positioning devices can be used.
A limit switch 270 is preferably used (though its use is not necessary) to return the cutting tool 286 back to its home position, usually when the unit 200 is powered on. As mentioned, limit switches are optional when stepper motors are used, but their use becomes more important if high-speed DC motors are used instead.
Preferably the axis configuration is a conventional right angle prismatic X, Y, Z system (250, 252, 254), but the unit 200 can also be operated using an additional axis to rotate the modelling material in 360 degrees, which enables more complex parts to be machined (for example, parts with undercuts such as the inside wheel hub of a toy car). Alternatively, the rotation can be in 2 steps of 180 degrees, to avoid the need to manually turn the part over.
A further alternative axis configuration uses threaded shafts instead of drive belts. Another alternate axis configuration uses threaded shafts only. That is, no guide rails are used, and the cutting tool 286 moves in 3-dimensional space based on the position of the shaft.
The machining components of the unit 200 are optionally housed in a plastic casing 216 and optionally protected from the machining area by a flexible membrane (not shown) of a suitable material. The membrane stops machined material from interfering with moving parts, provides a measure of safety, and reduces the chance of the child or other user damaging the moving parts.
The modelling material 212 is housed in an adjacent plastic casing, and is held in place by clamps 214 to ensure positional accuracy, as indicated in Fig. 2.
A safety switch 224 ensures that the cutter assembly 280 is automatically shut off in the event of the tray 210 being opened mid-cycle.
Electronics
Techniques for transmitting sequences of stepper motor pulses (that is, motor control commands 314) and converting these pulses into current pulses within each stepper motor 260, 262, 264 are well known.
Referring to Fig. 9, the electronic circuitry 700 within the constructional unit 200 contains 2 latches 710, 720 and 3 line drivers 760, 762, 764 for respective stepper motors 260, 262, 264. When CO of the parallel port connector 224 is strobed high, D0-D3 are directed through latch A 710 via Q0-Q3 and therefore into line driver A via D0-D3. The X stepper motor is connected from +12 Volts DC to ground, via line driver A 760, through Q0-Q3 of line driver A 760. The pattern of the input lines D0-D3 on the parallel port is therefore reproduced as current flow through the windings of the X stepper motor 260 to position the motor 260 to the corresponding position. The required binary input line pattern for each angular motor position is specified by the stepper motor manufacturer.
When CO of the parallel port connector 224 is strobed high, the Y stepper motor 262 is similarly energised according to the pattern of the inputs D4-D7 on the parallel port connector 224.
The Z stepper motor 264 is energised according to the pattern of the inputs D0-D3 on the parallel port connector 224 by the core software 310 strobing the C1 input to the parallel port connector 224 high and the CO input low which disconnects current to the X stepper motor 260 and Y stepper motor 262 and causes current to flow to the Z stepper motor via line driver C 764 , which is controlled by latch B 720.
Model materials The unit 200 described above works on model materials 212. Four types of materials are preferably available, all sized to fit within the unit 200 without modification. It is thus preferable that the pieces of material 212 are of a volume less than 0.01 m3, more preferably less than 0.001 m3 so that the pieces 212 and hence the unit 200 is conveniently dimensioned. A suitable size of the pieces of
material 210 is 30 x 100 x 150 mm.
1. The first material resembles plastic. This material is used to make durable items that can be 'played with' by a child.
2. The second material is weaker, and is completely reusable by re-melting in a provided mould. The material is most conveniently re-melted on a stove, or in an oven or microwave oven. It can be used for modelling applications, for example if the item is to be put on display.
3. The third material resembles stiff rubber and is preferably constructed from a polyvinyl (PVC) material.
4. The fourth material is for mold making applications. A 'cavity' is made by making the shape of one side of a part of this material. The cavity (or die) is then used to cast parts. For example, one could make unique wedding decorations or jelly molds - such as a person's actual face.
The first three materials are all preferably paintable. Computer
The personal computer 100 can be any type of desktop machine generally in use which is suitable for running the software 300 which enables the computer 100 to interface with the unit 200. Instead of using a personal computer 100, other devices can be used to instruct the unit 100. Such devices can be very rudimentary and suitable only for use in conjunction with the unit 100. In this case, the device preferably has an interface designed to interact solely with the unit 200, and designed to appeal to children who might not have access to a personal computer 100. Such devices are preferable when it is undesirable to connect the unit 200 to a personal computer 100. If a personal computer 100 is not used, the software functionality may be restricted to compensate for the lack of sophistication of the alternative means. Of course, the necessary computing functionality of a personal computer 100 or an alternative device can be provided within the housing of the unit 200 to provide a system that is contained within a single "box".
Software
Software 300 is preferably provided with a read-only compact disc (CD-ROM) to allow operation of the unit 200 via the personal computer 100. Fig. 10 illustrates the relationship between components of the software 300, and its interaction with a user 336 and the constructional unit 200, via the cable 140.
The personal computer 100 runs software 300 with several components.
1. Firstly, there is the core software 310 that enables the unit 200 to move to a defined position (reads the encoders, understands the mechanical configuration).
2. Secondly, there is the application package 320 that enables certain shapes or parts to be produced.
3. Thirdly, there is the GUI (graphical user interface) 330, with which the user 336 interacts.
The software 300 used on the personal computer 100 uses techniques known for conventional 3D computer aided design (CAD) applications. Internally, the software 300 uses a user interface 330 to allow a user 336, by interacting with the computer, to generate a model representation. The model representation 340 is used by the software 300 to describe the characteristics of the part in terms of its spatial form, and is depicted in whole or in part on the computer's display 150. Preferably, the depiction provided by the display 150 of the computer 100 is a two- dimensional representation, rather than a depiction of a three-dimensional model, corresponding more directly with the model that is actually constructed by the constructional unit 200. This provides an element of novelty and surprise by which users 336 are enticed to construct models, as it is not entirely clear what spatial features the constructed model will have.
The model representations 340 used by the software 300 are converted to model instructions suitable for direct use by the unit 200. The model instructions 314 are interpreted by the unit, and a model is constructed by the unit 200 in accordance
with those instructions 314. Preferably the software 300 generates model instructions 314 which leaves "support webs" where necessary to avoid the constructed model from collapsing onto itself. The software 300 also determines the maximum cutting depth and thus cutting path appropriate to the power of the unit 200.
As mentioned above, the core software 310 interfaces to the construction unit 200 via the connecting cable 140 through a parallel port 140 on the personal computer 100. The user 336 interacts with the computer software 300 by selecting elements via the mouse 120 and keyboard 110 of the personal computer 100, which send user commands 334 to the GUI (graphical user interface) 330. The GUI 330 responds to these commands 334 by issuing core commands 338 to the core software 310 and database commands 332 to the application package 320. The application package 320 and the core software 310 interact to produce 3D model representations 340. These 3D models 340 represent the 3 dimensional shape of the part or parts to be produced by the constructional unit 200.
The core software 310 determines the path that the cutter of the constructional unit 200 must take in order to produce the part represented by the 3D models 340. In so doing, the core software 310 generates motor control commands 314 which in turn are sent to the constructional unit 200 via the parallel port 140 on the personal computer 100. These motor control commands 314 are interpreted by the electronics 700 (described further below) on the constructional unit 200 as positioning commands for the X, Y and Z motors (260, 262, 264).
Over time, the totality of motor control commands 314 generated by the core software 310 represents the complete path of the ballnose cutting tool 286 in 3 dimensional space required to machine the part from the blank material. In addition to generating the motion control commands 314, the core software 310 also generates 2D and 3D visual representations 312 of the part to be machined which are in turn relayed back to the user as visual feedback 332.
Software
The data format of the 3D models 340 can be any standard or proprietary CAD format for 3D structures, such as virtual reality markup language VRML or STEP. Such data formats are preferably well suited to storage in or referencing within a database and transmission over computer networks such as the Internet.
The database used for storage of the 3D models 340 within the application package 320 can be any relational or object database capable of storing Binary Large Objects (BLOBs), or references to BLOBs. Microsoft™ Access™ is one such relational database. The database can also be based on a flat file structure rather than relational tables.
The GUI 330 is preferably Microsoft™ Windows™ but may be any GUI 330 capable of allowing the user 336 to select objects and see 2D and 3D visual representations of those objects. The operating system of the personal computer 100 is preferably Microsoft™ Windows™ however any operating system which allows connection to the constructional unit 200 by way of the connecting cable(3) can also be used.
The 3D visual representations 312 of the part are produced by the core software 310 by converting the 3D model 340 into a visual display list of shaded surface triangles. There are various existing techniques of achieving this functionality. OpenGL™ is a software library operating under Microsoft™ Windows™ that provides this functionality by converting 3D CAD representations of models (that is, 3D Models 340 for example) into a display list of surface triangles and displaying this list on a video display monitor 150 of the personal computer 100 to recreate the 3D appearance of the 3D model 340. There are other existing software libraries (such as Microsoft™ Direct3D™) that can also be used to generate 3D visual representations of 3D models.
The 2D visual representations 312 of the part are produced by viewing a 3D rendering of the part projected into one of the 3 primary planes (XY, XZ or YZ). This operation can be achieved, as previously mentioned, using OpenGL™ or
Microsoft™ Direct3D™ libraries.
The core software 310 performs the CAM (computer aided machining) process to generate a tool path by one of many existing CAM techniques. The tool path is the full sequence of (XN,Z) coordinates required for the cutter to traverse in order to machine the desired part. Preferably, embodiment, the core software 310 implements the 45 degree zig-zag machining method used on commercial CAM software packages, such as MasterCAM™.
In this algorithm, the cutter 286 is programmed to traverse in the X and Y axes at 45 degrees to the X axis. This is called a raster line. Each raster line is parallel to the previous raster line and spaced a fixed distance (say 0.5mm) apart. As the cutter traverses the raster line, the core software 310 continually calculates the height of the Z axis, required at each point along the raster line, such that the ball of the cutter 286 contacts the surface of the part in at least one position and does not "gouge" into the part. Gouging is caused when the cutter 286 is too deep at any one point of the part.
The core software 310 converts the tool path to motor control commands 314 by implementing an interpolator function. The type of interpolator required depends on the particular implementation of the hardware and motor drive system of the constructional unit 200.
In the preferred embodiment of the constructional unit 200, which is driven by open loop stepper motors (260, 262 and 264), the core software 310 produces a sequence of pulses representing the time sequence of pulses required to move each of the stepper motors in order for the cutter 286 to follow the desired tool path. This sequence of pulses is converted to a data format compatible with the electronic circuitry of the constructional unit 200 and transmitted to the constructional unit 200, one set of pulses at a time at fixed time intervals, so that the cutter traverses the desired tool path(38) at the desired speed.
User operation of software
The software 300 preferably provides "packages" consisting of a pre-generated libraries of model representations and/or model components. Each of these can be constructed in a "standard" mode, Further, a basic "freeform" mode allows for the generate original designs. Some examples are described as follows:
Other examples are chess pieces, figurines, medals, jewellery, etc. Paints and stickers suitable for the models are available, as moving parts, so that mobile models can be made. In a "freeform" mode, the user can "cut, paste and move" a series of shapes to create an object. These shapes can include spheres, squares, blocks and triangles, but of course may include any other geometric components.
For example, a rocket ship can be created by joining together a collection of the shapes. A dolls chair could be built with around 5 shapes. As well as "standard" and "freeform" modes, an "unlimited" designer mode can also be provided to allow more complex models to be generated as if using a paintbrush, but in 3 dimensions.
A typical interaction of a user 336 with the computer software 300 is depicted in
Fig. 11. When a user 336 starts 500 using the software 300, a decision is made 510 whether to use the "freeform" mode. If a standard mode is chosen, the user
336 makes a selection 560 of elements or "objects" from the application package
320. The core software 310 retrieves 570 3D model information 340 from a database in the application package 320.
Once the 3D model 340 is settled, the core software 310 scales 580 the object to fit within the extent of the piece of material 314 clamped in the tray 210 of the unit 200. The core software 310 then generates 590 a tool path from the 3D model 340 as the basis for operating the cutting assembly 280. The tool path is converted 600 by the core software 310 into motor control commands 314 and output to the unit 200 via the parallel port 130 of the computer 100.
If "freeform" mode is selected, the user 336 selects 520 an object from a library of parts stored in the database of the application package 320, and adds it to the 3D model 340. The user 336 then has the opportunity of scaling and locating 530 the resulting 3D model 340 by viewing the 2D and 3D representations 312 produced by the core software 310.
The user 336 has the option 540 of repeating this process of adding 520, scaling and locating 530 components as required. Once the 3D model 340 is finalised, the model 340 is sent 550 to the core software 310. At this point, the same steps 580, 590, 600 occur as when standard mode is used to generate a tool path, and sending motor control commands 314 to the unit 200. The process ends 610 once the model is constructed. Web site
The system can be operated in a stand alone configuration as described above, though it is preferred that the system be connected via the personal computer 100 to a network, most preferably the Internet, so that users can access a server 800 by which users 336 can interact through an interface in the form of a Web site 810. This is illustrated in Fig. 12.
To allow network access, the computer 100, as indicated in Fig. 1 , has a modem 160 which can connect to a telephone jack 180 to provide dial-up Internet access though an Internet Service Provider. The advantage of Internet access is that it can be used to provide additional functionality not otherwise available to individual users 336.
The Web site 810 can, most basically, provide model representations or packages
of model representations either freely, or for a fee. For promotional purposes, models of figures or characters may be able to be generated by the system by transferring the necessary model information from the Web site 810.
Model representations The server 800 also provides for submission of complex model representations (for example, produced in unlimited designer mode) so that corresponding model instructions 314 can be generated at the server 800. The server 800 returns the model instructions 314 to the user 336 by email. It may be preferable to have the user 336 retrieve the corresponding model instructions from the server 800, or from a newsgroup. When the model instructions 314 are retrieved, they can be made accessible by other users 336, or only accessible by the user 336 who submitted the corresponding model representation 340.
Software functionality
The software 300 can be designed to disable, to whatever extent deemed appropriate, generation of model instructions 314 from model representations 340 whether such generation occurs on the server 800 or at the personal computer 100. For computers 100 with network access, it would be feasible to not completely disable generation of model instructions 314 from model representations 340. This allows the software 300 to be relatively simple and compact, and beneficially ensures a maximal degree of user interaction with the server 800.
Conversely, if a substantial number of computers 100 do not have network access available, then it is preferable that the software 300 provide at least a limited ability to generate model instructions 314 from model representations 340. Alternatively, a library of precompiled model instructions 314 can be provided for the unit 200 to construct models. Also, model instructions 314 can be assembled from libraries of precompiled component model instructions 314 corresponding with model components, to provide complete model instructions 314 for simple cases in which model representations 340 are generated from combinations of predetermined components. A simple example is a model representation 340 for a face which can be generated by the user from a selection of component noses, eyes, mouths etc.
Transmission of models
A server 800 also provides for operation as a "transmission room" through which users 336 of different systems can send each other "models" so that the users 336 have a notional perception that the physical object constructed by the receiving unit 200 has been transferred through space. Of course, a server 800 need not be used for this purpose, as direct communications between users 336 can be enabled. In either case, communications between systems allows for swapping of models, and for users to send greetings or surprise models to each other. The software 300 can be adapted to allow for transfer of model representations 340 and/or model instructions 314. The software 300 can be adapted to receive model instructions 314, model representations 340 or a combination of both, so that complete model instructions 314 sufficient to construct the model can be generated from the available information. Preferably, the constructional systems have network access and can accordingly access a server through which all transfers are effected. If considered appropriate, the software can be adapted to disable the possibility of direct transfer of model instructions and/or model representations between users. As with the generation of model instructions from model representations by the server, it is of course desirable if possible to monitor the transfer of "models" between users.
To effect transfer of models via a server 800, a "mailbox" can be established for users 336 to place and retrieve "models" for or from other users 336. Many other methods of exchanging "models" are possible.
Of course, systems embodying the invention can be provided with models of varying degrees and combinations of the functionality described herein. The invention extends to all such alternative combinations and variations.