WO2013039827A1 - Solid identification grid engine for calculating support material volumes, and methods of use - Google Patents

Solid identification grid engine for calculating support material volumes, and methods of use Download PDF

Info

Publication number
WO2013039827A1
WO2013039827A1 PCT/US2012/054421 US2012054421W WO2013039827A1 WO 2013039827 A1 WO2013039827 A1 WO 2013039827A1 US 2012054421 W US2012054421 W US 2012054421W WO 2013039827 A1 WO2013039827 A1 WO 2013039827A1
Authority
WO
WIPO (PCT)
Prior art keywords
cell
computer
cells
support material
axis
Prior art date
Application number
PCT/US2012/054421
Other languages
French (fr)
Inventor
Ziad A. NEHME
Amer E. MOUAWAD
Original Assignee
Stratasys, Inc.
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 Stratasys, Inc. filed Critical Stratasys, Inc.
Priority to EP12775869.6A priority Critical patent/EP2755814B1/en
Publication of WO2013039827A1 publication Critical patent/WO2013039827A1/en

Links

Classifications

    • 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
    • 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/40Structures for supporting 3D objects during manufacture and intended to be sacrificed after completion thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • 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

Definitions

  • the present disclosure relates to additive manufacturing processes for printing three-dimensional (3D) parts and support structures.
  • the present disclosure relates to processes for calculating support material volumes for use in printing 3D parts and support structures with additive manufacturing techniques.
  • Additive manufacturing systems are used to print or otherwise build 3D parts from digital representations of the 3D parts (e.g., AMF and STL format files) using one or more additive manufacturing techniques.
  • additive manufacturing techniques include extrusion-based techniques, jetting, selective laser sintering, powder/binder jetting, electron-beam melting, and stereolithographic processes.
  • the digital representation of the 3D part is initially sliced into multiple horizontal layers.
  • a tool path is then generated, which provides instructions for the particular additive manufacturing system to print the given layer.
  • a 3D part may be printed from a digital representation of the 3D part in a layer-by-layer manner by extruding a flowable part material.
  • the part material is extruded through an extrusion tip carried by a print head of the system, and is deposited as a sequence of roads on a substrate in an x-y plane.
  • the extruded part material fuses to previously deposited part material, and solidifies upon a drop in temperature.
  • the position of the print head relative to the substrate is then incremented along a z-axis (perpendicular to the x-y plane), and the process is then repeated to form a 3D part resembling the digital representation.
  • a support structure may be built utilizing the same deposition techniques by which the part material is deposited.
  • the host computer generates additional geometry acting as a support structure for the overhanging or free-space segments of the 3D part being formed.
  • Support material is then deposited from a second nozzle pursuant to the generated geometry during the printing process. The support material adheres to the part material during fabrication, and is removable from the completed 3D part when the printing process is complete.
  • An aspect of the present disclosure is directed to a method for calculating a support material volume with a computer-based system.
  • the method includes providing a tree data structure for a digital part, and generating a grid of cells for the tree data structure with the computer-based system, where the cells define a plurality of cell arrays.
  • the method also includes pinging the cells of one of the cell arrays until a cell containing a subset of the tree data structure is reached or until each cell in the cell array is pinged, where if a cell containing the subset of the tree data structure is reached, then designating the reached cell and all remaining unpinged cells in the cell array as filled.
  • the method further includes repeating the pinging step for each remaining cell array to determine a total filled volume, and subtracting a volume of the digital part from the total filled volume to determine a support material volume.
  • Another aspect of the present disclosure is directed to a method for manipulating a digital part with a computer-based system for use in an additive manufacturing process.
  • the method includes (a) providing a grid of cells for a tree data structure of a digital part, where the cells are organized in cell arrays along a plurality of directional axes.
  • the method also includes (b) selecting a first directional axis of the plurality of directional axes, (c) for each cell array along the first directional axis, pinging the cells of the cell array until a cell containing a subset of the tree data structure is reached, and (c) designating the reached cell and all remaining unpinged cells in the cell array as filled.
  • the method further includes (d) repeating the steps (c) and (d) for each cell array along the remaining directional axes of the plurality of directional axes to determine a total filled volume for each of the plurality of directional axes, (e) subtracting a volume of the digital part from the total filled volume for each of the plurality of directional axes to determine a support material volume for each of the plurality of directional axes, and (h) identifying the directional axis having the lowest determined support material volume.
  • the price quoting method includes providing a tree data structure for a digital part to be printed with the additive manufacturing process, and generating a grid of cells for the tree data structure with a computer-based system, where the cells of the grid define a plurality of cell arrays. For each cell array, the method also includes pinging the cells with the computer-based system until a cell containing a subset of the tree data structure is reached or until an end cell of the cell array is pinged.
  • the method further includes designating all pinged cells containing subsets of the tree data structure and all unpinged cells as filled with the computer-based system, summing volumes of the designated filled cells with the computer-based system to provide a total filled volume, subtracting a volume of the digital part from the total filled volume with the computer-based system to determine a support material volume, and generating a price quote based at least in part on the determined support material volume.
  • FIG. 1 is a front schematic illustration of an additive manufacturing system in use with computer-based systems for printing 3D parts and support structures.
  • FIG. 2A is a schematic illustration of the computer-based systems, illustrating a first embodiment in which a Solid Identification Grid engine of the present disclosure is retained on a server.
  • FIG. 2B is a schematic illustration of the computer-based systems, illustrating a second embodiment in which a Solid Identification Grid engine of the present disclosure is retained on a remote computer.
  • FIG. 3 is a flow diagram of a method for using the Solid Identification Grid engine.
  • FIG. 4 is a flow diagram of a method of calculating a support material volume using the Solid Identification Grid engine.
  • FIG. 5 is a perspective view of a generated grid of cells using the Solid
  • FIG. 6 is a perspective view of the generated grid of cells, illustrating a first set of cell arrays based on a first directional axis that is a positive direction along a z-axis.
  • FIGS. 7A-7D illustrate a process for analyzing the first set of cell arrays, where FIG. 7D illustrates an alternative process when supporting lateral surfaces of a 3D part.
  • FIG. 8 is a right side view of the grid of cells, depicting the first set of analyzed cell arrays.
  • FIG. 9 is a right side view of the grid of cells, depicting a second set of analyzed cell arrays based on a second directional axis that is a negative direction along the z-axis.
  • FIG. 10 is a perspective view of the generated grid of cells, illustrating a third set of cell arrays based on a third directional axis that is a positive direction along a y- axis.
  • FIG. 11 is a front view of the grid of cells, depicting the third set of analyzed cell arrays.
  • FIG. 12 is a front view of the grid of cells, depicting a fourth set of analyzed cell arrays based on a fourth directional axis that is a negative direction along the y-axis.
  • FIG. 13 is a perspective view of the generated grid of cells, illustrating a fifth set of cell arrays based on a fifth directional axis that is a positive direction along an x-axis.
  • FIG. 14 is a front view of the grid of cells, depicting the fifth set of analyzed cell arrays.
  • FIG. 15 is a front view of the grid of cells, depicting a sixth set of analyzed cell arrays based on a sixth directional axis that is a negative direction along the x-axis.
  • FIG. 16 is a front view of an oriented digital part with digital support layers, illustrating a slicing embodiment of the Solid Identification Grid engine.
  • FIG. 17A is an alternative schematic illustration of the computer-based systems shown in FIG. 2A, illustrating the computer-based systems in use with a farm of additive manufacturing systems and a scheduling program.
  • FIG. 17B is an alternative schematic illustration of the computer-based systems shown in FIG. 2B, illustrating the computer-based systems in use with a farm of additive manufacturing systems and a scheduling program.
  • the present disclosure is directed to a computer-implemented program, referred to as a Solid Identification Grid (SIG) engine, that quickly calculates the volume of support material needed to print or otherwise build a 3D part using an additive manufacturing system.
  • SIG Solid Identification Grid
  • the following discussion of the SIG engine is made in conjunction with a price quoting program that allows a user to request an online price quote for printing a 3D part.
  • a developer may create a digital part (i.e., a digital representation of a 3D part) that he or she wishes to have printed as a physical 3D part by a manufacturer, such as by the on-demand service unit "REDEYE" of Stratasys, Inc., Eden Prairie, MN.
  • the developer may access the manufacturer's price quoting program, which analyzes the developer's digital part and sends back a price quote for printing the physical 3D part.
  • the price quote is based on numerous factors, including the volumes of part and support materials required to print the 3D part.
  • the required volume of part material is typically available based on the volume and geometry of the analyzed digital part. As such, the price quoting program can quickly determine the required part material volume, and its related cost.
  • the volume of support material is more difficult to establish because the analyzed digital part does not include the support structure. Rather, layers of the support structure are typically generated at a later point in the process, during which the digital part is sliced into horizontal layers and tool paths are generated. As such, during the price quoting step, it is difficult to quickly establish the volume of support material needed to print the 3D part, and hence, its related cost.
  • the SIG engine of the present disclosure is suitable for quickly calculating support material volumes need to print 3D parts.
  • the SIG engine utilizes a collision detection technique to identify the geometry of a digital part. Based on the identified geometry, and the known volume of the digital part, the SIG engine can quickly calculate the volume of support material that will be necessary to print a support structure in coordination with the 3D part.
  • the SIG engine is particularly suitable in combination with a price quoting program to provide instant price quotes.
  • the SIG engine may also be used in conjunction with a variety of additional processes, such as tool-path generation processes, run-time and scheduling determinations, and the like.
  • FTG. 1 illustrates system 10 in use with computer 12, server 14, and host computer 16, which depicts a suitable arrangement for implementing the SIG engine of the present disclosure in conjunction with a price quoting program.
  • System 10 is an additive manufacturing system for printing or otherwise building 3D parts and support structures in a layer-by-layer manner.
  • system 10 examples include extrusion-based additive manufacturing systems, such as those commercially available by Stratasys, Inc., Eden Prairie, MN under the trademarks "FUSED DEPOSITION MODELING” and "FDM".
  • system 10 may be any suitable additive manufacturing system that prints or otherwise builds 3D parts in a layer-by-layer manner, and that relies on one or more materials to support overhanging and/or lateral surfaces of the 3D parts, such as jetting systems, selective laser sintering systems, powder/binder jetting systems, electron-beam melting systems, stereolithography systems, and the like.
  • System 10 includes build chamber 18, z-axis gantry 19, platen 20, x-y-axis gantry 22, print head 24, and supply sources 26 and 28.
  • System 10 also includes controller 30, which is one or more processor-based controllers configured to control the operation of the components of system 10.
  • Build chamber 18 is an enclosable environment that contains platen 20 for printing a 3D part or model (referred to as 3D part 32) and a corresponding support structure (referred to as support structure 34) with part and support materials (e.g., thermoplastic materials).
  • Build chamber 18 is desirably heated to reduce the rate at which the part and support materials solidify after being extruded and deposited (e.g., to reduce distortions and curling).
  • build chamber 18 may be omitted and/or replaced with different types of build environments.
  • 3D part 32 and support structure 34 may be printed in a build environment that is open to ambient conditions or may be enclosed with alternative structures (e.g., flexible curtains).
  • the build environment may also be heatable in a variety of manners (e.g., with heated circulating air, heat lamps, and the like).
  • Z-axis gantry 19 is a vertical gantry assembly configured to move platen 20 along the vertical z-axis based on instructions provided from controller 30.
  • Platen 20 is a platform on which 3D part 32 and support structure 34 are printed in a layer-by-layer manner.
  • X-y-axis gantry 22 is a guide rail assembly that is configured to move print head 24 in a horizontal x-y plane based on instructions provided from controller 30.
  • the horizontal x-y plane is a plane defined by an x-axis and a y-axis (not shown in FIG. 1), where the x-axis, the y-axis, and the z-axis are orthogonal to each other in a Cartesian coordinate system.
  • platen 20 may be configured to move in the horizontal x-y plane within build chamber 18, and print head 24 may be configured to move along the z-axis.
  • Other similar arrangements may also be used such that one or both of platen 20 and print head 24 are moveable relative to each other.
  • system 10 may be configured to print 3D part 32 and support structure 34 using different coordinate systems (e.g., a polar coordinate system, an oblique coordinate system, and the like).
  • Print head 24 is supported by x-y-axis gantry 22 for printing 3D part 32 and support structure 34 on platen 20 in a layer-by-layer manner, based on instructions provided from controller 30.
  • print head 24 is a dual-tip extrusion head configured to deposit part and support materials from supply source 26 and supply source 28, respectively.
  • suitable extrusion heads for print head 24 include those disclosed in Crump et al., U.S. Patent No. 5,503,785; Swanson et al., U.S. Patent No. 6,004,124; LaBossiere, et al., U.S. Patent No. 7,604,470; Leavitt, U.S. Patent No.
  • print head 24 may function as a multiple- stage screw pump, as disclosed in Batchelder et al., U.S. Patent No. 5,764,521; and Skubic et al., U.S. Patent No. 7,891,964.
  • system 10 may include a plurality of print heads 24 for depositing part and/or support materials from one or more tips.
  • the part material is supplied to print head 24 from supply source 26 via feed line 36, thereby allowing print head 24 to deposit the part material to print 3D part 32.
  • the support material is supplied to print head 24 from supply source 28 via feed line 38, thereby allowing print head 24 to deposit the support material to print support structure 34.
  • the part and support materials may be provided to system 10 in a variety of different media. Commonly, the materials may be supplied in the forms of continuous filaments.
  • the part and support materials may be provided as continuous filament strands fed respectively from supply sources 26 and 28, as disclosed in Swanson et al., U.S. Patent No. 6,923,634; Comb et al., U.S. Patent No. 7,122,246; Taatjes et al, U.S. Patent Application Publication Nos. 2010/0096485 and 2010/0096489; and Swanson et al., U.S. Patent Application Publication No. 2010/0283172.
  • suitable average diameters for the filament strands of the modeling and support materials range from about 1.27 millimeters (about 0.050 inches) to about 3.0 millimeters (about 0.120 inches).
  • the part and support materials may exhibit non-cylindrical filament geometries, such as rectangular geometries. Examples of suitable dimensions for the exhibit non-cylindrical filament geometries include those disclosed in Batchelder et al., U.S. Patent Application Publication No. 2011,0076496.
  • the part and support materials may be provided as other forms of media (e.g., pellets, slugs, and resins) from other types of storage and delivery components (e.g., supply hoppers and vessels).
  • print head 24 deposits the received part and support materials onto platen 20 to print 3D part 32 and support structure 34 in a layer-by- layer manner based on instructions from controller 30.
  • Support structure 34 is desirably deposited to provide vertical support along the z-axis for overhanging regions of the layers of 3D part 32, and, optionally, to provide lateral support to various surfaces of 3D part 32. The use of support structure 34 thereby allows 3D part 32 to be built with a variety of geometries.
  • the resulting 3D part 32/support structure 34 may be removed from build chamber 18. Support structure 34 may then be removed from 3D part 32, and 3D part 32 may undergo one or more post-printing operations (e.g., vapor smoothing and media blasting).
  • post-printing operations e.g., vapor smoothing and media blasting.
  • support structures e.g., support structure 34
  • 3D parts e.g., 3D part 32
  • the cost to print 3D part 32 is dependent on the volume of support material needed to print support structure 34 in a manner that sufficiently supports the layers of 3D part 32.
  • a price quoting program implemented by computer 12 and/or server 14 needs to account for this required support material volume when generating price quotes.
  • Computer 12, server 14, and host computer 16 are each one or more computer-based systems configured to communicate with each other and/or system 10.
  • Computer 12 may be any suitable computer-based system (e.g., a personal computer, laptop computer, server-based system, mobile device, computer tablet device, and the like), and is configured to communicate with server 14 over one or more network communication lines (referred to collectively as network line 40).
  • Server 14 may be managed by a manufacturer that operates system 10, and is configured to run a price quoting program that is accessible by multiple computers over network line 40. For example, a user of computer 12 may communicate with server 14 over network line 40 to generate online price quotes for printing 3D parts, such as 3D part 32. Server 14 is also configured to communicate with host computer 16 over one or more communication lines (referred to collectively as communication line 42). Host computer 16 may also be managed by the manufacturer that operates system 10, and is configured to communicate with system 10 over one or more communication lines (referred to collectively as communication line 44) for printing 3D parts and support structures (e.g., 3D part 32 and support structure 34).
  • communication line 42 referred to collectively as communication line 42
  • Host computer 16 may also be managed by the manufacturer that operates system 10, and is configured to communicate with system 10 over one or more communication lines (referred to collectively as communication line 44) for printing 3D parts and support structures (e.g., 3D part 32 and support structure 34).
  • a user may retain a digital representation (e.g., an AMF or STL format file) of 3D part 32, referred to as digital part 46, on one or more data storage devices of computer 12.
  • the manufacturer may correspondingly retain price quoting program 48 and SIG engine 50 on one or more data storage devices of server 14.
  • Price quoting program 48 is a computer-implement program accessible over the Internet that generates price quotes for printing 3D parts with system 10 or other additive manufacturing systems.
  • SIG engine 50 is the computer-implemented program of the present disclosure, which calculates the volumes of support material that are needed to print the 3D parts, as discussed below, and operates in conjunction with price quoting program 48.
  • the user of computer 12 may access price quoting program 48 over network line 40.
  • the user of computer 12 also sends a copy of digital part 46 and any related specifications (e.g., part materials, dimensions, user-selected options, and the like) over network line 40 to server 14.
  • the volume of support material needed to print 3D part 32 depends on the orientation of digital part 46 in the x-y-z coordinate system (or other coordinate system).
  • price quoting program 48 may include menu 52 of user-selectable options, where the user-selectable options can affect the orientation of digital part 46 during the printing operation.
  • menu 52 may include options such as (i) optimizing the price quote by orienting digital part 46 in a manner that minimizes the required volume of support material, (ii) preserving the orientation of digital part 46, and (iii) orienting digital part 46 to minimize the z-axis height of 3D part 32.
  • menu 52 (or other interface) may also include additional user-selectable options.
  • option (i) allows SIG engine 50 to orient digital part 46 in any manner needed to minimize the amount of support material required to print 3D part 32.
  • SIG engine 50 can calculate the needed support material volume along multiple directional axes of digital part 46 to attain the directional axis that provides the lowest amount of required support material.
  • options (ii) and (iii) limit the extent that digital part 46 can be reoriented from its initial orientation. As such, these two options may not necessary result in the lowest amount of support material, and consequentially, the lowest price quote. However, in many situations, users may prefer the 3D parts to be printed in particular orientations regardless of the cost effects, such as to preserve the strengths and/or aesthetic qualities of the 3D parts along particular surfaces.
  • price quoting program 48 may include menu 53, which allows the user to select which additive manufacturing process to use to print or otherwise build 3D part 32. As discussed below, the various types of additive manufacturing processes may require different volumes of support material to print or otherwise build 3D parts.
  • extrusion-based additive manufacturing systems typically only require support material to be placed below the part materials layers.
  • jetting systems require support materials to also be used to support lateral surfaces of the 3D parts.
  • powder-based additive manufacturing systems may recycle portions of the non-bound powders, thereby reducing the overall consumed volume of the support material.
  • SIG engine 50 may be configured to calculate the support material volumes differently depending on the additive manufacturing process selected with menu 53.
  • SIG engine 50 may extract information from price quoting program 48 (e.g., the user-selected options from menus 52 and 53), and may analyze the received digital part 46 to calculate the volume of support material required to print 3D part 32, as discussed below. SIG engine 50 may then output the calculated support material volume to price quoting program 48, allowing price quoting program 48 to generate a price quote for printing 3D part 32 with system 10. SIG engine 50 may also export a new digital part (referred to as new digital part 46a) to server 14, where the new digital part 46a is the reoriented digital part 46. Server 14 may then send the generated price quote and the new digital part 46a back to computer 12 over network line 40.
  • new digital part 46a a new digital part
  • server 14 may then send the new digital part 46a to host computer 16 over communication line 42.
  • Host computer 16 may then slice digital part 46a into multiple horizontal layers, and generate digital support layers for support structure 34.
  • Host computer 16 may also generate tool-path instructions and other related information for each layer of digital part 46a and the digital support layers, and the resulting data may be transmitted to system 10 over communication line 44.
  • System 10 may then print 3D part 32 and support structure 34 based on the received data, where the volume of support material consumed to print support structure 34 corresponds to the volume of support material calculated by SIG engine 50.
  • FIG. 2B illustrates an alternative embodiment in which SIG engine 50 is retained on computer 12.
  • the user of computer 12 may install or otherwise copy an executable file of SIG engine 50 from server 14 (e.g., as a plug-in, widget, application, or the like).
  • server 14 e.g., as a plug-in, widget, application, or the like.
  • the user of remote computer 14 may access price quoting program 48 over network line 40.
  • digital part 46 is not immediately transmitted to server 14.
  • SIG engine 50 analyzes digital part 46 on computer 12 to calculate the volume of support material required to print 3D part 32. SIG engine 50 may then output the calculated support material volume to price quoting program 48 on server 14 over network line 40. SIG engine 50 may also export the new digital part 46a to computer 12. Upon receipt of the calculated support material volume, price quoting program 48 may generate a price quote for printing 3D part 32 from digital part 46a. Server 14 then sends the generated price quote back to computer 12 over network line 40.
  • Retaining SIG engine 50 on computer 12 provides several advantages over having it retained on server 14.
  • digital part 46 is not required to be transmitted to sever 14 to attain price quotes, which can speed up the price quoting operation by eliminating this transfer step.
  • leaving digital part 46 on computer 12 during the price quote operation also allows the user of computer 12 to check price quotes on digital part 46 without apprehension of having a copy of digital part 46 being saved at a separate location outside of his or her control until he or she accepts the price quote.
  • Server 14 may then send the copy of digital part 46a to host computer 16 over communication line 42.
  • Host computer 16 and system 10 may then be used to print 3D part 32 and support structure 34, as discussed above.
  • price quote engine 48 may also function as a downloadable program that resides on computer 12, and communicates with server 14 over network line 40.
  • FIG. 3 illustrates a suitable method (referred to as method 54) for implementing SIG engine 50 with a computer-based system (e.g., computer 12 and/or server 14).
  • a computer-based system e.g., computer 12 and/or server 14
  • the following discussion of method 54 is made with reference to system 10, computer 12, 3D part 32, support structure 34, and digital part 46.
  • the operation of SIG engine 50 pursuant to method 54 may be used with a variety of additive manufacturing systems and computer-based systems in combination with 3D parts and support structures having numerous different geometries.
  • An application of method 54 to analyze digital part 46 is also illustrated below in FIGS. 5-15.
  • method 54 includes steps 56-74, and initially involves running or otherwise loading SIG engine 50 to the memory of computer 12 (step 56).
  • Computer 12 may also load digital part 46 and/or information related to digital part 46, such as x-y-z coordinate locations, surface area, triangle complexity, solid volume, the user- selected options from menus 52 and 53, and the like. Computer 12 may also perform one or more error-check operations to check digital part 46 for errors. If errors are found, computer 12 may attempt to correct the errors and/or stop the operation of SIG engine 50 and inform the user of the errors.
  • information related to digital part 46 such as x-y-z coordinate locations, surface area, triangle complexity, solid volume, the user- selected options from menus 52 and 53, and the like.
  • Computer 12 may also perform one or more error-check operations to check digital part 46 for errors. If errors are found, computer 12 may attempt to correct the errors and/or stop the operation of SIG engine 50 and inform the user of the errors.
  • computer 12 After digital part 46 is loaded, computer 12 generates a tree data structure for digital part 46 by partitioning the geometry of digital part 46 into multiple subsets (step 58).
  • suitable tree data structures for use with SIG engine 50 include binary space partitioning (BSP) trees, octrees, and the like.
  • BSP binary space partitioning
  • computer 12 may recursively partition digital part 46 into convex subsets until each subset becomes simple enough to be individually pinged by computer 12 using a collision detection technique.
  • Computer 12 may then generate a 3D grid of cells defining a volume bounding box for the tree data structure of digital part 46 (step 60), where the cells of the 3D grid desirably correspond in size to the subsets of the tree data structure. As discussed below, this allows computer 12 to quickly ping each cell of the 3D grid to determine whether a portion of the tree data structure for digital part 46 resides in a given cell. It is noted that computer 12 does not actually generate a physical or graphical 3D grid of cells (unless desired). Rather, as discussed below, the cells are volumetric increments of coordinate locations retained in the memory of computer 12 for subsequent analysis of the tree data structure for digital part 46.
  • step 62a-62c computer 12 refers to which option the user selected with menu 52. If the user selected option (i) to optimize the price quote by orienting digital part 46 in any manner to minimize the required volume of support material (step 62a), SIG engine 50 may be configured to calculate the support material volume over six or more directional axes (step 64a). For example, SIG engine 50 may be configured to calculate the support material volume for each primary or major directional axis in the x-y-z coordinate system (i.e., positive and negative directions along the major x-y-z axes), providing six separate calculations. The number of directional axes may also differ depending on the particular coordinate system used, such as for a polar coordinate system or an oblique coordinate system.
  • SIG engine 50 may be configured to calculate the support material volume along single directional axis, which is the positive direction along the vertical z-axis for the received orientation of digital part 46 (step 64b).
  • SIG engine 50 may be configured to calculate the support material volume along two directional axes (step 64c). In this situation, SIG engine 50 may identify an orientation of digital part 46 that minimizes the height of digital part 46. The two directional axes are then the positive and negative vertical directions along the given orientation.
  • computer 12 After determining the number of directional axes to analyze, computer 12 then uses SIG engine 50 to calculate the support material volume required to print 3D part 32 from digital part 46 for each directional axis, as discussed below (step 66). Computer 12 then selects the directional axis that corresponds to the lowest calculated support material volume (step 68), and may orient digital part 46 such that the selected axis becomes a positive direction along the vertical z-axis (i.e., an upward facing direction) (step 70). This provides the proper orientation of digital part 46 (and 3D part 32) to print support structure 34 with the minimum amount of support material. In one embodiment, if option (ii) was selected, in which the orientation of digital part 46 is preserved (step 62c), steps 68 and 70 of method 54 may be omitted, as illustrated by broken line 75.
  • Computer 12 may then output the calculated support material volume to price quote engine 48 (step 72), allowing price quote engine 48 to generate a price quote based in part on the calculated support material volume.
  • Computer 12 may also export a new digital part 46a (e.g., an AMF or STL format file) from the oriented digital part 46 (step 74). As also discussed above, this new digital part 46a may then be transmitted to host computer 16 for use in printing 3D part 32 with system 10.
  • a new digital part 46a e.g., an AMF or STL format file
  • FIG. 4 illustrates method 76, which is an example of a suitable method for calculating the support material volume required to print 3D part 32 from digital part 46, pursuant to step 66 of method 54 (shown in FIG. 3).
  • An application of method 76 to analyze digital part 46 is also illustrated below in FIGS. 5-15.
  • method 76 includes steps 78-108, and initially involves selecting a first directional axis along which digital part 46 is oriented to perform the calculation (step 78).
  • the first directional axis may be the positive direction along the vertical z-axis (i.e., the upward facing direction) for the received digital part 46.
  • the first directional axis may be the positive direction along an axis that minimizes the build height of digital part 46. It is noted that digital part 46 does not actually need to be reoriented during step 78, which can consume processing power of computer 12. Rather, computer 12 recognizes the directional axes in the coordinate system relative to digital part 46. In other words, computer 12 may switch which direction is the upward vertical direction for digital part 46 while performing method 76.
  • step 60 of method 54 (shown in FIG. 3)
  • computer 12 previously generated a 3D grid of cells for digital part 46.
  • the cells of the 3D grid are arranged in multiple cell arrays, where each array of cells extends along the first directional axis. This is illustrated below, for example, in FIGS. 6 and 7A-7D.
  • Computer 12 identifies and proceeds to a first cell array of the multiple cell arrays along the first directional axis (step 80), and identifies and proceeds to a first cell in the first cell array (step 82).
  • Computer 12 then pings the current cell using a collision detection technique to determine if a portion of the tree data structure for digital part 46 resides in the current cell (step 84).
  • computer 12 may execute a collision detection query against the tree data structure (e.g., BSP tree) of digital part 46 to determine whether a subset of the tree data structure of digital part 46 resides in the current cell.
  • the terms "ping", “pinging”, and the like, with reference to a cell refer to the execution of a collision detection query against the tree data structure of a digital part to determine whether a subset of the tree data structure resides in the cell.
  • the pinging of each cell under step 84 may be performed at a central coordinate point of the given cell.
  • the cells of the 3D grid are volumetric increments of x-y-z locations, rather than physical or graphical cells.
  • the x-y-z locations are located at the central coordinate points of the volumetric increments (i.e., at the volumetric centers of the cells).
  • computer 12 may execute the collision detection query against the central coordinate point in the current cell to determine whether a subset of the tree data structure for digital part 46 resides in the current cell.
  • the pinging in each cell under step 84 may be performed at any suitable coordinate location within the volume of the given cell.
  • this embodiment may result in small numbers of false-positive results and false-negative results since the pinging is performed at particular x-y-z coordinates (rather than over full volumetric increments), the small volumes of each of the cells render such results minor or negligible. Moreover, this embodiment can substantially reduce the processing requirements on computer 12, allowing SIG engine 50 to quickly perform the steps of method 76 and rapidly return calculated support material volumes to price quoting program 48.
  • step 86 of method 76 if the pinging does not hit a portion of digital part
  • computer 12 then checks whether the current cell is the last cell in the current cell array (step 88). If not, computer 12 proceeds to the next successive cell in the current cell array (step 90) and repeat steps 84, 86, 88, and 90 until a portion of digital part 46 residing in a given cell along the current cell array is reached (step 86), or until each cell in the current cell array is pinged (step 88).
  • step 92 If a portion of digital part 46 is hit in a cell during one of the pinging steps, computer 12 then designates the current cell (i.e., the cell in which the portion of digital part 46 is hit) and all remaining subsequent and unpinged cells in the current cell array as being "filled” (step 92). This step distinguishes the cells that do not contain any part or support materials (non-filled cells), and the cells that contain part or support materials (filled cells). This step also stops all subsequent pingings for the current cell array, thereby reducing the processing requirements of computer 12.
  • computer 12 After the given cell(s) of the current cell array are designated as "filled", computer 12 checks whether the current cell array is the last cell array of the 3D grid along the current directional axis (step 94). If not, computer 12 proceeds to the next cell array along the current directional axis (step 96), and repeat steps 82-96 for each of the remaining cell arrays of the 3D grid along the current directional axis.
  • step 88 if the last cell in the current cell array is pinged and no hits are made during the pinging steps (i.e., the tree data structure for digital part 46 does not reside in any of the cells of the current cell array), computer 12 proceeds to the next cell array along the current directional axis (step 96, as illustrated by a broken line 110 that does not intersect step 92), and repeat steps 82-86 for each of the remaining cell arrays of the 3D grid along the current directional axis.
  • step 98 sums the volumes of all of the cells previously designated as filled. This provides the total filled volume for digital part 46 and the digital support layers.
  • the summing operation in step 98 may be performed for each cell array during or after designation step 92, in a cumulative manner. The resulting summed total filled volume will be the same in either embodiment.
  • step 46 may then be subtracted from the summed total filled volume to provide an initial volume of support material needed to print 3D part 32 with system 10 (step 100).
  • this subtracting step may also be performed for each cell array during or after designation step 92, where the summed filled volume for each cell array may be reduce or otherwise offset by the volume of digital part 46 along the given cell array.
  • support structure 34 (shown in FIG. 1) is illustrated with a dense fill, and extends vertically downward from all overhanging surfaces of 3D part 32.
  • the initial volume of support material generated in step 100 of method 76 provides an accurate representation of the amount of support material needed to print 3D part 32.
  • the initial support material volume attained from step 100 may be modified (step 102) to accommodate variations in printing styles, such as column support structures, sparse-fill support structures, and the like.
  • the initial support material volume attained from step 100 may be reduced based on the algorithm disclosed in Heide, U.S. Patent Application Publication No. 2011/0178621, which may generate the digital support layers having convex outer dimensions that reduce in size and complexity in a downward direction along the vertical z-axis.
  • computer 12 may then check whether the current directional axis is the last directional axis to analyze (step 104). Under user-selected option (i), SIG engine 50 is set up to analyze digital part 46 along six or more directional axes (from steps 62a and 64a of method 54). Similarly, under user-selected option (iii), SIG engine 50 is set up to analyze digital part 46 along two directional axes (from steps 62c and 64c of method 54). In these situations, computer 12 proceeds to the next directional axis (step 106) and repeat steps 80-106 for each remaining directional axis.
  • computer 12 when proceeding to each successive directional axis, desirably does not reorient digital part 46, which can take up valuable processing power. Instead, computer 12 merely designates the selected directional axis as the new "upward" direction and repeats steps 80-106 for each new upward direction.
  • step 106 After the support material volume for digital part 46 is calculated along each directional axis (step 106), computer 12 then proceeds to step 68 of method 54 (shown in FIG. 3) (step 108). As such, as mentioned above, computer 12 may then select the directional axis that corresponds to the lowest calculated support material volume (step 68 of method 54), may orient digital part 46 such that the selected axis becomes a positive direction along the vertical z-axis (i.e., an upward facing direction) (step 70 of method 54), may output the calculated support material volume to price quoting program 48 (step 72 of method 54), and may export new digital part 46a (step 74 of method 54).
  • SIG engine 50 is configured to analyze digital part 46 only along a single directional axis (from steps 62b and 64b of method 54).
  • computer 12 may then proceed directly to step 68 of method 54 (step 108), or alternatively, directly to step 72 of method 54 (as illustrated by broken line 75 in FIG. 3).
  • step 108 may output the calculated support material volume to price quoting program 48 (step 72 of method 54), and, optionally, export new digital part 46a (step 74 of method 54).
  • FIGS. 5-15 illustrate an application of method 54 (shown in FIG. 3) and method 76 (shown in FIG. 4) for calculating the support material volume required to print 3D part 32 from digital part 46, based on user-selected option (i) from menu 52.
  • computer 12 As shown in FIG. 5, after steps 56 and 58 of method 54 are performed, computer 12 generates grid 112, which is a 3D grid of cells 114 that define a volume bounding box for the tree data structure of digital part 46 (step 60 of method 54).
  • step 60 of method 54 computer 12 does not actually generate a physical or graphical grid 112 (unless desired). Rather, the x-y-z locations of the central coordinate points of cells 114 (or other selected coordinate locations within cells 114) are retained in the memory of computer 12.
  • expanded cells 114a- 114c respectively include central coordinate points 116a-l 16c, each of which are located at the centers of their respective cell 114a-114c.
  • central coordinate points 116a and 116b are offset from each other along the z-axis by a single increment.
  • central coordinate points 116b and 116c are offset from each other along the x- axis by the same single increment.
  • Cells 114 aligned along the y-axis also have central coordinate points offset from each other by the same single increment.
  • SIG engine 50 may use a preset volume for cells 114 to reduce processing time when generating grid 112. As shown, this positions the central coordinate points (e.g., points 116a-116c) of cells 114 at the same preset increments from each other. In alternative embodiments, however, cells 114 may have different geometric shapes (e.g., rectangular, pyramidal, and the like) and/or may have different volumes from each other, which may affect the locations of the central coordinate points of the cells.
  • SIG engine 50 may provide a user option to select the desired volumes for cells 114.
  • smaller volumes for cells 114 provide more accurate calculations, and vice versa.
  • smaller volumes for cells 114 also increase the number of cells that define the volume bounding box for digital part 46, thereby increasing the total number of cells that are pinged. This can increase the processing time required to perform the calculations.
  • SIG engine 50 desirably operates with cell volumes that balance accuracy and processing time.
  • suitable volumes for each cell 114 of grid 112 range from about lxlO "9 cubic inches (e.g., a cube having sides of about 0.001 inches) to about 0.001 cubic inches (e.g., a cube having sides of about 0.1 inches).
  • examples of suitable volumes for each cell 114 range from about 1.25xl0 "7 cubic inches (e.g., a cube having sides of about 0.005 inches) to about 1.25x1 ⁇ -4 cubic inches (e.g., a cube having sides of about 0.05 inches).
  • grid 112 has six sides facing the major directional axes of the x-y-z coordinate system, namely top side 118a facing the positive direction along the z-axis, a bottom side (not shown in FIG. 5) facing the negative direction along the z-axis, front side 118b facing the positive direction along the x-axis, a rear side (not shown in FIG. 5) facing the negative direction along the x-axis, a right side 118c facing the positive direction along the y-axis, and a left side (not shown in FIG. 5) facing the negative direction along the y-axis.
  • the terms top, bottom, front, rear, right, and left are not intended to be limiting on any particular orientation, and are used herein merely for ease of discussion.
  • SIG engine 50 calculates the volume of support material required to print 3D part 32 with system 10, pursuant to step 66 of method 54, and as described by method 76. Accordingly, pursuant to step 78 of method 76, computer 12 selects a first directional axis for performing the analysis. For convenience, the positive direction along the z-axis may be selected as the first directional axis to perform the analysis.
  • FIG. 6 further illustrates grid 112 and maintains the same orientation as shown in FIG. 5.
  • cells 114 are arranged in multiple cell arrays, referred to as cell arrays 120, each extending downward along the z-axis between top side 118a and the bottom side of grid 112 (not shown in FIG. 6).
  • Each cell array 120 includes "f number of cells 114 along the z-axis.
  • cell arrays 120 may be organized into rows aligned with the x-z plane.
  • Grid 112 includes "/' number of cell arrays 120 per row, and "fc" number of rows of cell arrays 120 along the y-axis, such that grid 112 includes a total number of j x k cell arrays 120, and a total number of i xj x k cells 114.
  • step 80 of method 76 computer 12 may proceed to a first cell array 120, which may located at any suitable location within grid 112.
  • the first cell array 120 may be a corner cell array, such as cell array 120a, which is located in the first row at the corner of top side 118a, front side 118b, and right side 118c.
  • steps 82-94 of method 76 computer 12 then analyzes cells 114 in cell array 120a in a downward direction, as illustrated by arrow 122 (as discussed further below in FIGS. 7A- 7D).
  • next cell array 120 is the adjacent cell array 120 in the first row along the x-axis, referred to as cell array 120b.
  • computer 12 then analyzes cells 114 in cell array 120a in a downward direction, as illustrated by arrow 124 (as also discussed further below in FIGS. 7A-7D).
  • Computer 12 may then repeat steps 82-96 of method 76 for each successive cell array 120 in the current row.
  • step 96 computer 12 may then proceed to the first cell array 120 in the second row of cell arrays 120, referred to as cell array 120c (step 96).
  • Computer 12 then repeats steps 82-96 for each cell array 120 in the second row, and for each remaining row of cell arrays 120 until all cell arrays 120 of grid 112 are analyzed. Analysis of cell arrays 120 in this row-based manner provides a convenient and organized way to proceed through steps 82-96 of method 76.
  • SIG engine 50 may alternatively be configured such that computer 12 analyzes cell arrays 120 in different orders, as desired.
  • FIG. 7A-7D illustrate the application of steps 82-96 for a given row of cell arrays 120, which includes cell arrays 126a-126h, and also depict bottom side 118d of grid 112.
  • computer 12 may proceed to a first cell 114 in cell array 126a, referred to as cell 128 ( i ) .
  • Computer 12 then pings cell 128 ( i ) to determine whether a subset of the tree data structure for digital part 46 resides in cell 128 ( i ) (step 84).
  • the tree data structure for digital part 46 does not include any subsets in cell 128 ( i ) (step 86).
  • computer 12 then checks whether the cell 128 ( i ) is the last cell 114 in cell array 126a (step 88). Since cell array 126a contains additional cells 114, computer 12 then proceeds to the next successive cell 114 in cell array 126a (step 90). The next successive cell in cell array 126a from cell 128 ( i ) is determined by proceeding from cell 128 ( i ) to the next cell 114 along cell arrays 126a that is in an opposite direction from the directional axis selected in step 78. In this case, the currently selected directional axis is the positive direction along the z-axis.
  • next successive cell 114 in cell array 126a from cell 128 ( i ) is located downward along the z-axis from cell 128 ( i ) (i.e., in the negative direction along the z-axis, as illustrated by arrow 122), and is referred to as cell 128( 3 ⁇ 4 .
  • Computer 12 then pings cell 128 (3 ⁇ 4 to determine whether a subset of the tree data structure for digital part 46 resides in cell 128 (3 ⁇ 4 (step 84). In this case, the tree data structure for digital part 46 also does not include any subsets in cell 128 (3 ⁇ 4 (step 86). In fact, as shown, none of the cells 114 in cell array 126a include any subsets of the tree data structure for digital part 46. As such, pursuant to steps 84-90 of method 76, computer 12 may continue to ping each successive cell 114 downward along cell array 126a until the last cell 114 of cell array 126a located at bottom side 118d of grid 112 (referred to as cell 128 ( i ) ) is pinged.
  • cell 128 ( i ) the last cell 114 of cell array 126a located at bottom side 118d of grid 112
  • step 92 of method 76 is bypassed, and none of the cells 114 in cell array 126a are designated as "filled”. Instead, computer 12 proceeds to the next cell array 120 (step 96, as illustrated by broken line 110 in FIG. 4), which is cell array 126b. Pursuant to step 82 of method 76, computer 12 proceeds to a first cell 114 in cell array 126b, referred to as cell 130 ( i ) . Computer 12 then pings cell 130 ⁇ ) to determine whether a subset of the tree data structure for digital part 46 resides in cell 130 ( i ) (step 84).
  • the tree data structure for digital part 46 also does not include any subsets in cell 130 Q ) (step 86).
  • computer 12 performs steps 88 and 90 to proceed to the next subsequent cell 114 in cell array 126b, as illustrated by arrow 124, which is cell 130 (3 ⁇ 4 .
  • Computer 12 then repeats steps 84-90 for cell 130 (3 ⁇ 4 , which also does include any subsets of the tree data structure. Therefore, computer 12 performs steps 88 and 90 to proceed to the next successive cell 114 in cell array 126b, as further illustrated by arrow 124, which is cell 130(3).
  • Computer 12 then pings cell 130(3) to determine whether a subset of the tree data structure for digital part 46 resides in cell 130(3) (step 84). In this case, the tree data structure for digital part 46 does include a subset in cell 130(3) (step 86). As such, computer 12 then designates the cell 130(3) and all remaining subsequent and unchecked cells 114 in cell array 126b down to cell 130 (i) as being "filled” (step 92).
  • FIG. 7B This is illustrated in FIG. 7B, in which cell 130 (3) and all cells 114 in cell array 126b below cell 130(3), down to the last cell 130 ( i ) , are designated as "filled”. This distinguishes the cells of cell array 126b that do not contain any part or support materials (non- filled cells), and the cells of cell array 126b that contain part or support materials (filled cells).
  • Computer 12 then proceeds to the next cell array 120 (step 96), which is cell array 126c, and repeats steps 82-96 for each remaining cell array 120 of grid 112 (e.g., cell arrays 126d-126h). This results in "filled" designation pattern shown in FIG. 7C.
  • FIG. 7D illustrates an alternative operation of SIG engine 50.
  • SIG engine 50 may be configured to calculate the support material volumes differently depending on the additive manufacturing process selected with menu 53.
  • FIG. 7D illustrates an embodiment in which support material is also required to support the lateral surfaces of 3D part 32, such for use with some jetting-based additive manufacturing systems.
  • cell array 126a is the only cell array that may be backtracked to.
  • computer 12 designates the adjacent cell 114 in cell array 126a (referred to as cell 128(3)) as filled.
  • computer 12 also designates all cells 114 in cell array 126a below cell 128(3), down to the last cell 128 ( i ) , are designated as "filled”. This accounts for support material that is printed to support the lateral surfaces of 3D part 32 when printing with additive manufacturing systems that requires such support structures.
  • SIG engine 50 may be configured to perform ping jumps, where the pinging operation on a given cell array 120 may jump downward by a preset increment number of cells 114 until a subset of the tree structure for digital part 46 is reached. At that point, computer 12 may backtrack the pinging operation upward within a given jump increment to identify the surface of digital part 46.
  • This ping- jumping technique is suitable for reducing the time required to perform the pinging operations, and is particularly useful in regions of grid 112 that typically do not contain portions of 3D parts, such as in the corners of grid 112.
  • FIG. 8 further illustrates the example shown in FIG. 7C, where FIG. 8 is a front view of grid 112 after step 94 of method 76 is completed for the last cell array 120, and depicts rear side 118e.
  • computer 12 sums the volumes of cells 120 that are designated as filled (step 98), which provides the total filled volume for digital part 46 and the digital support layers.
  • the summing operation in step 94 may alternatively be performed after each designation step 92 in a cumulative manner.
  • Computer 12 then subtracts the volume of digital part 46 from the summed volume to provide an initial volume of support material needed to print 3D part 32 with system 10 (step 100).
  • Computer 12 may also modify the initial volume of support material to accommodate variations in printing styles, such as column support structures, sparse-fill support structures, and the like (step 102). For example, when using a sparse-fill arrangement, computer 12 may reduce the initial volume of support material by a factor, such as by a preset factor to provide the calculated support material volume for digital part 46 along the positive direction of the z-axis.
  • Computer 12 then checks whether the positive direction of the z-axis is the last directional axis to analyze (step 104). Under the user-selected option (i) from menu 52, SIG engine 50 is configured to analyze digital part 46 along six or more directional axes (from steps 62a and 64a of method 54). In this situation, computer 12 then proceeds to the next directional axis (step 106) and repeats steps 80-106.
  • the next directional axis may be the negative direction along the z-axis.
  • the same cell arrays 120 are used, but are analyzed in an inverted manner compared to the previous operation shown in FIGS. 7A-7D and 8.
  • the first cell 114 in each cell array 120 is located adjacent to bottom side 118d
  • the last cell 114 in each cell array 120 is located adjacent to top side 118a. Accordingly, for each cell array 120, cells 114 are pinged upward during steps 84-92 of method 76, as illustrated by arrow 131.
  • a given pinged cell 114 includes a subset of the tree data structure for digital part 46 (steps 84 and 86)
  • computer 12 designates the pinged cell and all remaining subsequent and unchecked cells 114 in the current cell array 120, upward toward the last cell 114, as being "filled” (step 92). Therefore, after computer 12 completes the analysis of steps 80-104, the cells 114 designated as filled extend upward, as shown in FIG. 9.
  • the resulting calculated support material volume is then based on this upward arrangement, which corresponds to a situation in which digital part 46 is oriented such that the negative direction along the z-axis becomes the upward direction for printing 3D part 32.
  • Computer 12 then checks whether the negative direction of the z-axis is the last directional axis to analyze (step 104). Under the current situation, computer 12 may proceed to a next directional axis (step 106) and repeat steps 80-106.
  • the next directional axis may be the positive direction along the y-axis.
  • cells 114 are arranged in multiple cell arrays, referred to as cell arrays 132 extending laterally along the y-axis between right side 118c and the left side of grid 112 (not shown in FIG. 10).
  • Each cell array 132 includes "f number of cells 114 along the y-axis.
  • cell arrays 132 may be organized into rows aligned with the x-y plane.
  • Grid 112 includes "/' number of cell arrays 132 per row, and number of rows of cell arrays 132 along the z- axis, such that grid 112 includes a total number oij x k cell arrays 132, and a total number of i x j x k cells 114 (same number as above for cell arrays 120 along the z-axis).
  • Computer 12 may proceed to a first cell array 132 (step 80 of method 76), which may located at any suitable location within grid 112.
  • the first cell array 132 may be a corner cell array, such as cell array 132a, which is located in the first row at the corner of top side 118a, front side 118b, and right side 118c.
  • computer 12 then analyzes cells 114 in cell array 132a in a leftward direction, as illustrated by arrow 134.
  • next cell array 132 is the adjacent cell array 132 in the first row along the y-axis, referred to as cell array 132b.
  • computer 12 analyzes cells 114 in cell array 132b in a leftward direction, as illustrated by arrow 136.
  • Computer 12 may then repeat steps 82-96 of method 76 for each successive cell array 132 in the current row along the y-axis.
  • computer 12 may then proceed to the first cell array 132 in the second row of cell arrays 132, and may repeat steps 82-96 for each cell array 132 in the second row, and for each remaining row of cell arrays 132 until all cell arrays 132 of grid 112 are analyzed.
  • cell arrays 132 extend along the y-axis, between right side 118c and left side 118f.
  • Cell arrays 132 may be analyzed in the same manner as discussed above for cell arrays 120, where the first cell 114 in each cell array 132 is located adjacent to right side 118c, and the last cell 114 in each cell array 132 is located adjacent to left side 118f. Therefore, for each cell array 132, cells 114 are pinged from right-to-left during steps 84-92 of method 76 (e.g., as illustrated by arrows 134 and 136).
  • a given pinged cell 114 includes a subset of the tree data structure for digital part 46 (steps 84 and 86)
  • computer 12 designates the pinged cell and all remaining subsequent and unchecked cells 114 in the current cell array 132, leftward toward the last cell 114, as being "filled” (step 92). Accordingly, after computer 12 completes the analysis of steps 80-104, the cells 114 designated as filled extend leftward, as shown in FIG. 11. Thus, the resulting calculated support material volume is based on this leftward arrangement, which corresponds to a situation in which digital part 46 is oriented such that the positive direction along the y-axis becomes the upward direction for printing 3D part 32.
  • Computer 12 then checks whether the positive direction of the y-axis is the last directional axis to analyze (step 104). Under the current situation, computer 12 may proceed to the next directional axis (step 106) and repeat steps 80-106.
  • the next directional axis may be the negative direction along the y-axis.
  • the same cell arrays 132 are used, but are analyzed in an inverted manner compared to the previous operation shown in FIGS. 10 and 11.
  • the first cell 114 in each cell array 132 is located adjacent to left side 118f
  • the last cell 114 in each cell array 132 is located adjacent to right side 118c. Therefore, for each cell array 132, cells 114 are pinged rightward during steps 84-92 of method 76, as illustrated by arrow 138.
  • a given pinged cell 114 includes a subset of the tree data structure for digital part 46 (steps 84 and 86)
  • computer 12 designates the pinged cell and all remaining subsequent and unchecked cells 114 in the current cell array 132, rightward toward the last cell 114, as being "filled” (step 92). Accordingly, after computer 12 completes the analysis of steps 80-104, the cells 114 designated as filled extend rightward, as shown in FIG. 12.
  • the resulting calculated support material volume is based on this leftward arrangement, which corresponds to a situation in which digital part 46 is oriented such that the negative direction along the y-axis becomes the upward direction for printing 3D part 32.
  • Computer 12 then checks whether the negative direction of the y-axis is the last directional axis to analyze (step 104). Under the current situation, computer 12 may proceed to the next directional axis (step 106) and repeat steps 80-106.
  • the next directional axis may be the positive direction along the x-axis.
  • cells 114 are arranged in multiple cell arrays, referred to as cell arrays 140 extending laterally along the x-axis between front side 118b and rear side 118e (not shown in FIG. 13).
  • Each cell array 140 includes "f number of cells 114 along the x-axis.
  • cell arrays 140 may be organized into rows aligned with the y-z plane.
  • Grid 112 includes "j" number of cell arrays 140 per row, and “fc” number of rows of cell arrays 140 along the z-axis, such that grid 112 includes a total number oij x k cell arrays 140, and a total number of i xj x k cells 114 (same number as above for cell arrays 120 along the z-axis, and of cell arrays 132 along the y-axis).
  • Computer 12 may proceed to a first cell array 140 (step 80 of method 76), which may located at any suitable location within grid 112.
  • the first cell array 140 may be a corner cell array, such as cell array 140a, which is located in the first row at the corner of top side 118a, front side 118b, and right side 118c.
  • computer 12 then analyzes cells 114 in cell array 140a in a rearward direction, as illustrated by arrow 142.
  • next cell array 140 is the adjacent cell array 140 in the first row along the x-axis, referred to as cell array 140b.
  • computer 12 then analyzes cells 114 in cell array 140b in a rearward direction, as illustrated by arrow 144. Computer 12 may then repeat steps 82-96 of method 76 for each successive cell array 140 in the current row.
  • computer 12 may then proceed to the first cell array 140 in the second row of cell arrays 140, and may repeat steps 82-96 for each cell array 140 in the second row, and for each remaining row of cell arrays 140 until all cell arrays 140 of grid 112 are analyzed.
  • FIG. 14 This is illustrated in FIG. 14, where cell arrays 140 are oriented along the x- axis, between front side 118b and rear side 118e.
  • Cell arrays 140 may be analyzed in the same manner as discussed above for cell arrays 120, where the first cell 114 in each cell array 140 is located adjacent to front side 118b, and the last cell 114 in each cell array 140 is located adjacent to rear side 118f. Therefore, for each cell array 140, cells 114 are pinged from front-to-rear during steps 84-92 of method 76 (e.g., as illustrated by arrows 142 and 144).
  • a given pinged cell 114 includes a subset of the tree data structure for digital part 46 (steps 84 and 86)
  • computer 12 designates the pinged cell and all remaining subsequent and unchecked cells 114 in the current cell array 140, rearward toward the last cell 114, as being "filled” (step 92). Accordingly, after computer 12 completes the analysis of steps 80-104, the cells 114 designated as filled extend rearward, as shown in FIG. 14. Thus, the resulting calculated support material volume is based on this rearward arrangement, which corresponds to a situation in which digital part 46 is oriented such that the positive direction along the x-axis becomes the upward direction for printing 3D part 32.
  • Computer 12 then checks whether the positive direction of the x-axis is the last directional axis to analyze (step 104). Under the current situation, computer 12 may proceed to the next directional axis (step 106) and repeat steps 80-106.
  • the next directional axis may be the negative direction along the x-axis.
  • the same cell arrays 140 are used, but are analyzed in an inverted manner compared to the previous operation shown in FIGS. 13 and 14.
  • the first cell 114 in each cell array 140 is located adjacent to rear side 118e
  • the last cell 114 in each cell array 140 is located adjacent to front side 118b. Therefore, for each cell array 140, cells 114 are pinged forward during steps 84-92 of method 76, as illustrated by arrow 146.
  • a given pinged cell 114 includes a subset of the tree data structure for digital part 46 (steps 84 and 86)
  • computer 12 designates the pinged cell and all remaining subsequent and unchecked cells 114 in the current cell array 140, forward toward the last cell 114, as being "filled” (step 92). Accordingly, after computer 12 completes the analysis of steps 80-104, the cells 114 designated as filled extend forward, as shown in FIG. 15.
  • the resulting calculated support material volume is based on this forward arrangement, which corresponds to a situation in which digital part 46 is oriented such that the negative direction along the x-axis becomes the upward direction for printing 3D part 32.
  • Computer 12 when proceeding to each successive directional axis, computer 12 desirably does not reorient digital part 46, which can take up valuable processing power. Instead, computer 12 merely designates the given selected directional axis as the new "upward" direction and repeats steps 80-106 for each new upward direction.
  • Computer 12 may then check whether the negative direction of the x-axis is the last directional axis to analyze (step 104).
  • SIG engine 50 is configured to calculate the support material volume for digital part 46 only along the six major directional axes. As such, computer 12 then selects the directional axis that corresponds to the lowest calculated support material volume (step 68 of method 54). In this case, computer 12 selects the positive direction along the z-axis, as shown in FIG. 8, which is the directional axis that corresponds to the lowest calculated support material.
  • step 70 of method 54 may be optionally bypassed, and computer 12 may output the support material volume to price quoting program 48 (step 72 of method 54).
  • Computer 12 may also export new digital part 46a (step 74 of method 54) for printing 3D part 32 with system 10.
  • step 74 of method 54 since digital part 46 and digital part 46a have the same orientation, computer 12 may alternatively bypass step 74 of method 54, and use digital part 46 to print 3D part 32 with system 10.
  • SIG engine 50 is suitable for quickly calculating support material volumes needed to print 3D parts using the steps of methods 54 and 76. For example, when configured to operate with cells 114 having dimensions of 0.01 inches x 0.01 inches x 0.01 inches (lxlO 6 cubic inches per cell), SIG engine 50 can calculate a needed volume of support material for a given 3D part in about 5-10 seconds per directional axis, or 30-60 seconds for all six major directional axes. SIG engine 50 is accordingly suitable in combination with price quoting program 48 to provide instant price quotes. However, SIG engine 50 may also be used in conjunction with a variety of different processes, such as tool-path generation processes, run-time and scheduling determinations, and the like.
  • cells 114 of grid 112 may have dimensions that correspond to a sliced layer increment for printing or otherwise building a 3D part with a particular additive manufacturing system (e.g., system 10).
  • the digital part 46a exported during step 74 of method 54 may include the oriented part for 3D part 32 (referred to as digital part 148), and also the digital support layers for support structure 34 (referred to as digital support layers 150).
  • SIG engine 50 effectively functions as a high-speed slicing program for orienting and slicing digital part 46 into multiple horizontal layers, and for generating digital support layers 150.
  • SIG engine 50 may also be configured to generate tool- path instructions and other related information for each layer of digital part 148 and digital support layers 150, and the resulting data may be transmitted to host computer 16 and/or system 10.
  • System 10 may then print 3D part 32 and support structure 34 based on the received data, where the volume of support structure 34 corresponds to the volume of support material calculated by SIG engine 50.
  • SIG engine 50 may also communicate with one or more scheduling programs. For instance, as shown in FIGS. 17A and 17B, which correspond respectively to the illustrations shown in FIGS. 2A and 2B, additive manufacturing service units (e.g., the on-demand service unit "REDEYE” of Stratasys, Inc., Eden Prairie, MN) may schedule time slots for printing jobs on farms of additive manufacturing systems, such as farm 152. These scheduled time slots are typically organized with scheduling programs, such as scheduling program 152 retained on host computer 16 (or alternatively on server 14 or other suitable computer-based system). Since the run times required to print or otherwise build 3D parts and support structures are also typically dependent on the volume of needed support material, SIG engine 50 may also export a run-time estimate based (at least in part) on the calculated support material volume to scheduling program 152.
  • additive manufacturing service units e.g., the on-demand service unit "REDEYE" of Stratasys, Inc., Eden Prairie, MN
  • RREDEYE the on-demand
  • a jetting-based additive manufacturing system may include a jetting head with an array of jetting orifices for printing part and support materials.
  • the jetting head typically passes an entire printing surface area during each pass for deposition and curing, regardless of the amount of materials being deposited.
  • the run times for a jetting-based additive manufacturing system can be more dependent on the number of printed layers, rather than the amounts of material deposited per layer.
  • SIG engine 50 desirably accounts for these discrepancies between the different additive manufacturing processes when outputting run-times estimates to scheduling program 152.
  • SIG engine 50 may function as a learning system, in which the run times for various additive manufacturing processes are recorded and compared to the calculated support material volumes to identify correlations. Based on these learned correlations, SIG engine 50 can then provide more accurate run-time estimates to scheduling program 152 for particular additive manufacturing processes.
  • SIG engine 50 The outputted run-time estimates from SIG engine 50 allow scheduling program 152 to then identify available time slots for printing a given 3D part, which may also affect the price quote.
  • SIG engine 50 and scheduling program 152 may also communicate, together or independently, with price quoting system 48 to generate accurate price quotes, and optionally, run-time estimates.

Abstract

A method for calculating a support material volume, the method comprising generating a grid (112) of cells (114) for a tree data structure of a digital part (46), where the cells (114) define a plurality of cell arrays (120), and pinging the cells (114) of one of the cell arrays (120) until a cell (114) containing a subset of the tree data structure is reached or until each cell (114) in the cell array (120) is pinged, where if a cell (114) containing the subset of the tree data structure is reached, then designating the reached cell (114) and all remaining unpinged cells (114) in the cell array (120) as filled. The method also includes repeating the pinging step for each remaining cell array (120) to determine a total filled volume, and subtracting a volume of the digital part from the total filled volume to determine a support material volume.

Description

SOLID IDENTIFICATION GRID ENGINE FOR CALCULATING SUPPORT MATERIAL VOLUMES, AND METHODS OF USE BACKGROUND
[0001] The present disclosure relates to additive manufacturing processes for printing three-dimensional (3D) parts and support structures. In particular, the present disclosure relates to processes for calculating support material volumes for use in printing 3D parts and support structures with additive manufacturing techniques.
[0002] Additive manufacturing systems are used to print or otherwise build 3D parts from digital representations of the 3D parts (e.g., AMF and STL format files) using one or more additive manufacturing techniques. Examples of commercially available additive manufacturing techniques include extrusion-based techniques, jetting, selective laser sintering, powder/binder jetting, electron-beam melting, and stereolithographic processes. For each of these techniques, the digital representation of the 3D part is initially sliced into multiple horizontal layers. For each sliced layer, a tool path is then generated, which provides instructions for the particular additive manufacturing system to print the given layer.
[0003] For example, in an extrusion-based additive manufacturing system, a 3D part may be printed from a digital representation of the 3D part in a layer-by-layer manner by extruding a flowable part material. The part material is extruded through an extrusion tip carried by a print head of the system, and is deposited as a sequence of roads on a substrate in an x-y plane. The extruded part material fuses to previously deposited part material, and solidifies upon a drop in temperature. The position of the print head relative to the substrate is then incremented along a z-axis (perpendicular to the x-y plane), and the process is then repeated to form a 3D part resembling the digital representation.
[0004] In fabricating 3D parts by depositing layers of a part material, supporting layers or structures are typically built underneath overhanging portions or in cavities of 3D parts under construction, which are not supported by the part material itself. A support structure may be built utilizing the same deposition techniques by which the part material is deposited. The host computer generates additional geometry acting as a support structure for the overhanging or free-space segments of the 3D part being formed. Support material is then deposited from a second nozzle pursuant to the generated geometry during the printing process. The support material adheres to the part material during fabrication, and is removable from the completed 3D part when the printing process is complete.
SUMMARY
[0005] An aspect of the present disclosure is directed to a method for calculating a support material volume with a computer-based system. The method includes providing a tree data structure for a digital part, and generating a grid of cells for the tree data structure with the computer-based system, where the cells define a plurality of cell arrays. The method also includes pinging the cells of one of the cell arrays until a cell containing a subset of the tree data structure is reached or until each cell in the cell array is pinged, where if a cell containing the subset of the tree data structure is reached, then designating the reached cell and all remaining unpinged cells in the cell array as filled. The method further includes repeating the pinging step for each remaining cell array to determine a total filled volume, and subtracting a volume of the digital part from the total filled volume to determine a support material volume.
[0006] Another aspect of the present disclosure is directed to a method for manipulating a digital part with a computer-based system for use in an additive manufacturing process. The method includes (a) providing a grid of cells for a tree data structure of a digital part, where the cells are organized in cell arrays along a plurality of directional axes. The method also includes (b) selecting a first directional axis of the plurality of directional axes, (c) for each cell array along the first directional axis, pinging the cells of the cell array until a cell containing a subset of the tree data structure is reached, and (c) designating the reached cell and all remaining unpinged cells in the cell array as filled. The method further includes (d) repeating the steps (c) and (d) for each cell array along the remaining directional axes of the plurality of directional axes to determine a total filled volume for each of the plurality of directional axes, (e) subtracting a volume of the digital part from the total filled volume for each of the plurality of directional axes to determine a support material volume for each of the plurality of directional axes, and (h) identifying the directional axis having the lowest determined support material volume.
[0007] Another aspect of the present disclosure is directed to a price quoting method for use in an additive manufacturing process. The price quoting method includes providing a tree data structure for a digital part to be printed with the additive manufacturing process, and generating a grid of cells for the tree data structure with a computer-based system, where the cells of the grid define a plurality of cell arrays. For each cell array, the method also includes pinging the cells with the computer-based system until a cell containing a subset of the tree data structure is reached or until an end cell of the cell array is pinged. The method further includes designating all pinged cells containing subsets of the tree data structure and all unpinged cells as filled with the computer-based system, summing volumes of the designated filled cells with the computer-based system to provide a total filled volume, subtracting a volume of the digital part from the total filled volume with the computer-based system to determine a support material volume, and generating a price quote based at least in part on the determined support material volume. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] FIG. 1 is a front schematic illustration of an additive manufacturing system in use with computer-based systems for printing 3D parts and support structures.
[0009] FIG. 2A is a schematic illustration of the computer-based systems, illustrating a first embodiment in which a Solid Identification Grid engine of the present disclosure is retained on a server.
[0010] FIG. 2B is a schematic illustration of the computer-based systems, illustrating a second embodiment in which a Solid Identification Grid engine of the present disclosure is retained on a remote computer.
[0011] FIG. 3 is a flow diagram of a method for using the Solid Identification Grid engine.
[0012] FIG. 4 is a flow diagram of a method of calculating a support material volume using the Solid Identification Grid engine.
[0013] FIG. 5 is a perspective view of a generated grid of cells using the Solid
Identification Grid engine.
[0014] FIG. 6 is a perspective view of the generated grid of cells, illustrating a first set of cell arrays based on a first directional axis that is a positive direction along a z-axis.
[0015] FIGS. 7A-7D illustrate a process for analyzing the first set of cell arrays, where FIG. 7D illustrates an alternative process when supporting lateral surfaces of a 3D part.
[0016] FIG. 8 is a right side view of the grid of cells, depicting the first set of analyzed cell arrays.
[0017] FIG. 9 is a right side view of the grid of cells, depicting a second set of analyzed cell arrays based on a second directional axis that is a negative direction along the z-axis. [0018] FIG. 10 is a perspective view of the generated grid of cells, illustrating a third set of cell arrays based on a third directional axis that is a positive direction along a y- axis.
[0019] FIG. 11 is a front view of the grid of cells, depicting the third set of analyzed cell arrays.
[0020] FIG. 12 is a front view of the grid of cells, depicting a fourth set of analyzed cell arrays based on a fourth directional axis that is a negative direction along the y-axis.
[0021] FIG. 13 is a perspective view of the generated grid of cells, illustrating a fifth set of cell arrays based on a fifth directional axis that is a positive direction along an x-axis.
[0022] FIG. 14 is a front view of the grid of cells, depicting the fifth set of analyzed cell arrays.
[0023] FIG. 15 is a front view of the grid of cells, depicting a sixth set of analyzed cell arrays based on a sixth directional axis that is a negative direction along the x-axis.
[0024] FIG. 16 is a front view of an oriented digital part with digital support layers, illustrating a slicing embodiment of the Solid Identification Grid engine.
[0025] FIG. 17A is an alternative schematic illustration of the computer-based systems shown in FIG. 2A, illustrating the computer-based systems in use with a farm of additive manufacturing systems and a scheduling program.
[0026] FIG. 17B is an alternative schematic illustration of the computer-based systems shown in FIG. 2B, illustrating the computer-based systems in use with a farm of additive manufacturing systems and a scheduling program.
DETAILED DESCRIPTION
[0027] The present disclosure is directed to a computer-implemented program, referred to as a Solid Identification Grid (SIG) engine, that quickly calculates the volume of support material needed to print or otherwise build a 3D part using an additive manufacturing system. The following discussion of the SIG engine is made in conjunction with a price quoting program that allows a user to request an online price quote for printing a 3D part. For instance, a developer may create a digital part (i.e., a digital representation of a 3D part) that he or she wishes to have printed as a physical 3D part by a manufacturer, such as by the on-demand service unit "REDEYE" of Stratasys, Inc., Eden Prairie, MN. To accomplish this, the developer may access the manufacturer's price quoting program, which analyzes the developer's digital part and sends back a price quote for printing the physical 3D part. [0028] The price quote is based on numerous factors, including the volumes of part and support materials required to print the 3D part. The required volume of part material is typically available based on the volume and geometry of the analyzed digital part. As such, the price quoting program can quickly determine the required part material volume, and its related cost.
[0029] The volume of support material, however, is more difficult to establish because the analyzed digital part does not include the support structure. Rather, layers of the support structure are typically generated at a later point in the process, during which the digital part is sliced into horizontal layers and tool paths are generated. As such, during the price quoting step, it is difficult to quickly establish the volume of support material needed to print the 3D part, and hence, its related cost.
[0030] The SIG engine of the present disclosure, however, is suitable for quickly calculating support material volumes need to print 3D parts. As discussed below, the SIG engine utilizes a collision detection technique to identify the geometry of a digital part. Based on the identified geometry, and the known volume of the digital part, the SIG engine can quickly calculate the volume of support material that will be necessary to print a support structure in coordination with the 3D part. Thus, the SIG engine is particularly suitable in combination with a price quoting program to provide instant price quotes. However, as discussed below, the SIG engine may also be used in conjunction with a variety of additional processes, such as tool-path generation processes, run-time and scheduling determinations, and the like.
[0031] FTG. 1 illustrates system 10 in use with computer 12, server 14, and host computer 16, which depicts a suitable arrangement for implementing the SIG engine of the present disclosure in conjunction with a price quoting program. System 10 is an additive manufacturing system for printing or otherwise building 3D parts and support structures in a layer-by-layer manner.
[0032] Examples of suitable systems for system 10 include extrusion-based additive manufacturing systems, such as those commercially available by Stratasys, Inc., Eden Prairie, MN under the trademarks "FUSED DEPOSITION MODELING" and "FDM". In alternative embodiments, system 10 may be any suitable additive manufacturing system that prints or otherwise builds 3D parts in a layer-by-layer manner, and that relies on one or more materials to support overhanging and/or lateral surfaces of the 3D parts, such as jetting systems, selective laser sintering systems, powder/binder jetting systems, electron-beam melting systems, stereolithography systems, and the like. [0033] System 10 includes build chamber 18, z-axis gantry 19, platen 20, x-y-axis gantry 22, print head 24, and supply sources 26 and 28. System 10 also includes controller 30, which is one or more processor-based controllers configured to control the operation of the components of system 10.
[0034] Build chamber 18 is an enclosable environment that contains platen 20 for printing a 3D part or model (referred to as 3D part 32) and a corresponding support structure (referred to as support structure 34) with part and support materials (e.g., thermoplastic materials). Build chamber 18 is desirably heated to reduce the rate at which the part and support materials solidify after being extruded and deposited (e.g., to reduce distortions and curling). In alternative embodiments, build chamber 18 may be omitted and/or replaced with different types of build environments. For example, 3D part 32 and support structure 34 may be printed in a build environment that is open to ambient conditions or may be enclosed with alternative structures (e.g., flexible curtains). The build environment may also be heatable in a variety of manners (e.g., with heated circulating air, heat lamps, and the like).
[0035] Z-axis gantry 19 is a vertical gantry assembly configured to move platen 20 along the vertical z-axis based on instructions provided from controller 30. Platen 20 is a platform on which 3D part 32 and support structure 34 are printed in a layer-by-layer manner.
[0036] X-y-axis gantry 22 is a guide rail assembly that is configured to move print head 24 in a horizontal x-y plane based on instructions provided from controller 30. The horizontal x-y plane is a plane defined by an x-axis and a y-axis (not shown in FIG. 1), where the x-axis, the y-axis, and the z-axis are orthogonal to each other in a Cartesian coordinate system. In an alternative embodiment, platen 20 may be configured to move in the horizontal x-y plane within build chamber 18, and print head 24 may be configured to move along the z-axis. Other similar arrangements may also be used such that one or both of platen 20 and print head 24 are moveable relative to each other. Furthermore, system 10 may be configured to print 3D part 32 and support structure 34 using different coordinate systems (e.g., a polar coordinate system, an oblique coordinate system, and the like).
[0037] Print head 24 is supported by x-y-axis gantry 22 for printing 3D part 32 and support structure 34 on platen 20 in a layer-by-layer manner, based on instructions provided from controller 30. In the embodiment shown in FIG. 1, print head 24 is a dual-tip extrusion head configured to deposit part and support materials from supply source 26 and supply source 28, respectively. [0038] Examples of suitable extrusion heads for print head 24 include those disclosed in Crump et al., U.S. Patent No. 5,503,785; Swanson et al., U.S. Patent No. 6,004,124; LaBossiere, et al., U.S. Patent No. 7,604,470; Leavitt, U.S. Patent No. 7,625,200; and U.S. Patent Application No. 12/976,111, entitled "Print Head Assembly For Use In Fused Deposition Modeling Systems". In alternative embodiments, print head 24 may function as a multiple- stage screw pump, as disclosed in Batchelder et al., U.S. Patent No. 5,764,521; and Skubic et al., U.S. Patent No. 7,891,964. Furthermore, system 10 may include a plurality of print heads 24 for depositing part and/or support materials from one or more tips.
[0039] The part material is supplied to print head 24 from supply source 26 via feed line 36, thereby allowing print head 24 to deposit the part material to print 3D part 32. Correspondingly, the support material is supplied to print head 24 from supply source 28 via feed line 38, thereby allowing print head 24 to deposit the support material to print support structure 34.
[0040] The part and support materials may be provided to system 10 in a variety of different media. Commonly, the materials may be supplied in the forms of continuous filaments. For example, in system 10, the part and support materials may be provided as continuous filament strands fed respectively from supply sources 26 and 28, as disclosed in Swanson et al., U.S. Patent No. 6,923,634; Comb et al., U.S. Patent No. 7,122,246; Taatjes et al, U.S. Patent Application Publication Nos. 2010/0096485 and 2010/0096489; and Swanson et al., U.S. Patent Application Publication No. 2010/0283172. Examples of suitable average diameters for the filament strands of the modeling and support materials range from about 1.27 millimeters (about 0.050 inches) to about 3.0 millimeters (about 0.120 inches).
[0041] Alternatively, the part and support materials may exhibit non-cylindrical filament geometries, such as rectangular geometries. Examples of suitable dimensions for the exhibit non-cylindrical filament geometries include those disclosed in Batchelder et al., U.S. Patent Application Publication No. 2011,0076496. In further alternative embodiments, the part and support materials may be provided as other forms of media (e.g., pellets, slugs, and resins) from other types of storage and delivery components (e.g., supply hoppers and vessels).
[0042] During a printing operation, print head 24 deposits the received part and support materials onto platen 20 to print 3D part 32 and support structure 34 in a layer-by- layer manner based on instructions from controller 30. Support structure 34 is desirably deposited to provide vertical support along the z-axis for overhanging regions of the layers of 3D part 32, and, optionally, to provide lateral support to various surfaces of 3D part 32. The use of support structure 34 thereby allows 3D part 32 to be built with a variety of geometries.
[0043] After the printing operation is complete, the resulting 3D part 32/support structure 34 may be removed from build chamber 18. Support structure 34 may then be removed from 3D part 32, and 3D part 32 may undergo one or more post-printing operations (e.g., vapor smoothing and media blasting).
[0044] As can be appreciated, support structures (e.g., support structure 34) are necessary to support overhanging portions and/or lateral surfaces of 3D parts (e.g., 3D part 32) during the printing operation, which are not supported by the part material itself. Thus, the cost to print 3D part 32 is dependent on the volume of support material needed to print support structure 34 in a manner that sufficiently supports the layers of 3D part 32. As a result, a price quoting program implemented by computer 12 and/or server 14 needs to account for this required support material volume when generating price quotes.
[0045] Computer 12, server 14, and host computer 16 are each one or more computer-based systems configured to communicate with each other and/or system 10. Computer 12 may be any suitable computer-based system (e.g., a personal computer, laptop computer, server-based system, mobile device, computer tablet device, and the like), and is configured to communicate with server 14 over one or more network communication lines (referred to collectively as network line 40).
[0046] Server 14 may be managed by a manufacturer that operates system 10, and is configured to run a price quoting program that is accessible by multiple computers over network line 40. For example, a user of computer 12 may communicate with server 14 over network line 40 to generate online price quotes for printing 3D parts, such as 3D part 32. Server 14 is also configured to communicate with host computer 16 over one or more communication lines (referred to collectively as communication line 42). Host computer 16 may also be managed by the manufacturer that operates system 10, and is configured to communicate with system 10 over one or more communication lines (referred to collectively as communication line 44) for printing 3D parts and support structures (e.g., 3D part 32 and support structure 34).
[0047] As shown in FIG. 2A, prior to the printing operation, a user may retain a digital representation (e.g., an AMF or STL format file) of 3D part 32, referred to as digital part 46, on one or more data storage devices of computer 12. The manufacturer may correspondingly retain price quoting program 48 and SIG engine 50 on one or more data storage devices of server 14. Price quoting program 48 is a computer-implement program accessible over the Internet that generates price quotes for printing 3D parts with system 10 or other additive manufacturing systems. SIG engine 50 is the computer-implemented program of the present disclosure, which calculates the volumes of support material that are needed to print the 3D parts, as discussed below, and operates in conjunction with price quoting program 48.
[0048] To request a price quote for printing 3D part 32 based on digital part 46, the user of computer 12 may access price quoting program 48 over network line 40. In the shown embodiment, the user of computer 12 also sends a copy of digital part 46 and any related specifications (e.g., part materials, dimensions, user-selected options, and the like) over network line 40 to server 14.
[0049] The volume of support material needed to print 3D part 32 depends on the orientation of digital part 46 in the x-y-z coordinate system (or other coordinate system). As such, price quoting program 48 may include menu 52 of user-selectable options, where the user-selectable options can affect the orientation of digital part 46 during the printing operation. For example, menu 52 may include options such as (i) optimizing the price quote by orienting digital part 46 in a manner that minimizes the required volume of support material, (ii) preserving the orientation of digital part 46, and (iii) orienting digital part 46 to minimize the z-axis height of 3D part 32. In some embodiments, menu 52 (or other interface) may also include additional user-selectable options.
[0050] These user- selectable options may then be exported to SIG engine 50 when calculating the required support material volume. For example, option (i) allows SIG engine 50 to orient digital part 46 in any manner needed to minimize the amount of support material required to print 3D part 32. As such, under option (i), SIG engine 50 can calculate the needed support material volume along multiple directional axes of digital part 46 to attain the directional axis that provides the lowest amount of required support material.
[0051] In comparison, options (ii) and (iii) limit the extent that digital part 46 can be reoriented from its initial orientation. As such, these two options may not necessary result in the lowest amount of support material, and consequentially, the lowest price quote. However, in many situations, users may prefer the 3D parts to be printed in particular orientations regardless of the cost effects, such as to preserve the strengths and/or aesthetic qualities of the 3D parts along particular surfaces. [0052] Furthermore, price quoting program 48 may include menu 53, which allows the user to select which additive manufacturing process to use to print or otherwise build 3D part 32. As discussed below, the various types of additive manufacturing processes may require different volumes of support material to print or otherwise build 3D parts. For example, extrusion-based additive manufacturing systems typically only require support material to be placed below the part materials layers. In comparison, however, some jetting systems require support materials to also be used to support lateral surfaces of the 3D parts. Moreover, some powder-based additive manufacturing systems may recycle portions of the non-bound powders, thereby reducing the overall consumed volume of the support material. Accordingly, SIG engine 50 may be configured to calculate the support material volumes differently depending on the additive manufacturing process selected with menu 53.
[0053] Upon receipt of digital part 46, SIG engine 50 may extract information from price quoting program 48 (e.g., the user-selected options from menus 52 and 53), and may analyze the received digital part 46 to calculate the volume of support material required to print 3D part 32, as discussed below. SIG engine 50 may then output the calculated support material volume to price quoting program 48, allowing price quoting program 48 to generate a price quote for printing 3D part 32 with system 10. SIG engine 50 may also export a new digital part (referred to as new digital part 46a) to server 14, where the new digital part 46a is the reoriented digital part 46. Server 14 may then send the generated price quote and the new digital part 46a back to computer 12 over network line 40.
[0054] If the user accepts the price quote, server 14 may then send the new digital part 46a to host computer 16 over communication line 42. Host computer 16 may then slice digital part 46a into multiple horizontal layers, and generate digital support layers for support structure 34. Host computer 16 may also generate tool-path instructions and other related information for each layer of digital part 46a and the digital support layers, and the resulting data may be transmitted to system 10 over communication line 44. System 10 may then print 3D part 32 and support structure 34 based on the received data, where the volume of support material consumed to print support structure 34 corresponds to the volume of support material calculated by SIG engine 50.
[0055] FIG. 2B illustrates an alternative embodiment in which SIG engine 50 is retained on computer 12. In this example, the user of computer 12 may install or otherwise copy an executable file of SIG engine 50 from server 14 (e.g., as a plug-in, widget, application, or the like). To request a price quote for printing 3D part 32 based on digital part 46, the user of remote computer 14 may access price quoting program 48 over network line 40. However, in this embodiment, digital part 46 is not immediately transmitted to server 14.
[0056] Instead, SIG engine 50 analyzes digital part 46 on computer 12 to calculate the volume of support material required to print 3D part 32. SIG engine 50 may then output the calculated support material volume to price quoting program 48 on server 14 over network line 40. SIG engine 50 may also export the new digital part 46a to computer 12. Upon receipt of the calculated support material volume, price quoting program 48 may generate a price quote for printing 3D part 32 from digital part 46a. Server 14 then sends the generated price quote back to computer 12 over network line 40.
[0057] Retaining SIG engine 50 on computer 12 provides several advantages over having it retained on server 14. First, digital part 46 is not required to be transmitted to sever 14 to attain price quotes, which can speed up the price quoting operation by eliminating this transfer step. Additionally, leaving digital part 46 on computer 12 during the price quote operation also allows the user of computer 12 to check price quotes on digital part 46 without apprehension of having a copy of digital part 46 being saved at a separate location outside of his or her control until he or she accepts the price quote.
[0058] If the user accepts the price quote sent from server 14, a copy of digital part
46a and any specifications are then transmitted over network line 40 to server 14. Server 14 may then send the copy of digital part 46a to host computer 16 over communication line 42. Host computer 16 and system 10 may then be used to print 3D part 32 and support structure 34, as discussed above.
[0059] The embodiments shown in FIGS. 2 A and 2B illustrate suitable architectures for performing price quote operations with the use of SIG engine 50. In a further suitable embodiment, price quote engine 48 may also function as a downloadable program that resides on computer 12, and communicates with server 14 over network line 40.
[0060] FIG. 3 illustrates a suitable method (referred to as method 54) for implementing SIG engine 50 with a computer-based system (e.g., computer 12 and/or server 14). The following discussion of method 54 is made with reference to system 10, computer 12, 3D part 32, support structure 34, and digital part 46. However, the operation of SIG engine 50 pursuant to method 54 may be used with a variety of additive manufacturing systems and computer-based systems in combination with 3D parts and support structures having numerous different geometries. An application of method 54 to analyze digital part 46 is also illustrated below in FIGS. 5-15. [0061] As shown in FIG. 3, method 54 includes steps 56-74, and initially involves running or otherwise loading SIG engine 50 to the memory of computer 12 (step 56). Computer 12 may also load digital part 46 and/or information related to digital part 46, such as x-y-z coordinate locations, surface area, triangle complexity, solid volume, the user- selected options from menus 52 and 53, and the like. Computer 12 may also perform one or more error-check operations to check digital part 46 for errors. If errors are found, computer 12 may attempt to correct the errors and/or stop the operation of SIG engine 50 and inform the user of the errors.
[0062] After digital part 46 is loaded, computer 12 generates a tree data structure for digital part 46 by partitioning the geometry of digital part 46 into multiple subsets (step 58). Examples of suitable tree data structures for use with SIG engine 50 include binary space partitioning (BSP) trees, octrees, and the like. For instance, with a BSP tree, computer 12 may recursively partition digital part 46 into convex subsets until each subset becomes simple enough to be individually pinged by computer 12 using a collision detection technique.
[0063] Computer 12 may then generate a 3D grid of cells defining a volume bounding box for the tree data structure of digital part 46 (step 60), where the cells of the 3D grid desirably correspond in size to the subsets of the tree data structure. As discussed below, this allows computer 12 to quickly ping each cell of the 3D grid to determine whether a portion of the tree data structure for digital part 46 resides in a given cell. It is noted that computer 12 does not actually generate a physical or graphical 3D grid of cells (unless desired). Rather, as discussed below, the cells are volumetric increments of coordinate locations retained in the memory of computer 12 for subsequent analysis of the tree data structure for digital part 46.
[0064] In steps 62a-62c, computer 12 refers to which option the user selected with menu 52. If the user selected option (i) to optimize the price quote by orienting digital part 46 in any manner to minimize the required volume of support material (step 62a), SIG engine 50 may be configured to calculate the support material volume over six or more directional axes (step 64a). For example, SIG engine 50 may be configured to calculate the support material volume for each primary or major directional axis in the x-y-z coordinate system (i.e., positive and negative directions along the major x-y-z axes), providing six separate calculations. The number of directional axes may also differ depending on the particular coordinate system used, such as for a polar coordinate system or an oblique coordinate system. [0065] Alternatively, if the user selected option (ii) to preserve the orientation of digital part 46 (step 62b), SIG engine 50 may be configured to calculate the support material volume along single directional axis, which is the positive direction along the vertical z-axis for the received orientation of digital part 46 (step 64b). On the other hand, if the user selected option (iii) to orient digital part 46 to minimize the z-axis height of 3D part 32 (step 62c), SIG engine 50 may be configured to calculate the support material volume along two directional axes (step 64c). In this situation, SIG engine 50 may identify an orientation of digital part 46 that minimizes the height of digital part 46. The two directional axes are then the positive and negative vertical directions along the given orientation.
[0066] After determining the number of directional axes to analyze, computer 12 then uses SIG engine 50 to calculate the support material volume required to print 3D part 32 from digital part 46 for each directional axis, as discussed below (step 66). Computer 12 then selects the directional axis that corresponds to the lowest calculated support material volume (step 68), and may orient digital part 46 such that the selected axis becomes a positive direction along the vertical z-axis (i.e., an upward facing direction) (step 70). This provides the proper orientation of digital part 46 (and 3D part 32) to print support structure 34 with the minimum amount of support material. In one embodiment, if option (ii) was selected, in which the orientation of digital part 46 is preserved (step 62c), steps 68 and 70 of method 54 may be omitted, as illustrated by broken line 75.
[0067] Computer 12 may then output the calculated support material volume to price quote engine 48 (step 72), allowing price quote engine 48 to generate a price quote based in part on the calculated support material volume. Computer 12 may also export a new digital part 46a (e.g., an AMF or STL format file) from the oriented digital part 46 (step 74). As also discussed above, this new digital part 46a may then be transmitted to host computer 16 for use in printing 3D part 32 with system 10.
[0068] FIG. 4 illustrates method 76, which is an example of a suitable method for calculating the support material volume required to print 3D part 32 from digital part 46, pursuant to step 66 of method 54 (shown in FIG. 3). An application of method 76 to analyze digital part 46 is also illustrated below in FIGS. 5-15.
[0069] As shown in FIG. 4, method 76 includes steps 78-108, and initially involves selecting a first directional axis along which digital part 46 is oriented to perform the calculation (step 78). Under user-selected options (i) and (ii), the first directional axis may be the positive direction along the vertical z-axis (i.e., the upward facing direction) for the received digital part 46. Alternatively, under user-selected option (iii), the first directional axis may be the positive direction along an axis that minimizes the build height of digital part 46. It is noted that digital part 46 does not actually need to be reoriented during step 78, which can consume processing power of computer 12. Rather, computer 12 recognizes the directional axes in the coordinate system relative to digital part 46. In other words, computer 12 may switch which direction is the upward vertical direction for digital part 46 while performing method 76.
[0070] As discussed above, pursuant to step 60 of method 54 (shown in FIG. 3), computer 12 previously generated a 3D grid of cells for digital part 46. For the first directional axis, the cells of the 3D grid are arranged in multiple cell arrays, where each array of cells extends along the first directional axis. This is illustrated below, for example, in FIGS. 6 and 7A-7D.
[0071] Computer 12 identifies and proceeds to a first cell array of the multiple cell arrays along the first directional axis (step 80), and identifies and proceeds to a first cell in the first cell array (step 82). Computer 12 then pings the current cell using a collision detection technique to determine if a portion of the tree data structure for digital part 46 resides in the current cell (step 84). In particular, computer 12 may execute a collision detection query against the tree data structure (e.g., BSP tree) of digital part 46 to determine whether a subset of the tree data structure of digital part 46 resides in the current cell. As used herein, the terms "ping", "pinging", and the like, with reference to a cell, refer to the execution of a collision detection query against the tree data structure of a digital part to determine whether a subset of the tree data structure resides in the cell.
[0072] In one embodiment, to reduce processing requirements on computer 12, the pinging of each cell under step 84 may be performed at a central coordinate point of the given cell. As mentioned above, the cells of the 3D grid are volumetric increments of x-y-z locations, rather than physical or graphical cells. In this embodiment, the x-y-z locations are located at the central coordinate points of the volumetric increments (i.e., at the volumetric centers of the cells). As such, pursuant to step 84 of method 76, computer 12 may execute the collision detection query against the central coordinate point in the current cell to determine whether a subset of the tree data structure for digital part 46 resides in the current cell. In alternative embodiments, the pinging in each cell under step 84 may be performed at any suitable coordinate location within the volume of the given cell.
[0073] While this embodiment may result in small numbers of false-positive results and false-negative results since the pinging is performed at particular x-y-z coordinates (rather than over full volumetric increments), the small volumes of each of the cells render such results minor or negligible. Moreover, this embodiment can substantially reduce the processing requirements on computer 12, allowing SIG engine 50 to quickly perform the steps of method 76 and rapidly return calculated support material volumes to price quoting program 48.
[0074] At step 86 of method 76, if the pinging does not hit a portion of digital part
46 (i.e., hit a subset of the tree data structure for digital part 46) in the current cell, computer 12 then checks whether the current cell is the last cell in the current cell array (step 88). If not, computer 12 proceeds to the next successive cell in the current cell array (step 90) and repeat steps 84, 86, 88, and 90 until a portion of digital part 46 residing in a given cell along the current cell array is reached (step 86), or until each cell in the current cell array is pinged (step 88).
[0075] If a portion of digital part 46 is hit in a cell during one of the pinging steps, computer 12 then designates the current cell (i.e., the cell in which the portion of digital part 46 is hit) and all remaining subsequent and unpinged cells in the current cell array as being "filled" (step 92). This step distinguishes the cells that do not contain any part or support materials (non-filled cells), and the cells that contain part or support materials (filled cells). This step also stops all subsequent pingings for the current cell array, thereby reducing the processing requirements of computer 12.
[0076] After the given cell(s) of the current cell array are designated as "filled", computer 12 checks whether the current cell array is the last cell array of the 3D grid along the current directional axis (step 94). If not, computer 12 proceeds to the next cell array along the current directional axis (step 96), and repeat steps 82-96 for each of the remaining cell arrays of the 3D grid along the current directional axis.
[0077] Alternatively, pursuant to step 88, if the last cell in the current cell array is pinged and no hits are made during the pinging steps (i.e., the tree data structure for digital part 46 does not reside in any of the cells of the current cell array), computer 12 proceeds to the next cell array along the current directional axis (step 96, as illustrated by a broken line 110 that does not intersect step 92), and repeat steps 82-86 for each of the remaining cell arrays of the 3D grid along the current directional axis.
[0078] After the last cell array of the 3D grid along the current directional axis is analyzed (step 94), computer 12 then sums the volumes of all of the cells previously designated as filled (step 98). This provides the total filled volume for digital part 46 and the digital support layers. In an alternative embodiment, the summing operation in step 98 may be performed for each cell array during or after designation step 92, in a cumulative manner. The resulting summed total filled volume will be the same in either embodiment.
[0079] After the summed total filled volume is obtained, the volume of digital part
46 may then be subtracted from the summed total filled volume to provide an initial volume of support material needed to print 3D part 32 with system 10 (step 100). Alternatively, this subtracting step may also be performed for each cell array during or after designation step 92, where the summed filled volume for each cell array may be reduce or otherwise offset by the volume of digital part 46 along the given cell array.
[0080] In the shown example, support structure 34 (shown in FIG. 1) is illustrated with a dense fill, and extends vertically downward from all overhanging surfaces of 3D part 32. In this situation, the initial volume of support material generated in step 100 of method 76 provides an accurate representation of the amount of support material needed to print 3D part 32. However, the initial support material volume attained from step 100 may be modified (step 102) to accommodate variations in printing styles, such as column support structures, sparse-fill support structures, and the like. In one embodiment, the initial support material volume attained from step 100 may be reduced based on the algorithm disclosed in Heide, U.S. Patent Application Publication No. 2011/0178621, which may generate the digital support layers having convex outer dimensions that reduce in size and complexity in a downward direction along the vertical z-axis.
[0081] After the support material volume for digital part 46 is calculated along the first directional axis, computer 12 may then check whether the current directional axis is the last directional axis to analyze (step 104). Under user-selected option (i), SIG engine 50 is set up to analyze digital part 46 along six or more directional axes (from steps 62a and 64a of method 54). Similarly, under user-selected option (iii), SIG engine 50 is set up to analyze digital part 46 along two directional axes (from steps 62c and 64c of method 54). In these situations, computer 12 proceeds to the next directional axis (step 106) and repeat steps 80-106 for each remaining directional axis.
[0082] As mentioned above, when proceeding to each successive directional axis, computer 12 desirably does not reorient digital part 46, which can take up valuable processing power. Instead, computer 12 merely designates the selected directional axis as the new "upward" direction and repeats steps 80-106 for each new upward direction.
[0083] After the support material volume for digital part 46 is calculated along each directional axis (step 106), computer 12 then proceeds to step 68 of method 54 (shown in FIG. 3) (step 108). As such, as mentioned above, computer 12 may then select the directional axis that corresponds to the lowest calculated support material volume (step 68 of method 54), may orient digital part 46 such that the selected axis becomes a positive direction along the vertical z-axis (i.e., an upward facing direction) (step 70 of method 54), may output the calculated support material volume to price quoting program 48 (step 72 of method 54), and may export new digital part 46a (step 74 of method 54).
[0084] Alternatively, under user-selected option (ii), SIG engine 50 is configured to analyze digital part 46 only along a single directional axis (from steps 62b and 64b of method 54). In this case, after steps 100 and 102 of method 76 are performed for the first and only directional axis, computer 12 may then proceed directly to step 68 of method 54 (step 108), or alternatively, directly to step 72 of method 54 (as illustrated by broken line 75 in FIG. 3). In this case, may output the calculated support material volume to price quoting program 48 (step 72 of method 54), and, optionally, export new digital part 46a (step 74 of method 54).
[0085] FIGS. 5-15 illustrate an application of method 54 (shown in FIG. 3) and method 76 (shown in FIG. 4) for calculating the support material volume required to print 3D part 32 from digital part 46, based on user-selected option (i) from menu 52. As shown in FIG. 5, after steps 56 and 58 of method 54 are performed, computer 12 generates grid 112, which is a 3D grid of cells 114 that define a volume bounding box for the tree data structure of digital part 46 (step 60 of method 54).
[0086] As mentioned above, in step 60 of method 54, computer 12 does not actually generate a physical or graphical grid 112 (unless desired). Rather, the x-y-z locations of the central coordinate points of cells 114 (or other selected coordinate locations within cells 114) are retained in the memory of computer 12.
[0087] For example, expanded cells 114a- 114c respectively include central coordinate points 116a-l 16c, each of which are located at the centers of their respective cell 114a-114c. In this example, in which cells 114 have the same volumes, central coordinate points 116a and 116b are offset from each other along the z-axis by a single increment. Similarly, central coordinate points 116b and 116c are offset from each other along the x- axis by the same single increment. Cells 114 aligned along the y-axis also have central coordinate points offset from each other by the same single increment.
[0088] Accordingly, SIG engine 50 may use a preset volume for cells 114 to reduce processing time when generating grid 112. As shown, this positions the central coordinate points (e.g., points 116a-116c) of cells 114 at the same preset increments from each other. In alternative embodiments, however, cells 114 may have different geometric shapes (e.g., rectangular, pyramidal, and the like) and/or may have different volumes from each other, which may affect the locations of the central coordinate points of the cells.
[0089] Furthermore, SIG engine 50 may provide a user option to select the desired volumes for cells 114. In general, smaller volumes for cells 114 provide more accurate calculations, and vice versa. However, smaller volumes for cells 114 also increase the number of cells that define the volume bounding box for digital part 46, thereby increasing the total number of cells that are pinged. This can increase the processing time required to perform the calculations.
[0090] As such, SIG engine 50 desirably operates with cell volumes that balance accuracy and processing time. Examples of suitable volumes for each cell 114 of grid 112 range from about lxlO"9 cubic inches (e.g., a cube having sides of about 0.001 inches) to about 0.001 cubic inches (e.g., a cube having sides of about 0.1 inches). In one embodiment, examples of suitable volumes for each cell 114 range from about 1.25xl0"7 cubic inches (e.g., a cube having sides of about 0.005 inches) to about 1.25x1ο-4 cubic inches (e.g., a cube having sides of about 0.05 inches).
[0091] As further shown in FIG. 5, grid 112 has six sides facing the major directional axes of the x-y-z coordinate system, namely top side 118a facing the positive direction along the z-axis, a bottom side (not shown in FIG. 5) facing the negative direction along the z-axis, front side 118b facing the positive direction along the x-axis, a rear side (not shown in FIG. 5) facing the negative direction along the x-axis, a right side 118c facing the positive direction along the y-axis, and a left side (not shown in FIG. 5) facing the negative direction along the y-axis. The terms top, bottom, front, rear, right, and left are not intended to be limiting on any particular orientation, and are used herein merely for ease of discussion.
[0092] After grid 112 is generated, SIG engine 50 then calculates the volume of support material required to print 3D part 32 with system 10, pursuant to step 66 of method 54, and as described by method 76. Accordingly, pursuant to step 78 of method 76, computer 12 selects a first directional axis for performing the analysis. For convenience, the positive direction along the z-axis may be selected as the first directional axis to perform the analysis.
[0093] FIG. 6 further illustrates grid 112 and maintains the same orientation as shown in FIG. 5. As shown in FIG. 6, for the positive direction along the z-axis, cells 114 are arranged in multiple cell arrays, referred to as cell arrays 120, each extending downward along the z-axis between top side 118a and the bottom side of grid 112 (not shown in FIG. 6). Each cell array 120 includes "f number of cells 114 along the z-axis. For ease of discussion, cell arrays 120 may be organized into rows aligned with the x-z plane. Grid 112 includes "/' number of cell arrays 120 per row, and "fc" number of rows of cell arrays 120 along the y-axis, such that grid 112 includes a total number of j x k cell arrays 120, and a total number of i xj x k cells 114.
[0094] Pursuant to step 80 of method 76, computer 12 may proceed to a first cell array 120, which may located at any suitable location within grid 112. For convenience, the first cell array 120 may be a corner cell array, such as cell array 120a, which is located in the first row at the corner of top side 118a, front side 118b, and right side 118c. Pursuant to steps 82-94 of method 76, computer 12 then analyzes cells 114 in cell array 120a in a downward direction, as illustrated by arrow 122 (as discussed further below in FIGS. 7A- 7D).
[0095] After cell array 120a is analyzed, computer 12 then proceeds to the next cell array 120 (step 96). In the current example, the next cell array 120 is the adjacent cell array 120 in the first row along the x-axis, referred to as cell array 120b. Pursuant to steps 82-94 of method 76, computer 12 then analyzes cells 114 in cell array 120a in a downward direction, as illustrated by arrow 124 (as also discussed further below in FIGS. 7A-7D). Computer 12 may then repeat steps 82-96 of method 76 for each successive cell array 120 in the current row.
[0096] When the first row of cell arrays 120 have been analyzed, computer 12 may then proceed to the first cell array 120 in the second row of cell arrays 120, referred to as cell array 120c (step 96). Computer 12 then repeats steps 82-96 for each cell array 120 in the second row, and for each remaining row of cell arrays 120 until all cell arrays 120 of grid 112 are analyzed. Analysis of cell arrays 120 in this row-based manner provides a convenient and organized way to proceed through steps 82-96 of method 76. However, SIG engine 50 may alternatively be configured such that computer 12 analyzes cell arrays 120 in different orders, as desired.
[0097] FIG. 7A-7D illustrate the application of steps 82-96 for a given row of cell arrays 120, which includes cell arrays 126a-126h, and also depict bottom side 118d of grid 112. As shown in FIG. 7A, pursuant to step 82 of method 76, computer 12 may proceed to a first cell 114 in cell array 126a, referred to as cell 128(i). Computer 12 then pings cell 128(i) to determine whether a subset of the tree data structure for digital part 46 resides in cell 128(i) (step 84). [0098] In the shown example, the tree data structure for digital part 46 does not include any subsets in cell 128(i) (step 86). As such, computer 12 then checks whether the cell 128(i) is the last cell 114 in cell array 126a (step 88). Since cell array 126a contains additional cells 114, computer 12 then proceeds to the next successive cell 114 in cell array 126a (step 90). The next successive cell in cell array 126a from cell 128(i) is determined by proceeding from cell 128(i) to the next cell 114 along cell arrays 126a that is in an opposite direction from the directional axis selected in step 78. In this case, the currently selected directional axis is the positive direction along the z-axis. As such, the next successive cell 114 in cell array 126a from cell 128(i) is located downward along the z-axis from cell 128(i) (i.e., in the negative direction along the z-axis, as illustrated by arrow 122), and is referred to as cell 128(¾.
[0099] Computer 12 then pings cell 128 to determine whether a subset of the tree data structure for digital part 46 resides in cell 128 (step 84). In this case, the tree data structure for digital part 46 also does not include any subsets in cell 128 (step 86). In fact, as shown, none of the cells 114 in cell array 126a include any subsets of the tree data structure for digital part 46. As such, pursuant to steps 84-90 of method 76, computer 12 may continue to ping each successive cell 114 downward along cell array 126a until the last cell 114 of cell array 126a located at bottom side 118d of grid 112 (referred to as cell 128(i)) is pinged.
[0100] Since cell array 126a does not include any subsets of the tree data structure for digital part 46, step 92 of method 76 is bypassed, and none of the cells 114 in cell array 126a are designated as "filled". Instead, computer 12 proceeds to the next cell array 120 (step 96, as illustrated by broken line 110 in FIG. 4), which is cell array 126b. Pursuant to step 82 of method 76, computer 12 proceeds to a first cell 114 in cell array 126b, referred to as cell 130(i). Computer 12 then pings cell 130^) to determine whether a subset of the tree data structure for digital part 46 resides in cell 130(i) (step 84).
[0101] As this point, the tree data structure for digital part 46 also does not include any subsets in cell 130 Q) (step 86). As such, computer 12 performs steps 88 and 90 to proceed to the next subsequent cell 114 in cell array 126b, as illustrated by arrow 124, which is cell 130. Computer 12 then repeats steps 84-90 for cell 130 , which also does include any subsets of the tree data structure. Therefore, computer 12 performs steps 88 and 90 to proceed to the next successive cell 114 in cell array 126b, as further illustrated by arrow 124, which is cell 130(3). [0102] Computer 12 then pings cell 130(3) to determine whether a subset of the tree data structure for digital part 46 resides in cell 130(3) (step 84). In this case, the tree data structure for digital part 46 does include a subset in cell 130(3) (step 86). As such, computer 12 then designates the cell 130(3) and all remaining subsequent and unchecked cells 114 in cell array 126b down to cell 130(i) as being "filled" (step 92).
[0103] This is illustrated in FIG. 7B, in which cell 130(3) and all cells 114 in cell array 126b below cell 130(3), down to the last cell 130(i), are designated as "filled". This distinguishes the cells of cell array 126b that do not contain any part or support materials (non- filled cells), and the cells of cell array 126b that contain part or support materials (filled cells).
[0104] Computer 12 then proceeds to the next cell array 120 (step 96), which is cell array 126c, and repeats steps 82-96 for each remaining cell array 120 of grid 112 (e.g., cell arrays 126d-126h). This results in "filled" designation pattern shown in FIG. 7C.
[0105] FIG. 7D illustrates an alternative operation of SIG engine 50. As mentioned above, SIG engine 50 may be configured to calculate the support material volumes differently depending on the additive manufacturing process selected with menu 53. FIG. 7D illustrates an embodiment in which support material is also required to support the lateral surfaces of 3D part 32, such for use with some jetting-based additive manufacturing systems.
[0106] In this operation, based on the user-selected option with menu 53 of price quoting program 48, when computer 12 designates cell 130(3) as "filled", pursuant to step 92 of method 76, computer also increments one or more cell arrays 120 backwards and designates the respective cells 114 as filled. In the current example, cell array 126a is the only cell array that may be backtracked to. As such, computer 12 designates the adjacent cell 114 in cell array 126a (referred to as cell 128(3)) as filled. Correspondingly, computer 12 also designates all cells 114 in cell array 126a below cell 128(3), down to the last cell 128(i), are designated as "filled". This accounts for support material that is printed to support the lateral surfaces of 3D part 32 when printing with additive manufacturing systems that requires such support structures.
[0107] In a further alternative embodiment, SIG engine 50 may be configured to perform ping jumps, where the pinging operation on a given cell array 120 may jump downward by a preset increment number of cells 114 until a subset of the tree structure for digital part 46 is reached. At that point, computer 12 may backtrack the pinging operation upward within a given jump increment to identify the surface of digital part 46. This ping- jumping technique is suitable for reducing the time required to perform the pinging operations, and is particularly useful in regions of grid 112 that typically do not contain portions of 3D parts, such as in the corners of grid 112.
[0108] FIG. 8 further illustrates the example shown in FIG. 7C, where FIG. 8 is a front view of grid 112 after step 94 of method 76 is completed for the last cell array 120, and depicts rear side 118e. At this point, computer 12 sums the volumes of cells 120 that are designated as filled (step 98), which provides the total filled volume for digital part 46 and the digital support layers. As discussed above, the summing operation in step 94 may alternatively be performed after each designation step 92 in a cumulative manner.
[0109] Computer 12 then subtracts the volume of digital part 46 from the summed volume to provide an initial volume of support material needed to print 3D part 32 with system 10 (step 100). Computer 12 may also modify the initial volume of support material to accommodate variations in printing styles, such as column support structures, sparse-fill support structures, and the like (step 102). For example, when using a sparse-fill arrangement, computer 12 may reduce the initial volume of support material by a factor, such as by a preset factor to provide the calculated support material volume for digital part 46 along the positive direction of the z-axis.
[0110] Computer 12 then checks whether the positive direction of the z-axis is the last directional axis to analyze (step 104). Under the user-selected option (i) from menu 52, SIG engine 50 is configured to analyze digital part 46 along six or more directional axes (from steps 62a and 64a of method 54). In this situation, computer 12 then proceeds to the next directional axis (step 106) and repeats steps 80-106.
[0111] As shown in FIG. 9, the next directional axis may be the negative direction along the z-axis. In this case, the same cell arrays 120 are used, but are analyzed in an inverted manner compared to the previous operation shown in FIGS. 7A-7D and 8. In other words, the first cell 114 in each cell array 120 is located adjacent to bottom side 118d, and the last cell 114 in each cell array 120 is located adjacent to top side 118a. Accordingly, for each cell array 120, cells 114 are pinged upward during steps 84-92 of method 76, as illustrated by arrow 131.
[0112] When a given pinged cell 114 includes a subset of the tree data structure for digital part 46 (steps 84 and 86), computer 12 then designates the pinged cell and all remaining subsequent and unchecked cells 114 in the current cell array 120, upward toward the last cell 114, as being "filled" (step 92). Therefore, after computer 12 completes the analysis of steps 80-104, the cells 114 designated as filled extend upward, as shown in FIG. 9. The resulting calculated support material volume is then based on this upward arrangement, which corresponds to a situation in which digital part 46 is oriented such that the negative direction along the z-axis becomes the upward direction for printing 3D part 32.
[0113] Computer 12 then checks whether the negative direction of the z-axis is the last directional axis to analyze (step 104). Under the current situation, computer 12 may proceed to a next directional axis (step 106) and repeat steps 80-106. For example, the next directional axis may be the positive direction along the y-axis.
[0114] As shown in FIG. 10, for the positive direction along the y-axis, cells 114 are arranged in multiple cell arrays, referred to as cell arrays 132 extending laterally along the y-axis between right side 118c and the left side of grid 112 (not shown in FIG. 10). Each cell array 132 includes "f number of cells 114 along the y-axis. For ease of discussion, cell arrays 132 may be organized into rows aligned with the x-y plane. Grid 112 includes "/' number of cell arrays 132 per row, and number of rows of cell arrays 132 along the z- axis, such that grid 112 includes a total number oij x k cell arrays 132, and a total number of i x j x k cells 114 (same number as above for cell arrays 120 along the z-axis).
[0115] Computer 12 may proceed to a first cell array 132 (step 80 of method 76), which may located at any suitable location within grid 112. For convenience, the first cell array 132 may be a corner cell array, such as cell array 132a, which is located in the first row at the corner of top side 118a, front side 118b, and right side 118c. Pursuant to steps 82-94 of method 76, computer 12 then analyzes cells 114 in cell array 132a in a leftward direction, as illustrated by arrow 134.
[0116] After cell array 132a is analyzed, computer 12 then proceeds to the next cell array 132 (step 96). In the current example, the next cell array 132 is the adjacent cell array 132 in the first row along the y-axis, referred to as cell array 132b. Pursuant to steps 82-94 of method 76, computer 12 then analyzes cells 114 in cell array 132b in a leftward direction, as illustrated by arrow 136. Computer 12 may then repeat steps 82-96 of method 76 for each successive cell array 132 in the current row along the y-axis. When the first row of cell arrays 132 have been analyzed, computer 12 may then proceed to the first cell array 132 in the second row of cell arrays 132, and may repeat steps 82-96 for each cell array 132 in the second row, and for each remaining row of cell arrays 132 until all cell arrays 132 of grid 112 are analyzed.
[0117] This is shown in FIG. 11, where cell arrays 132 extend along the y-axis, between right side 118c and left side 118f. Cell arrays 132 may be analyzed in the same manner as discussed above for cell arrays 120, where the first cell 114 in each cell array 132 is located adjacent to right side 118c, and the last cell 114 in each cell array 132 is located adjacent to left side 118f. Therefore, for each cell array 132, cells 114 are pinged from right-to-left during steps 84-92 of method 76 (e.g., as illustrated by arrows 134 and 136).
[0118] When a given pinged cell 114 includes a subset of the tree data structure for digital part 46 (steps 84 and 86), computer 12 then designates the pinged cell and all remaining subsequent and unchecked cells 114 in the current cell array 132, leftward toward the last cell 114, as being "filled" (step 92). Accordingly, after computer 12 completes the analysis of steps 80-104, the cells 114 designated as filled extend leftward, as shown in FIG. 11. Thus, the resulting calculated support material volume is based on this leftward arrangement, which corresponds to a situation in which digital part 46 is oriented such that the positive direction along the y-axis becomes the upward direction for printing 3D part 32.
[0119] Computer 12 then checks whether the positive direction of the y-axis is the last directional axis to analyze (step 104). Under the current situation, computer 12 may proceed to the next directional axis (step 106) and repeat steps 80-106.
[0120] As shown in FIG. 12, the next directional axis may be the negative direction along the y-axis. In this case, the same cell arrays 132 are used, but are analyzed in an inverted manner compared to the previous operation shown in FIGS. 10 and 11. In other words, the first cell 114 in each cell array 132 is located adjacent to left side 118f, and the last cell 114 in each cell array 132 is located adjacent to right side 118c. Therefore, for each cell array 132, cells 114 are pinged rightward during steps 84-92 of method 76, as illustrated by arrow 138.
[0121] When a given pinged cell 114 includes a subset of the tree data structure for digital part 46 (steps 84 and 86), computer 12 then designates the pinged cell and all remaining subsequent and unchecked cells 114 in the current cell array 132, rightward toward the last cell 114, as being "filled" (step 92). Accordingly, after computer 12 completes the analysis of steps 80-104, the cells 114 designated as filled extend rightward, as shown in FIG. 12. Thus, the resulting calculated support material volume is based on this leftward arrangement, which corresponds to a situation in which digital part 46 is oriented such that the negative direction along the y-axis becomes the upward direction for printing 3D part 32.
[0122] Computer 12 then checks whether the negative direction of the y-axis is the last directional axis to analyze (step 104). Under the current situation, computer 12 may proceed to the next directional axis (step 106) and repeat steps 80-106. For example, the next directional axis may be the positive direction along the x-axis.
[0123] As shown in FIG. 13, for the positive direction along the x-axis, cells 114 are arranged in multiple cell arrays, referred to as cell arrays 140 extending laterally along the x-axis between front side 118b and rear side 118e (not shown in FIG. 13). Each cell array 140 includes "f number of cells 114 along the x-axis. For ease of discussion, cell arrays 140 may be organized into rows aligned with the y-z plane. Grid 112 includes "j" number of cell arrays 140 per row, and "fc" number of rows of cell arrays 140 along the z-axis, such that grid 112 includes a total number oij x k cell arrays 140, and a total number of i xj x k cells 114 (same number as above for cell arrays 120 along the z-axis, and of cell arrays 132 along the y-axis).
[0124] Computer 12 may proceed to a first cell array 140 (step 80 of method 76), which may located at any suitable location within grid 112. For convenience, the first cell array 140 may be a corner cell array, such as cell array 140a, which is located in the first row at the corner of top side 118a, front side 118b, and right side 118c. Pursuant to steps 82-94 of method 76, computer 12 then analyzes cells 114 in cell array 140a in a rearward direction, as illustrated by arrow 142.
[0125] After cell array 140a is analyzed, computer 12 then proceeds to the next cell array 140 (step 96). In the current example, the next cell array 140 is the adjacent cell array 140 in the first row along the x-axis, referred to as cell array 140b. Pursuant to steps 82-94 of method 76, computer 12 then analyzes cells 114 in cell array 140b in a rearward direction, as illustrated by arrow 144. Computer 12 may then repeat steps 82-96 of method 76 for each successive cell array 140 in the current row. When the first row of cell arrays 140 have been analyzed, computer 12 may then proceed to the first cell array 140 in the second row of cell arrays 140, and may repeat steps 82-96 for each cell array 140 in the second row, and for each remaining row of cell arrays 140 until all cell arrays 140 of grid 112 are analyzed.
[0126] This is illustrated in FIG. 14, where cell arrays 140 are oriented along the x- axis, between front side 118b and rear side 118e. Cell arrays 140 may be analyzed in the same manner as discussed above for cell arrays 120, where the first cell 114 in each cell array 140 is located adjacent to front side 118b, and the last cell 114 in each cell array 140 is located adjacent to rear side 118f. Therefore, for each cell array 140, cells 114 are pinged from front-to-rear during steps 84-92 of method 76 (e.g., as illustrated by arrows 142 and 144). [0127] When a given pinged cell 114 includes a subset of the tree data structure for digital part 46 (steps 84 and 86), computer 12 then designates the pinged cell and all remaining subsequent and unchecked cells 114 in the current cell array 140, rearward toward the last cell 114, as being "filled" (step 92). Accordingly, after computer 12 completes the analysis of steps 80-104, the cells 114 designated as filled extend rearward, as shown in FIG. 14. Thus, the resulting calculated support material volume is based on this rearward arrangement, which corresponds to a situation in which digital part 46 is oriented such that the positive direction along the x-axis becomes the upward direction for printing 3D part 32.
[0128] Computer 12 then checks whether the positive direction of the x-axis is the last directional axis to analyze (step 104). Under the current situation, computer 12 may proceed to the next directional axis (step 106) and repeat steps 80-106.
[0129] As shown in FIG. 15, the next directional axis may be the negative direction along the x-axis. In this case, the same cell arrays 140 are used, but are analyzed in an inverted manner compared to the previous operation shown in FIGS. 13 and 14. In other words, the first cell 114 in each cell array 140 is located adjacent to rear side 118e, and the last cell 114 in each cell array 140 is located adjacent to front side 118b. Therefore, for each cell array 140, cells 114 are pinged forward during steps 84-92 of method 76, as illustrated by arrow 146.
[0130] When a given pinged cell 114 includes a subset of the tree data structure for digital part 46 (steps 84 and 86), computer 12 then designates the pinged cell and all remaining subsequent and unchecked cells 114 in the current cell array 140, forward toward the last cell 114, as being "filled" (step 92). Accordingly, after computer 12 completes the analysis of steps 80-104, the cells 114 designated as filled extend forward, as shown in FIG. 15. Thus, the resulting calculated support material volume is based on this forward arrangement, which corresponds to a situation in which digital part 46 is oriented such that the negative direction along the x-axis becomes the upward direction for printing 3D part 32.
[0131] As illustrated in FIGS. 7A-7D and 8-15, when proceeding to each successive directional axis, computer 12 desirably does not reorient digital part 46, which can take up valuable processing power. Instead, computer 12 merely designates the given selected directional axis as the new "upward" direction and repeats steps 80-106 for each new upward direction. [0132] Computer 12 may then check whether the negative direction of the x-axis is the last directional axis to analyze (step 104). In the current example, SIG engine 50 is configured to calculate the support material volume for digital part 46 only along the six major directional axes. As such, computer 12 then selects the directional axis that corresponds to the lowest calculated support material volume (step 68 of method 54). In this case, computer 12 selects the positive direction along the z-axis, as shown in FIG. 8, which is the directional axis that corresponds to the lowest calculated support material.
[0133] Since this is the same orientation of digital part 46 as received, step 70 of method 54 may be optionally bypassed, and computer 12 may output the support material volume to price quoting program 48 (step 72 of method 54). Computer 12 may also export new digital part 46a (step 74 of method 54) for printing 3D part 32 with system 10. However, since digital part 46 and digital part 46a have the same orientation, computer 12 may alternatively bypass step 74 of method 54, and use digital part 46 to print 3D part 32 with system 10.
[0134] As shown, SIG engine 50 is suitable for quickly calculating support material volumes needed to print 3D parts using the steps of methods 54 and 76. For example, when configured to operate with cells 114 having dimensions of 0.01 inches x 0.01 inches x 0.01 inches (lxlO 6 cubic inches per cell), SIG engine 50 can calculate a needed volume of support material for a given 3D part in about 5-10 seconds per directional axis, or 30-60 seconds for all six major directional axes. SIG engine 50 is accordingly suitable in combination with price quoting program 48 to provide instant price quotes. However, SIG engine 50 may also be used in conjunction with a variety of different processes, such as tool-path generation processes, run-time and scheduling determinations, and the like.
[0135] For example, as shown in FIG. 16, when used in conjunction with a tool-path generation process, cells 114 of grid 112 may have dimensions that correspond to a sliced layer increment for printing or otherwise building a 3D part with a particular additive manufacturing system (e.g., system 10). In this embodiment, the digital part 46a exported during step 74 of method 54 may include the oriented part for 3D part 32 (referred to as digital part 148), and also the digital support layers for support structure 34 (referred to as digital support layers 150). Furthermore, because cells 114 have dimensions that correspond to a sliced layer increment, SIG engine 50 effectively functions as a high-speed slicing program for orienting and slicing digital part 46 into multiple horizontal layers, and for generating digital support layers 150. [0136] In one embodiment, SIG engine 50 may also be configured to generate tool- path instructions and other related information for each layer of digital part 148 and digital support layers 150, and the resulting data may be transmitted to host computer 16 and/or system 10. System 10 may then print 3D part 32 and support structure 34 based on the received data, where the volume of support structure 34 corresponds to the volume of support material calculated by SIG engine 50.
[0137] For run-time and scheduling determinations, SIG engine 50 may also communicate with one or more scheduling programs. For instance, as shown in FIGS. 17A and 17B, which correspond respectively to the illustrations shown in FIGS. 2A and 2B, additive manufacturing service units (e.g., the on-demand service unit "REDEYE" of Stratasys, Inc., Eden Prairie, MN) may schedule time slots for printing jobs on farms of additive manufacturing systems, such as farm 152. These scheduled time slots are typically organized with scheduling programs, such as scheduling program 152 retained on host computer 16 (or alternatively on server 14 or other suitable computer-based system). Since the run times required to print or otherwise build 3D parts and support structures are also typically dependent on the volume of needed support material, SIG engine 50 may also export a run-time estimate based (at least in part) on the calculated support material volume to scheduling program 152.
[0138] The particular run times are also dependent on other factors, such as the type of additive manufacturing process used, the dimensions and complexities of the 3D parts, the part and support materials used, and the like. For example, a jetting-based additive manufacturing system may include a jetting head with an array of jetting orifices for printing part and support materials. The jetting head typically passes an entire printing surface area during each pass for deposition and curing, regardless of the amount of materials being deposited. As such, the run times for a jetting-based additive manufacturing system can be more dependent on the number of printed layers, rather than the amounts of material deposited per layer.
[0139] In comparison, the run times in an extrusion-based additive manufacturing system are based on tool paths. As such, the amounts of material deposited per layer can greatly affect the run times. Accordingly, the run times for a jetting-based additive manufacturing system are typically more consistent compared to those for an extrusion- based additive manufacturing system. Therefore, SIG engine 50 desirably accounts for these discrepancies between the different additive manufacturing processes when outputting run-times estimates to scheduling program 152. [0140] In one embodiment, SIG engine 50 may function as a learning system, in which the run times for various additive manufacturing processes are recorded and compared to the calculated support material volumes to identify correlations. Based on these learned correlations, SIG engine 50 can then provide more accurate run-time estimates to scheduling program 152 for particular additive manufacturing processes.
[0141] The outputted run-time estimates from SIG engine 50 allow scheduling program 152 to then identify available time slots for printing a given 3D part, which may also affect the price quote. Thus, SIG engine 50 and scheduling program 152 may also communicate, together or independently, with price quoting system 48 to generate accurate price quotes, and optionally, run-time estimates.
[0142] Although the present disclosure has been described with reference to preferred embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the disclosure.

Claims

CLAIMS:
1. A method for calculating a support material volume with a computer-based system, the method comprising:
providing a tree data structure for a digital part;
generating a grid of cells for the tree data structure with the computer-based system, the cells defining a plurality of cell arrays;
pinging the cells of one of the cell arrays until a cell containing a subset of the tree data structure is reached or until each cell in the cell array is pinged, wherein if a cell containing the subset of the tree data structure is reached, then designating the reached cell and all remaining unpinged cells in the cell array as filled;
repeating the pinging step for each remaining cell array to determine a total filled volume; and
subtracting a volume of the digital part from the total filled volume to determine a support material volume.
2. The method of claim 1, wherein the cell arrays each extend along a directional axis of a Cartesian coordinate system that is selected from the group consisting of a positive x-axis, a positive y-axis, a positive z-axis, a negative x-axis, a negative y-axis, and a negative z-axis.
3. The method of claim 1, wherein the tree data structure comprises a binary space partitioning tree.
4. The method of claim 1, and further comprising:
identifying an additive manufacturing process to print a three-dimensional part based on the digital part; and
modifying the determined support material volume based at least in part on the identified additive manufacturing process.
5. The method of claim 1, and further comprising generating a price quote based at least in part on the determined support material volume.
6. The method of claim 1, and further comprising generating a run- time estimate for printing a three-dimensional part and a support structure using an additive manufacturing process based at least in part on the determined support material volume.
7. The method of claim 1, and further comprising orienting the digital part based at least in part on the determined support material volume.
8. A method for manipulating a digital part with a computer-based system for use in an additive manufacturing process, the method comprising:
(a) providing a grid of cells for a tree data structure of a digital part, the cells being organized in cell arrays along a plurality of directional axes;
(b) selecting a first directional axis of the plurality of directional axes;
(c) for each cell array along the first directional axis, pinging the cells of the cell array until a cell containing a subset of the tree data structure is reached;
(c) designating the reached cell and all remaining unpinged cells in the cell array as filled;
(d) repeating the steps (c) and (d) for each cell array along the remaining directional axes of the plurality of directional axes to determine a total filled volume for each of the plurality of directional axes;
(e) subtracting a volume of the digital part from the total filled volume for each of the plurality of directional axes to determine a support material volume for each of the plurality of directional axes; and (h) identifying the directional axis having the lowest determined support material volume.
9. The method of claim 8, and further comprising orienting the digital part based on the identified directional axis having the lowest determined support material volume.
10. The method of claim 9, and further comprising exporting a second digital part that comprises the oriented digital part.
11. The method of claim 8, and further comprising designating at least one cell located adjacent to the reached cell as filled.
12. The method of claim 8, wherein the tree data structure comprises a binary space partitioning tree.
13. The method of claim 8, wherein the cells have substantially the same volumetric dimensions.
14. A price quoting method for use in an additive manufacturing process, the price quoting method comprising:
providing a tree data structure for a digital part to be printed with the additive manufacturing process;
generating a grid of cells for the tree data structure with a computer-based system, wherein the cells of the grid define a plurality of cell arrays; for each cell array, pinging the cells with the computer-based system until a cell containing a subset of the tree data structure is reached or until an end cell of the cell array is pinged;
designating all pinged cells containing subsets of the tree data structure and all unpinged cells as filled with the computer-based system;
summing volumes of the designated filled cells with the computer-based system to provide a total filled volume;
subtracting a volume of the digital part from the total filled volume with the computer-based system to determine a support material volume; and generating a price quote based at least in part on the determined support material volume.
15. The price quoting method of claim 14, wherein the computer-based system comprises a first computer-based system, and wherein generating the price quote comprises:
transmitting the provided support material volume from the first computer- based system to a second computer-based system;
calculating the price quote based at least in part on the determined support material volume; and transmitting the price quote from the second computer-based system to the first computer-based system.
16. The price quoting method of claim 14, wherein the tree data structure comprises a binary space partitioning tree.
17. The price quoting method of claim 16, and further comprising modifying the determined support material volume based at least in part on the additive manufacturing process, wherein the generated price quote is based at least in part on the modified support material volume.
18. The price quoting method of claim 16, and further comprising determining a run-time estimate for printing a three-dimensional part and a support structure using the additive manufacturing process based at least in part on the determined support material volume.
19. The price quoting method of claim 16, and further comprising:
orienting the part based on the determined support material volume; and exporting a second digital part that comprises the oriented digital part.
20. The price quoting method of claim 16, wherein the second digital part further comprises digital support layers.
PCT/US2012/054421 2011-09-13 2012-09-10 Solid identification grid engine for calculating support material volumes, and methods of use WO2013039827A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP12775869.6A EP2755814B1 (en) 2011-09-13 2012-09-10 Solid identification grid engine for calculating support material volumes, and methods of use

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/231,533 US8818544B2 (en) 2011-09-13 2011-09-13 Solid identification grid engine for calculating support material volumes, and methods of use
US13/231,533 2011-09-13

Publications (1)

Publication Number Publication Date
WO2013039827A1 true WO2013039827A1 (en) 2013-03-21

Family

ID=47071437

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2012/054421 WO2013039827A1 (en) 2011-09-13 2012-09-10 Solid identification grid engine for calculating support material volumes, and methods of use

Country Status (3)

Country Link
US (2) US8818544B2 (en)
EP (1) EP2755814B1 (en)
WO (1) WO2013039827A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105081319A (en) * 2015-08-04 2015-11-25 南京工程学院 Auxiliary laser three-dimensional molding device and method

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8818544B2 (en) * 2011-09-13 2014-08-26 Stratasys, Inc. Solid identification grid engine for calculating support material volumes, and methods of use
DE102013101693B9 (en) * 2013-02-20 2015-11-12 Notion Systems GmbH Surface treatment device
US11048829B2 (en) 2013-03-15 2021-06-29 Kemeera Llc 3D printing systems and methods for fabricating injection molds
US10354304B2 (en) * 2013-03-15 2019-07-16 Kemeera Inc. Systems and methods for creating 3D objects
DE102013207656A1 (en) * 2013-04-26 2014-10-30 Siemens Aktiengesellschaft Optimization of a manufacturing process
US9802360B2 (en) * 2013-06-04 2017-10-31 Stratsys, Inc. Platen planarizing process for additive manufacturing system
GB201310762D0 (en) * 2013-06-17 2013-07-31 Rolls Royce Plc An additive layer manufacturing method
US9339974B2 (en) * 2013-10-08 2016-05-17 Raytheon Company Application of additive manufacturing processes to efficiently achieve higher levels of hardware integration
US11235409B2 (en) * 2013-10-18 2022-02-01 +Mfg, LLC Method and apparatus for fabrication of articles by molten and semi-molten deposition
JP6416495B2 (en) * 2014-04-28 2018-10-31 ローランドディー.ジー.株式会社 3D modeling apparatus and 3D modeling method
US9844917B2 (en) 2014-06-13 2017-12-19 Siemens Product Lifestyle Management Inc. Support structures for additive manufacturing of solid models
US20160085882A1 (en) * 2014-09-19 2016-03-24 Siemens Product Lifecycle Management Software Inc. Build orientations for additive manufacturing
WO2016073193A1 (en) * 2014-11-04 2016-05-12 Dresser-Rand Company System and method for additive manufacturing of turbomachine components
DE102014224042A1 (en) * 2014-11-25 2016-05-25 Matthias Fockele Process for detaching supporting structure elements from a shaped body produced by the method of selective laser melting or laser sintering
WO2016122625A1 (en) * 2015-01-30 2016-08-04 Hewlett-Packard Development Company, L.P. Generating slicing data from a tree data structure
US20180272429A1 (en) * 2015-02-06 2018-09-27 Dresser-Rand Company Methods for Additive Manufacturing of a Single Piece Piston
US10046522B2 (en) 2015-02-26 2018-08-14 Stratasys, Inc. Surface angle model evaluation process for additive manufacturing
US10336000B2 (en) * 2015-03-13 2019-07-02 Carbon, Inc. Methods, systems, and computer program products for determining orientation and fabrication parameters used in three-dimensional (3D) continuous liquid interface printing (CLIP) systems, and related printers
US20160274572A1 (en) * 2015-03-19 2016-09-22 Michael G. Littrell Three Dimensional (3D) Printing and CAD File Quoting System
WO2017058187A1 (en) * 2015-09-30 2017-04-06 Hewlett-Packard Development Company, L.P. Three-dimensional model generation
JP6730440B2 (en) 2016-02-25 2020-07-29 ストラタシス リミテッド GPU material specification for 3D printing using 3D distance field
WO2017200527A1 (en) * 2016-05-16 2017-11-23 Hewlett-Packard Development Company, L.P. Generating a shape profile for a 3d object
DE112016007098T5 (en) * 2016-07-26 2019-04-18 Hewlett-Packard Development Company, L.P. INDEXING VOXELS FOR 3D PRINTING
US10775770B2 (en) * 2017-06-22 2020-09-15 Autodesk, Inc. Building and attaching support structures for 3D printing
CN111148622A (en) 2017-07-28 2020-05-12 斯特拉塔西斯公司 Method and system for manufacturing objects with hard tissue properties
EP3658073A1 (en) 2017-07-28 2020-06-03 Stratasys Ltd. Method and system for fabricating object featuring properties of a blood vessel
WO2019043696A1 (en) 2017-08-29 2019-03-07 Stratasys Ltd. Method and system for rendering data for addressable dispensing
CN109421255B (en) * 2017-08-31 2020-12-15 三纬国际立体列印科技股份有限公司 3D printing method using reinforced auxiliary wall
WO2019099547A2 (en) * 2017-11-14 2019-05-23 Digital Alloys Incorporated Interactive slicing methods and systems for generating toolpaths for printing three-dimensional objects
CN107727189B (en) * 2017-11-15 2020-01-14 珠海赛纳打印科技股份有限公司 Method and device for acquiring structure volume, non-transitory computer readable storage medium and printer
EP3521027B1 (en) * 2018-01-31 2020-10-07 CL Schutzrechtsverwaltungs GmbH Method for determining an amount of build material which is to be applied in a build plane and dosing device comprising a control unit using the method
US11203156B2 (en) 2018-08-20 2021-12-21 NEXA3D Inc. Methods and systems for photo-curing photo-sensitive material for printing and other applications
CN109334011B (en) 2018-11-02 2020-05-05 珠海赛纳打印科技股份有限公司 Color 3D printing method, printing device and terminal equipment
EP3877151B1 (en) 2018-11-09 2023-02-15 Nexa3D Inc. Three-dimensional printing system
CN113573872A (en) 2019-03-18 2021-10-29 耐克森三维有限公司 Additive manufacturing method and system
US11638965B2 (en) 2019-04-01 2023-05-02 3D Systems, Inc. Systems and methods for non-continuous deposition of a component
US10967573B2 (en) 2019-04-02 2021-04-06 NEXA3D Inc. Tank assembly and components thereof for a 3D printing system
US11556055B2 (en) 2020-06-19 2023-01-17 Canon Kabushiki Kaisha Systems and methods for generating drop patterns
US11638959B2 (en) 2020-09-03 2023-05-02 General Electric Company Systems and methods for estimating powder dosing in additive manufacturing processes
EP4006672A1 (en) * 2020-11-26 2022-06-01 Ricoh Company, Ltd. Management system and management apparatus
US11639023B2 (en) * 2021-01-22 2023-05-02 Palo Alto Research Center Incorporated Interactive design tool for varying density support structures
US11654616B2 (en) 2021-01-22 2023-05-23 Palo Alto Research Center Incorporated Controller and 3D printing apparatus for varying density support structures through interpolation of support polygon boundaries with scalar density fields
US11567414B2 (en) 2021-05-26 2023-01-31 Canon Kabushiki Kaisha Devices, systems, and methods for the hybrid generation of drop patterns
US11789682B2 (en) 2022-03-07 2023-10-17 Ricoh Company, Ltd. Printing 3D anatomical models for diagnostic and non-diagnostic uses

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5503785A (en) 1994-06-02 1996-04-02 Stratasys, Inc. Process of support removal for fused deposition modeling
US5764521A (en) 1995-11-13 1998-06-09 Stratasys Inc. Method and apparatus for solid prototyping
US6004124A (en) 1998-01-26 1999-12-21 Stratasys, Inc. Thin-wall tube liquifier
US20040006405A1 (en) * 2002-07-02 2004-01-08 3D Systems, Inc. Support volume calculation for a CAD model
US6923634B2 (en) 1999-06-23 2005-08-02 Stratasys, Inc. Filament loading system in an extrusion apparatus
US7122246B2 (en) 2001-09-21 2006-10-17 Stratasys, Inc. High-precision modeling filament
WO2009047355A1 (en) * 2007-10-10 2009-04-16 Materialise Nv Method and apparatus for automatic support generation for an object made by means of a rapid prototype production method
US7604470B2 (en) 2006-04-03 2009-10-20 Stratasys, Inc. Single-motor extrusion head having multiple extrusion lines
US7625200B2 (en) 2007-07-31 2009-12-01 Stratasys, Inc. Extrusion head for use in extrusion-based layered deposition modeling
US20100096489A1 (en) 2008-10-22 2010-04-22 Stratasys, Inc. Filament spool
US20100096485A1 (en) 2008-10-22 2010-04-22 Stratasys, Inc. Filament guide mechanism for filament spool container
US20100283172A1 (en) 2008-01-08 2010-11-11 Stratasys, Inc. Consumable assembly for use in extrusion-based layered deposition systems
US7891964B2 (en) 2007-02-12 2011-02-22 Stratasys, Inc. Viscosity pump for extrusion-based deposition systems
US20110076496A1 (en) 2009-09-30 2011-03-31 Stratasys, Inc. Non-cylindrical filaments for use in extrusion-based digital manufacturing systems
US20110178621A1 (en) 2010-01-15 2011-07-21 Stratasys, Inc. Method for generating and building support structures with deposition-based digital manufacturing systems

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5965079A (en) 1995-04-25 1999-10-12 3D Systems, Inc. Method and apparatus for making a three-dimensional object by stereolithography
US5943235A (en) 1995-09-27 1999-08-24 3D Systems, Inc. Rapid prototyping system and method with support region data processing
US5999187A (en) * 1996-06-28 1999-12-07 Resolution Technologies, Inc. Fly-through computer aided design method and apparatus
US6021358A (en) 1996-09-18 2000-02-01 Sachs; George A. Three dimensional model and mold making method using thick-slice subtractive fabrication
US6118456A (en) 1998-04-02 2000-09-12 Adaptive Media Technologies Method and apparatus capable of prioritizing and streaming objects within a 3-D virtual environment
US6407748B1 (en) 1998-04-17 2002-06-18 Sandia Corporation Method and apparatus for modeling interactions
US6099573A (en) 1998-04-17 2000-08-08 Sandia Corporation Method and apparatus for modeling interactions
US6408321B1 (en) 1999-03-24 2002-06-18 International Business Machines Corporation Method and apparatus for mapping components of descriptor vectors to a space that discriminates between groups
US20050140678A1 (en) 1999-05-10 2005-06-30 Johan Gielis Computer graphics systems and methods
US6648640B2 (en) * 1999-11-30 2003-11-18 Ora Metrix, Inc. Interactive orthodontic care system based on intra-oral scanning of teeth
US6633789B1 (en) * 2000-02-17 2003-10-14 Align Technology, Inc. Effiicient data representation of teeth model
US7373286B2 (en) * 2000-02-17 2008-05-13 Align Technology, Inc. Efficient data representation of teeth model
US6682684B1 (en) 2000-09-07 2004-01-27 Honeywell International Inc. Procedures for rapid build and improved surface characteristics in layered manufacture
US7840393B1 (en) 2000-10-04 2010-11-23 Trivascular, Inc. Virtual prototyping and testing for medical device development
US7305367B1 (en) 2000-12-13 2007-12-04 Quickparts.Com Instantaneous price quotation system for custom manufactured parts
ATE539562T1 (en) * 2001-03-02 2012-01-15 3Shape As METHOD FOR INDIVIDUALLY ADJUSTING EARCUPS
US6828965B2 (en) 2001-05-22 2004-12-07 Mitsubishi Electric Research Labs, Inc. Regularization of implicial fields representing objects and models
US7406361B2 (en) * 2001-08-16 2008-07-29 Riken Rapid prototyping method and apparatus using V-CAD data
US7002571B2 (en) 2002-06-04 2006-02-21 Intel Corporation Grid-based loose octree for spatial partitioning
JP2004094674A (en) 2002-08-30 2004-03-25 Fujitsu Ltd Program for making computer execute mesh data generating method and mesh data generating device
US20060111807A1 (en) 2002-09-12 2006-05-25 Hanan Gothait Device, system and method for calibration in three-dimensional model printing
US7138998B2 (en) 2002-11-14 2006-11-21 Intel Corporation Multi-resolution spatial partitioning
WO2004057915A2 (en) * 2002-12-19 2004-07-08 Siemens Corporate Research, Inc. Interactive binaural shell modeling for hearing aids
US20060155418A1 (en) 2003-04-14 2006-07-13 Therics, Inc. Apparatus, method and article for direct slicing of step based nurbs models for solid freeform fabrication
US7500846B2 (en) * 2003-05-01 2009-03-10 Objet Geometries Ltd. Rapid prototyping apparatus
US7308328B2 (en) * 2003-05-15 2007-12-11 Siemens Medical Solutions Usa, Inc. Synchronized processing of ear shells for hearing aids
WO2004110309A2 (en) 2003-06-11 2004-12-23 Case Western Reserve University Computer-aided-design of skeletal implants
CA2576976A1 (en) 2004-08-21 2006-03-02 Co-Exprise, Inc Methods, systems, and apparatuses for extended enterprise commerce
DE102004053034A1 (en) 2004-09-17 2006-04-13 Daimlerchrysler Ag Method of searching for a similar design model
US20060098009A1 (en) 2004-10-28 2006-05-11 Miguel Zuniga Method and apparatus for ray and range queries using wide object isolation techniques
US7403833B2 (en) 2006-04-03 2008-07-22 Stratasys, Inc. Method for optimizing spatial orientations of computer-aided design models
WO2008097329A2 (en) 2006-06-23 2008-08-14 Massachusetts Institute Of Technology Digital assembler for digital materials
US7636610B2 (en) 2006-07-19 2009-12-22 Envisiontec Gmbh Method and device for producing a three-dimensional object, and computer and data carrier useful therefor
US8339398B2 (en) 2006-09-28 2012-12-25 International Business Machines Corporation Integrated acceleration data structure for physics and ray tracing workload
WO2008066891A2 (en) 2006-11-28 2008-06-05 Sensable Technologies, Inc. Systems for haptic design of dental restorations
US8018453B2 (en) 2007-02-09 2011-09-13 International Business Machines Corporation Deferred acceleration data structure optimization for improved performance
US8102389B2 (en) 2007-02-14 2012-01-24 International Business Machines Corporation Box casting using an integrated acceleration data structure
US20080192051A1 (en) 2007-02-14 2008-08-14 David Keith Fowler Expanding Empty Nodes in an Acceleration Data Structure
US8219234B2 (en) 2007-03-07 2012-07-10 Objet Geometries Ltd. Rapid production apparatus with production orientation determination
US7773087B2 (en) 2007-04-19 2010-08-10 International Business Machines Corporation Dynamically configuring and selecting multiple ray tracing intersection methods
US8301286B2 (en) * 2007-04-20 2012-10-30 Edison Welding Institute, Inc. Remote high-performance computing material joining and material forming modeling system and method
US20100291505A1 (en) 2009-01-23 2010-11-18 Curt Rawley Haptically Enabled Coterminous Production of Prosthetics and Patient Preparations in Medical and Dental Applications
US20100190556A1 (en) 2009-01-26 2010-07-29 Daniel Chan Information storage medium, game program, and game system
US8175734B2 (en) * 2009-10-08 2012-05-08 3D M. T. P. Ltd. Methods and system for enabling printing three-dimensional object models
US8419996B2 (en) 2010-12-22 2013-04-16 Stratasys, Inc. Print head assembly for use in fused deposition modeling system
US8818544B2 (en) * 2011-09-13 2014-08-26 Stratasys, Inc. Solid identification grid engine for calculating support material volumes, and methods of use

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5503785A (en) 1994-06-02 1996-04-02 Stratasys, Inc. Process of support removal for fused deposition modeling
US5764521A (en) 1995-11-13 1998-06-09 Stratasys Inc. Method and apparatus for solid prototyping
US6004124A (en) 1998-01-26 1999-12-21 Stratasys, Inc. Thin-wall tube liquifier
US6923634B2 (en) 1999-06-23 2005-08-02 Stratasys, Inc. Filament loading system in an extrusion apparatus
US7122246B2 (en) 2001-09-21 2006-10-17 Stratasys, Inc. High-precision modeling filament
US20040006405A1 (en) * 2002-07-02 2004-01-08 3D Systems, Inc. Support volume calculation for a CAD model
US7604470B2 (en) 2006-04-03 2009-10-20 Stratasys, Inc. Single-motor extrusion head having multiple extrusion lines
US7891964B2 (en) 2007-02-12 2011-02-22 Stratasys, Inc. Viscosity pump for extrusion-based deposition systems
US7625200B2 (en) 2007-07-31 2009-12-01 Stratasys, Inc. Extrusion head for use in extrusion-based layered deposition modeling
WO2009047355A1 (en) * 2007-10-10 2009-04-16 Materialise Nv Method and apparatus for automatic support generation for an object made by means of a rapid prototype production method
US20100283172A1 (en) 2008-01-08 2010-11-11 Stratasys, Inc. Consumable assembly for use in extrusion-based layered deposition systems
US20100096485A1 (en) 2008-10-22 2010-04-22 Stratasys, Inc. Filament guide mechanism for filament spool container
US20100096489A1 (en) 2008-10-22 2010-04-22 Stratasys, Inc. Filament spool
US20110076496A1 (en) 2009-09-30 2011-03-31 Stratasys, Inc. Non-cylindrical filaments for use in extrusion-based digital manufacturing systems
US20110178621A1 (en) 2010-01-15 2011-07-21 Stratasys, Inc. Method for generating and building support structures with deposition-based digital manufacturing systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105081319A (en) * 2015-08-04 2015-11-25 南京工程学院 Auxiliary laser three-dimensional molding device and method
CN105081319B (en) * 2015-08-04 2017-03-22 南京工程学院 Auxiliary laser three-dimensional molding device and method

Also Published As

Publication number Publication date
US8818544B2 (en) 2014-08-26
EP2755814A1 (en) 2014-07-23
US20130066812A1 (en) 2013-03-14
US20140330419A1 (en) 2014-11-06
US9483588B2 (en) 2016-11-01
EP2755814B1 (en) 2016-05-04

Similar Documents

Publication Publication Date Title
EP2755814B1 (en) Solid identification grid engine for calculating support material volumes, and methods of use
US9925725B2 (en) Method for printing three-dimensional parts with part strain orientation
Dai et al. Support-free volume printing by multi-axis motion
US10046522B2 (en) Surface angle model evaluation process for additive manufacturing
US8868230B2 (en) Iterative packing optimization
US20200156323A1 (en) Systems and methods for optimization of design and tool paths for additive manufacturing
US9573323B2 (en) Method for generating and building support structures with deposition-based digital manufacturing systems
US7305367B1 (en) Instantaneous price quotation system for custom manufactured parts
US11285673B2 (en) Machine-learning-based additive manufacturing using manufacturing data
JP5615667B2 (en) Setting data creation device for 3D modeling apparatus, setting data creation method for 3D modeling apparatus, setting data creation program for 3D modeling apparatus, and computer-readable recording medium
JP5615668B2 (en) Setting data creation device for 3D modeling apparatus, setting data creation method for 3D modeling apparatus, setting data creation program for 3D modeling apparatus, and computer-readable recording medium
JP2015229338A (en) Three-dimensional modelling method which designates cross section or height/width of individual part and three-dimensional printing method
US20170266883A1 (en) Information processing apparatus, additive manufacturing system, and information processing method
JP6711394B2 (en) Information processing device, program, information processing method, modeling system
CN111479667B (en) Part filling of build volumes
CN107727189A (en) The acquisition methods and device of structural volume, non-transient computer readable storage medium storing program for executing and printer
Habib et al. Attribute driven process architecture for additive manufacturing
US20190337231A1 (en) Processing 3d objects
Lettori et al. A review of geometry representation and processing methods for cartesian and multiaxial robot-based additive manufacturing
KR101958998B1 (en) Method for calculating of 3D printer preview based on measured material deformation
US20230032439A1 (en) Generation of an object model for three dimensional printers
CN112004654B (en) Packing three-dimensional building bed
CN109719952B (en) Rapid slicing processing method for ink-jet printing of array nozzle
CN112166025A (en) Three-dimensional object production
Ulu et al. Curvy: An Interactive Design Tool for Varying Density Support Structures

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: 12775869

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE