Abstract:
The present invention relates to a computer-implemented method of manufacturing customized 3D objects. The method includes retrieving a source model for a 3D object and a plurality of defined control points for the 3D object from a database; receiving modifications to at least some of the control points from a first user; automatically applying the modifications to the source model to create a modified model; and automatically generating print instructions for manufacture of a customized version of the 3D object. A system and 3D models generated by the method are also disclosed.

Description:
This application claims priority to GB Application No. 1308343.1, filed on May 9, 2013, the entire contents of which is incorporated herein by reference. 
     FIELD OF INVENTION 
     The present invention is in the field of manufacturing of 3D printed objects. In particular, but not exclusively, the present invention relates to the manufacturing of customisable 3D printed objects. 
     BACKGROUND 
     Small batch manufacturing of objects has become more viable with the development of 3D printing, or additive manufacturing, where a printing apparatus layers substrate to build up a 3D object. 
     In light of such manufacturing techniques, it would be desirable to generate very small batch or one-off designs. However, to create the instructions for a 3D printer to create a 3D object requires knowledge and expertise in 3D modelling software. 
     One method to enable consumers to create unique objects is to construct a service to permit them to customise existing models. 
     The consumer can instruct the service to make certain modifications to existing models which can be implemented by designers using 3D modelling software. 
     Clearly this methodology involves significant human input by skilled 3D modellers. The methodology cannot simply be automated due to the skill required by the 3D modellers. Therefore, a new manufacturing process is desired which manufactures 3D objects customised by users. 
     It is an object of the present invention to provide a 3D object manufacturing method which overcomes the disadvantages of the prior art, or at least provides a useful alternative. 
     SUMMARY OF INVENTION 
     According to a first aspect of the invention there is provided a computer-implemented method of manufacturing 3D objects, including: 
     a) retrieving a source model for a 3D object and a plurality of defined control points for the 3D object from a database; 
     b) receiving modifications to at least some of the control points from a first user; 
     c) automatically applying the modifications to the source model to create a modified model; and 
     e) automatically generating print instructions for manufacture of a customised version of the 3D object. 
     The method may also include the step of automatically subdividing the surface of the modified model to create a high resolution model which is used to generate the print instructions. 
     The print instructions may be generated by a layer renderer using the modified model or high resolution model. 
     The method may also include the step of automatically controlling a 3D printer using the print instructions. 
     The source model may comprise a shell portion and an internal components portion. The control points may relate to aspects of the shell portion. The shell portion may comprise at least one low resolution mesh and the internal components portion may comprise at least one high resolution mesh. The method may include the step of modifying the high resolution model by combining it with the internal components portion. 
     The shell portion may also comprise an exterior surface mesh and an interior surface mesh. Modifications may be applied to each of the exterior and interior surface meshes. The exterior and interior surface meshes may be combined after the modifications are applied. 
     A stereo-lithography check may be generated on the high resolution model. 
     The high resolution model and the source model may be displayed to a second user for quality control purposes, for example. 
     The modifications may be delimited by constraints defined within the source model. 
     A low resolution representation of the source model may be displayed within a graphical user interface to the first user. Customisations may be received from the first user via the graphical user interface. The customisations may be converted into modifications of the control points. The customisations may relate one or more within a set of physical features of the source model. 
     According to a further aspect of the invention there is provided a system for manufacturing 3D objects, including: 
     Processing circuitry configured for receiving modifications to control points for a source model from a user device, applying the modifications to the source model to generate a modified model, and rendering print instructions from the modified model; 
     Storage circuitry configured for storing and retrieving a plurality of source models and associated control points within a database; and 
     A control unit configured for controlling a 3D printer to create a 3D object from the print instructions. 
     The processing circuitry may be further configured to subdivide the modified model to generate a processing model from which the print instructions may be generated. 
     The print instructions may be generated using a layer renderer. 
     The system may include a database configured for storing the plurality of source models and associated control points and a communications circuitry. The processing circuitry may be further configured to transmit a representation of the source model and the control points to the user device via the communications circuitry. 
     Other aspects of the invention are described within the claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings in which: 
         FIG. 1 : shows a block diagram illustrating a system in accordance with an embodiment of the invention; 
         FIG. 2 : shows a flowchart illustrating a system in accordance with an embodiment of the invention; 
         FIG. 3 : shows a user interface for a model customisation system; 
         FIG. 4 : shows a 3D model before modifications or subdivision has occurred; 
         FIG. 5 : shows a 3D model after modifications and subdivision has been applied in accordance with an embodiment of the invention; 
         FIG. 6 : shows a 3D model after combination of the modified and subdivided shell portion with the internal components portion of the model in accordance with an embodiment of the invention; 
         FIG. 7 : shows a graphical display of the 3D models in accordance with an embodiment of the invention; and 
         FIGS. 8 and 9 : show representations of a print layout for multiple 3D models generated by a layer renderer. 
     
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
     The present invention provides a manufacturing process for 3D objects. 
     Referring to  FIG. 1 , a system  100  for manufacturing 3D objects will be described. 
     The system  100  may comprise processing circuitry  101  and storage circuitry  102 . The circuitry  101  and  102  may be collocated at a server. It will be appreciated that the processing and storage circuitry  101  and  102  may be distributed across a plurality of physical hardware components which may be collocated or connected by one or more communications networks  103 . 
     A modelling device  104  is shown. The modelling device  104  may be a computing device comprising a processor, a memory, an input and an output. The device  104  may be configured for use by a user, such as a designer, to construct a source model and to define within the source model a plurality of control points. The source model and list of control points may be transmitted to the processing circuitry  101 . 
     The source model is preferably comprised of a series of interconnected polygons (a source mesh). The source mesh may be defined as a series of instructions specifying the vertices of the polygons. The control points may relate to specific vertices of the mesh. 
     The source model may comprise an exterior surface mesh and an interior surface mesh. 
     The source model may further comprise internal components. The exterior and interior meshes may be created at a first level of resolution and the internal components may be created at a second level of resolution higher than the first. 
     Another user, such as a consumer who may be unskilled in 3D modelling, may access a representation of the source model using a user device  105 . The representation of the source model may comprise only the exterior mesh. The representation of the source model may be generated from the source model by the processing circuitry  101  and transmitted to the user device  105  via a communications network  103 . In an alternative embodiment, the representation of the source model may be generated at the user device  105 . The user device  105  may be a computing device such as a personal computer, a laptop, a smart-phone, or a tablet computer. The communications network  103  may be the Internet, a cellular network, a LAN, or a combination of networks. 
     The source model and list of control points may be stored in and retrieved from a database  106  by a storage circuitry. It will be appreciated that the database  106  may distributed across a plurality of physical hardware. 
     The user device  105  may be configured to receive input from the user to modify the control points defined for the source model and to transmit the modified control points to the processing circuitry. 
     The processing circuitry  101  may be configured to apply the modifications to the source model to generate a modified model. 
     The processing circuitry  101  may apply the modifications by shifting the vertices within the meshes to correspond to the modified control points. Both the exterior and interior surface meshes may be modified. 
     The processing circuitry  101  may be further configured to process the modified model to subdivide the polygons within the source model. The polygons may be subdivided using an algorithmic subdivision method such as opensubdiv. The subdivision will result in a greater set of instructions and the resulting model will be of a higher 3D resolution. Where the source model comprises an exterior and interior surface mesh at a first resolution and internal components at a higher resolution, the polygons within the surface meshes may be subdivided. 
     The processing circuitry  101  may also be configured to apply a layer rendering process to the processed model to generate a set of print instructions. The print instructions will define how the processed model may be printed using an additive manufacturing method. The layer renderer may be configured to define different processed models based upon the type of recipient 3D printer. 
     The print instructions may be transmitted to a control unit  107  which controls the printing of a 3D object on a 3D printer  108 . 
     Referring to  FIG. 2 , a method  200  of 3D manufacturing will be described. 
     In step  201 , a source model is generated and a series of control points (or morph targets) are defined. The source model defines a specific type of customisable 3D object. The control points define the customisability of the 3D object. Alternatively, the generated source model and control points may be retrieved by the processing circuitry  101  from a database  106 . 
     The source model may comprise two parts as previously discussed:
         a) a shell; and   b) internal components.       

     The shell of the object may be modelled and then exported for use by a designer user. The shell may built to allow for algorithmic subdivision, in order to provide a lower level of detail to facilitate lower bandwidth transmission to a consumer&#39;s user device and to enable lower-powered devices to render the shape, and to facilitate higher levels of detail in a final solid shape suitable for 3D printing. In one embodiment, a Catmull-Clark subdivision algorithm is used and 4-sided polygons are used where possible to accommodate that algorithm. 
     The internal components may be modelled by a designer user to be used within the shell in a physical version of the object. These do not need to be displayed to the consumer user as part of the shell, so can be created with a high polygon count. 
     In step  202 , modifications to the control points of the source model are received. The modifications may be received from the user device of a consumer user. A graphical user interface (such as shown in  FIG. 3 ) may display the exterior shell of the object to the consumer user. The consumer user may also be provided with input controls within the graphical user interface. The input controls may provide the ability for the consumer user to adjust features of the object. Adjustments to the features may be converted into modifications to the control points of the object. 
     In step  203 , the modifications are applied to the source model to generate a modified model. 
     The shell of the source model may comprise an exterior and interior mesh. 
     The interior mesh is adjusted to match the exterior mesh by applying the same set of modifications or “morph data” to the internal mesh as are applied to the exterior mesh. The internal mesh may interpret these modifications differently (e.g. the morph data may affect different areas of the mesh, or have no effect if required). The designer user may configure the application of the modifications to the exterior and interior meshes. 
     After the modifications have been applied, the exterior mesh is combined with the interior mesh to form a solid by perform a boolean operation, such as intersection, on the meshes. 
     In step  204 , the modified model is subdivided to generate a processed model. For example, the polygon count of the solid may be programmatically increased during subdivision using, for example, subdivision of the polygons (such as opensubdiv). 
     The solid may then be combined with the internal components by performing a boolean operation, such as union, on the solid and internal component meshes. In some embodiments, specific Boolean operations may be defined for each internal component. 
     In one embodiment, the positioning of the internal components may be modified by the modifications to the control points of the source model. In this embodiment, constraint information may be included for the internal components within the source model. 
     For example, constraint data attached to specific external features, and constraint data defined on the model as a whole, may be used to programmatically place and modify the internal components. It may use metadata attached to features and the model, and custom code to parse and interpret that metadata, using it to define and apply a set of move and morph operations to be applied to the internal components(s) (so that, for example, the resulting solid model skin were of the right thickness, and internal components were of the right size and shape). 
     A STL (StereoLithography) check operation may be attached to the solid mesh before saving. This check allows the software to verify that the solid has a complete and closed surface, which will be required if the solid is going to be sent to an additive manufacturing machine. The check operation can be executed automatically or manually. 
     In step  205 , the processed model is further processed using a layer renderer to generate print instructions for the 3D object. The layer renderer may chain together the component parts of the processed model to facilitate efficient manufacturing. 
     In step  206 , a 3D printer may be controlled using the print instructions to create the physical 3D object. 
     In one embodiment, after the processed model has been generated, it may be displayed next to the source model to a user to enable the user to make a quality control assessment. 
     In one embodiment, the processed model may be verified to ensure that a resulting solid has a complete and closed surface for physical printing. 
       FIG. 3  shows a user interface  300  configured to receive input from a user to adjust features  301  to  307  of a 3D model  308 . In one embodiment, once the user selects a particular feature  302 , several predefined options  309 ,  310 , or  311  for the feature are available for the user to select. In an alternative embodiment, only a single predefined option is provide. 
     The predefined options  309  to  311  may correlate to predefined modifications to a subset of the control points. In one embodiment, the subset of the control points is the same for each option. In one embodiment, the subsets of the control points for each feature comprise at least one common control point across at least some subsets. 
     One or more adjustment means  312  to  314  may be provided to receive input from the user to the selected option  310 . The adjustment means may be a virtual scroll-bar, a virtual wheel, a physical slider or switch, or another abstract input device configured to receive input from a user within a defined range. 
     The adjustment means may, alternatively, comprise the receipt of user input via a pointer device or touch-screen directly to a representation of the 3D model. 
     In the user interface shown, the adjustments are converted into modifications to control points. 
     The user interface may comprise a representation of the 3D model. The representation may reflect modifications to the 3D model made in response to the user input. 
       FIG. 4  shows a 3D model  400  that may be modified in accordance with the present invention. 
       FIG. 5  shows a 3D model  500  that corresponds to 3D model  400  to which modifications have been automatically applied and then which has been subdivided. 
       FIG. 6  shows a 3D model  600  that corresponds to 3D model  500  which has been combined with the internal components portion  601 . 
       FIG. 7  shows a graphical display  700  of both a representation  701  of a low resolution, modified 3D model and a representation  702  of a subdivided, and therefore, high resolution modified 3D model. This graphical display  700  may be generated and displayed to a second user for quality control purposes before the physical model is printed. 
       FIG. 8  shows a layer renderer output  800  which combines multiple customised 3D models  801  to  805  laid out together into a print layout suitable for 3D printing. 
     The print instructions may be generated from the print layout. 
       FIG. 9  shows a 3D representation of the layer renderer output  800 . 
     It will be appreciated that the method of the invention may be implemented within hardware or may be defined within software. 
     A potential advantage of some embodiments of the present invention is that unskilled users can create unique 3D objects. A further potential advantage is that because the process is deterministic, the same 3D object can be printed from the same source model using the same modifications. A further potential advantage is that because 3D printers have physical limitations, the source model, defined control points, and processing methodology restrict the generation of user-modified 3D models to physically possible models suitable for physical printing. 
     While the present invention has been illustrated by the description of the embodiments thereof, and while the embodiments have been described in considerable detail, it is not the intention of the applicant to restrict or in any way limit the scope of the appended claims to such detail. Additional advantages and modifications will readily appear to those skilled in the art. Therefore, the invention in its broader aspects is not limited to the specific details, representative apparatus and method, and illustrative examples shown and described. Accordingly, departures may be made from such details without departure from the spirit or scope of applicant&#39;s general inventive concept.