Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
ARC SEGMENTS FOR THREE DIMENSIONAL PRINTERS
Document Type and Number:
WIPO Patent Application WO/2020/122895
Kind Code:
A1
Abstract:
In example implementations, a method executed by a processor is provided. The method divides a computer generated three dimensional (3D) model of an object to be printed into a plurality of two dimensional slices. A plurality of arc segments to describe curved surfaces of each one of the plurality of two dimensional slices is estimated. Print instructions are generated that include the plurality of arc segments for each one of the plurality of two dimensional slices. The method loads the print instructions on a 3D printer to print the object in accordance with the print instructions.

Inventors:
MELO SILVIO DE BARROS (BR)
HENRIQUES DIOGO (BR)
SIMOES FRANCISCO (BR)
BARROS GUTEMBERG (BR)
SILVA ANDRÉ (BR)
TEIXEIRA JOAO (BR)
TEICHRIEB VERONICA (BR)
CORREIA WALTER FRANKLIN M (BR)
CHAVES THIAGO (BR)
CHARAMBA GUSTAVO (BR)
DOMINGUES THIAGO (BR)
CASTILHO VINICIUS (BR)
RISS MARCELO AITA (BR)
WHITE SCOTT A (US)
Application Number:
PCT/US2018/065188
Publication Date:
June 18, 2020
Filing Date:
December 12, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HEWLETT PACKARD DEVELOPMENT CO (US)
UNIV FEDERAL DE PERNAMBUCO UFPE (BR)
International Classes:
G06T7/12; B29C64/386
Foreign References:
EP3013563B12017-11-08
CN107610230A2018-01-19
US20140107823A12014-04-17
US20180050418A12018-02-22
Attorney, Agent or Firm:
REA, Diana, J. et al. (US)
Download PDF:
Claims:
CLAIMS

1. A method, comprising:

dividing, by a processor, a computer generated three-dimensional (3D) model of an object to be printed into a plurality of two-dimensional slices;

estimating, by the processor, a plurality of arc segments to describe curved surfaces of each one of the plurality of two-dimensional slices;

generating, by the processor, print instructions that include the plurality of arc segments for each one of the plurality of two-dimensional slices; and

loading, by the processor, the print instructions on a 3D printer to print the object in accordance with the print instructions.

2. The method of claim 1 , wherein the estimating comprises:

obtaining, by the processor, a plurality of sample points along a surface of each one of the two-dimensional slices; and

generating, by the processor, an arc segment between each consecutive pair of points of the plurality of sample points using a piecewise biarc curve development process.

3. The method of claim 2, wherein a number of the plurality of sample points is a function of a desired resolution of the object to be printed.

4. The method of claim 2, wherein arc segments of a biarc curve that is estimated between consecutive pair of points are determined based on a sample point being within a threshold distance from the arc segments.

5. The method of claim 1 , wherein print instructions include the plurality of arc segments and a plurality of line segments for each one of the plurality of two dimensional slices.

6. The method of claim 1 , wherein each one of the plurality of arc segments are presented in the print instructions with three points. 7. The method of claim 6, wherein the three points comprise an initial point, a final point, and a displacement vector from the initial point to a center of a circle that represents a respective arc segment.

8. A non-transitory computer readable storage medium encoded with instructions executable by a processor, the non-transitory computer-readable storage medium comprising:

instructions to receive a computer generated three-dimensional (3D) model of an object to be printed;

instructions to divide the 3D model into a plurality of slices;

instructions to obtain a plurality sample points of a slice of the plurality of slices;

instructions to estimate an arc segment between consecutive sample points of the plurality of sample points;

instructions to repeat the instructions to obtain and the instructions to estimate for each one of the plurality of slices;

instructions to generate a print instruction that includes the arc segment for consecutive sample points for each one of the plurality of slices to control a 3D printer to print the object.

9. The non-transitory computer readable storage medium of claim 8, wherein arc segment is estimated using a piecewise biarc curve development process.

10. The non-transitory computer readable storage medium of claim 9, wherein a number of the plurality of sample points is a function of a desired resolution.

1 1. The non-transitory computer readable storage medium of claim 8, wherein the print instructions are stored in a memory and accessed by the 3D printer when printing the object. 12. The non-transitory computer readable storage medium of claim 8, wherein the arc segment in the print instruction comprises an initial point, a final point, and a displacement vector from the initial point to a center of a circle that represents a respective arc segment.

13. An apparatus, comprising:

a memory to store a three-dimensional (3D) model of an object;

an arc segment print instruction generator to generate print instructions with arc segments, wherein the arc segment print instruction generator divides the 3D model into a plurality of two-dimensional slices and defines curved sides of the plurality of two-dimensional slices into the arc segments; and

a processor communicatively couple to the memory and the arc segment print instruction generator, wherein the processor is to control a 3D printer to generate the object based on the print instructions with arc segments.

14. The apparatus of claim 13, wherein the arc segment print instruction generator is further to obtain a plurality of sample points along a surface of each one of the two-dimensional slices and to generate an arc segment between each consecutive pair of points of the plurality of sample points using a piecewise biarc curve development process

15. The apparatus of claim 13, wherein the print instructions with arc segments comprise G-code.

Description:
ARC SEGMENTS FOR THREE DIMENSIONAL PRINTERS

BACKGROUND

[0001] Three dimensional (3D) printers can be used for additive printing.

The three-dimensional printers can create three dimensional (3D) objects via the additive printing process. Examples of 3D printers may include fusion jet 3D printers, selective laser sintering (SLS) 3D printers, stereolithography (SLA) 3D printers, fused deposition modeling (FDM) 3D printers, binder jet 3D printers, and the like.

BRIEF DESCRIPTION OF THE DRAWINGS

[0002] FIG. 1 is a block diagram of an example apparatus of the present disclosure;

[0003] FIG. 2 is a block diagram of how a curved segment is divided into arc segments of the present disclosure;

[0004] FIG. 3 is a flow chart of an example method for generating print instructions with arc segments for a 3D printer of the present disclosure;

[0005] FIG. 4 is a more detailed flow chart of an example method for generating print instructions with arc segments for a 3D printer of the present disclosure;

[0006] FIG. 5 is a block diagram of an example non-transitory computer readable storage medium storing instructions executed by a processor to generate print instructions with arc segments for a 3D printer; and

[0007] FIG. 6 is a block diagram of an example apparatus to generate print instructions with arc segments of the present disclosure. DETAILED DESCRIPTION

[0008] Examples described herein provide a method and apparatus to generate print instructions for a 3D printer using arc segments. As discussed above, 3D printers can be used for additive printing. A 3D model rendered in a computer assisted design (CAD) model can be used to provide details to the 3D printer of how the object should be printed. The 3D model can be converted into a polygon of tessellations, or triangles, that define the shape of the object. Slices of the object may then be taken and each slice may be printed as a two- dimensional layer in the 3D printer.

[0009] However, converting the CAD model into a polygon of tessellations may not provide an accurate representation of the object. For example, objects with curves may not be represented accurately by tessellations. Curved portions of the object may lose smoothness and accuracy when printed based on the tessellations and straight segments.

[0010] Examples herein provide a method that uses arc segments to define curved surfaces of an object to be printed. For example, the CAD model of the object may be sliced. Curved surfaces of each slice may then be defined by arc segments that are calculated, as discussed in further details below. The arc segments may allow curved surfaces to appear smoother, more continuous, and more accurate than previous curved surfaces formed using print instructions without arc segments.

[0011] FIG. 1 illustrates an example apparatus 100 of the present disclosure. In one example, the apparatus 100 may be a three-dimensional (3D) printer.

The 3D printer may be an additive 3D printer, such as for example, a fused deposition modeling (FDM) 3D printer.

[0012] In one example, the apparatus 100 may include a dispenser 102, a platform 104, a controller 1 10, and a memory 1 12. The controller 1 10 may be communicatively coupled to the platform 104 and the dispenser 102. In one example, the platform 104 may be a movable platform that receives a build material 106 from the dispenser 102.

[0013] The build material 106 may be, for example, any suitable type of plastic, metal, or other printable material. In one example, the dispenser 102 may dispense the build material onto platform 104 to form a cross-section of an object or an object layer. After a layer is printed, the platform 104 may be lowered, a new layer of build material 106 may be dispensed on the platform 104 by the dispenser 102 and a subsequent layer of the object may be generated until the entire object is completed.

[0014] In one example, a spool of the build material 106 may be loaded into the apparatus 100. The dispenser 102 may have a nozzle that may be heated to a desired temperature to melt the build material 106. After the nozzle is heated, the build material 106 may be fed through the dispenser 102 and melted by the heated nozzle.

[0015] The dispenser 102 may be moved to any position within a two- dimensional coordinate system along a plane of the cross-section of the object layer. The dispenser 102 may extrude thin strands of the build material 106 in melted form at desired locations on the platform 104. In some examples, apparatus 100 may include cooling fans to expedite the cooling and

solidification of the build material 106.

