Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020197539 - PROCESSING A 3D OBJECT MESH MODEL IN A 3D PRINTER

Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters

[ EN ]

PROCESSING A 3D OBJECT MESH MODEL IN A 3D PRINTER

BACKGROUND

[0001] The description is related to a three-dimensional (3D) printing method performed in a 3D printer. A 3D printer uses additive printing processes to make 3D objects from a digital 3D object model file. More particularly, the de scription is related to processing such a 3D object model file in a 3D printer.

BRIEF DESCRIPTION OF THE DRAWINGS

[0002] Features and advantages of examples will be described, by way of example, in the following detailed description with reference to the accompanying drawings in which like reference numerals correspond to similar, though perhaps not identical, components. For the sake of brevity, reference numerals or features having a previously described function may or may not be described in connection with other drawings in which they appear.

[0003] Fig. 1 is a flowchart of an example for processing a 3D object mesh model in a 3D printer with a 3D object mesh model auto-repair option.

[0004] Fig. 2 is a flowchart of an example for processing a 3D object mesh model in a 3D printer with a user being prompted on how to proceed.

[0005] Fig. 3 is a flowchart of an example for processing a 3D object mesh model in a 3D printer with visualization of an auto-repaired 3D mesh model.

[0006] Fig. 4 is a block diagram of an example for processing a 3D object mesh model with a user being prompted for approval to an auto-repaired 3D mesh model.

[0007] Fig. 5 shows an example of a 3D printer for processing a 3D object mesh model.

[0008] Fig. 6 shows an example of a machine-readable medium in accord ance with the methods described herein.

DETAILED DESCRIPTION

[0009] In some 3D printing processes, for example, a 3D object may be formed on a layer-by-layer basis where each layer is processed and combined with a subsequent layer until the 3D object is fully formed. In the following, 3D printing process and 3D printer is used interchangeably with additive manufactur ing process and additive manufacturing system, respectively.

[0010] In various 3D printing processes, a 3D object to be printed may be represented by a 3D object model file. Information in such a 3D object model file comprises 3D geometric information that describes the shape of the 3D model. The 3D geometric information in a 3D object model file may define solid portions of a 3D object to be printed or produced. To produce a 3D object from a 3D object model, the 3D model information may be processed to provide 2D planes or slices of the 3D model. Each 2D slice generally comprises an image and/or data that may define an area or areas of a layer of build material as being solid object areas where the built material, for example photopolymers, thermoplastics, eutectic metals, metal alloys, metal-binder mixtures, thermoplastic powders, is to be so-lidified during a 3D printing process.

[0011] In some examples of powder-based and fusing agent 3D printer, layers of powdered build material may be spread over a platform or print bed within a build area or build volume. As noted above, a liquid functional agent, e.g. a fusing or curable binder agent, may be selectively applied to each powder layer in areas where the particles of powdered material are to be fused together or solidified to form a 3D object as defined by each 2D slice of a 3D object model. Each layer in the build area may be exposed to a fusing energy to thermally fuse together and solidify the particles of powdered material where the fusing agent has been applied. This process may be repeated, one layer at a time, until a 3D object or a plurality of 3D objects have been formed within the build area.

[0012] A large number of materials (e.g. sand, cements, ceramics, textiles, biomaterials, glass, resins, metals or plastics) may be used by some 3D printers. Some example 3D printing technologies applied by such 3D printers are as fol lows: High Speed Sintering (HSS), Multi Jet Fusion Technology, Stereolithogra phy (SLA), Digital Light Processing (DLP), Continuous Liquid Interface Produc tion (CLIP), Direct Metal Laser Sintering (DMLS), Selective Deposition Lamina tion, Fused Deposition Modeling (FDM) and Selective Laser Sintering (SLS). Within 3D printing, the term "material" is to be generally understood as a physical substance that can be used to generate an object.

[0013] The 3D object model file may have been generated on a computer system external to the 3D printer. There is a wide range of software applications, e.g. Smart Stream 3D Build Manager, Materialise Magics, Autodesk Meshmixer, AccuTrans, and many more, that support generating 3D object model files to be printed. In these applications, a user may create a 3D object model that may de fine one or more physical 3D objects to be printed. Each one of those applications may have different functionalities. The user may, thus, use more than one tool when preparing the final 3D object model file that is sent to the 3D printer. In some examples, the 3D object model file may have been generated by scanning 3D objects. The 3D object model file may be stored as plain text or binary data in various 3D file formats, such as STL, VRML, OBJ, FBX, COLLADA, 3MF, and so on. Some 3D object model file formats may store additional information, such as information indicating colors, textures and/or surface finishes, material types, and mechanical properties and tolerances, and the orientation and positioning of a 3D object within a build area of a 3D printing system during printing. In some exam ples, the 3D object model file may have a specific file format suitable for a 3D printer. In other examples, the 3D object model file may have a variety of file formats.

