WO2022271452A1 - Three dimensional printing system with speed optimized vector processing system - Google Patents

Three dimensional printing system with speed optimized vector processing system Download PDF

Info

Publication number
WO2022271452A1
WO2022271452A1 PCT/US2022/032758 US2022032758W WO2022271452A1 WO 2022271452 A1 WO2022271452 A1 WO 2022271452A1 US 2022032758 W US2022032758 W US 2022032758W WO 2022271452 A1 WO2022271452 A1 WO 2022271452A1
Authority
WO
WIPO (PCT)
Prior art keywords
scan speed
vectors
slices
vector
build
Prior art date
Application number
PCT/US2022/032758
Other languages
French (fr)
Inventor
Sam Coeck
Jonas VAN VAERENBERGH
Nachiketa RAY
Original Assignee
Layerwise Nv
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Layerwise Nv filed Critical Layerwise Nv
Priority to EP22741085.9A priority Critical patent/EP4359873A1/en
Publication of WO2022271452A1 publication Critical patent/WO2022271452A1/en

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B22CASTING; POWDER METALLURGY
    • B22FWORKING METALLIC POWDER; MANUFACTURE OF ARTICLES FROM METALLIC POWDER; MAKING METALLIC POWDER; APPARATUS OR DEVICES SPECIALLY ADAPTED FOR METALLIC POWDER
    • B22F10/00Additive manufacturing of workpieces or articles from metallic powder
    • B22F10/30Process control
    • B22F10/36Process control of energy beam parameters
    • B22F10/366Scanning parameters, e.g. hatch distance or scanning strategy
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B22CASTING; POWDER METALLURGY
    • B22FWORKING METALLIC POWDER; MANUFACTURE OF ARTICLES FROM METALLIC POWDER; MAKING METALLIC POWDER; APPARATUS OR DEVICES SPECIALLY ADAPTED FOR METALLIC POWDER
    • B22F10/00Additive manufacturing of workpieces or articles from metallic powder
    • B22F10/80Data acquisition or data processing
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B29WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29CSHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
    • B29C64/00Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
    • B29C64/30Auxiliary operations or equipment
    • B29C64/386Data acquisition or data processing for additive manufacturing
    • B29C64/393Data acquisition or data processing for additive manufacturing for controlling or regulating additive manufacturing processes
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B33ADDITIVE MANUFACTURING TECHNOLOGY
    • B33YADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
    • B33Y50/00Data acquisition or data processing for additive manufacturing
    • B33Y50/02Data acquisition or data processing for additive manufacturing for controlling or regulating additive manufacturing processes
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4097Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by using design data to control NC machines, e.g. CAD/CAM
    • G05B19/4099Surface or curve machining, making 3D objects, e.g. desktop manufacturing

Definitions

  • the present disclosure concerns an apparatus and method for a layer-by- layer fabrication of three dimensional (3D) articles by an energy beam solidification of layers of material such as polymer powders, metal powders, and photocurable resins. More particularly, the present disclosure concerns a way of correcting scan speed or execution time errors that can adversely repeatability and consistency of operation.
  • Three dimensional (3D) printing systems are in rapidly increasing use for purposes such as prototyping and manufacturing.
  • Certain 3D printing systems utilize layer-by-layer processes to form 3D articles from various materials which can be metal powders, plastic powders, and photocurable resins.
  • Each layer of material is selectively hardened with an energy beam which can be a laser beam, an electron beam, or a particle beam.
  • the layer-by-layer processes start with a virtual 3D body such as a CAD file.
  • the virtual 3D body is sliced with virtual horizonal slices that correspond to the layers.
  • the virtual slices individually define contours or boundaries that are an intersection of surfaces of the 3D body with a slice.
  • the virtual slices are converted to a vector form that can be used to control motion of the energy beam.
  • a challenge with this conversion are scan speed and execution time errors that result from applying the vector form of the virtual slices to an energy beam system.
  • FIG. 1 is a schematic diagram of a three-dimensional (3D) printing system for forming a 3D article.
  • FIG. 2 is a schematic diagram of an embodiment of a controller containing various software modules.
  • FIG. 3A is a schematic diagram of a virtual 3D body having a shape of a right oval cylinder.
  • FIG. 3B is a schematic diagram of a virtual cross-sectional slice defined by a s eer module acting on the virtual 3D body of FIG. 3A.
  • FIG. 3C is a schematic diagram of a vector slice defined by a vector generator module acting on the single virtual cross-sectional slice of FIG. 3B.
  • FIG. 3D is a schematic diagram of a speed-corrected vector slice defined by a speed correction module acting upon the vector slice of FIG. 3C.
  • FIG. 4A is a flowchart of a method performed by a pre-processing controller.
  • FIG. 4B is a flowchart of a method performed by a print engine controller.
  • FIG. 5 is a flowchart of a first embodiment of a method performed by a print engine controller and that is a subset of the method of FIG. 4B.
  • FIG. 5A is a schematic representation of a slice, contour, and sequential set of points P1 -P6 that are not yet speed corrected. This corresponds to the output of vector generation module 36 (FIG. 2), FIG. 3C, and one slice n of the output of method 60 of FIG. 4A.
  • M(n) equals 5 - in other words, there are five vectors.
  • Each sequential pair of points represents a vector.
  • the first vector tail is at point P1 and the first vector head is at P2 (and so on).
  • FIG. 5B depicts determination of a corrected point location Q2 for a new sequence of points.
  • a circle of radius AS has its center at P1 which becomes a new first point Q1.
  • the intersection of the circle with the original vector path or contour 83 defines the second new point Q2.
  • the first speed corrected vector has its tail at Q1 and head at Q2.
  • FIG. 5C depicts determination of a corrected point location Q3 for a new sequence of points.
  • a circle of radius AS has its center at Q2.
  • the intersection of the circle with the original vector path or contour 83 defines the third new point Q3.
  • the second speed corrected vector has its tail at Q2 and head at Q3.
  • FIG. 5D depicts determination of a corrected point location Q4 for a sequence of points.
  • a circle of radius AS has its center at Q3.
  • the intersection of the circle with the original vector path or contour 83 defines the fourth new point Q4.
  • the third speed corrected vector has its tail at Q3 and head at Q4.
  • FIG. 5E depicts determination of a corrected point location Q5 for a sequence of points.
  • a circle of radius AS has its center at Q4.
  • the intersection of the circle with the original vector path or contour 83 defines the fifth new point Q5.
  • the fourth speed corrected vector has its tail at Q4 and head at Q5.
  • FIG. 5F depicts determination of a corrected point location Q6 for a sequence of points.
  • a circle of radius AS has its center at Q5.
  • the intersection of the circle with the original vector path or contour 83 defines the sixth new point Q6.
  • the fifth speed corrected vector has its tail at Q5 and head at Q6.
  • FIG. 5G is a schematic representation of a slice, contour, and sequential set of points Q1-Q7 that have been speed corrected.
  • the vectors defined by Q1- Q7 correspond to the output of speed correction module 38 (FIG. 2), FIG. 3D, one slice n of the output of steps 72-76 of method 70 of FIG. 4B, and the output of method 80 of FIG. 5.
  • Each sequential pair of points represents a speed corrected vector.
  • FIG. 6 is a flowchart of a second embodiment of a method performed by a print engine controller and that is a subset of the method of FIG. 4B.
  • a three-dimensional (3D) printing system is configured for fabricating or manufacturing a 3D article.
  • the 3D printing system includes a print engine and a controller.
  • the print engine includes a motorized build platform, a coating apparatus for forming a uniform layer of build material over the build platform, and a beam forming unit configured to scan an energy beam over the build plane that is above the build platform.
  • the controller is configured to perform the following steps: (a) receiving a virtual 3D body, (b) processing the 3D body to define a plurality of N slices, the N slices individually representing intersections of the 3D body with the slice, (c) processing the N slices to represent solid portions of the 3D body with vectors, the vectors defining contours and hatching patterns, the vectors individually are bounded by two endpoints, (d) for the individual slices, analyzing a scan speed error for one or more of the plurality of vectors, and (e) for the individual slices, replacing or moving some of the endpoints when the scan speed error exceeds a predetermined threshold to provide a speed corrected slice. Steps (d) and (e) eliminate or reduce scan speed errors.
  • the controller includes at least two separate controllers including a pre-processing controller and a print engine controller which are physically separated from each other.
  • steps (c) and (d) include, for individual vectors of the plurality of vectors: computing an average scan speed for the vector, comparing the average scan speed with a default scan speed to determine the scan speed error, and if the scan speed error is larger than the predetermined threshold, then moving an endpoint of the vector to reduce or eliminate the scan speed error.
  • the steps (d) and (e) can include, for a sequence of two or more individual vectors of the plurality of vectors: computing an average scan speed for the sequence of two or more vectors, comparing the average scan speed with a default scan speed to determine the scan speed error, and if the scan speed error is larger than the predetermined threshold, then moving one or more endpoints of the two or more vectors to reduce or eliminate the scan speed error.
  • the controller is further configured to: operate the motorized build platform to position an upper surface of the motorized build platform or build material proximate to the build plane, operate the coating apparatus to form a new layer of the build material over the uppers surface of the motorized build platform or build material, and utilize the speed corrected slice to operate the beam forming unit to selectively solidify the new layer of build material.
  • FIG. 1 is a schematic diagram of a three-dimensional (3D) printing system 2 for forming a 3D article 4.
  • 3D printing system 2 mutually orthogonal axes X, Y and Z can be used.
  • Axes X and Y are lateral axes that are generally horizontal.
  • Axis Z is a vertical axis that is generally aligned with a gravitational reference.
  • general it is intended to be so by design but may vary due to manufacturing tolerances or other sources of variation.
  • the 3D printing system 2 includes a 3D print engine 6 coupled to a controller 8.
  • the controller 8 can include a single computer co-located with the print engine 6 or it can include two or more computers, some of which are physically separated from or even remotely located relative to the print engine 6.
  • controller 8 includes two controllers including a first controller 8A and a second controller 8B.
  • the first controller 8A can be physically separated or even remotely located from the print engine 6.
  • the second controller 8B is physically connected to or more closely associated with the print engine 6.
  • Controller 8 includes a processor (at least one CPU) coupled to an information storage device (at least one non-transient or non-volatile device).
  • the information storage device stores software modules that individually contain instructions.
  • the information storage device can include one or more of non volatile or non-transient computer memory, flash memory, and disk drives.
  • the controller 8 is configured to operate various portions of the print engine 6 when the processor executes the instructions.
  • the first controller 8A processes a virtual 3D body and produces cross-sectional “slices” that are used by the controller 8B to control the print engine 6.
  • the print engine 6 includes a build container 10 containing a motorized build platform 12.
  • Motorized build platform 12 has an upper surface 14 and a mechanism (details not shown) for precisely vertically positioning build platform 12.
  • the mechanism can include a mechanical drive such as a rack and pinion, lead screw, or other drive system.
  • a lead screw drive system can includes a lead screw coupled to a fixed motor. The lead screw can be received into a threaded nut that is coupled to the build platform 12. Under command of the controller 8, the motor can turn the lead screw to vertically position the build platform 12.
  • Print engine 6 includes a coating apparatus 16 that is configured to form a uniform layer of material 18 such as metal powder over the motorized build platform 12.
  • a coating apparatus 16 can include a dispenser for dispensing the material 18 and a wiper blade for assuring a planar and uniform surface 20. Motion of the coating apparatus 16 during dispensing and wiping can be imparted by a motorized lead screw, a motorized belt, or other motorized movement mechanism.
  • the dispensing apparatus can include a motorized roller or valve mechanism for metering controlled or sufficient amounts of the material 18 to assure uniformity of the new layer material 18.
  • Print engine 6 includes a beam forming unit 24 for forming and scanning one or more energy beams 26 over the build plane 22. Lateral scan limits of the beam forming unit 24 can define a lateral extent of the beam forming unit 24.
  • the beam forming unit includes a laser beam generator and two scanning mirrors including an X-mirror and a Y-mirror which provide motion of the laser beam across the build plane along the X and Y axes respectively.
  • the controller 8 is configured to operate portions of the print engine 6 to manufacture or fabricate the 3D article 4.
  • the controller is configured to: (a) receive a data file defining 3D article 4, (b) process the data file to prepare it for operating print engine 6, (c), operate the motorized build platform to position an upper surface 14 or 20 proximate to build plane 22, (c) operate coating apparatus to apply a new layer of build material 18 to the upper surface 14 or 20, (d) operate the beam forming unit 24 to selectively harden the new layer of build material, and repeat (c)-(d) to complete manufacture or fabrication of article 4.
  • FIG. 2 is a schematic diagram of the controller 8. More particularly, FIG.
  • controller 8 includes a pre-processing controller 8A and a print engine controller 8B.
  • the pre-processing controller 8A can be physically separated or even remotely located relative to the print engine 6.
  • the print engine controller 8B can be partly or entirely co-located with or within print engine 6.
  • controller 8 can be one physically integrated unit. Other embodiments with other physical divisions between the software modules are possible.
  • Controller 8 receives a virtual 3D body 32 such as a CAD file that defines the 3D article 4 to be manufactured.
  • a s eer module 34 receives and virtually and horizontally slices the 3D virtual body 32. This results in a file that defines virtual cross-sectional slices of the 3D virtual body 32.
  • the virtual cross-sectional slices individually define one or more two dimensional boundaries and solid cross-sections of the 3D virtual body 32. For an individual slice, a two dimensional boundary defines an intersection between the horizontal slice and the solid body 32.
  • the virtual cross-sectional slice also includes a representation of a solid cross-section portion of the slice.
  • the slices are sent to a vector generator module 36 (sometimes referred to as a hatcher module) that defines a series of linear scans that correspond to a solid portion of the slice. These scans are represented as linear vectors with endpoints defining a start and end of each vector.
  • the result is a plurality of vector slices that individually have a plurality of vectors corresponding to energy beam 26 scans over the build plane 22.
  • the plurality of vector slices are sent to a speed correction module 38.
  • Speed correction module 38 computes scan speed errors for individual vectors or groups of vectors.
  • the speed correction module 38 corrects speed and/or temporal errors by moving or replacing endpoints of the vectors when one or more speed and/or temporal errors exceed a predetermined threshold.
  • the speed correction module 38 is incorporated into the print engine controller 8B. Alternatively it can be incorporated as part of the pre processing module 8A.
  • the result is a plurality of corrected vector slices having corrected vectors which are sent to a scan driver module 40.
  • the scan driver module 40 uses the corrected vector slices to operate the beam forming unit 24.
  • An individual slice is used to selectively harden one new layer of deposited material 18.
  • a “slice” can be interpreted as data representing horizontal slice of the virtual 3D body 32 at any stage after one or more of the software modules 34-40.
  • FIG. 3A is an illustration of a very simple 3D virtual body 32 that is a right oval cylinder axially aligned with the vertical axis Z.
  • the operation of the s eer module 34 is to define a vertical arrangement of horizontal virtual cross-sectional slices 42.
  • FIG. 3B is a schematic diagram of a virtual cross-sectional slice 42 defined by the sheer module 34.
  • the virtual cross-sectional slice 42 includes data defining an outer boundary 44 and a solidified area 46 within the outer boundary 44.
  • FIG. 3C is a schematic diagram of a vector slice 48 defined by the vector generator module 36 acting upon the virtual cross-sectional slice 42 of FIG. 3B.
  • the outer boundary 44 is now replaced by a contour 50 which includes a sequence of vectors 52 (only some shown) which are placed head-to-tail to define the contour 50.
  • a contour 50 can include two or more sequences of vectors 52 passing around the contour 50 two or more times to widen the contour 50.
  • the vectors 52 of the contour 50 “trace around” the contour 50 to form the contour 50.
  • the contour 50 surrounds the solidified area 46 and define the outer boundary 44.
  • the solidified area 46 is replaced with an area hatch pattern 54 of vectors 56 (only some shown).
  • Adjacent vectors 56 can have opposing directions over the hatch pattern 54.
  • additional vectors may attach heads and tails of adjacent vectors 56 so that a laser stays on during the hatching process.
  • FIG. 3D is a schematic diagram of a corrected vector slice 49.
  • the speed correction module 38 processes the vector slice 48 to provide a corrected vector slice 49.
  • the corrected vector slice 49 differs from the vector slice 48 by having corrected locations of heads and tails of the vectors 52 and 56 to provide vectors 53 and 57 respectively.
  • the speed corrected vectors 53 and 57 correspond to scans of the energy beam(s) 26 over the layer of powder 18.
  • FIG. 4A is a flowchart of an embodiment of an operational method 60 performed by controller 8. Controller 8 performs method 60 by executing software modules 34 and 36 of FIG. 2.
  • controller 28 receives a 3D virtual body 32.
  • controller 28 executes module 36 to slice the 3D virtual body 32 into N virtual cross-sectional slices 42.
  • controller 28 executes module 26 to define scan vectors 52 and 56 having endpoints for the N individual slices. The result is N individual vector slices with vectors 52 and 56 that are not yet speed corrected.
  • FIG. 4B is a flowchart of an embodiment of an operational method 70 performed by controller 8 and more particularly by the print engine controller 30.
  • Print engine controller 30 performs method 70 by executing software modules 38 and 40 of FIG. 2.
  • controller 30 receives the aforementioned N vector slices 42 from the controller 28.
  • a slice (slice n of N) is processed to correct scan speed errors based upon a threshold condition.
  • Step 74 results in a speed-corrected vector slice n.
  • the speed corrected vector slice is transferred to the laser scanner driver module.
  • the beam forming unit 24 is operated to selectively fuse a speed corrected vector slice n of the 3D article 4.
  • steps 72 to 78 are repeated to selectively fuse all N slices.
  • the data may be filtered to remove extraneous vectors.
  • the controller 30 can operate the motorized build platform 12 to maintain a proper height of build plane 22 and operate the coating apparatus 16 to coat a new layer of material 18 for each slice n.
  • multiple layers of material can be applied between operations of the beam forming unit 24.
  • step 74 - the speed error correction - can be performed as part of method 60 rather than as part of method 70.
  • the speed error corrections would have been incorporated into the vectors when the print engine controller 30 receives the slices.
  • the division of the steps of methods 60 and 62 can be divided between different controllers in different ways.
  • FIG. 5 is a flowchart of a first embodiment of an operational method 80 performed by controller 8. Controller 8 performs method 80 by executing the software module 38 of FIG. 2. In particular, method 80 is a more detailed embodiment of step 74 of method 70 but for a single slice n.
  • a slice n is received by software module 38.
  • Slice n has M(n) vectors.
  • M is a variable that depends upon n.
  • a speed for vector m (m varies from 1 to M) is measured.
  • the beam forming module 24 has a default scan speed V, an actual scan speed v, a standard resolution step size AS, an actual step size As, and a temporal step size or time-based resolution DT.
  • the temporal step size DT is fixed and does not vary.
  • As As / DT
  • the scan speed equals the default scan speed V.
  • the actual scan speed v is different than the default scan speed V.
  • the vectors for the slice can have a length defining a non-integer number of steps AS.
  • the vector can include a number of steps of length AS plus a shorter step of length As ⁇ AS. Because DT is fixed, the shorter step will be executed in time DT and will therefore have a lower scan velocity. The average velocity for the vector is found by dividing a total time for scanning the vector into the length of the vector. The total time for scanning the vector equals the actual number of steps times DT.
  • step 84 the scan velocity v(m) is calculated or determined for vector m. According to 86, a determination is made as to whether v(m) is within a certain predetermined tolerance range of default scan speed V.
  • a value of [V - v(m)] / V is computed which is a fractional velocity error. If v(m) is within the predetermined tolerance or fractional range of default V, then the process loops back to step 84.
  • step 86 If according to step 86, v(m) is not within the predetermined range, then point locations of the vector m are modified so that a length of vector m is closer to or equal to an integer number of lengths AS according to step 88. In an embodiment this is accomplished by lengthening the vector until the length is an integer times AS. Alternatively, this can be accomplished by shortening the vector until the length is an integer times AS. As indicated by FIG. 5, this process method is carried out for all M(n) vectors for slice n. As a result of this process, slice n will then have R(n) vectors which may equal M(n) or be larger or smaller.
  • FIGS. 5A-G are an illustrative example of a particular embodiment of method 80 of FIG. 5.
  • Step 82 of method 80 is represented by FIG 5A.
  • the loaded slice n is represented by the points P1-P6 which are sequential endpoints of move vectors of the scanning laser (e.g., laser plus motorized X-mirror and motorized Y-mirror).
  • M(n) in this example equals 5.
  • the first move vector is from P1 to P2.
  • the second move vector is from P2 to P3 and this continues to the fifth move vector from P5 to P6. Without the speed correction module, there would be velocity errors as explained above.
  • the dashed line of the sequence from P1 to P6 can be referred to as the “uncorrected contour” 83 which is not yet speed corrected.
  • the velocity of movement over the first segment (P1 to P2) is computed.
  • the measured velocity v is found to be out of tolerance.
  • point locations are modified and this is illustrated in FIG. 5B.
  • a circle of radius AS is placed upon point P1 and an intersection Q2 to the overall path (dashed line) is determined. This becomes a new second point Q2 to “replace” P2.
  • the speed is now computed for the segment between Q2 and P3 (the next point on the original contour 83) and is found to be out of tolerance according to 86.
  • the point locations are again modified as shown in FIG. 5C.
  • the segment is a non-integer multiple of the standard resolution step size AS because Q7 is coincident with the point P6.
  • Element 83 in FIG. 5A refers to the uncorrected contour defined by the initial points P1 to P6 before method 80 is performed.
  • Element 89 in FIG. 5G refers to the speed corrected contour defined by points Q1 to Q7 after method 80 is performed.
  • points P1-P6 of FIG. 5A illustrate the uncorrected slice
  • points Q1-Q7 of FIG. 5G illustrate the speed corrected slice.
  • M(n) 5.
  • R(n) 6.
  • the speed correction has resulted in an added endpoint to the sequence of endpoints.
  • FIG. 6 is a flowchart of a second embodiment of an operational method 90 performed by controller 8 and more particularly by the print engine controller 30.
  • Print engine controller 30 performs method 80 by executing the software module 38 of FIG. 2.
  • method 90 is a more detailed embodiment of step 74 of method 70 but for a single slice n.
  • Method 90 differs from method 80 in that ab average value for v(m) is computed and responded to for groups of P vectors rather than one vector at a time. P can equal 2 or more.
  • a slice n is received by software module 38.
  • Module 38 has M(n) vectors. As indicated M is a variable that depends upon n.
  • a scan speed is measured for the groups of P segments. For example, groups of two segments at a time can be measured. Step 94 is carried out for all segments. If there is a remainder of segments, this process can be carried out for the remainder as well.
  • the measurement method is similar to that of measuring one segment, except that the computation is to compute the length sum of the segments divided by the total time for the segments.
  • point locations are modified for any groups of vectors that are out of tolerance. For example, this can be accomplished by moving a connecting point between two segments so that the individual lengths of the segments are individually closer to an integer number of the distance AS.
  • step 74 of method 70 can utilize both method 70 and 80.
  • the specific embodiments and applications thereof described above are for illustrative purposes only and do not preclude modifications and variations encompassed by the scope of the following claims.

Abstract

A three-dimensional (3D) printing system includes a print engine and a controller. The print engine includes a motorized build platform, a coating apparatus, and a beam forming unit. The controller is configured to perform the following steps: (a) receiving a virtual 3D body, (b) processing the 3D body to define a plurality of N slices, the N slices individually representing intersections of the 3D body with the slice, (c) processing the N slices to represent solid portions of the 3D body with vectors, the vectors defining contours and hatching patterns, the vectors individually bounded by two endpoints, (d) for the individual slices, analyzing a scan speed error for one or more of the plurality of vectors, and (e) for the individual slices, moving some of the endpoints when the scan speed error exceeds a predetermined threshold to provide a speed corrected slice.

Description

Three Dimensional Printing System with Speed Optimized Vector Processing
System
Cross-Reference to Related Applications
[0001] This non-provisional patent application claims priority to U.S. Provisional Application Serial Number 63/215,155, Entitled “Three Dimensional Printing System with Speed Optimized Vector Processing System” by Sam Coeck et al. , filed on June 25, 2021 , incorporated herein by reference under the benefit of U.S.C. 119(e).
Field of the Invention
[0002] The present disclosure concerns an apparatus and method for a layer-by- layer fabrication of three dimensional (3D) articles by an energy beam solidification of layers of material such as polymer powders, metal powders, and photocurable resins. More particularly, the present disclosure concerns a way of correcting scan speed or execution time errors that can adversely repeatability and consistency of operation.
Background
[0003] Three dimensional (3D) printing systems are in rapidly increasing use for purposes such as prototyping and manufacturing. Certain 3D printing systems utilize layer-by-layer processes to form 3D articles from various materials which can be metal powders, plastic powders, and photocurable resins. Each layer of material is selectively hardened with an energy beam which can be a laser beam, an electron beam, or a particle beam. The layer-by-layer processes start with a virtual 3D body such as a CAD file. The virtual 3D body is sliced with virtual horizonal slices that correspond to the layers. The virtual slices individually define contours or boundaries that are an intersection of surfaces of the 3D body with a slice. The virtual slices are converted to a vector form that can be used to control motion of the energy beam. A challenge with this conversion are scan speed and execution time errors that result from applying the vector form of the virtual slices to an energy beam system.
Brief Description of the Figures
[0004] FIG. 1 is a schematic diagram of a three-dimensional (3D) printing system for forming a 3D article.
[0005] FIG. 2 is a schematic diagram of an embodiment of a controller containing various software modules.
[0006] FIG. 3A is a schematic diagram of a virtual 3D body having a shape of a right oval cylinder.
[0007] FIG. 3B is a schematic diagram of a virtual cross-sectional slice defined by a s eer module acting on the virtual 3D body of FIG. 3A.
[0008] FIG. 3C is a schematic diagram of a vector slice defined by a vector generator module acting on the single virtual cross-sectional slice of FIG. 3B.
[0009] FIG. 3D is a schematic diagram of a speed-corrected vector slice defined by a speed correction module acting upon the vector slice of FIG. 3C.
[00010] FIG. 4A is a flowchart of a method performed by a pre-processing controller.
[00011 ] FIG. 4B is a flowchart of a method performed by a print engine controller.
[00012] FIG. 5 is a flowchart of a first embodiment of a method performed by a print engine controller and that is a subset of the method of FIG. 4B. [00013] FIG. 5A is a schematic representation of a slice, contour, and sequential set of points P1 -P6 that are not yet speed corrected. This corresponds to the output of vector generation module 36 (FIG. 2), FIG. 3C, and one slice n of the output of method 60 of FIG. 4A. For the illustrated slice, M(n) equals 5 - in other words, there are five vectors. Each sequential pair of points represents a vector. The first vector tail is at point P1 and the first vector head is at P2 (and so on).
[00014] FIG. 5B depicts determination of a corrected point location Q2 for a new sequence of points. A circle of radius AS has its center at P1 which becomes a new first point Q1. The intersection of the circle with the original vector path or contour 83 defines the second new point Q2. The first speed corrected vector has its tail at Q1 and head at Q2.
[00015] FIG. 5C depicts determination of a corrected point location Q3 for a new sequence of points. A circle of radius AS has its center at Q2. The intersection of the circle with the original vector path or contour 83 defines the third new point Q3. The second speed corrected vector has its tail at Q2 and head at Q3.
[00016] FIG. 5D depicts determination of a corrected point location Q4 for a sequence of points. A circle of radius AS has its center at Q3. The intersection of the circle with the original vector path or contour 83 defines the fourth new point Q4. The third speed corrected vector has its tail at Q3 and head at Q4.
[00017] FIG. 5E depicts determination of a corrected point location Q5 for a sequence of points. A circle of radius AS has its center at Q4. The intersection of the circle with the original vector path or contour 83 defines the fifth new point Q5. The fourth speed corrected vector has its tail at Q4 and head at Q5.
[00018] FIG. 5F depicts determination of a corrected point location Q6 for a sequence of points. A circle of radius AS has its center at Q5. The intersection of the circle with the original vector path or contour 83 defines the sixth new point Q6. The fifth speed corrected vector has its tail at Q5 and head at Q6. [00019] FIG. 5G is a schematic representation of a slice, contour, and sequential set of points Q1-Q7 that have been speed corrected. The vectors defined by Q1- Q7 correspond to the output of speed correction module 38 (FIG. 2), FIG. 3D, one slice n of the output of steps 72-76 of method 70 of FIG. 4B, and the output of method 80 of FIG. 5. Each sequential pair of points represents a speed corrected vector.
[00020] FIG. 6 is a flowchart of a second embodiment of a method performed by a print engine controller and that is a subset of the method of FIG. 4B.
Summary
[00021] In an aspect of the disclosure, a three-dimensional (3D) printing system is configured for fabricating or manufacturing a 3D article. The 3D printing system includes a print engine and a controller. The print engine includes a motorized build platform, a coating apparatus for forming a uniform layer of build material over the build platform, and a beam forming unit configured to scan an energy beam over the build plane that is above the build platform. The controller is configured to perform the following steps: (a) receiving a virtual 3D body, (b) processing the 3D body to define a plurality of N slices, the N slices individually representing intersections of the 3D body with the slice, (c) processing the N slices to represent solid portions of the 3D body with vectors, the vectors defining contours and hatching patterns, the vectors individually are bounded by two endpoints, (d) for the individual slices, analyzing a scan speed error for one or more of the plurality of vectors, and (e) for the individual slices, replacing or moving some of the endpoints when the scan speed error exceeds a predetermined threshold to provide a speed corrected slice. Steps (d) and (e) eliminate or reduce scan speed errors. This maximizes overall speed of fabrication and reduces or eliminates potential overheating or overcuring that may occur with low scan speeds. [00022] In one implementation, the controller includes at least two separate controllers including a pre-processing controller and a print engine controller which are physically separated from each other.
[00023] In another implementation, steps (c) and (d) include, for individual vectors of the plurality of vectors: computing an average scan speed for the vector, comparing the average scan speed with a default scan speed to determine the scan speed error, and if the scan speed error is larger than the predetermined threshold, then moving an endpoint of the vector to reduce or eliminate the scan speed error. The controller can define a relationship DT * V = AS, DT equals a temporal step size for the beam forming unit, AS equals a dimensional step size for the beam forming unit, and V = the default scan speed and can move the endpoint of the vector changes the length of the vector to more closely approximate an integer number times AS.
[00024] In yet another implementation, the steps (d) and (e) can include, for a sequence of two or more individual vectors of the plurality of vectors: computing an average scan speed for the sequence of two or more vectors, comparing the average scan speed with a default scan speed to determine the scan speed error, and if the scan speed error is larger than the predetermined threshold, then moving one or more endpoints of the two or more vectors to reduce or eliminate the scan speed error.
[00025] In a further implementation, the controller is further configured to: operate the motorized build platform to position an upper surface of the motorized build platform or build material proximate to the build plane, operate the coating apparatus to form a new layer of the build material over the uppers surface of the motorized build platform or build material, and utilize the speed corrected slice to operate the beam forming unit to selectively solidify the new layer of build material.
Detailed Description of the Preferred Embodiments [00026] FIG. 1 is a schematic diagram of a three-dimensional (3D) printing system 2 for forming a 3D article 4. In describing 3D printing system 2, mutually orthogonal axes X, Y and Z can be used. Axes X and Y are lateral axes that are generally horizontal. Axis Z is a vertical axis that is generally aligned with a gravitational reference. By “generally” it is intended to be so by design but may vary due to manufacturing tolerances or other sources of variation.
[00027] The 3D printing system 2 includes a 3D print engine 6 coupled to a controller 8. The controller 8 can include a single computer co-located with the print engine 6 or it can include two or more computers, some of which are physically separated from or even remotely located relative to the print engine 6. In the illustrated embodiment, controller 8 includes two controllers including a first controller 8A and a second controller 8B. The first controller 8A can be physically separated or even remotely located from the print engine 6. The second controller 8B is physically connected to or more closely associated with the print engine 6.
[00028] Controller 8 includes a processor (at least one CPU) coupled to an information storage device (at least one non-transient or non-volatile device).
The information storage device stores software modules that individually contain instructions. The information storage device can include one or more of non volatile or non-transient computer memory, flash memory, and disk drives. The controller 8 is configured to operate various portions of the print engine 6 when the processor executes the instructions. In the illustrated embodiment, the first controller 8A processes a virtual 3D body and produces cross-sectional “slices” that are used by the controller 8B to control the print engine 6.
[00029] The print engine 6 includes a build container 10 containing a motorized build platform 12. Motorized build platform 12 has an upper surface 14 and a mechanism (details not shown) for precisely vertically positioning build platform 12. The mechanism can include a mechanical drive such as a rack and pinion, lead screw, or other drive system. A lead screw drive system can includes a lead screw coupled to a fixed motor. The lead screw can be received into a threaded nut that is coupled to the build platform 12. Under command of the controller 8, the motor can turn the lead screw to vertically position the build platform 12.
[00030] Print engine 6 includes a coating apparatus 16 that is configured to form a uniform layer of material 18 such as metal powder over the motorized build platform 12. When a new uniform layer of material 18 is formed, an upper surface 20 of the new uniform layer of material 18 can be referred to as partly defining a “build plane 22”. A coating apparatus 16 can include a dispenser for dispensing the material 18 and a wiper blade for assuring a planar and uniform surface 20. Motion of the coating apparatus 16 during dispensing and wiping can be imparted by a motorized lead screw, a motorized belt, or other motorized movement mechanism. The dispensing apparatus can include a motorized roller or valve mechanism for metering controlled or sufficient amounts of the material 18 to assure uniformity of the new layer material 18.
[00031 ] Print engine 6 includes a beam forming unit 24 for forming and scanning one or more energy beams 26 over the build plane 22. Lateral scan limits of the beam forming unit 24 can define a lateral extent of the beam forming unit 24. In an illustrative embodiment, the beam forming unit includes a laser beam generator and two scanning mirrors including an X-mirror and a Y-mirror which provide motion of the laser beam across the build plane along the X and Y axes respectively.
[00032] The controller 8 is configured to operate portions of the print engine 6 to manufacture or fabricate the 3D article 4. The controller is configured to: (a) receive a data file defining 3D article 4, (b) process the data file to prepare it for operating print engine 6, (c), operate the motorized build platform to position an upper surface 14 or 20 proximate to build plane 22, (c) operate coating apparatus to apply a new layer of build material 18 to the upper surface 14 or 20, (d) operate the beam forming unit 24 to selectively harden the new layer of build material, and repeat (c)-(d) to complete manufacture or fabrication of article 4. [00033] FIG. 2 is a schematic diagram of the controller 8. More particularly, FIG. 2 is intended to illustrate software modules including software instructions that are stored and executed by one or more processors of the controller 8 to perform the operations of the software modules. In the illustrated embodiment, controller 8 includes a pre-processing controller 8A and a print engine controller 8B. The pre-processing controller 8A can be physically separated or even remotely located relative to the print engine 6. The print engine controller 8B can be partly or entirely co-located with or within print engine 6. In another embodiment, controller 8 can be one physically integrated unit. Other embodiments with other physical divisions between the software modules are possible.
[00034] Controller 8 receives a virtual 3D body 32 such as a CAD file that defines the 3D article 4 to be manufactured. A s eer module 34 receives and virtually and horizontally slices the 3D virtual body 32. This results in a file that defines virtual cross-sectional slices of the 3D virtual body 32. The virtual cross-sectional slices individually define one or more two dimensional boundaries and solid cross-sections of the 3D virtual body 32. For an individual slice, a two dimensional boundary defines an intersection between the horizontal slice and the solid body 32. The virtual cross-sectional slice also includes a representation of a solid cross-section portion of the slice.
[00035] The slices are sent to a vector generator module 36 (sometimes referred to as a hatcher module) that defines a series of linear scans that correspond to a solid portion of the slice. These scans are represented as linear vectors with endpoints defining a start and end of each vector. The result is a plurality of vector slices that individually have a plurality of vectors corresponding to energy beam 26 scans over the build plane 22.
[00036] The plurality of vector slices are sent to a speed correction module 38. Speed correction module 38 computes scan speed errors for individual vectors or groups of vectors. The speed correction module 38 corrects speed and/or temporal errors by moving or replacing endpoints of the vectors when one or more speed and/or temporal errors exceed a predetermined threshold. In the illustrated embodiment the speed correction module 38 is incorporated into the print engine controller 8B. Alternatively it can be incorporated as part of the pre processing module 8A.
[00037] The result is a plurality of corrected vector slices having corrected vectors which are sent to a scan driver module 40. The scan driver module 40 uses the corrected vector slices to operate the beam forming unit 24. An individual slice is used to selectively harden one new layer of deposited material 18. In the foregoing, a “slice” can be interpreted as data representing horizontal slice of the virtual 3D body 32 at any stage after one or more of the software modules 34-40.
[00038] FIG. 3A is an illustration of a very simple 3D virtual body 32 that is a right oval cylinder axially aligned with the vertical axis Z. The operation of the s eer module 34 is to define a vertical arrangement of horizontal virtual cross-sectional slices 42.
[00039] FIG. 3B is a schematic diagram of a virtual cross-sectional slice 42 defined by the sheer module 34. The virtual cross-sectional slice 42 includes data defining an outer boundary 44 and a solidified area 46 within the outer boundary 44.
[00040] FIG. 3C is a schematic diagram of a vector slice 48 defined by the vector generator module 36 acting upon the virtual cross-sectional slice 42 of FIG. 3B. The outer boundary 44 is now replaced by a contour 50 which includes a sequence of vectors 52 (only some shown) which are placed head-to-tail to define the contour 50. In some embodiments, a contour 50 can include two or more sequences of vectors 52 passing around the contour 50 two or more times to widen the contour 50. The vectors 52 of the contour 50 “trace around” the contour 50 to form the contour 50. The contour 50 surrounds the solidified area 46 and define the outer boundary 44.
[00041] The solidified area 46 is replaced with an area hatch pattern 54 of vectors 56 (only some shown). Adjacent vectors 56 can have opposing directions over the hatch pattern 54. In some embodiments, additional vectors may attach heads and tails of adjacent vectors 56 so that a laser stays on during the hatching process.
FIG. 3D is a schematic diagram of a corrected vector slice 49. The speed correction module 38 processes the vector slice 48 to provide a corrected vector slice 49. The corrected vector slice 49 differs from the vector slice 48 by having corrected locations of heads and tails of the vectors 52 and 56 to provide vectors 53 and 57 respectively. The speed corrected vectors 53 and 57 correspond to scans of the energy beam(s) 26 over the layer of powder 18.
[00042] FIG. 4A is a flowchart of an embodiment of an operational method 60 performed by controller 8. Controller 8 performs method 60 by executing software modules 34 and 36 of FIG. 2.
[00043] According to 62, controller 28 receives a 3D virtual body 32. According to 64, controller 28 executes module 36 to slice the 3D virtual body 32 into N virtual cross-sectional slices 42. According to 66, controller 28 executes module 26 to define scan vectors 52 and 56 having endpoints for the N individual slices. The result is N individual vector slices with vectors 52 and 56 that are not yet speed corrected.
[00044] FIG. 4B is a flowchart of an embodiment of an operational method 70 performed by controller 8 and more particularly by the print engine controller 30. Print engine controller 30 performs method 70 by executing software modules 38 and 40 of FIG. 2.
[00045] According to 72, controller 30 receives the aforementioned N vector slices 42 from the controller 28. According to 74, a slice (slice n of N) is processed to correct scan speed errors based upon a threshold condition. Step 74 results in a speed-corrected vector slice n. According to 76, the speed corrected vector slice is transferred to the laser scanner driver module. According to 78, the beam forming unit 24 is operated to selectively fuse a speed corrected vector slice n of the 3D article 4. As indicated, steps 72 to 78 are repeated to selectively fuse all N slices. [00046] As a note, there may be certain process steps missing from methods 60 and 70. For example, the data may be filtered to remove extraneous vectors. Also, as part of method 70, the controller 30 can operate the motorized build platform 12 to maintain a proper height of build plane 22 and operate the coating apparatus 16 to coat a new layer of material 18 for each slice n. For some embodiments, multiple layers of material can be applied between operations of the beam forming unit 24.
[00047] In another implementation the step 74 - the speed error correction - can be performed as part of method 60 rather than as part of method 70. Thus, the speed error corrections would have been incorporated into the vectors when the print engine controller 30 receives the slices. In yet other implementations, the division of the steps of methods 60 and 62 can be divided between different controllers in different ways.
[00048] FIG. 5 is a flowchart of a first embodiment of an operational method 80 performed by controller 8. Controller 8 performs method 80 by executing the software module 38 of FIG. 2. In particular, method 80 is a more detailed embodiment of step 74 of method 70 but for a single slice n.
[00049] According to 82, a slice n is received by software module 38. Slice n has M(n) vectors. As indicated M is a variable that depends upon n. According to 84, a speed for vector m (m varies from 1 to M) is measured.
[00050] To understand speed measurement, some parameters need to be defined. The beam forming module 24 has a default scan speed V, an actual scan speed v, a standard resolution step size AS, an actual step size As, and a temporal step size or time-based resolution DT. The temporal step size DT is fixed and does not vary. Thus, the scan speed varies according to v and equals step size As divided by temporal step size DT (v = As / DT). But when As equals AS, the scan speed equals the default scan speed V. Otherwise, the actual scan speed v is different than the default scan speed V. [00051 ] The vectors for the slice can have a length defining a non-integer number of steps AS. Thus, the vector can include a number of steps of length AS plus a shorter step of length As < AS. Because DT is fixed, the shorter step will be executed in time DT and will therefore have a lower scan velocity. The average velocity for the vector is found by dividing a total time for scanning the vector into the length of the vector. The total time for scanning the vector equals the actual number of steps times DT.
[00052] As stated earlier for step 84, the scan velocity v(m) is calculated or determined for vector m. According to 86, a determination is made as to whether v(m) is within a certain predetermined tolerance range of default scan speed V.
In one embodiment, a value of [V - v(m)] / V is computed which is a fractional velocity error. If v(m) is within the predetermined tolerance or fractional range of default V, then the process loops back to step 84.
[00053] If according to step 86, v(m) is not within the predetermined range, then point locations of the vector m are modified so that a length of vector m is closer to or equal to an integer number of lengths AS according to step 88. In an embodiment this is accomplished by lengthening the vector until the length is an integer times AS. Alternatively, this can be accomplished by shortening the vector until the length is an integer times AS. As indicated by FIG. 5, this process method is carried out for all M(n) vectors for slice n. As a result of this process, slice n will then have R(n) vectors which may equal M(n) or be larger or smaller.
[00054] FIGS. 5A-G are an illustrative example of a particular embodiment of method 80 of FIG. 5. Step 82 of method 80 is represented by FIG 5A. The loaded slice n is represented by the points P1-P6 which are sequential endpoints of move vectors of the scanning laser (e.g., laser plus motorized X-mirror and motorized Y-mirror). Thus, M(n) in this example equals 5. The first move vector is from P1 to P2. The second move vector is from P2 to P3 and this continues to the fifth move vector from P5 to P6. Without the speed correction module, there would be velocity errors as explained above. The dashed line of the sequence from P1 to P6 can be referred to as the “uncorrected contour” 83 which is not yet speed corrected.
[00055] FIGS. 5A and 5B illustrate steps for m=1. According to 84, the velocity of movement over the first segment (P1 to P2) is computed. According to 86, the measured velocity v is found to be out of tolerance. According to 88, point locations are modified and this is illustrated in FIG. 5B. A circle of radius AS is placed upon point P1 and an intersection Q2 to the overall path (dashed line) is determined. This becomes a new second point Q2 to “replace” P2.
[00056] The method 80 now loops back to step 84 and m indexes to m=2. The speed is now computed for the segment between Q2 and P3 (the next point on the original contour 83) and is found to be out of tolerance according to 86. For m=2, the point locations are again modified as shown in FIG. 5C.
[00057] Method 80 continues for m=3 (FIGS. 5C/5D), m=4 (FIGS. 5D/5E) and m=5 (FIGS. 5E/5F). For the very last segment (Q6 to Q7) - in this illustrated embodiment - the segment is a non-integer multiple of the standard resolution step size AS because Q7 is coincident with the point P6.
[00058] In summary: Element 83 in FIG. 5A refers to the uncorrected contour defined by the initial points P1 to P6 before method 80 is performed. Element 89 in FIG. 5G refers to the speed corrected contour defined by points Q1 to Q7 after method 80 is performed. Thus, points P1-P6 of FIG. 5A illustrate the uncorrected slice and points Q1-Q7 of FIG. 5G illustrate the speed corrected slice. In the illustrated uncorrected slice of FIG. 5A, M(n) = 5. In the speed-corrected slice of FIG. 5G, R(n) = 6. In other words, the speed correction has resulted in an added endpoint to the sequence of endpoints.
[00059] FIG. 6 is a flowchart of a second embodiment of an operational method 90 performed by controller 8 and more particularly by the print engine controller 30. Print engine controller 30 performs method 80 by executing the software module 38 of FIG. 2. In particular, method 90 is a more detailed embodiment of step 74 of method 70 but for a single slice n. Method 90 differs from method 80 in that ab average value for v(m) is computed and responded to for groups of P vectors rather than one vector at a time. P can equal 2 or more.
[00060] According to 92, a slice n is received by software module 38. Module 38 has M(n) vectors. As indicated M is a variable that depends upon n. According to 94, a scan speed is measured for the groups of P segments. For example, groups of two segments at a time can be measured. Step 94 is carried out for all segments. If there is a remainder of segments, this process can be carried out for the remainder as well. The measurement method is similar to that of measuring one segment, except that the computation is to compute the length sum of the segments divided by the total time for the segments.
[00061 ] According to 96, a determination is made as to which groups of vectors are out of tolerance - which groups of P segments have a velocity percentage error that is above a predetermined threshold.
[00062] According to 98, point locations are modified for any groups of vectors that are out of tolerance. For example, this can be accomplished by moving a connecting point between two segments so that the individual lengths of the segments are individually closer to an integer number of the distance AS.
[00063] In a third embodiment, step 74 of method 70 can utilize both method 70 and 80. The specific embodiments and applications thereof described above are for illustrative purposes only and do not preclude modifications and variations encompassed by the scope of the following claims.

Claims

What is claimed:
1. A three-dimensional (3D) printing system comprising: a print engine including: a motorized build platform; a coating apparatus for forming a uniform layer of build material over the build platform; and a beam forming unit configured to scan an energy beam over the build plane that is above the build platform; and a controller configured to perform the following steps:
(a) receiving a virtual 3D body;
(b) processing the 3D body to define a plurality of N slices, the N slices individually representing intersections of the 3D body with the slice;
(c) processing the N slices to represent solid portions of the 3D body with vectors, the vectors defining contours and hatching patterns, the vectors individually are bounded by two endpoints;
(d) for the individual slices, analyzing a scan speed error for one or more of the plurality of vectors;
(e) for the individual slices, replacing some of the endpoints when the scan speed error exceeds a predetermined threshold to provide a speed corrected slice; and
(f) operating the print engine to fabricate a three-dimensional article in a layer-by- layer manner using the speed corrected slices.
2. The three-dimensional (3D) printing system of claim 1 wherein the controller includes at least two separate controllers including a pre-processing controller and a print engine controller, the two separate controllers are physically separated from each other.
3. The three-dimensional (3D) printing system of claim 1 wherein steps (d) and (e) include, for individual vectors of the plurality of vectors: computing an average scan speed for the vector; comparing the average scan speed with a default scan speed to determine the scan speed error; and if the scan speed error is larger than the predetermined threshold, then moving an endpoint of the vector to reduce or eliminate the scan speed error.
4. The three-dimensional (3D) printing system of claim 3 wherein the controller defines a relationship DT * V = AS, DT equals a temporal step size for the beam forming unit, AS equals a dimensional step size for the beam forming unit, and V = the default scan speed, moving the endpoint of the vector changes the length of the vector to more closely approximate an integer number times AS.
5. The three-dimensional (3D) printing system of claim 1 wherein steps (d) and (e) include, for a sequence of two or more individual vectors of the plurality of vectors: computing an average scan speed for the sequence of two or more vectors; comparing the average scan speed with a default scan speed to determine the scan speed error; and if the scan speed error is larger than the predetermined threshold, then moving one or more endpoints of the two or more vectors to reduce or eliminate the scan speed error.
6. The three-dimensional (3D) printing system of claim 1 wherein the controller is configured to: operate the motorized build platform to position an upper surface of the motorized build platform or build material proximate to the build plane; operate the coating apparatus to form a new layer of the build material over the upper surface of the motorized build platform or build material; and utilize the speed corrected slice to operate the beam forming unit to selectively solidify the new layer of build material.
7. A method of manufacturing a 3D article comprising: providing a 3D printing system including: a print engine including: a motorized build platform; a coating apparatus for forming a uniform layer of build material over the build platform; and a beam forming unit configured to scan an energy beam over the build plane that is above the build platform; and
(a) receiving a virtual 3D body;
(b) processing the 3D body to define a plurality of N slices, the N slices individually representing intersections of the 3D body with the slice;
(c) processing the N slices to represent solid portions of the 3D body with vectors individually bounded by endpoints;
(d) for the individual slices, analyzing a scan speed error for one or more of the plurality of vectors;
(e) for the individual slices, replacing some of the endpoints when the scan speed error exceeds a predetermined threshold to provide a speed corrected slice; and operating the print engine to fabricate a three-dimensional article in a layer-by-layer manner using the speed corrected slices.
8. The method of claim 7 wherein the 3D printing system includes a controller which further includes at least two separate controllers including a pre-processing controller and a print engine controller that are physically separated from one another.
9. The method of claim 7 wherein steps (d) and (e) include, for individual vectors of the plurality of vectors: computing an average scan speed for the vector; comparing the average scan speed with a default scan speed to determine the scan speed error; and if the scan speed error is larger than the predetermined threshold, then move an endpoint of the vector to reduce or eliminate the scan speed error.
10. The method of claim 9 further including defining the relationship DT * V = AS, DT equals a temporal step size for the beam forming unit, AS equals a dimensional step size for the beam forming unit, and V = the default scan speed, moving the endpoint of the vector changes the length of the vector to more closely approximate an integer number times AS.
11. The method of claim 7 wherein steps (d) and (e) include, for a sequence of two or more individual vectors of the plurality of vectors: computing an average scan speed for the sequence of two or more vectors; comparing the average scan speed with a default scan speed to determine the scan speed error; and if the scan speed error is larger than the predetermined threshold, then moving one or more endpoints of the two or more vectors to reduce or eliminate the scan speed error.
12. The method of claim 7 further including: operating the motorized build platform to position an upper surface of the motorized build platform or build material proximate to the build plane; operating the coating apparatus to form a new layer of the build material over the upper surface of the motorized build platform or build material; and utilizing the speed corrected slice to operate the beam forming unit to selectively solidify the new layer of build material.
13. A non-transient storage medium storing software instructions for controlling a 3D printing system, the 3D printing system includes: a print engine including: a motorized build platform; a coating apparatus for forming a uniform layer of build material over the build platform; and a beam forming unit configured to scan an energy beam over the build plane that is above the build platform; wherein when executed by a processor, the software instructions perform the following steps:
(a) receiving a virtual 3D body;
(b) processing the 3D body to define a plurality of N slices, the N slices individually representing intersections of the 3D body with the slice;
(c) processing the N slices to represent solid portions of the 3D body with vectors, the vectors defining contours and hatching patterns, the vectors individually are bounded by two endpoints;
(d) for the individual slices, analyzing a scan speed error for one or more of the plurality of vectors;
(e) for the individual slices, replacing some of the endpoints when the scan speed error exceeds a predetermined threshold to provide a speed corrected slice; and
(f) operating the print engine to fabricate a three-dimensional article in a layer-by- layer manner using the speed corrected slices.
14. The non-transient storage medium of claim 13 wherein the 3D printing system includes two controllers including a pre-processing controller and a print engine controller that are physically separated from one another.
15. The non-transient storage medium of claim 13 wherein steps (d) and (e) include, for individual vectors of the plurality of vectors: computing an average scan speed for the vector; comparing the average scan speed with a default scan speed to determine the scan speed error; and if the scan speed error is larger than the predetermined threshold, then moving an endpoint of the vector to reduce or eliminate the scan speed error.
16. The non-transient storage medium of claim 15 wherein the steps further include defining a relationship DT * V = AS, DT equals a temporal step size for the beam forming unit, AS equals a dimensional step size for the beam forming unit, and v = the default scan speed, moving the endpoint of the vector changes the length of the vector to more closely approximate an integer number times AS.
17. The non-transient storage medium of claim 13 wherein steps (d) and (e) include, for a sequence of two or more individual vectors of the plurality of vectors: computing an average scan speed for the sequence of two or more vectors; comparing the average scan speed with a default scan speed to determine the scan speed error; and if the scan speed error is larger than the predetermined threshold, then moving one or more endpoints of the two or more vectors to reduce or eliminate the scan speed error.
18. The non-transient storage medium of claim 13 wherein the steps include: operating the motorized build platform to position an upper surface of the motorized build platform or build material proximate to the build plane; operating the coating apparatus to form a new layer of the build material over the uppers surface of the motorized build platform or build material; and utilizing the speed corrected slice to operate the beam forming unit to selectively solidify the new layer of build material.
PCT/US2022/032758 2021-06-25 2022-06-09 Three dimensional printing system with speed optimized vector processing system WO2022271452A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP22741085.9A EP4359873A1 (en) 2021-06-25 2022-06-09 Three dimensional printing system with speed optimized vector processing system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202163215155P 2021-06-25 2021-06-25
US63/215,155 2021-06-25

Publications (1)

Publication Number Publication Date
WO2022271452A1 true WO2022271452A1 (en) 2022-12-29

Family

ID=82492750

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2022/032758 WO2022271452A1 (en) 2021-06-25 2022-06-09 Three dimensional printing system with speed optimized vector processing system

Country Status (2)

Country Link
EP (1) EP4359873A1 (en)
WO (1) WO2022271452A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1033229A2 (en) * 1999-02-08 2000-09-06 3D Systems, Inc. Stereolithographic method and apparatus with control to vary prescribed stimulation
EP1705616A1 (en) * 2005-03-22 2006-09-27 3D Systems, Inc. Laser scanning and power control in a rapid prototyping system
DE102018132441A1 (en) * 2018-12-17 2020-06-18 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Process for processing a surface with energetic radiation
US20210178697A1 (en) * 2019-12-17 2021-06-17 Northrop Grumman Systems Corporation Machine-learning-based additive manufacturing using manufacturing data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1033229A2 (en) * 1999-02-08 2000-09-06 3D Systems, Inc. Stereolithographic method and apparatus with control to vary prescribed stimulation
EP1705616A1 (en) * 2005-03-22 2006-09-27 3D Systems, Inc. Laser scanning and power control in a rapid prototyping system
DE102018132441A1 (en) * 2018-12-17 2020-06-18 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Process for processing a surface with energetic radiation
US20210178697A1 (en) * 2019-12-17 2021-06-17 Northrop Grumman Systems Corporation Machine-learning-based additive manufacturing using manufacturing data

Also Published As

Publication number Publication date
EP4359873A1 (en) 2024-05-01

Similar Documents

Publication Publication Date Title
US20220314553A1 (en) Three Dimensional Printing System with Speed Optimized Vector Processing System
US11347908B2 (en) Intelligent additive manufacturing
US7369915B2 (en) Device, system and method for accurate printing of three dimensional objects
US10994490B1 (en) Calibration for additive manufacturing by compensating for geometric misalignments and distortions between components of a 3D printer
US6405095B1 (en) Rapid prototyping and tooling system
US8983643B2 (en) Method for generating and building support structures with deposition-based digital manufacturing systems
US20200238601A1 (en) 3d-printed shaped parts made from more than one silicone material
US20210107231A1 (en) Method and system for additive manufacturing
CN107529489A (en) Untouched control for the layering of three dimensional object printing
JP2019177494A (en) Control system, molding system, and program
Rebaioli et al. Process parameters tuning and online re-slicing for robotized additive manufacturing of big plastic objects
CN113601833A (en) FDM three-dimensional printing control system
US20240126942A1 (en) Machine Learning for Additive Manufacturing
KR20210039291A (en) Method and system for operating a metal drop ejecting three-dimensional(3d) object printer to compensate for drop size variations
WO2022271452A1 (en) Three dimensional printing system with speed optimized vector processing system
US20200001529A1 (en) Fabrication prediction system, fabrication system, information processing apparatus, and fabrication prediction method
JP2018065366A (en) A method for setting the scan trajectory range of a 3d printer by using a laser
US20230022029A1 (en) Three-Dimensional Printing System with Enhanced Flat Field Correction Unit
EP4035804A1 (en) System and method for improved infilling of part interiors in objects formed by additive manufacturing systems
CN115891174A (en) Three-dimensional visual temperature control 3D printing method and 3D printer
Luo et al. Path planning and control of functionally graded materials for rapid tooling
CN112166025A (en) Three-dimensional object production
CN116175976B (en) 3D printing data processing method, system, electronic equipment and storage medium
CN114054776B (en) Machine learning device
US11697129B2 (en) Control device and non-transitory computer readable recording medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22741085

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2023577385

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2022741085

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2022741085

Country of ref document: EP

Effective date: 20240125