[0016] In some examples, a support material may be placed on the platform 104. The support material may be a block of a desired shape to help print the object. For example, the object may be an arch and the support material may be a semicircle to provide support for a portion of the object that forms the arch.

[0017] Although FIG. 1 illustrates one example of an additive 3D printer, it should be noted that the present disclosure may apply to other types of additive 3D printers as well. For example, rather than the build material 106, the 3D printer may have a pen which can deploy plastic and that is attached to a robotic arm.

[0018] In one example, the object may have curved surfaces. In one example, the curved surfaces may refer to contours of an outer edge of an object that is printed. For example, when the object is divided into two dimensional slices, the curved surfaces may refer to the perimeter of the two dimensional slices.

[0019] The controller 1 10 may control the dispenser 102 to print the curved surfaces in accordance with print instructions with arc segments 1 14 and print instructions with straight line segments 1 18 (also referred to simply as print instructions 1 14 or 1 18, respectively) stored in a memory 1 12. For example, the dispenser 102 may dispense the build material 106 along the curved surface based on print instructions 1 14.

[0020] The controller 1 10 may transition back and forth from printing curved surfaces to straight lines. For example, when the outer edge of the object transitions from a curved surface to a straight line, the controller 1 10 may use two dimensional coordinates directly from the CAD model. When the straight line transitions back to a curved surface, the controller 1 10 may access the print instructions with arc segments 1 14, and vice versa.

[0021] In one example, the memory 1 12 may be a non-transitory computer readable medium (e.g., a hard disk drive, a solid state hard drive, a random access memory (RAM), and the like). The controller 1 10 may access the print instructions 1 14 to control the dispenser 102 during printing of the object.

[0022] It should be noted that the apparatus 100 has been simplified for ease of explanation. The apparatus 100 may include additional components that are not shown. For example, the apparatus 100 may include an energy source, an enclosure, additional mechanical connections, communication interfaces, and the like.

[0023] As noted above, the present disclosure may generate the instructions 1 14 that may be interpreted by a 3D printer to allow the 3D printer to print more accurate curved surfaces of an object using arc segments rather than triangular tessellations. The arc segments may provide a more accurate and smoother printed surface than using triangular tessellations to estimate the curved surfaces for certain 3D printers (e.g., FDM 3D printers). In one example, the instructions 1 14 may include G-code (e.g., G02, G03, and the like) that has been modified to include the arc segments. The arc segments can be defined by a center point of a circle and a radius length for the circle between two points of an arc segment. A curved surface may be defined by a series of arc segments.

[0024] FIG. 2 illustrates an example of how arc segments can be used to define a curved segment 200 of an object to be printed. For example, a portion 226 of the curved segment 200 may be defined by a circle 202 having a center 204 and a radius 206. A portion 228 adjacent to the portion 226 may be defined by a circle 208, having a center 210, and a radius 212. A portion 230 adjacent to the portion 228 may be defined by a circle 214, having a center 216 and a radius 218. Similarly, another portion 232 may be defined by a circle 220 having a center 222 and a radius 224.

[0025] In one example, the instructions 1 14 may include the coordinates of the center of a circle with respect to the printing bay, or any other such plane, and coordinates of each point that may be printed between two points of the arc segment that may be traced by the radius of the circle from the center on the same plane. The coordinates may be in reference to a plane on which the slice of the object lies, or on which the circles 202, 208, 214, and 220 lie in FIG. 2.

For example, for the portion 226, the instructions 1 14 may include the coordinates of the two points that form the boundary of the portion 226, the coordinates of the center 204, and a length of the radius 206. With this information, the apparatus 100 may accurately print the curved portion 226.

The instructions 1 14 may include similar information for the portions 228, 230, and 232, and any other curved portions of the curved segment 200.

[0026] FIGs. 3 and 4 illustrate flow diagrams of how the arc segments are derived or calculated. FIG. 3 illustrates a flow diagram of an example method 300 for generating print instructions with arc segments for a 3D printer of the present disclosure. In an example, the method 300 may be performed by the apparatus 100 illustrated in FIG. 1 , or the apparatus 500 illustrated in FIG. 5, and described below.

[0027] At block 302, the method 300 begins. At block 304, the method 300 divides a computer generated three-dimensional (3D) model of an object to be printed into a plurality of two-dimensional slices. For example, an object may be divided into slices that have a thickness that corresponds to a printing capability of the 3D printer.

[0028] At block 306, the method 300 estimates a plurality of arc segments to describe curved surfaces of each one of the plurality of two-dimensional slices. As discussed above, the curved surfaces may refer to an outer edge or perimeter of a two dimensional slice of the object to be printed. For example, for a simple circular shaped slice, the curved surface may refer to the entire outer perimeter of the circle.