[0014] In some examples, the 3D object model file has a format that is based on the 3D Manufacturing Format (3MF) standard. The 3D Manufacturing Format or 3D document format standard may define one or more 3D objects in tended for output to a physical form by a 3D printer. 3MF implements the common package features specified by the Open Packaging Conventions specification. I.e., the 3D object model file having the 3MF format may follow the Open Pack aging Conventions. The 3D object model file having the 3MF format may repre sent a 3D model. Thus, a 3D object model file that implements the 3MF format includes information on how to generate a physical object through additive man ufacturing techniques. 3MF may be used as a stand-alone file format or as a pay-load in a print pipeline. The term "payload" is understood herein as a complete collection of interdependent objects and relationships within a 3D object model file. The 3D object model file having the 3MF format may represent a 3D model in a markup format, i.e. 3MF may be an XML-based markup language that uses e.g. elements, attributes and namespaces. 3MF is designed to include a set of objects and relationships. 3MF also extends the package features specified by the Open Packaging Conventions specification, including digital signatures and thumbnails. For additional details of the 3MF, see under "3D Manufacturing For mat - Core Specification & Reference Guide (Version 1.1 ); Copyright 3MF Con sortium 2015".

[0015] In some examples, the 3D geometric information comprised by a 3D object model file has to be individually sliced first in order to generate the 2D slice content that will be printed. If the 3D geometric information defined in the 3D object model file is not well formed, it may cause that the printed physical 3D objects are incorrect. The resulting output of such errors may be so small that it does not affect the object quality but, in other cases, it may produce bigger arte facts which significantly reduce the object quality.

[0016] Therefore, the 3D geometric information for 3D objects to be printed stored in a 3D object model file may have to be processed before printing, e.g. in order to correct errors in the 3D geometric information, or the like. Faults within the 3D object model file may cause erroneous production of the physical object.

They may also cause a 3D printer to block the 3D printing process or cause aban donment of the entire 3D printing process. Further, faults within the 3D object model file may require a user to manually find objects within the 3D object model file responsible for the faults and to repair it accordingly outside the 3D printer. Processing a 3D object model file in a 3D printer may reduce such disruptions and error occurrences within the 3D printing process. It may be particularly rele vant when the 3D printer defines a public application programming interface (API) that receives job submissions from sources with varying quality standards.

[0017] A method for processing a 3D object model file in a 3D printer is provided. It may include, amongst other things, inspecting the 3D object model file in the 3D printer for potential faults which may cause disruptions or erroneous production of the object. It may also include modifying or improving the 3D object model file in the 3D printer to avoid disruptions or erroneous production of the objects. It may also include to dismiss individual 3D models from the 3D printing process. The processing of the 3D object model file may further enable a user to visually inspect 3D models before they are submitted to the 3D printing process. It may include a user interface to obtain the approval from the user for the final 3D printing process. It may further include abandoning the entire 3D printing pro cess.

[0018] The 3D object model file may include the representation of an object by means of a polygon mesh. This information may define a solid portion to be printed by the 3D printer. For example, the mesh model may represent the object (including the interior), and/or the surface of the object as a plurality of polygons. The polygons of the mesh may be of a common type, for example triangles. In one example, the mesh model may be specified in terms of the vertices of the polygons by which edges joining the vertices and polygons enclosed by the edges may be defined. In another example, the mesh model may be specified in terms of the edges of the polygons by which the vertices and polygons enclosed by the edges may be defined. In yet another example, the mesh model may be specified in terms of the polygons by which the vertices and edges of the polygons may be defined.

[0019] In one example, the polygon mesh is a triangular mesh representing a surface of the object and each triangle in the mesh has three vertices each defined by theirxyz coordinates vO, v1 and v2 (the location of the polygon vertices in 3D space). In some examples, the triangles are topologically connected in a way that they represent a closed surface. In some examples, the mesh is a man ifold closed surface mesh. While the example of a triangle has been used here, the mesh may be based on a different polygon or polygons, which may in some examples be curved (rather than flat or planar) polygons.

[0020] The 3D object model file may as well include transformation matri ces that correspond to the respective 3D object mesh model. Each 3D object mesh model has at least one transformation matrix which positions the 3D mesh model in the sphere of the print bed of the 3D printer by applying any or any combination of the following transformations such as scaling transformation, ro tation transformation, translation transformation or symmetrical transformation. Consequently, each 3D object mesh model is generated in a single build volume within the print bed of the 3D printer. The 3D object model file may as well include additional information, such as information indicating colors, textures and/or sur face finishes, material types, and mechanical properties and tolerances.