[0029] In one example, the arc segments may be defined by a center and a length of a radius for a circle that may form a portion of the curved surface, as described above in FIG. 2. An example of how arc segments are estimated is discussed below and illustrated in FIG. 4.

[0030] At block 308, the method 300 generates print instructions that include the plurality of arc segments for each one of the plurality of two dimensional slices. In one example, the arc segments may be represented by three points in the print instructions. The three points may be an initial point where the portion of the arc segment begins along the curved surface, a final point where the arc segment ends along the curved surface, and a displacement vector from the initial point to a center of a circle that represents the arc segment along the curved surface. In one example, the displacement vector may be a length of a radius of the circle.

[0031] In one example, the information associated with each arc segment may be included as comments within the print instruction that can be read and executed by a 3D printer. In one example, the print instructions may be a G- code that includes the arc segments to print curved surfaces of each layer of an object.

[0032] At block 310, the method 300 loads the print instructions on a 3D printer to print the object in accordance with the print instructions. In one example, the print instructions may be generated into a file that is stored in memory. The print instructions may be read from memory and loaded onto the 3D printer to be executed by the processor of the 3D printer. At block 312, the method 300 ends.

[0033] FIG. 4 illustrates a more detailed flow chart of a method for generating print instructions with arc segments for a 3D printer of the present disclosure. In an example, the method 400 may be performed by the apparatus 100 illustrated in FIG. 1 , or the apparatus 500 illustrated in FIG. 5, and described below. [0034] At block 402, the method 400 begins. At block 404, the method 400 loads slicing points of an object to be printed. The slices may be orthogonal to an axis of the deposition layer of the 3D printer (e.g., a z-axis or a direction of movement of the platform 104 in FIG. 1 ). In one example, a thickness of each slice may be a function of a capability of the 3D printer and a desired resolution. For example, some 3D printers may print very thin layers at a time or may print relatively thick layers for faster printing if high resolution is not desired. In one example, approaches that convert the model into an intermediary format to facilitate slicing, such as a tessellated mesh of patches of Bezier surfaces, may be used to generate the slicing points of each slice of the object to be printed.

[0035] At block 406, the method 400 selects a sublist of sample points. In one example, the sublist of sample points may be for each slice of an object to be printed that is obtained from block 404. Each slice may have a sublist of sample points. The slices may be obtained from a computer aided design (CAD) model.

[0036] The sample points may be for each slice that may not be

interconnected. The number of sample points for the sublist of each slice may be configurable and based on a desired resolution of the object to be printed.

[0037] In one example, the sample points may include a pair of points rather than three points. Three points may ensure that the points interpolate to a circular arc through the three points. However, when three points are used, adjacent arcs may not share tangent directions at the junctions, which can produce cusps and other unwanted artifacts in the final printed part.

[0038] At block 408, the method 400 estimates tangents. In one example, tangents may be calculated for the pair of points of the sample points using any approach. For example, FMILL and Bessel tangent estimation approaches may be used to estimate the tangents.

[0039] In one example, tangents may also be estimated using a piecewise biarc curve development process. The biarc curve development processes may create a biarc between the pair of sample points using a fictitious third point between the pair of sample points. A biarc can be formed between a point of the pair of sample points and the fictitious third point. In one example, the fictitious third point may be located at a midpoint between the pair of sample points. The biarc may be oriented in a same direction to form a“C” shape or a semicircular shape, or may be orientated in opposite directions to form an“S” shape. The piecewise biarc curve development process may interpolate a first point and a last point together with the respective tangent directions to produce one biarc. A biarc may be created for each pair of sample points in the sublist of sample points and the associated tangents may be estimated.

[0040] At block 410, the method 400 interpolates biarcs to the sublist of sample points. For example, each sample point may be interpolated into one of the biarcs that are generated in the block 408. The distance between each n sampled points between the first point and a last point (e.g., a pair of points of the sampled points in the sublist) to the biarc may be computed (e.g., the radius minus the distance between the point and a center of the appropriate arc) in order to check whether the biarc is a satisfactory approximation, up to a threshold. For example, the threshold may be approximately 95%, 99%, and the like. The biarcs that are interpolated into a group of sampled points may represent an arc segment to be printed.

[0041] At block 412, the method 400 determines if there are non-fitting points in the sublist of sample points. For example, if any of the points do not fit to a biarc within the confidence threshold, the answer to the block may be yes.