[0021] Processing a 3D object model file by a 3D printer may comprise receiving the 3D object model file including the 3D model ready for printing. Fur ther, the 3D printer may be capable to read and interpret the file structure of the 3D object model file. Processing a 3D object model file may also comprise modi fying a 3D object model file, e.g. by amending parameters of a 3D model con tained in the 3D object model file to be manufactured. In some examples, pro cessing may comprise the actual additive manufacturing process of a physical 3D object, i.e. the 3D object model file is used by the 3D printer to produce the 3D object.

[0022] In some examples, the 3D object model file may include the repre sentation of one 3D object by means of one 3D object mesh model. In other ex amples, the 3D object model file includes the representation of a number of 3D objects by a corresponding number of 3D object mesh models. Thus, in some examples, one 3D object mesh model is processed by a 3D printer while in other examples, a number of 3D object mesh models is processed by a 3D printer. Even though the processing is described in singular terminology, it may as well include processing of a number of 3D object mesh models.

[0023] Now referring to Fig. 1 which shows a method for processing a 3D object mesh model in a 3D printer. At block 10 a 3D object mesh model within a 3D object model file to be printed is received by the 3D printer. In some examples, the 3D object mesh model may have been generated outside the 3D printer by a user as described above. The 3D object mesh model may define an 3D object intended for output in a physical form by the 3D printer. The 3D object mesh model may represent a 3D object by means of a polygon mesh. In some exam ples, the polygon mesh is a triangle mesh. In some examples, the 3D printer im poses manifoldness of the 3D object mesh model for a smooth and accurate print ing process.

[0024] At block 1 1 it is determined in the 3D printer whether the received 3D object mesh model violates a manifold requirement. Manifoldness may be de termined, for example, by inspecting the 3D object mesh model for one or a com bination of the following three manifold requirements: positive volume, consistent triangle orientation and closeness of their mesh.

[0025] Positive volume: The mesh surface needs to define an object with a positive volume. An inspection in relation to this requirement may comprise computing a volume of the 3D object mesh model. Such a computation may be carried out in the 3D printer according to the algorithm presented by Alyassin et al. (Alyassin A.M. et al., Evaluation of new algorithms for the interactive measure ment of surface area and volume, Med Phys 21 (6), 1994). If the volume has a negative value, this requirement may be considered violated. Another inspection in relation to this requirement may comprise the orientation of the triangles’ nor mals. By convention, normals need to point away from the interior of the 3D object mesh model to define a positive volume within the respective coordinate system.

The orientation of the triangles’ normals may be defined by traversing the trian gles’ vertices counterclockwise.

[0026] Consistent triangle orientation: The normals of adjacent triangles have to point to the same side of the object. Thus, the normals of every pair of adjacent triangles within the 3D object mesh model have to point towards the exterior of the mesh. The triangles’ normals may be defined by traversing the triangles’ vertices in a uniform direction to declare the order of the vertices, for instance counterclockwise. This implies that the order of declaration of the verti ces on the shared edge will be in the opposite order. A normal of a triangle face (for triangle ABC, in that order) may be defined in a consistent manner, for exam ple, as a unit vector in the direction of the vector cross product (B - A) x (C - A) (Consistent Polygon Orientation requirement). An inspection in relation to this re quirement may comprise counting the number of‘flips’ or reversals of normal ori entation between neighbor triangles. If the resulting value is greater than zero, this requirement may be considered violated (i.e. no normal flip is allowed be tween adjacent triangles).

[0027] Closed mesh: The edges of every triangle have to be shared by two triangles. Every triangle edge in the mesh shares common vertex endpoints with the edge of exactly one other triangle (Manifold Edge requirement). An inspection in relation to this requirement may comprise traversing all the triangle edges and counting the number of edges which are shared by more than one triangle (boundary edges). If the value is greater than 0, this requirement may be consid ered violated.

[0028] In some examples, manifoldness of 3D object mesh models is vio lated if any or any combination of the following is identified: an isolated polygon or vertex, an empty mesh volume, a hole, overlapping polygons, duplicated poly gons or vertices, zero area polygons, non-manifold vertices or edged, and mesh intersections. This list of examples is non-conclusive. Manifoldness may be con sidered violated if a manifold requirement has been violated. Thus, the expres sions“violation of manifoldness” and“violation of a manifold requirement” have the same implication within the context of processing a 3D object mesh model in a 3D printer.

[0029] Still referring to Fig. 2, if a 3D object mesh models violates a mani fold requirement, an auto-repair option, represented by block 12, is provided. When the auto-repair option is executed, it repairs the violating 3D object mesh models such that the repaired 3D object mesh model meets the manifold require ment. The auto-repair option may fix the respective 3D mesh model by applying a robust repair algorithm in the 3D printer. As mentioned above, manifoldness may be violated in a number of different ways. Thus, the auto-repair option may provide a number of repair methods to address the respective characteristics of the manifold violation. The auto-repair may work self-sufficiently without the need for external and/or user input. Thus, the outcome of the auto-repair option may not necessarily be known to the user from the beginning except that manifold requirements are going to be met.

[0030] To fix violation of the positive volume requirement, the auto-repair option may traverse the triangles of the 3D object mesh model and reverse the orientation of the normals which are oriented toward the interior of the closed mesh surface rather than to the outside.

[0031] To auto-repair violation of inconsistent triangle orientation a known algorithm may be applied in the 3D printer which may, for example, create a con nectivity graph of patches with consistent triangle orientation and subsequently fix the consistency of these patches. For example, Zachmann et al. present such an algorithm (G. Zachmann, R. Klein and P. Borodin, Computer Graphics Inter national Conference (CGI), Crete, Greece, 2004, pp. 18-25, doi: 10.1 109/CGI.2004.1309188) which may be carried out accordingly in the 3D printer.

[0032] To auto-repair a mesh that is not closed, which may mean that it has some triangles with edges shared by more than two triangles, another known algorithm may be applied in the 3D printer. For example, Zhao et al. present a robust method for closing holes in triangular meshes (Zhao et al., Visual Comput (2007) 23: 987, https://doi.org/10.1007/s00371-007-0167-y ) which may be car ried out accordingly in the 3D printer.

[0033] When a manifold violation has been determined that hardly affects the smoothness, accuracy and quality of the 3D printing process, an auto-repair method may not necessarily be specified. Such negligible errors may relate to parts of the mesh that represent a volume smaller than one voxel.

[0034] In place of and in addition to the methods described above, block 12 may include further algorithms for mesh auto-repairing in the 3D printer without loss of generality. In some examples, complementary to the auto-repair method that specifically addresses the determined manifold violation, a different auto-re-pair method may be executed that either more generally addresses a number of manifold violations or addresses a different manifold violation. In other examples, complementary to the auto-repair method that specifically addresses the manifold violation that has been determined, all other auto-repair methods may be exe-cuted. In yet another examples, all auto-repair methods may be executed regard less of the manifold violation that has been determined.

[0035] Fig. 2 further shows a method for processing a 3D object mesh model. Block 10 comprises receiving a 3D object mesh model to be printed by a 3D printer. Block 1 1 comprises determining whether the 3D object mesh model violates at least one manifold requirement as described above. When a 3D object mesh model that violates manifold requirements has been determined, the pro cessing may indicate the 3D object mesh model to the user. This indication may include thumbnails, 3D mesh model names, object visualization or the like. The processing may prompt the user to select an action that is provided by the pro-cessing (block 20). The provided action may include any or a combination of any of the following actions: It may auto-repair the manifold violation (block 21 ) as discussed above. It may remove the 3D object mesh model that violates a mani fold requirement from the printing process (block 22). It may cancel the entire 3D printing process (block 23).

[0036] For examples with more than one 3D object mesh model in the printing process, selecting the auto repair option (block 21 ) may allow the user to auto-repair the one or more 3D mesh models which violate the manifold require ment while keeping the remaining 3D object mesh models in the printing process. Similarly, when selecting the removal of one or more 3D object mesh models which violate a manifold requirement (block 22), the user may keep remaining 3D object mesh models in the printing process. The removed 3D object mesh models may be repaired outside the 3D printer. These actions allow the user to modify and continue with the original 3D printing process rather than having to cancel the entire 3D printing process. Cancelling the entire 3D printing process may, however, present a complementary option (block 23) which may imply fixing the manifold violations outside the 3D printer.

[0037] In addition to the manifold requirements mentioned above, such as positive volume, consistent triangle orientation and closeness of the triangle mesh, manifold violations may be identified in a number of further ways. Conse quently, further methods to auto-repair manifolds requirements may be per formed.

[0038] Other examples may include to repeat the determination of violation of manifold requirements after the auto-repair has been executed. This may in-volve to reiterate through one or a number of blocks of Fig. 2.

[0039] Fig. 3 illustrates an example where the user may select the auto repair option to repair the manifold violation of 3D object mesh models (block 21 ). When the user selects the auto-repair option it may be executed as described above. Subsequently, the repaired 3D objects mesh model may be visualized for the user in the 3D printer (block 30). In another example, the repaired 3D object mesh model and other remaining 3D object mesh models in the printing process may be visualized for the user in the 3D printer. Such visualization may take place on a display in the 3D printer. In some examples the visualization may require additional hardware components such as a graphic processor, a display, memory, data interfaces and other electronics for communicating with the 3D printer. In some examples, the display may be a touch screen.

[0040] Now referring to Fig. 4, the processing in the 3D printer may visual ize the resulting repaired 3D object mesh models (block 30). In some examples, the 3D printer may also visualize 3D mesh models that have not been auto-re-paired but are included in the 3D printing process. The user may be prompted to approve the resulting 3D object mesh model of the auto-repairment (block 40) before printing. When the user approves the respective repaired 3D object mesh model (block 40), the object may be printed by the 3D printer (block 40). When the user does not approve the respective repaired 3D mesh model, the user may be redirected to block 20 where the user may be prompted again to select to auto repair the 3D object mesh model, to remove the 3D object mesh model or to cancel the printing process.

[0041] Fig. 5 shows an example of a 3D printer 50 for processing 3D object mesh models. The 3D printer is schematically shown by way of example and is not intended to represent a complete 3D printer. Thus, it is understood that an example 3D printer 50 may comprise additional components and may perform additional functions not specifically illustrated or discussed herein. The 3D printer 50 may be particularly configured to perform the processes described herein. In Fig. 5, the example 3D printer 50 is shown to comprise a controller 51 and a print mechanism 52.

[0042] The example controller 51 can control various components and op erations of the 3D printer 50 to facilitate the processing and printing of 3D objects as generally described herein. An example controller 51 can include a processor 53 and a memory 54. The controller 51 may additionally include other electronics (not shown) for communicating with and controlling various components of the 3D printer 50. Such other electronics can include, for example, discrete electronic components and/or an ASIC (application specific integrated circuit).

[0043] Memory 54 can include both volatile and nonvolatile memory com ponents, such as ROM, hard disk, optical disc, CD-ROM, flash memory, etc.

Memory 54 includes, among other data and programs, an instruction set 55. Com munication between the 3D printer 50 and one or more computer system may be established through a network connection. The components of memory 54 com prise non-transitory, machine-readable (e.g. computer/processor-readable) me-dia that can provide for the storage of machine-readable coded program instruc tions, data structures, program instruction modules, JDF (job definition format), plain text or binary data in various 3D file formats such as STL, VRML, OBJ, FBX, COLLADA, 3MF, and other data and/or instructions executable by processor 53 of the 3D printer 50.

[0044] Processor 53 together with memory 54 can control various compo nents and operations of the 3D printer 50 to facilitate the printing of 3D objects as generally described herein. Processor 53 and memory 54 may additionally in clude other electronics (not shown) for communicating with and controlling vari ous components of the 3D printer 50. Processor 53 may be a CPU, processing unit, ASIC, logic unit, or programmable gate array, or the like.

[0045] In some examples, the firmware of the 3D printer 50 may include the instruction set 55 for processing the received 3D object mesh model. The 3D object mesh model may be received from a data processing system, by loading from storage. They may also be received from another device.

[0046] The 3D printer 50 may be particularly configured to perform the pro cesses as described herein. The method for processing a 3D object model file including the 3D object mesh model may be implemented into any 3D printer in cluding common 3D printer technology.

[0047] Fig. 6 shows an example of a tangible, non-transitory, machine-readable medium 60 that may comprise the instruction set 56. The instruction set may, when executed by a processor, such as for example the processor 53, cause the processor to carry out the process as described herein.

[0048] Such a machine-readable instruction set may also be loaded onto the 3D printer 50, so that the latter performs a series of operations to produce computer-implemented processing, thus the instructions executed on the 3D printer 50 realize functions as specified in the above described flow charts and block diagrams.

[0049] Further, the teachings herein may be implemented in the form of a computer software product, the computer software product being stored in a stor age medium and comprising a plurality of instructions for making the 3D printer implement the methods recited in the examples of the present disclosure.

[0050] While the method, apparatus and related aspects have been de scribed with reference to certain examples, various modifications, changes, omis-sions, and substitutions can be made without departing from the spirit of the pre sent disclosure. It is intended, therefore, that the method, apparatus and related aspects be limited only by the scope of the following claims and their equivalents.

[0051] It should be noted that the above-mentioned examples illustrate ra ther than limit what is described herein, and that those skilled in the art will be able to design many alternative implementations without departing from the scope of the appended claims. Features described in relation to one example may be combined with features of another example.