[0042] If the answer to block 412 is yes, the method 400 may proceed to block 414. At block 414, the method 400 inserts the non-fitting points into the sublist of sample points. For example, in each group (e.g., one per biarc) the sample point that is the closest to the centroid is taken to be the new junction for a subdivision biarc. The current biarc may be discarded and the two biarcs from the subdivision may be used to interpolate the first, the last, and the middle sampled point, together with the respective estimated tangent directions.

[0043] A middle point of each group of non-fitting points may be used to generate new biarcs. In one example, a midpoint between each group of non fitting points may also be used, as long as the midpoint is the closest to the centroid of the group of non-fitting points.

[0044] The method 400 may then return to the block 408. The blocks 408, 410, 412, and 414 may be repeated until the answer to the block 412 is no. If the answer to the block 412 is no, the method 400 may proceed to block 416.

[0045] At block 416, the method 400 may generate print instructions. For example, the print instructions may include arc segments. As discussed above in the method 300, the arc segments may be represented by three points in the print instructions. The three points may be an initial point where the portion of the arc segment begins along the curved surface, a final point where the arc segment ends along the curved surface, and a displacement vector from the initial point to a center of a circle that represents the arc segment along the curved surface. In one example, the displacement vector may be a length of a radius of the circle.

[0046] In one example, the information associated with each arc segment may be included as comments within the print instruction that can be read and executed by a 3D printer. In one example, the print instructions may be a G- code that includes the arc segments to print curved surfaces of each layer of an object.

[0047] At block 418, the method 400 may print an object with the print instructions. For example, the print instructions may be loaded into a 3D printer and executed by a controller or a processor of the 3D printer. The print instructions with arc segments may allow the 3D printer to print smoother curved surfaces than using instructions that include estimations using triangular tessellations, as noted above. At block 420, the method 400 ends.

[0048] FIG. 5 illustrates an example of an apparatus 500. In an example, the apparatus 500 may be the apparatus 100. In an example, the apparatus 500 may include a processor 502 and a non-transitory computer readable storage medium 504. The non-transitory computer readable storage medium 504 may include instructions 506, 508, 510, 512, 514, and 516 that, when executed by the processor 502, cause the processor 502 to perform various functions.

[0049] In an example, the instructions 506 may include instructions to receive a computer generated three dimensional (3D) model of an object to be printed. The instructions 508 may include instructions to divide the 3D model into a plurality of slices. The instructions 510 may include instructions to obtain a plurality sample points of a slice of the plurality of slices. The instructions 512 may include instructions to estimate an arc segment between consecutive sample points of the plurality of sample points. The instructions 514 may include instructions to repeat the instructions to obtain and the instructions to estimate for each one of the plurality of slices. The instructions 516 may include instructions to generate a print instruction that includes the arc segment for consecutive sample points for each one of the plurality of slices to control a 3D printer to print the object.

[0050] FIG. 6 illustrates an example apparatus 600 to generate print instructions with arc segments of the present disclosure. In one example, the apparatus 600 may include a processor 602, a memory 604, and an arc segment print instruction generator 608. The processor 602 may be

communicatively coupled to the memory 604 and the arc segment print instruction generator 608.

[0051] The memory 604 may store a 3D model of an object 606 that is received from a computer aided modeling (CAD) program. The 3D model of an object 606 may be provided to the arc segment print instructions generator 608. The arc segment print instructions generator 608 may generate the print instructions with arc segments 1 14 that is used to control a 3D printer (e.g., the apparatus 100 illustrated in FIG. 1 ).

[0052] In one example, the arc segment print instructions generator 608 may generate the print instructions 1 14 as described above. For example, the arc segment print instructions generator 608 may divide the 3D model of the object 606 into a plurality of two-dimensional slices. The arc segment print instructions generator 608 may then define the curved sides of the plurality of two- dimensional slices into arc segments. The print instructions 1 18 illustrated in FIG. 1 may be generated for portions of the sides that are straight line segments.

[0053] As noted above, the arc segments may be defined by obtaining a plurality of sample points along a surface of each one of the two-dimensional slices. An arc segment may be generated between each consecutive pair of points of the plurality of sample points using a piecewise biarc curve development process, as described above.

[0054] The processor 602 may then control a 3D printer to generate the object based on the print instructions with arc segments 1 14. For example, the apparatus 600 may be communicatively coupled to or be incorporated as part of a 3D printer (e.g., the apparatus 100).

[0055] It will be appreciated that variants of the above-disclosed and other features and functions, or alternatives thereof, may be combined into many other different systems or applications. Various presently unforeseen or unanticipated alternatives, modifications, variations, or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims.