WO2000042574A1 - Method and apparatus for managing and/or utilizing data received from a cad model - Google Patents

Method and apparatus for managing and/or utilizing data received from a cad model Download PDF

Info

Publication number
WO2000042574A1
WO2000042574A1 PCT/US2000/000825 US0000825W WO0042574A1 WO 2000042574 A1 WO2000042574 A1 WO 2000042574A1 US 0000825 W US0000825 W US 0000825W WO 0042574 A1 WO0042574 A1 WO 0042574A1
Authority
WO
WIPO (PCT)
Prior art keywords
coordinates
instructions
part identification
printer
reagent
Prior art date
Application number
PCT/US2000/000825
Other languages
French (fr)
Inventor
Christopher M. Gaylo
David E. Bell
Original Assignee
Therics, 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 Therics, Inc. filed Critical Therics, Inc.
Priority to EP00903271A priority Critical patent/EP1147491A1/en
Priority to CA002358530A priority patent/CA2358530A1/en
Priority to AU25045/00A priority patent/AU755858B2/en
Priority to JP2000594081A priority patent/JP2003508828A/en
Publication of WO2000042574A1 publication Critical patent/WO2000042574A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • 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 invention relates generally to a method and/or an apparatus for extracting, managing and/or utilizing data representing and/or administered by computer model, and more particularly to a method and/or an apparatus for extracting dimensional measurement data from a computer aided design (CAD) model for use in a three- dimensional printer and/or a three-dimensional printing technique.
  • CAD computer aided design
  • FIG. 1 depicts Cima et al.'s apparatus 10 for forming a ceramic mold having six cavities 12A-12F which can be used for casting six substantially identical parts.
  • a head 13 is driven reciprocally in a shuttle motion along the length of the mold being formed.
  • a suitable linear stepping motor assembly 18 can be used for moving the head 13 and the binder deposition head 15.
  • the powdered material e.g., a ceramic powder
  • a confined region e.g., defined by a form 14.
  • the powder is dispensed in a line as the dispensing head 13 is moved in discrete steps along the mold length to form a relatively loose layer thereof having a typical thickness of about 100-200 microns.
  • the material is described here as a powdered material, in some applications, it can be distributed in the form of fibers, for example.
  • the stepping motor can be moved at such high speeds that the motion of the head 13 will effectively be continuous in nature.
  • the motor may be one which inherently provides a continuous motion, such as a servo-controlled motor.
  • An initial layer is dispersed at the bottom of the form 14 and each subsequent layer is dispersed sequentially on the preceding layer.
  • Cima el al.'s ink-jet print head 14 has a plurality of ink-jet dispensers driven by the stepping motor assembly in the same reciprocal manner so as to follow the motion of the powder head.
  • Ink-jet print head 14 selectively produces jets of a liquid binder material at selected regions 16 which represent wall of each cavity, thereby causing the powdered material at such regions to become bonded.
  • the binder jets are dispensed along a line of the print head 15 which is moved in substantially the same manner as the dispensing head 13 of the powder material, i.e., by a high speed stepping operation or by a continuous servo motor operation.
  • Typical binder droplet sizes are about 15-50 microns, for example.
  • the powder/binder layer forming process is repeated so as to build up the mold parts layer by layer.
  • Figure 2 diagrammatically shows Cima et al.'s fabrication process.
  • a layer of powder is deposited from a powder dispensing head 41 into a form 42 over a previously formed layer which has already had a binder material deposited thereon, at Figure 2A.
  • a layer of binder material is then printed onto the powder layer from binding jet head 43 to form the next layer of bonded powder particles, at Figure 2B.
  • Such operation is repeated for each subsequent layer.
  • An exemplary intermediate stage of the formation of part 40 is shown at Figure 2C.
  • the final bonded layer is printed as shown at Figure 2D, excess, unbonded powder is removed.
  • the finally formed part itself being depicted, at Figure 2E.
  • Cima et al.'s layers become hardened, or at least partially hardened, as each of the layers is laid down, once the desired final part configuration is achieved and the layering process is completed, the form and its contents are heated or cured at a suitably selected temperature to further promote binding of the powder particles.
  • the dispensed powders may be dry powders or in a liquid vehicle, such as in a colloidal dispersant or in an aqueous suspension.
  • Cima et al.'s piston 70 holds the part 71 shown as partially formed within a chamber 72 at Figure 3 A. To deposit a layer of powder, the piston 70 is moved downwardly in the chamber 72, leaving a region 73 in the chamber at the top thereof for deposition of powder particles at Figure 3B.
  • Powder particles 74 are deposited in such region and a doctor blade 75, for example, is used to scrape off excess powder at Figure 3C.
  • the part 71, having the newly deposited layer 76 of powder thereon, is then ready for the application of binder material thereto at Figure 3D.
  • Cima et al. mentions use of multiple binder materials and a dual head system, as shown in Figure 2B, wherein a second head 43A is depicted in phantom lines.
  • Cima et al. does not address or describe a method or a system for managing and/or utilizing and/or printing multiple binder materials.
  • Cima et al. also does not address a means or a method of converting a multi-composite computer-aided design (CAD) model into instructions for operating a 3-D printer.
  • CAD computer-aided design
  • U.S. Patent No. 5,204,055 to Sachs et al. discloses an example of a system for performing a powder distribution control operation, as shown in Figures 4-8.
  • Sachs et al. discloses using a microcomputer 30 to create a three- dimensional (3-D) model of the component to be made using CAD techniques, as shown in Figure 4.
  • An exemplary 3-D CAD model is depicted in Figure 6.
  • a slicing algorithm is used to identify selected successive slices, i.e., to provide data with respect to selected 2-D layers, of the 3-D model 50 beginning at a bottom layer or slice thereof, for example, as shown in Figure 5.
  • Each of the scan lines 52 can comprise a single line segment (e.g., segment 53 A of scan line 52A) or two or more shorter line segments (segments 53B of scan line 52B).
  • Each line segment has a defined starting point on a scan line and a defined line segment length.
  • the line segments 53B have starting points at x and x 2 , respectively, as measured from a reference line 54, and lengths and 1 2 , respectively, as measured from their starting points X! and x 2 .
  • Sachs et al.'s microcomputer 30 actuates the powder distribution operation when a particular 2-D slice of a desired 3-D model has been selected by supplying a powder "START" signal to a powder distribution controller circuit 31 which is used to actuate a powder distribution system 32.
  • the operation of the powder distribution controller is stopped when the microcomputer 30 issues a powder "STOP" signal signifying that powder distribution over such region has been completed.
  • Sachs et al.'s microcomputer 30 selects a scan line, i.e., the first scan line of the selected 2-D slice, selects a line segment, e.g., the first 1-D line segment of the selected scan line, and supplies data defining the starting point thereof and the length thereof to a binder jet nozzle control circuit 33.
  • a single binder jet nozzle scans the line segments of a slice in a manner such that the overall 2-D slice is scanned in a conventional raster scan (X-Y) operation.
  • X-Y raster scan
  • Each successive line segment is similarly scanned for the selected scan line and for each successive scan line of the selected slice in the same manner.
  • a scan "stop" signal signifies an end of the slice scan condition.
  • a determination is made as to whether nozzle operation has occurred for all line segments of a particular scan line of the selected slice. If not, the next line segment is scanned, and the nozzle control operation for that line segment is performed.
  • nozzle operation for the final scan line segment of a particular scan line has been completed, a determination is made as to whether the scan line involved is the final scan line of the selected slice.
  • next scan line is selected, and the scanning and nozzle control process for each successive line segment of such scan line of the slice is performed.
  • nozzle operation for the final scan line of a particular slice has been completed, a determination is then made as to whether such slice is the final slice of the overall desired 3-D model. If not, the next slice is selected and the overall process for each line segment is repeated, including the powder deposition and nozzle binder deposition required for all the scan lines thereof.
  • the binder material has been supplied to the final slice of the 3-D model, the operation is completed.
  • Sachs et al. discloses "on-the-fly" printer instruction compiling.
  • the present invention provides a system and/or method for using, managing, and/or coordinating a multiple nozzle 3-D printer, or solid modeling machine and/or other printing machines.
  • the present invention provides a system and/or method for using such a multiple nozzle 3-D printer to improve throughput speeds, for example, relative to prior art 3-D printers.
  • the present invention provides a system and/or method for effectively and/or efficiently using a multiple binder, multiple powder 3-D printer, or solid modeling machine.
  • the present invention provides a system and/or method that produces a substantially pre-processed instruction stream that can be run and rerun without compiling instructions before each and every run.
  • This aspect of the invention enables re- use of this substantially pre-processed instruction stream for generating a representation of a CAD model every time a representation of the CAD model is desired.
  • the present invention is based, in part, on resolving problems associated with printing effectiveness and efficiency, in particularly 3-D printers or solid modeling machines.
  • the present invention is also relevant, and/or applicable to other printers and/or printing techniques that require instruction compilation, and which would benefit from the efficiency and effectiveness of the present invention.
  • 2-D printers in the computer printing area, black/white or color may also benefit from the present invention.
  • the instant invention provides a method of producing instructions to create a representation of a computer-aided design model for a output device, such as described above and having at least one nozzle.
  • the model includes sets of coordinates defining at least one part. Each part has a respective part identification.
  • the method includes, for example, the sequential, non-sequential, or independent steps described below.
  • the CAD model is converted into its component sets of coordinates, each set of coordinates having an associated part identification.
  • the sets of coordinates are parsed into ordered line segments for driving the output device.
  • Proto-instructions and/or non-printer-specific and/or non-manufacturer-specific and/or generic printing instructions for the output device are compiled from at least the ordered line segments, and each respective part identification of the sets of coordinates in each of the ordered line segments.
  • the method may further include the step of generating printer-specific and/or manufacturer-specific printing instructions for the output device from the proto-instructions and/or non-printer-specific and/or non-manufacturer-specific and/or generic printing instructions.
  • the method further includes a step of mapping each part identification to a respective reagent, which may be, for example, a powder and/or a fiber.
  • the method may also include a step of identifying machine setup data from a user or an output device setup database.
  • the machine setup data includes depth of a form or a bed in which the representation is to be created by the three-dimensional printer.
  • the method may also include a step of mapping each nozzle to a corresponding reagent.
  • the parsing step of the inventive method optionally includes modifying sets of coordinates in alternate scan lines so as to enable nozzle operation in offset, opposing movements.
  • the method further includes the step of identifying a part identification to reagent correspondence from a user input or a correspondence database.
  • the method may also include the step of mapping each set of coordinates to a respective reagent, using an associated part identification of each set of coordinates and the identified part identification to reagent correspondence.
  • the instant invention provides for a method of producing instructions to create a representation of a three-dimensional model for a three- dimensional printer having more than one nozzle.
  • the model includes sets of coordinates defining at least one part. Each part has a respective part identification.
  • the inventive method includes the following sequential, non-sequential, or independent steps.
  • Each set of coordinates is identified.
  • a part identification associated with the each set of coordinates is identified.
  • Part identification to reagent correspondence is identified from a first user input or a part identification to reagent correspondence database.
  • the sets of coordinates are parsed into line segments, which together form scan lines for linearly driving the 3-D printer.
  • Proto-instructions and/or non-printer-specific and/or non- manufacturer-specific and/or generic printing instructions for the three-dimensional printer are compiled from at least the ordered line segments and each respective part identification of the sets of coordinates in each of the ordered line segments.
  • the method further includes the step of generating printer-specific and/or manufacturer-specific printing instructions for the three-dimensional printer from the proto-instructions and/or non-printer-specific and/or non-manufacturer-specific and/or generic printing instructions.
  • the method may include identifying and storing part identifications on a list, and removing any duplicative or redundant part identification from the list.
  • the method may further include the step of mapping each set of coordinates to a respective reagent, using the associated part identification and the part identification to reagent correspondence.
  • the method optionally includes the step of identifying printer or machine setup data indicative of machine-specific information from user input or a machine setup database.
  • the method further includes identifying a nozzle to reagent correspondence for each nozzle is identified from user input or a nozzle to reagent correspondence database.
  • the method may further include the step of sorting each set of coordinates in alternating printer scan lines so as to enable nozzle operation in offset opposing movements.
  • the instant invention provides for an apparatus for producing instructions to create a representation of a three-dimensional model for a three- dimensional printer having more than one nozzle.
  • the model includes sets of coordinates defining at least one part. Each part has a respective part identification.
  • the apparatus includes a coordinate set identifier, identifying the sets of coordinates of the model.
  • the apparatus also includes a part identification identifier, identifying a part identification associated with each set of coordinates in the coordinate set identifier.
  • the apparatus also includes a part identification to reagent correspondence identifier, identifying a part identification to reagent correspondence from user input or a part identification to reagent correspondence database.
  • the apparatus includes a coordinate set to reagent mapper for mapping each set of coordinates to a corresponding reagent and a coordinate set parser for generating line segments from the sets of coordinates, which together form scan lines for the three-dimensional printer or other printer.
  • the apparatus also includes a proto-instructions, non-printer-specific printing instructions, non- manufacturer-specific printing instructions, or generic printing instructions compiler, compiling proto-instructions and/or non-printer-specific and/or non-manufacturer-specific and/or generic printing instructions for the three-dimensional printer from the ordered line segments and the respective part identifications of the sets of coordinates in each of the ordered line segments.
  • the apparatus further includes a printer-specific and/or manufacturer-specific instruction generator, translating the proto-instructions and/or non- printer-specific and/or non-manufacturer-specific and/or generic printing instructions into instructions specific for the three-dimensional printer.
  • the apparatus may include a list storing all identified part identifications.
  • the apparatus optionally includes a part identification to reagent editor for enabling user input.
  • the apparatus may further include a printer or machine setup data editor for enabling user input.
  • the apparatus optionally further includes a nozzle to reagent map editor for enabling user input.
  • the apparatus may include means for adjusting the each set of coordinates to accommodate a location of each nozzle relative to the each set of coordinates.
  • Another embodiment of the instant invention includes a computer program product storing computer instructions for operating a three-dimensional printer to create a three-dimensional representation of a CAD model.
  • the three-dimensional printer has a plurality of nozzles.
  • the model includes sets of coordinates defining at least one part.
  • Each part has a respective part identification.
  • the computer program product includes a computer-readable medium.
  • the inventive product includes proto-instructions and/or non-printer-specific and/or non- manufacturer-specific and/or generic printing instructions, generic to at least one three- dimensional printer or solid modeling machine, for creating the three-dimensional representation.
  • the computer program product includes at least one printer-specific and/or manufacturer-specific instruction generator, in operation, translating the proto-instructions and/or non-printer-specific and/or non-manufacturer-specific and/or generic printing instructions into instructions specific to the three-dimensional printer or specific to a manufacturer's line of three-dimensional printers to be used to create the three-dimensional representation.
  • the generation of the proto-instructions comprises the following sequential, non-sequential, or independent steps.
  • Each set of coordinates is identified.
  • a part identification associated with the each set of coordinates is identified.
  • a part identification to reagent correspondence is identified for each part identification from a first user input or a part identification to reagent correspondence database.
  • the sets of coordinates are parsed into line segments, which together form scan lines for linearly driving the three-dimensional printer.
  • the proto-instructions and/or non-printer-specific and/or non-manufacturer-specific and/or generic printing instructions for the three- dimensional printer are compiled from at least the ordered line segments and each respective part identification of the sets of coordinates in each of the ordered line segments.
  • Figure 1 depicts a perspective view of a prior art 3-D printer
  • Figures 2A-2E depict consecutive elevational views illustrating process steps for using a prior art 3-D printer, such as in Figure 1 ;
  • Figure 3A-3D depict consecutive elevational views illustrating process steps for using a prior art 3-D printer, such as in Figure 1 ;
  • Figure 4 depicts a schematic of a prior art 3-D printer, such as in Figure 1 ;
  • Figure 5 depicts a flow chart identifying the steps of using a prior art 3-D printer, such as in Figure 1 ;
  • Figure 6 depicts a perspective view of a sample single material 3-D model to be produced by a prior art 3-D printer;
  • Figure 7 depicts a perspective view of 2-D slices of the sample single material 3-D model, as shown in Figure 6, to be produced by a prior art 3-D printer;
  • Figure 8 depicts a plan view of 1-D line segments of a 2-D slice of the 3-D model, shown in Figures 6 and 7;
  • Figure 9 depicts a flow chart consistent with the instant invention.
  • Figure 10 depicts a schematic of the instant invention
  • Figures 11A and 1 IB depict a flowchart of process steps of an embodiment of a method according to the instant invention
  • Figure 12 is a schematic view of another embodiment of a system according to the instant invention
  • Figure 13 is an illustration of a sample main central processing unit for implementing the computer processing in accordance with a computer implemented embodiment of the present invention
  • Figure 14 is a block diagram of the internal hardware of the computer in
  • Figure 15 is an alternative block diagram of the internal hardware of the computer in Figure 13; and Figure 16 is an illustration of an exemplary memory medium which can be used with disk drives illustrated in Figures 13-15.
  • FIGS 17A-D are illustrative data flow diagrams for software in accordance with an embodiment of the present invention.
  • the manipulations performed are often referred to in terms, such as adding or comparing, which are commonly associated with mental operations performed by a human operator. No such capability of a human operator is necessary, or desirable in most cases, in any of the operations described herein which form part of the present invention; the operations are machine operations.
  • Useful machines for performing the operation of the present invention include general purpose digital computers or similar devices.
  • the present invention also relates to apparatus for performing these operations.
  • This apparatus may be specially constructed for the required purpose or it may comprise a general purpose computer as selectively activated or reconfigured by a computer program stored in the computer.
  • the procedures presented herein are not inherently related to a particular computer or other apparatus.
  • Various general purpose machines may be used with programs written in accordance with the teachings herein, or it may prove more convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these machines will appear from the description given.
  • the present invention is based, in part, on our discovery of the problems associated with printing effectiveness and efficiency, in particularly 3-D printers.
  • the present invention is also relevant, and/or applicable to other printers and/or printing techniques that require instruction compilation, and which would benefit from the efficiency and effectiveness of the present invention.
  • 2-D printers in the computer printing area, black/white or color may also benefit from the present invention.
  • CAD models are typically saved in one of multiple industry-standard file formats, such as IGES, STL (stereolithography), VDA-FS, or ISO G- Code formats.
  • industry-standard file formats such as IGES, STL (stereolithography), VDA-FS, or ISO G- Code formats.
  • conventional CAD software packages as marketed under the AutoCAD, CADKEY, and Pro/ENGINEER brands, produce STL files, which are used to drive present generation 3-D printers, or solid modeling machines.
  • STL file format as well as other similar file formats have two drawbacks.
  • prior file formats oriented toward vector-scanning machines, i.e., machines that scan from a point, not raster- scanning machines, such as 3-D printers.
  • Second, such prior file formats are aimed at machines that only work with a single material.
  • an orthogonal coordinate system for example, a conventional X-Y-Z coordinate system, may be used and multiple binders and multiple powders may also be used.
  • Other data file formats using a single binder and/or powder may also be used in the present invention, albeit with less or relatively less advantages over the prior art.
  • part identifications designating parts of a CAD model may be assigned to one or more respective color ink-jet nozzles of a color ink- jet printer.
  • the big challenge was how to represent the data in a way that we could manipulate it from a CAD-like form to an instruction stream necessary to drive such a machine.
  • one suitable commercially available software package that can be used in combination with the present invention is, for example, I-DEAS mechanical design software produced by Structural Dynamics Research Corporation (SDRC) of Milford, Ohio, which includes a part identification field.
  • a part refers to a respective component of a model which may differ in composition from another component thereof.
  • SDRC Structural Dynamics Research Corporation
  • any CAD package or system including, a part identification field is acceptable.
  • any CAD package or system permitting the distinction of components of a model which differ by composition are also acceptable.
  • the instant invention optionally includes CAD file format conversion to accommodate different file formats for storing coordinate sets and part identifications of a CAD model.
  • a specific reagent such as a material including a color to be defined for each set of coordinates in the CAD model.
  • a reagent is defined-herein as any dispensable product included in a representation of a 3-D model.
  • a reagent may include a powder material and/or a fiber material.
  • Such reagent definitions would, in turn, permit the creation of a 3-D representation composed of multiple reagents.
  • the instant invention generally includes step A2 of inputting data such as CAD data, including optionally all data for part(s)
  • the data for the part(s) includes coordinates and part identifications, such as, part numbers.
  • the CAD data are merged with reagent data for each specific part of the CAD model.
  • the CAD data and part/reagent data are merged with nozzle data and optionally machine setup data, to form printer scan lines.
  • the merged CAD data, part/reagent data, nozzle data, and optional machine data are compiled into portable, generic 3-D printer instructions.
  • these compiled generic printer instructions are converted into printer-specific or manufacturer-specific instructions for instructing a 3-D printer to print at least one 3-D representation of the CAD model B4, B4', B4", shown in Figure 10.
  • the input for the instruction conversion system B2 includes at least one model, such as CAD models B4, B4', B4".
  • the CAD models B4, B4', B4" are generated from, for example, any one of a number of commercially available CAD software packages or other standard processes.
  • the output of the instruction conversion system includes portable, generic printer instructions, such as 3-D printer instructions. These generic 3-D printer instructions can be, in turn, input into a printer- specific or manufacturer-specific instruction generator for outputting printer-specific instructions for instructing at least one 3-D printer B8, B8', B8", to print at least one 3-D representation of the CAD model B4, B4', B4".
  • the instruction conversion system B2 includes a standard processor BIO. microcontroller, or computer Bl l. which processes CAD-specific data conversion B12, reagent (material) data B14, nozzle data B16, and CAD data B18 from the CAD models B4, B4 ⁇ B4".
  • an embodiment of a method according to the instant invention is broadly defined by the combination of steps S2, SI 8, and S22, and multiple supplemental optional steps S4, S6, S8, SI 0, SI 2, SI 4, SI 6, S20, and S24.
  • Figure 12 shows, by way of illustration, another embodiment of the instant invention including an apparatus for effecting the above-mentioned inventive method, where a modified instruction conversion system B2' and a modified instruction generator B6' is illustrated.
  • the method includes step S2 of identifying component sets of coordinates in a desired 3-D CAD model.
  • Each set of coordinates advantageously has a respective part identification.
  • a coordinate set identifier 100 parses a CAD model into its component sets of coordinates, each set associated with at least one part identification.
  • the coordinate set identifier may be embodied, for example, as a standard CAD software macro or, for example, as a C++ function or subroutine.
  • the results may be stored in a raw coordinate set data base, for example, created in Microsoft Access.
  • the fields in the raw coordinate set database thus include entries for at least the coordinate sets and the associated part identifications.
  • additional fields may relate to normals, surface intersections, and other geometric features of the model to permit a user to smooth the data, if necessary.
  • a part identification associated with each component set of coordinates is identified by a part identification identifier 110.
  • Step S4 may be accomplished, for example, by using a Query function in a Microsoft Access database, if the coordinate set database includes a Microsoft Access database. All part identifications are optionally stored in a part identification list 120, as in step S6. From the list 120, duplicate part identifications are removed, as in step S8, for example, manually or programmatically such as by using at least a C++ function or subroutine.
  • the inventive method may include step S10 of identifying at least a correspondence between a part identification and a respective reagent to be deposited by the three-dimensional printer, for example, using a part identification to reagent correspondence identifier 130.
  • step S10 permits changing the composition of a representation of a CAD model by simply associating a part identification with a second reagent, different from a first reagent previously associated with the part identification.
  • a user may map each listed part identification to a desired reagent.
  • a user may map several part identifications to the same reagent if all of the parts corresponding to the part identifications are to be composed of the same reagent in the created representation of the three-dimensional CAD model.
  • the instant invention may include intelligently mapping part identifications to reagents using a part identification to reagent correspondence database 150, avoiding user input, which may slow down throughput.
  • the mapped part identifications are then merged with the sets of coordinates of the CAD model, for example, using a coordinate set to reagent mapper 160 so that each set of coordinates is associated with an appropriate reagent, as in step SI 2.
  • the sets of coordinates may be retrieved, for example, from a Microsoft Access database, using its Query function.
  • the method may also include the step S14 of identifying machine setup data, which may, but need not be, printer-specific. That is, the machine setup data may include non-printer-specific data, such as the depth of the form into which the three-dimensional printer is to create a representation of a 3-D CAD model.
  • a machine setup data editor 170 may be used to identify machine setup data via user input.
  • the machine setup data may be intelligently identified from a machine setup database 180.
  • the method may also include step S16 of identifying a respective reagent corresponding to each nozzle of the three-dimensional printer.
  • a nozzle-reagent map editor 190 may be used to map nozzles of a print head to reagents, which may further be done intelligently using a nozzle to reagent correspondence database 200. The maximum number of nozzles and reagents used is only constrained by physical impracticabilities.
  • the three-dimensional printer has two nozzles Nl and N2, and the CAD model includes two reagents Rl and R2, it would be possible to map nozzle Nl to reagent Rl and nozzle N2 to reagent R2, or to map nozzle Nl to reagent R2 and nozzle N2 to reagent Rl.
  • the CAD model includes two reagents Rl and R2
  • there are four nozzles Nl, N2, N3, and N4, and one reagent Rl it would be possible to map all of the nozzles N1-N4 to reagent Rl.
  • Such a mapping would result advantageously in creating a three-dimensional representation of a CAD model having one composite material four times faster than if reagent Rl were mapped to a single nozzle, for example
  • the instant invention includes step S18 of parsing the sets of coordinates into line segments of scan lines for linearly driving the three-dimensional printer, using, for example, a standard coordinate set parser or offset 210.
  • the parsing optionally adjusts the coordinate sets in a line segment to account for nozzles in the print head of the three-dimensional printer which may be offset in the X-axis and/or Y-axis direction in a standard manner.
  • a three-dimensional printer optionally includes multiple nozzles geometrically offset from one another on a single print head
  • the print head as a whole, can only be located over a single X-Y coordinate set at a time. Because more than one nozzle cannot occupy a given space above a coordinate set, not all the nozzles can address the same coordinate set simultaneously. Thus, it is necessary to adjust the sets of coordinates to match up with the coordinate sets seen by the individual nozzles, not by the print head, using, for example, the coordinate set parser 210. That is, each nozzle may deposit a respective line segment based on its relative geometry.
  • the present invention may further be used with print heads having or occupying substantially the same geometry, where for example, a single nozzle is used, optionally with multiple materials or colors that are alternately transmitted therethrough.
  • print heads advantageously, coordinate set adjustment may not be needed to accommodate the geometry of multiple nozzles.
  • use of such print heads may advantageously include conventionally, programmatically associating any needed control assembly and/or valve assembly movements governing appropriate reagent reservoir to nozzle communication.
  • the instant invention may include step S20 of sorting the sets of coordinates in alternating scan lines so as to permit the three- dimensional printing in offset opposing directions, much like a conventional ink-jet printer operates.
  • one possible way of accomplishing the sorting would be to assign each scan line a record identification and for alternating scan lines.
  • the order of all of the coordinate sets of each such scan line is preferably reversed to indicate the order in which the coordinate sets are to be addressed by the print head.
  • every other set of Y coordinates may be reordered to permit this printing feature.
  • the method further includes step S22 of compiling proto-instructions for the three-dimensional printer, for example, using a C++ function or subroutine, from the ordered line segments and the respective part identifications of the sets of coordinates in each of the ordered line segments.
  • a proto-instruction compiler 220 takes the resulting line segments together comprising scan lines as input and outputs, or compiles, a series of non- printer-specific proto-instructions. These proto-instructions include machine-friendly powder or binder distribution increments and nozzle on/off commands. Optionally, this series of non-printer specific instructions specifies a size of the form or object in which the representation of the three-dimensional model is to be created. Optionally, the proto- instructions include debugging, header, and/or trailer fields to aid a user in back-tracking to search for an error in manufacture, coordinate set manipulation, and/or design.
  • the output compiled proto-instructions may advantageously be stored on a computer-readable medium, for example, a compact disc, wherein the compact disc may be copied for mass use. That is, a user may buy the compact disc having stored thereon the proto-instructions for creating a representation of a particular CAD model, and run the three-dimensional printer using the proto-instructions through any number of iterations.
  • This aspect of the invention provides the feature and advantage of re-using the compiled instructions without rerunning the compiler 220 every time.
  • An advantage to this approach may be ease of printer upgradeability and/or interchangeability. That is, if a three- dimensional printer is upgraded or replaced, the compact disc having the proto-instructions may be retained, provided the user acquires an instruction generator 230 specific to the upgraded or new three-dimensional printer.
  • the method includes step S24 of generating printer-specific instructions for a given three-dimensional printer, for example, using a C++ function or subroutine, from the compiled proto-instructions.
  • step S24 may permit accommodating different brands and models of three-dimensional printers. That is, irrespective of the printer-type, the proto-instructions remain the same. However, different three-dimensional printers may require different instructions. So, even for the same CAD model, the generated printer-specific instructions for one three-dimensional printer of one brand and model need not be the same as the generated printer-specific instructions for a three-dimensional printer of another model and/or brand. Indeed, depending on manufacturing quality, there may be differences between three-dimensional printers of the same brand and model.
  • Step S24 optionally permits fine tuning printer-specific instructions to accommodate the unique characteristics of a given three-dimensional printer. That is, a printer-specific instruction generator 230 takes the proto-instructions as input and outputs printer-specific instructions for a particular three-dimensional printer, for example, for a specific brand and/or model three-dimensional printer.
  • this instruction generator 230 is optionally replaceable to permit a user to run the proto-instructions on an instruction generator particular to the user's three-dimensional printer. Alternatively and advantageously, if a user's printer is upgraded, the user need only upgrade the instruction generator 230.
  • the outputted printer-specific instructions may optionally be stored on a computer-readable medium, for example, a compact disc, wherein the compact disc may be copied for mass use. That is, a user may buy the compact disc having stored thereon the printer-specific instructions for creating a representation of a particular CAD model or models.
  • An advantage to this approach over storing the proto-instructions on the compact disc, for example, may be ease of use. That is, a user would not need to acquire a separate printer-specific instruction generator 230 for each specific printer; the printer-specific instructions would be those specific to the printer owned by the user.
  • the compact disc may include a database of records of printer- specific instructions for a particular CAD model or models cross-referenced by printer type.
  • the software includes a standard plug-and-play design, such that when the three-dimensional printer is operatively connected to the computer running it, the running software will intelligently recognize the printer and select from the above- mentioned printer-specific instructions database.
  • a three-dimensional printer fetches the instruction generator's printer-specific instruction stream using a standard Yordon design technique or other standard technique.
  • the fetching can occur using a standard object- oriented design technique, instead of the Yordon design technique.
  • the instant invention further includes audit elements and/or process steps to perform at least one integrity check on the printer-specific instruction stream.
  • the instant invention may include an audit editor to permit a user to define the bounds and/or parameters of the audit so as to ascertain whether the CAD model that was processed matches the model that was created.
  • the audit definition may include an amount of the object to render, i.e., the whole model or just part of it.
  • This audit definition may be applied to raw coordinate sets from the CAD model stored in the raw coordinate set database.
  • the audit definition may also be applied to the coordinate sets as transformed by any part identification to reagent data, machine setup data, and nozzle to reagent mapping data.
  • the audit definition may be applied to the coordinate sets adjusted to allow for offset opposing printing directions.
  • the combination of the audit definition applications is optionally stored as audit data.
  • the audit definition is optionally applied to the printer-specific instruction stream, via, for example, a C++ function or subroutine, the result of which is also stored as audit data.
  • At least a portion of the audit data which is optionally stored in an audit database, may be compared in a CAD software package, such as SDRC's I-DEAS software, for errors and/or discrepancies, for example, to satisfy regulatory agency requirements verifying the produced object corresponds to the model.
  • the instruction stream may be used to simulate the original CAD model. Then, the simulation may be compared to the original CAD model for accuracy of reproduction.
  • FIG. 13 is an illustration of a main central processing unit for implementing the computer processing in accordance with a computer implemented embodiment of the present invention.
  • the procedures described above may be presented in terms of program procedures executed on, for example, a computer or network of computers.
  • a computer system designated by reference numeral 340 has a central processing unit 342 having disk drives 344 and 346.
  • Disk drive indications 344 and 346 are merely symbolic of a number of disk drives which might be accommodated by the computer system. Typically, these would include a floppy disk drive such as 344, a hard disk drive (not shown externally) and a CD ROM indicated by slot 346.
  • the number and type of drives varies, typically with different computer configurations.
  • Disk drives 344 and 346 are in fact optional, and for space considerations, may easily be omitted from the computer system used in conjunction with the production process/apparatus described herein.
  • the computer also has an optional display 348 upon which information is displayed.
  • a keyboard 350 and a mouse 352 may be provided as input devices to interface with the central processing unit 342. Then again, for enhanced portability the keyboard 350 may be either a limited function keyboard or omitted in its entirety.
  • mouse 352 may be a touch pad control device, or a track ball device, or even omitted in its entirety as well.
  • the computer system also optionally includes at least one infrared transmitter 376 and/or infrared receiver 378 for either transmitting and/or receiving infrared signals, as described below.
  • FIG. 14 illustrates a block diagram of the internal hardware of the computer of FIG. 13.
  • a bus 356 serves as the main information highway interconnecting the other components of the computer.
  • CPU 358 is the central processing unit of the system, performing calculations and logic operations required to execute a program.
  • ROM Read only memory
  • RAM random access memory
  • Disk controller 364 interfaces one or more disk drives to the system bus 356. These disk drives may be floppy disk drives such as 370, or CD ROM or DVD (digital video disks) drive such as 366, or internal or external hard drives 368. As indicated previously, these various disk drives and disk controllers are optional devices.
  • a display interface 372 interfaces display 348 and permits information from the bus 356 to be displayed on the display 348.
  • display 348 is also an optional accessory.
  • display 348 could be substituted or omitted.
  • optical fibers and/or electrical cables and/or conductors and/or optical communication e.g., infrared, and the like
  • wireless communication e.g., radio frequency (RF), and the like
  • the computer also optionally includes at least one of infrared transmitter 376 or infrared receiver 378.
  • FIG. 15 is an alternative block diagram of the internal hardware of the computer of FIG. 13.
  • the computer system instead of utilizing an infrared transmitter or infrared receiver, uses at least one of a low power radio transmitter 380 and/or a low power radio receiver 382.
  • the low power radio transmitter 380 transmits the signal for reception by components of the production process, and receives signals from the components via the low power radio receiver 382.
  • the low power radio transmitter and/or receiver 380, 382 are standard devices in industry.
  • FIG. 16 is an illustration of an exemplary memory medium which can be used with disk drives illustrated in FIGs. 13-15.
  • memory media such as floppy disks, or a CD ROM, or a digital video disk will contain, for example, a multi-byte locale for a single byte language and the program information for controlling the computer to enable the computer to perform the functions described herein.
  • ROM 360 and/or RAM 362 illustrated in FIGS. 13-15 can also be used to store the program information that is used to instruct the central processing unit 358 to perform the operations associated with the production process.
  • processing system 340 is illustrated having a single processor, a single hard disk drive and a single local memory, processing system 340 may suitably be equipped with any multitude or combination of processors or storage devices. Processing system 340 may, in point of fact, be replaced by, or combined with, any suitable processing system operative in accordance with the principles of the present invention, including sophisticated calculators, and hand-held, laptop/notebook, mini, mainframe and super computers, as well as processing system network combinations of the same.
  • processors may be replaced by or combined with any other suitable processing circuits, including programmable logic devices, such as PALs (programmable array logic) and PLAs (programmable logic arrays).
  • PALs programmable array logic
  • PLAs programmable logic arrays
  • DSPs digital signal processors
  • FPGSs field programmable gate arrays
  • ASICs application specific integrated circuits
  • VLSIs very large scale integrated circuits
  • CAD Computer-aided design software is by architects, engineers, drafters, artists, and others to create precision drawings or technical illustrations.
  • CAD software can be used to created two-dimensional (2-D) drawings and/or three dimensional (3-D) models.
  • Compiler A compiler is a program that processes statements written in a particular programming language and that produces corresponding machine-readable code that may be hardware-specific or hardware-non-specific.
  • Plug-and-Play Plug-and-Play is the ability to plug a device into a computer and have the computer recognize the device. The user need not specifically notify the computer of the device's existence.
  • the output device may be any device capable of rendering a representation of a CAD drawing or model.
  • the output device may include a 2-D printer and/or a 3-D printer.

Abstract

A method and/or system produces instructions to create a representation of, for example, a three-dimensional model for a three-dimensional printer having one or more nozzles. The model includes coordinate sets defining at least one part. Each part has a respective part identification. The CAD model is converted into its component sets of coordinates, each having an associated part identification. The sets of coordinates are parsed into ordered line segments for linearly driving the three-dimensional printer. Proto-instructions or generic instructions for the three-dimensional printer are compiled from the ordered line segments and the respective part identifications of the sets of coordinates in each of the ordered line segments. The method optionally includes the step of generating printer-specific instructions for the three-dimensional printer from the proto-instructions, and/or mapping each part identification to a respective reagent.

Description

METHOD AND APPARATUS FOR MANAGING AND/OR UTILIZING DATA RECEIVED FROM A CAD MODEL
COPYRIGHT NOTIFICATION
Portions of this patent application contain materials that are subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and
Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
TECHNICAL FIELD The invention relates generally to a method and/or an apparatus for extracting, managing and/or utilizing data representing and/or administered by computer model, and more particularly to a method and/or an apparatus for extracting dimensional measurement data from a computer aided design (CAD) model for use in a three- dimensional printer and/or a three-dimensional printing technique.
BACKGROUND OF THE INVENTION
Two needs in providing effective industrial productivity and competitiveness lie in the reduction in time required to bring new products to market and the need for providing flexible manufacture of products. The time required is often heavily dependent on the time needed for fabricating functioning prototypes and the time needed to develop tooling, such as molds and dies.
Three dimensional printing has been developed to address these needs.
U.S. Patent No. 5,387,380 to Cima et al., incorporated herein by reference, discloses an example of a three-dimensional printer. Figure 1 depicts Cima et al.'s apparatus 10 for forming a ceramic mold having six cavities 12A-12F which can be used for casting six substantially identical parts. A head 13 is driven reciprocally in a shuttle motion along the length of the mold being formed. A suitable linear stepping motor assembly 18 can be used for moving the head 13 and the binder deposition head 15.
The powdered material, e.g., a ceramic powder, is dispensed in a confined region, e.g., defined by a form 14. The powder is dispensed in a line as the dispensing head 13 is moved in discrete steps along the mold length to form a relatively loose layer thereof having a typical thickness of about 100-200 microns. Although the material is described here as a powdered material, in some applications, it can be distributed in the form of fibers, for example.
The stepping motor can be moved at such high speeds that the motion of the head 13 will effectively be continuous in nature. Alternatively, the motor may be one which inherently provides a continuous motion, such as a servo-controlled motor. An initial layer is dispersed at the bottom of the form 14 and each subsequent layer is dispersed sequentially on the preceding layer.
Cima el al.'s ink-jet print head 14 has a plurality of ink-jet dispensers driven by the stepping motor assembly in the same reciprocal manner so as to follow the motion of the powder head. Ink-jet print head 14 selectively produces jets of a liquid binder material at selected regions 16 which represent wall of each cavity, thereby causing the powdered material at such regions to become bonded. The binder jets are dispensed along a line of the print head 15 which is moved in substantially the same manner as the dispensing head 13 of the powder material, i.e., by a high speed stepping operation or by a continuous servo motor operation. Typical binder droplet sizes are about 15-50 microns, for example. The powder/binder layer forming process is repeated so as to build up the mold parts layer by layer.
Figure 2 diagrammatically shows Cima et al.'s fabrication process. For part 40 in question, a layer of powder is deposited from a powder dispensing head 41 into a form 42 over a previously formed layer which has already had a binder material deposited thereon, at Figure 2A. A layer of binder material is then printed onto the powder layer from binding jet head 43 to form the next layer of bonded powder particles, at Figure 2B. Such operation is repeated for each subsequent layer. An exemplary intermediate stage of the formation of part 40 is shown at Figure 2C. When the final bonded layer is printed as shown at Figure 2D, excess, unbonded powder is removed. The finally formed part itself being depicted, at Figure 2E.
Although Cima et al.'s layers become hardened, or at least partially hardened, as each of the layers is laid down, once the desired final part configuration is achieved and the layering process is completed, the form and its contents are heated or cured at a suitably selected temperature to further promote binding of the powder particles. The dispensed powders may be dry powders or in a liquid vehicle, such as in a colloidal dispersant or in an aqueous suspension. As shown in Figure 3, Cima et al.'s piston 70 holds the part 71 shown as partially formed within a chamber 72 at Figure 3 A. To deposit a layer of powder, the piston 70 is moved downwardly in the chamber 72, leaving a region 73 in the chamber at the top thereof for deposition of powder particles at Figure 3B. Powder particles 74 are deposited in such region and a doctor blade 75, for example, is used to scrape off excess powder at Figure 3C. The part 71, having the newly deposited layer 76 of powder thereon, is then ready for the application of binder material thereto at Figure 3D.
Cima et al. mentions use of multiple binder materials and a dual head system, as shown in Figure 2B, wherein a second head 43A is depicted in phantom lines. However, Cima et al. does not address or describe a method or a system for managing and/or utilizing and/or printing multiple binder materials. Cima et al. also does not address a means or a method of converting a multi-composite computer-aided design (CAD) model into instructions for operating a 3-D printer.
U.S. Patent No. 5,204,055 to Sachs et al., incoφorated herein by reference, discloses an example of a system for performing a powder distribution control operation, as shown in Figures 4-8. Sachs et al. discloses using a microcomputer 30 to create a three- dimensional (3-D) model of the component to be made using CAD techniques, as shown in Figure 4. An exemplary 3-D CAD model is depicted in Figure 6. A slicing algorithm is used to identify selected successive slices, i.e., to provide data with respect to selected 2-D layers, of the 3-D model 50 beginning at a bottom layer or slice thereof, for example, as shown in Figure 5.
Once a particular 2-D slice has been selected, the slice is then reduced to a series of one-dimensional (1-D) scan lines thereof, as depicted in the plan view of Figure 8. Each of the scan lines 52 can comprise a single line segment (e.g., segment 53 A of scan line 52A) or two or more shorter line segments (segments 53B of scan line 52B). Each line segment has a defined starting point on a scan line and a defined line segment length. For example, the line segments 53B have starting points at x and x2, respectively, as measured from a reference line 54, and lengths and 12, respectively, as measured from their starting points X! and x2.
Sachs et al.'s microcomputer 30 actuates the powder distribution operation when a particular 2-D slice of a desired 3-D model has been selected by supplying a powder "START" signal to a powder distribution controller circuit 31 which is used to actuate a powder distribution system 32. The operation of the powder distribution controller is stopped when the microcomputer 30 issues a powder "STOP" signal signifying that powder distribution over such region has been completed.
Sachs et al.'s microcomputer 30 then selects a scan line, i.e., the first scan line of the selected 2-D slice, selects a line segment, e.g., the first 1-D line segment of the selected scan line, and supplies data defining the starting point thereof and the length thereof to a binder jet nozzle control circuit 33. A single binder jet nozzle scans the line segments of a slice in a manner such that the overall 2-D slice is scanned in a conventional raster scan (X-Y) operation. When the real time position of the nozzle is at the starting point of the selected line segment, the nozzle 35 is turned on and is turned off at the end of the line segment in accordance with the defined starting point and length data supplied from microcomputer 30 for that line segment. Each successive line segment is similarly scanned for the selected scan line and for each successive scan line of the selected slice in the same manner. When the complete slice has been scanned, a scan "stop" signal signifies an end of the slice scan condition. As each line segment is scanned according to Sachs et al.'s method of operation, a determination is made as to whether nozzle operation has occurred for all line segments of a particular scan line of the selected slice. If not, the next line segment is scanned, and the nozzle control operation for that line segment is performed. When nozzle operation for the final scan line segment of a particular scan line has been completed, a determination is made as to whether the scan line involved is the final scan line of the selected slice. If not, the next scan line is selected, and the scanning and nozzle control process for each successive line segment of such scan line of the slice is performed. When nozzle operation for the final scan line of a particular slice has been completed, a determination is then made as to whether such slice is the final slice of the overall desired 3-D model. If not, the next slice is selected and the overall process for each line segment is repeated, including the powder deposition and nozzle binder deposition required for all the scan lines thereof. When the binder material has been supplied to the final slice of the 3-D model, the operation is completed. Thus, Sachs et al. discloses "on-the-fly" printer instruction compiling. That is, only as each line segment of a desired CAD model is scanned are motor control assembly and nozzle operation instructions compiled therefor. Thus, we have determined that a 3-D printer user must compile the same instructions for each and every representation of the desired CAD model, according to the Sachs et al. disclosure. From a manufacturing perspective, such repetitive compiling necessarily and unacceptably slows production of, for example, multiple representations of the CAD model and/or multiple slices, line segments and/or scan lines.
In view of the shortcomings of the prior art discussed above, we have determined that it is desirable to have a system and/or method for generating instructions for operating a multiple nozzle 3-D printer, or solid modeling machine. It is desirable to have a system and/or method for operating such a multiple nozzle 3-D printer to improve throughput speeds relative to prior art 3-D printers.
We have further determined that it is desirable to have a system and/or method for generating instructions for operating a multiple binder, multiple powder 3-D printer, or solid modeling machine to improve throughput speeds relative to, for example, prior art 3-D printers.
We have also determined that it is desirable to have a system and/or method that produces, for example, a substantially pre-processed instruction stream for running a 3- D printer that can be run and rerun without compiling instructions before each and every run.
SUMMARY OF THE INVENTION
The present invention provides a system and/or method for using, managing, and/or coordinating a multiple nozzle 3-D printer, or solid modeling machine and/or other printing machines.
The present invention provides a system and/or method for using such a multiple nozzle 3-D printer to improve throughput speeds, for example, relative to prior art 3-D printers.
The present invention provides a system and/or method for effectively and/or efficiently using a multiple binder, multiple powder 3-D printer, or solid modeling machine.
Additionally, the present invention provides a system and/or method that produces a substantially pre-processed instruction stream that can be run and rerun without compiling instructions before each and every run. This aspect of the invention enables re- use of this substantially pre-processed instruction stream for generating a representation of a CAD model every time a representation of the CAD model is desired.
The present invention is based, in part, on resolving problems associated with printing effectiveness and efficiency, in particularly 3-D printers or solid modeling machines. However, the present invention is also relevant, and/or applicable to other printers and/or printing techniques that require instruction compilation, and which would benefit from the efficiency and effectiveness of the present invention. For example, 2-D printers in the computer printing area, black/white or color, may also benefit from the present invention. More specifically, the instant invention provides a method of producing instructions to create a representation of a computer-aided design model for a output device, such as described above and having at least one nozzle. The model includes sets of coordinates defining at least one part. Each part has a respective part identification. The method includes, for example, the sequential, non-sequential, or independent steps described below. The CAD model is converted into its component sets of coordinates, each set of coordinates having an associated part identification. The sets of coordinates are parsed into ordered line segments for driving the output device. Proto-instructions and/or non-printer-specific and/or non-manufacturer-specific and/or generic printing instructions for the output device are compiled from at least the ordered line segments, and each respective part identification of the sets of coordinates in each of the ordered line segments. Optionally, the method may further include the step of generating printer-specific and/or manufacturer-specific printing instructions for the output device from the proto-instructions and/or non-printer-specific and/or non-manufacturer-specific and/or generic printing instructions.
Optionally, the method further includes a step of mapping each part identification to a respective reagent, which may be, for example, a powder and/or a fiber. The method may also include a step of identifying machine setup data from a user or an output device setup database. Optionally, the machine setup data includes depth of a form or a bed in which the representation is to be created by the three-dimensional printer. The method may also include a step of mapping each nozzle to a corresponding reagent. The parsing step of the inventive method optionally includes modifying sets of coordinates in alternate scan lines so as to enable nozzle operation in offset, opposing movements.
Optionally, the method further includes the step of identifying a part identification to reagent correspondence from a user input or a correspondence database. The method may also include the step of mapping each set of coordinates to a respective reagent, using an associated part identification of each set of coordinates and the identified part identification to reagent correspondence. In another embodiment, the instant invention provides for a method of producing instructions to create a representation of a three-dimensional model for a three- dimensional printer having more than one nozzle. The model includes sets of coordinates defining at least one part. Each part has a respective part identification. The inventive method includes the following sequential, non-sequential, or independent steps.
Each set of coordinates is identified. A part identification associated with the each set of coordinates is identified. Part identification to reagent correspondence is identified from a first user input or a part identification to reagent correspondence database. The sets of coordinates are parsed into line segments, which together form scan lines for linearly driving the 3-D printer. Proto-instructions and/or non-printer-specific and/or non- manufacturer-specific and/or generic printing instructions for the three-dimensional printer are compiled from at least the ordered line segments and each respective part identification of the sets of coordinates in each of the ordered line segments. Optionally, the method further includes the step of generating printer-specific and/or manufacturer-specific printing instructions for the three-dimensional printer from the proto-instructions and/or non-printer-specific and/or non-manufacturer-specific and/or generic printing instructions.
Optionally, the method may include identifying and storing part identifications on a list, and removing any duplicative or redundant part identification from the list. The method may further include the step of mapping each set of coordinates to a respective reagent, using the associated part identification and the part identification to reagent correspondence. The method optionally includes the step of identifying printer or machine setup data indicative of machine-specific information from user input or a machine setup database. Optionally, the method further includes identifying a nozzle to reagent correspondence for each nozzle is identified from user input or a nozzle to reagent correspondence database. The method may further include the step of sorting each set of coordinates in alternating printer scan lines so as to enable nozzle operation in offset opposing movements.
In another embodiment, the instant invention provides for an apparatus for producing instructions to create a representation of a three-dimensional model for a three- dimensional printer having more than one nozzle. The model includes sets of coordinates defining at least one part. Each part has a respective part identification.
The apparatus includes a coordinate set identifier, identifying the sets of coordinates of the model. The apparatus also includes a part identification identifier, identifying a part identification associated with each set of coordinates in the coordinate set identifier. The apparatus also includes a part identification to reagent correspondence identifier, identifying a part identification to reagent correspondence from user input or a part identification to reagent correspondence database. The apparatus includes a coordinate set to reagent mapper for mapping each set of coordinates to a corresponding reagent and a coordinate set parser for generating line segments from the sets of coordinates, which together form scan lines for the three-dimensional printer or other printer. The apparatus also includes a proto-instructions, non-printer-specific printing instructions, non- manufacturer-specific printing instructions, or generic printing instructions compiler, compiling proto-instructions and/or non-printer-specific and/or non-manufacturer-specific and/or generic printing instructions for the three-dimensional printer from the ordered line segments and the respective part identifications of the sets of coordinates in each of the ordered line segments. Optionally, the apparatus further includes a printer-specific and/or manufacturer-specific instruction generator, translating the proto-instructions and/or non- printer-specific and/or non-manufacturer-specific and/or generic printing instructions into instructions specific for the three-dimensional printer.
The apparatus may include a list storing all identified part identifications. The apparatus optionally includes a part identification to reagent editor for enabling user input. The apparatus may further include a printer or machine setup data editor for enabling user input. The apparatus optionally further includes a nozzle to reagent map editor for enabling user input. Optionally, the apparatus may include means for adjusting the each set of coordinates to accommodate a location of each nozzle relative to the each set of coordinates.
Another embodiment of the instant invention includes a computer program product storing computer instructions for operating a three-dimensional printer to create a three-dimensional representation of a CAD model. The three-dimensional printer has a plurality of nozzles. The model includes sets of coordinates defining at least one part.
Each part has a respective part identification.
The computer program product includes a computer-readable medium. The inventive product includes proto-instructions and/or non-printer-specific and/or non- manufacturer-specific and/or generic printing instructions, generic to at least one three- dimensional printer or solid modeling machine, for creating the three-dimensional representation. The computer program product includes at least one printer-specific and/or manufacturer-specific instruction generator, in operation, translating the proto-instructions and/or non-printer-specific and/or non-manufacturer-specific and/or generic printing instructions into instructions specific to the three-dimensional printer or specific to a manufacturer's line of three-dimensional printers to be used to create the three-dimensional representation. The generation of the proto-instructions comprises the following sequential, non-sequential, or independent steps. Each set of coordinates is identified. A part identification associated with the each set of coordinates is identified. A part identification to reagent correspondence is identified for each part identification from a first user input or a part identification to reagent correspondence database. The sets of coordinates are parsed into line segments, which together form scan lines for linearly driving the three-dimensional printer. The proto-instructions and/or non-printer-specific and/or non-manufacturer-specific and/or generic printing instructions for the three- dimensional printer are compiled from at least the ordered line segments and each respective part identification of the sets of coordinates in each of the ordered line segments. There has thus been outlined, rather broadly, the more important features of the invention in order that the detailed description thereof that follows may be better understood, and in order that the present contribution to the art may be better appreciated. There are, of course, additional features of the invention that will be described hereinafter and which will form the subject matter of the claims appended hereto.
In this respect, before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not limited in its application to the details of construction and to the arrangements of the components set forth in the following description or illustrated in the drawings. The invention is capable of other embodiments and of being practiced and carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein are for the purpose of description and should not be regarded as limiting.
As such, those skilled in the art will appreciate that the conception, upon which this disclosure is based, may readily be utilized as a basis for the designing of other structures, methods and systems for carrying out the several purposes of the present invention. It is important, therefore, that the claims be regarded as including such equivalent constructions insofar as they do not depart from the spirit and scope of the present invention.
Further, the purpose of the foregoing abstract is to enable the U.S. Patent and Trademark Office and the public generally, and especially the scientists, engineers and practitioners in the art who are not familiar with patent or legal terms or phraseology, to determine quickly from a cursory inspection the nature and essence of the technical disclosure of the application. The abstract is neither intended to define the invention of the application, which is measured by the claims, nor is it intended to be limiting as to the scope of the invention in any way. These together with other objects of the invention, along with the various features of novelty which characterize the invention, are pointed out with particularity in the claims annexed to and forming a part of this disclosure. For a better understanding of the invention, its operating advantages and the specific objects attained by its uses, reference should be had to the accompanying drawings and descriptive matter in which there is illustrated preferred embodiments of the invention. BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 depicts a perspective view of a prior art 3-D printer;
Figures 2A-2E depict consecutive elevational views illustrating process steps for using a prior art 3-D printer, such as in Figure 1 ; Figure 3A-3D depict consecutive elevational views illustrating process steps for using a prior art 3-D printer, such as in Figure 1 ;
Figure 4 depicts a schematic of a prior art 3-D printer, such as in Figure 1 ;
Figure 5 depicts a flow chart identifying the steps of using a prior art 3-D printer, such as in Figure 1 ; Figure 6 depicts a perspective view of a sample single material 3-D model to be produced by a prior art 3-D printer;
Figure 7 depicts a perspective view of 2-D slices of the sample single material 3-D model, as shown in Figure 6, to be produced by a prior art 3-D printer;
Figure 8 depicts a plan view of 1-D line segments of a 2-D slice of the 3-D model, shown in Figures 6 and 7;
Figure 9 depicts a flow chart consistent with the instant invention;
Figure 10 depicts a schematic of the instant invention;
Figures 11A and 1 IB depict a flowchart of process steps of an embodiment of a method according to the instant invention; Figure 12 is a schematic view of another embodiment of a system according to the instant invention;
Figure 13 is an illustration of a sample main central processing unit for implementing the computer processing in accordance with a computer implemented embodiment of the present invention; Figure 14 is a block diagram of the internal hardware of the computer in
Figure 13;
Figure 15 is an alternative block diagram of the internal hardware of the computer in Figure 13; and Figure 16 is an illustration of an exemplary memory medium which can be used with disk drives illustrated in Figures 13-15.
Figures 17A-D are illustrative data flow diagrams for software in accordance with an embodiment of the present invention.
Notations and Nomenclature
The detailed descriptions which follow may be presented in terms of program procedures executed on a computer or network of computers. These procedural descriptions and representations are the means used by those skilled in the art to most effectively convey the substance of their work to others skilled in the art. A procedure is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. These steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared and otherwise manipulated. It proves convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. It should be noted, however, that all of these an similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities.
Further, the manipulations performed are often referred to in terms, such as adding or comparing, which are commonly associated with mental operations performed by a human operator. No such capability of a human operator is necessary, or desirable in most cases, in any of the operations described herein which form part of the present invention; the operations are machine operations. Useful machines for performing the operation of the present invention include general purpose digital computers or similar devices.
The present invention also relates to apparatus for performing these operations. This apparatus may be specially constructed for the required purpose or it may comprise a general purpose computer as selectively activated or reconfigured by a computer program stored in the computer. The procedures presented herein are not inherently related to a particular computer or other apparatus. Various general purpose machines may be used with programs written in accordance with the teachings herein, or it may prove more convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these machines will appear from the description given.
DETAILED DESCRIPTION OF THE INVENTION
The present invention is based, in part, on our discovery of the problems associated with printing effectiveness and efficiency, in particularly 3-D printers. However, the present invention is also relevant, and/or applicable to other printers and/or printing techniques that require instruction compilation, and which would benefit from the efficiency and effectiveness of the present invention. For example, 2-D printers in the computer printing area, black/white or color, may also benefit from the present invention.
To solve the above problems associated with printing and, more specifically, 3-D printing, We recognized that CAD models are typically saved in one of multiple industry-standard file formats, such as IGES, STL (stereolithography), VDA-FS, or ISO G- Code formats. By way of example, conventional CAD software packages, as marketed under the AutoCAD, CADKEY, and Pro/ENGINEER brands, produce STL files, which are used to drive present generation 3-D printers, or solid modeling machines. We have also discovered that the STL file format as well as other similar file formats have two drawbacks.
First, such prior file formats oriented toward vector-scanning machines, i.e., machines that scan from a point, not raster- scanning machines, such as 3-D printers. Second, such prior file formats are aimed at machines that only work with a single material. However, for our purposes, an orthogonal coordinate system, for example, a conventional X-Y-Z coordinate system, may be used and multiple binders and multiple powders may also be used. Other data file formats using a single binder and/or powder may also be used in the present invention, albeit with less or relatively less advantages over the prior art.
Similarly, other file formats than those specifically for 3-D modeling and/or printing may also be used in the present invention, for example, 2-D printing, color printing, and the like. By way of illustration, part identifications designating parts of a CAD model may be assigned to one or more respective color ink-jet nozzles of a color ink- jet printer. We sought to take a 3-D CAD model and convert it into machine instructions to drive a multiple binder, multiple powder machine. The big challenge was how to represent the data in a way that we could manipulate it from a CAD-like form to an instruction stream necessary to drive such a machine.
We recognized that one suitable commercially available software package that can be used in combination with the present invention is, for example, I-DEAS mechanical design software produced by Structural Dynamics Research Corporation (SDRC) of Milford, Ohio, which includes a part identification field. A part refers to a respective component of a model which may differ in composition from another component thereof. Naturally, any CAD package or system including, a part identification field is acceptable.
Alternatively, any CAD package or system permitting the distinction of components of a model which differ by composition are also acceptable. To this extent, the instant invention optionally includes CAD file format conversion to accommodate different file formats for storing coordinate sets and part identifications of a CAD model. We realized that assigning part-identifications to sets of coordinates enabled a specific reagent, such as a material including a color to be defined for each set of coordinates in the CAD model. A reagent is defined-herein as any dispensable product included in a representation of a 3-D model. For example, a reagent may include a powder material and/or a fiber material. Such reagent definitions would, in turn, permit the creation of a 3-D representation composed of multiple reagents.
The instant invention, an instruction conversion system, can be described generally with respect to Figures 9 and 10. Referring to Figure 9, the instant invention generally includes step A2 of inputting data such as CAD data, including optionally all data for part(s) The data for the part(s) includes coordinates and part identifications, such as, part numbers. In step A4, the CAD data are merged with reagent data for each specific part of the CAD model. In step A6, the CAD data and part/reagent data are merged with nozzle data and optionally machine setup data, to form printer scan lines. In step A8, the merged CAD data, part/reagent data, nozzle data, and optional machine data are compiled into portable, generic 3-D printer instructions. Optionally, in step A10, these compiled generic printer instructions are converted into printer-specific or manufacturer-specific instructions for instructing a 3-D printer to print at least one 3-D representation of the CAD model B4, B4', B4", shown in Figure 10.
Referring to Figure 10, the input for the instruction conversion system B2 includes at least one model, such as CAD models B4, B4', B4". The CAD models B4, B4', B4" are generated from, for example, any one of a number of commercially available CAD software packages or other standard processes. The output of the instruction conversion system includes portable, generic printer instructions, such as 3-D printer instructions. These generic 3-D printer instructions can be, in turn, input into a printer- specific or manufacturer-specific instruction generator for outputting printer-specific instructions for instructing at least one 3-D printer B8, B8', B8", to print at least one 3-D representation of the CAD model B4, B4', B4". Because of the adaptability and/or interchangeability of the instruction generator B6, advantageously, use of the instant invention need not be limited to any particular brand and/or model 3-D printer B8, B8\ B8". The instruction conversion system B2 includes a standard processor BIO. microcontroller, or computer Bl l. which processes CAD-specific data conversion B12, reagent (material) data B14, nozzle data B16, and CAD data B18 from the CAD models B4, B4\ B4".
Referring to Figures 1 1A and 1 IB, an embodiment of a method according to the instant invention is broadly defined by the combination of steps S2, SI 8, and S22, and multiple supplemental optional steps S4, S6, S8, SI 0, SI 2, SI 4, SI 6, S20, and S24. Figure 12 shows, by way of illustration, another embodiment of the instant invention including an apparatus for effecting the above-mentioned inventive method, where a modified instruction conversion system B2' and a modified instruction generator B6' is illustrated.
The method includes step S2 of identifying component sets of coordinates in a desired 3-D CAD model. Each set of coordinates advantageously has a respective part identification. By way of example, a coordinate set identifier 100 parses a CAD model into its component sets of coordinates, each set associated with at least one part identification. The coordinate set identifier may be embodied, for example, as a standard CAD software macro or, for example, as a C++ function or subroutine. Optionally, the results may be stored in a raw coordinate set data base, for example, created in Microsoft Access. The fields in the raw coordinate set database thus include entries for at least the coordinate sets and the associated part identifications. Optionally, additional fields may relate to normals, surface intersections, and other geometric features of the model to permit a user to smooth the data, if necessary. Optionally, as in step S4, a part identification associated with each component set of coordinates is identified by a part identification identifier 110. Step S4 may be accomplished, for example, by using a Query function in a Microsoft Access database, if the coordinate set database includes a Microsoft Access database. All part identifications are optionally stored in a part identification list 120, as in step S6. From the list 120, duplicate part identifications are removed, as in step S8, for example, manually or programmatically such as by using at least a C++ function or subroutine.
Optionally, the inventive method may include step S10 of identifying at least a correspondence between a part identification and a respective reagent to be deposited by the three-dimensional printer, for example, using a part identification to reagent correspondence identifier 130. Advantageously, step S10 permits changing the composition of a representation of a CAD model by simply associating a part identification with a second reagent, different from a first reagent previously associated with the part identification. Optionally, using a part identification to reagent editor 140, a user may map each listed part identification to a desired reagent. For example, a user may map several part identifications to the same reagent if all of the parts corresponding to the part identifications are to be composed of the same reagent in the created representation of the three-dimensional CAD model. Optionally, the instant invention may include intelligently mapping part identifications to reagents using a part identification to reagent correspondence database 150, avoiding user input, which may slow down throughput. The mapped part identifications are then merged with the sets of coordinates of the CAD model, for example, using a coordinate set to reagent mapper 160 so that each set of coordinates is associated with an appropriate reagent, as in step SI 2. Optionally, for the merging step SI 2, the sets of coordinates may be retrieved, for example, from a Microsoft Access database, using its Query function.
Optionally, the method may also include the step S14 of identifying machine setup data, which may, but need not be, printer-specific. That is, the machine setup data may include non-printer-specific data, such as the depth of the form into which the three-dimensional printer is to create a representation of a 3-D CAD model.
Optionally, a machine setup data editor 170 may be used to identify machine setup data via user input. The machine setup data may be intelligently identified from a machine setup database 180. The method may also include step S16 of identifying a respective reagent corresponding to each nozzle of the three-dimensional printer. A nozzle-reagent map editor 190 may be used to map nozzles of a print head to reagents, which may further be done intelligently using a nozzle to reagent correspondence database 200. The maximum number of nozzles and reagents used is only constrained by physical impracticabilities. Naturally, by way of example, if the three-dimensional printer has two nozzles Nl and N2, and the CAD model includes two reagents Rl and R2, it would be possible to map nozzle Nl to reagent Rl and nozzle N2 to reagent R2, or to map nozzle Nl to reagent R2 and nozzle N2 to reagent Rl. As a further example, if there are four nozzles Nl, N2, N3, and N4, and one reagent Rl, it would be possible to map all of the nozzles N1-N4 to reagent Rl. Such a mapping would result advantageously in creating a three-dimensional representation of a CAD model having one composite material four times faster than if reagent Rl were mapped to a single nozzle, for example, Nl.
Given the sets of coordinates, each having an associated reagent, any machine setup data, and any nozzle to reagent mapping, the instant invention includes step S18 of parsing the sets of coordinates into line segments of scan lines for linearly driving the three-dimensional printer, using, for example, a standard coordinate set parser or offset 210. The parsing optionally adjusts the coordinate sets in a line segment to account for nozzles in the print head of the three-dimensional printer which may be offset in the X-axis and/or Y-axis direction in a standard manner.
That is, if a three-dimensional printer optionally includes multiple nozzles geometrically offset from one another on a single print head, it should be understood that the print head, as a whole, can only be located over a single X-Y coordinate set at a time. Because more than one nozzle cannot occupy a given space above a coordinate set, not all the nozzles can address the same coordinate set simultaneously. Thus, it is necessary to adjust the sets of coordinates to match up with the coordinate sets seen by the individual nozzles, not by the print head, using, for example, the coordinate set parser 210. That is, each nozzle may deposit a respective line segment based on its relative geometry. The present invention may further be used with print heads having or occupying substantially the same geometry, where for example, a single nozzle is used, optionally with multiple materials or colors that are alternately transmitted therethrough. With such print heads, advantageously, coordinate set adjustment may not be needed to accommodate the geometry of multiple nozzles. However, use of such print heads may advantageously include conventionally, programmatically associating any needed control assembly and/or valve assembly movements governing appropriate reagent reservoir to nozzle communication.
Optionally, for efficiency reasons, the instant invention may include step S20 of sorting the sets of coordinates in alternating scan lines so as to permit the three- dimensional printing in offset opposing directions, much like a conventional ink-jet printer operates.
By way of example, one possible way of accomplishing the sorting, for example, by using at least a C++ function or subroutine, would be to assign each scan line a record identification and for alternating scan lines. The order of all of the coordinate sets of each such scan line is preferably reversed to indicate the order in which the coordinate sets are to be addressed by the print head. Thus, for example, assuming the print head prints along the Y-axis, every other set of Y coordinates may be reordered to permit this printing feature. The method further includes step S22 of compiling proto-instructions for the three-dimensional printer, for example, using a C++ function or subroutine, from the ordered line segments and the respective part identifications of the sets of coordinates in each of the ordered line segments. A proto-instruction compiler 220 takes the resulting line segments together comprising scan lines as input and outputs, or compiles, a series of non- printer-specific proto-instructions. These proto-instructions include machine-friendly powder or binder distribution increments and nozzle on/off commands. Optionally, this series of non-printer specific instructions specifies a size of the form or object in which the representation of the three-dimensional model is to be created. Optionally, the proto- instructions include debugging, header, and/or trailer fields to aid a user in back-tracking to search for an error in manufacture, coordinate set manipulation, and/or design.
The output compiled proto-instructions may advantageously be stored on a computer-readable medium, for example, a compact disc, wherein the compact disc may be copied for mass use. That is, a user may buy the compact disc having stored thereon the proto-instructions for creating a representation of a particular CAD model, and run the three-dimensional printer using the proto-instructions through any number of iterations. This aspect of the invention provides the feature and advantage of re-using the compiled instructions without rerunning the compiler 220 every time. An advantage to this approach may be ease of printer upgradeability and/or interchangeability. That is, if a three- dimensional printer is upgraded or replaced, the compact disc having the proto-instructions may be retained, provided the user acquires an instruction generator 230 specific to the upgraded or new three-dimensional printer.
Optionally, the method includes step S24 of generating printer-specific instructions for a given three-dimensional printer, for example, using a C++ function or subroutine, from the compiled proto-instructions. Advantageously, step S24 may permit accommodating different brands and models of three-dimensional printers. That is, irrespective of the printer-type, the proto-instructions remain the same. However, different three-dimensional printers may require different instructions. So, even for the same CAD model, the generated printer-specific instructions for one three-dimensional printer of one brand and model need not be the same as the generated printer-specific instructions for a three-dimensional printer of another model and/or brand. Indeed, depending on manufacturing quality, there may be differences between three-dimensional printers of the same brand and model.
Step S24 optionally permits fine tuning printer-specific instructions to accommodate the unique characteristics of a given three-dimensional printer. That is, a printer-specific instruction generator 230 takes the proto-instructions as input and outputs printer-specific instructions for a particular three-dimensional printer, for example, for a specific brand and/or model three-dimensional printer. Advantageously, this instruction generator 230 is optionally replaceable to permit a user to run the proto-instructions on an instruction generator particular to the user's three-dimensional printer. Alternatively and advantageously, if a user's printer is upgraded, the user need only upgrade the instruction generator 230.
The outputted printer-specific instructions may optionally be stored on a computer-readable medium, for example, a compact disc, wherein the compact disc may be copied for mass use. That is, a user may buy the compact disc having stored thereon the printer-specific instructions for creating a representation of a particular CAD model or models. An advantage to this approach over storing the proto-instructions on the compact disc, for example, may be ease of use. That is, a user would not need to acquire a separate printer-specific instruction generator 230 for each specific printer; the printer-specific instructions would be those specific to the printer owned by the user.
Optionally, the compact disc may include a database of records of printer- specific instructions for a particular CAD model or models cross-referenced by printer type. Upon running the software on the compact disc, the user may select the appropriate printer type, thereby gaining access to appropriate printer-specific instructions for the user's printer. Optionally, the software includes a standard plug-and-play design, such that when the three-dimensional printer is operatively connected to the computer running it, the running software will intelligently recognize the printer and select from the above- mentioned printer-specific instructions database.
A three-dimensional printer, directly or indirectly, fetches the instruction generator's printer-specific instruction stream using a standard Yordon design technique or other standard technique. Optionally, the fetching can occur using a standard object- oriented design technique, instead of the Yordon design technique. Optionally, the instant invention further includes audit elements and/or process steps to perform at least one integrity check on the printer-specific instruction stream. To this extent, the instant invention may include an audit editor to permit a user to define the bounds and/or parameters of the audit so as to ascertain whether the CAD model that was processed matches the model that was created. For example, the audit definition may include an amount of the object to render, i.e., the whole model or just part of it. This audit definition may be applied to raw coordinate sets from the CAD model stored in the raw coordinate set database. The audit definition may also be applied to the coordinate sets as transformed by any part identification to reagent data, machine setup data, and nozzle to reagent mapping data. In addition, the audit definition may be applied to the coordinate sets adjusted to allow for offset opposing printing directions. The combination of the audit definition applications is optionally stored as audit data.
The audit definition is optionally applied to the printer-specific instruction stream, via, for example, a C++ function or subroutine, the result of which is also stored as audit data. At least a portion of the audit data, which is optionally stored in an audit database, may be compared in a CAD software package, such as SDRC's I-DEAS software, for errors and/or discrepancies, for example, to satisfy regulatory agency requirements verifying the produced object corresponds to the model.
For example, the instruction stream may be used to simulate the original CAD model. Then, the simulation may be compared to the original CAD model for accuracy of reproduction.
It is to be understood that the representation to be created may be based on, for example, a hand-drawn CAD model, an at least partially c-41 -computer-drawn CAD model, and a medical scan CAD model, such as an MRI scan CAD model. FIG. 13 is an illustration of a main central processing unit for implementing the computer processing in accordance with a computer implemented embodiment of the present invention. The procedures described above may be presented in terms of program procedures executed on, for example, a computer or network of computers.
Viewed externally in FIG. 13, a computer system designated by reference numeral 340 has a central processing unit 342 having disk drives 344 and 346. Disk drive indications 344 and 346 are merely symbolic of a number of disk drives which might be accommodated by the computer system. Typically, these would include a floppy disk drive such as 344, a hard disk drive (not shown externally) and a CD ROM indicated by slot 346. The number and type of drives varies, typically with different computer configurations. Disk drives 344 and 346 are in fact optional, and for space considerations, may easily be omitted from the computer system used in conjunction with the production process/apparatus described herein.
The computer also has an optional display 348 upon which information is displayed. In some situations, a keyboard 350 and a mouse 352 may be provided as input devices to interface with the central processing unit 342. Then again, for enhanced portability the keyboard 350 may be either a limited function keyboard or omitted in its entirety. In addition, mouse 352 may be a touch pad control device, or a track ball device, or even omitted in its entirety as well. In addition, the computer system also optionally includes at least one infrared transmitter 376 and/or infrared receiver 378 for either transmitting and/or receiving infrared signals, as described below.
FIG. 14 illustrates a block diagram of the internal hardware of the computer of FIG. 13. A bus 356 serves as the main information highway interconnecting the other components of the computer. CPU 358 is the central processing unit of the system, performing calculations and logic operations required to execute a program. Read only memory (ROM) 360 and random access memory (RAM) 362 constitute the main memory of the computer. Disk controller 364 interfaces one or more disk drives to the system bus 356. These disk drives may be floppy disk drives such as 370, or CD ROM or DVD (digital video disks) drive such as 366, or internal or external hard drives 368. As indicated previously, these various disk drives and disk controllers are optional devices.
A display interface 372 interfaces display 348 and permits information from the bus 356 to be displayed on the display 348. Again as indicated, display 348 is also an optional accessory. For example, display 348 could be substituted or omitted. Communications with external devices, for example, the components of the apparatus described herein, occurs utilizing communication port 374. For example, optical fibers and/or electrical cables and/or conductors and/or optical communication (e.g., infrared, and the like) and/or wireless communication (e.g., radio frequency (RF), and the like) can be used as the transport medium between the external devices and communication port 374. In addition to the standard components of the computer, the computer also optionally includes at least one of infrared transmitter 376 or infrared receiver 378.
Infrared transmitter 376 is utilized when the computer system is used in conjunction with one or more of the processing components/stations that transmits/receives data via infrared signal transmission. FIG. 15 is an alternative block diagram of the internal hardware of the computer of FIG. 13. In FIG. 15, instead of utilizing an infrared transmitter or infrared receiver, the computer system uses at least one of a low power radio transmitter 380 and/or a low power radio receiver 382. The low power radio transmitter 380 transmits the signal for reception by components of the production process, and receives signals from the components via the low power radio receiver 382. The low power radio transmitter and/or receiver 380, 382 are standard devices in industry.
FIG. 16 is an illustration of an exemplary memory medium which can be used with disk drives illustrated in FIGs. 13-15. Typically, memory media such as floppy disks, or a CD ROM, or a digital video disk will contain, for example, a multi-byte locale for a single byte language and the program information for controlling the computer to enable the computer to perform the functions described herein. Alternatively, ROM 360 and/or RAM 362 illustrated in FIGS. 13-15 can also be used to store the program information that is used to instruct the central processing unit 358 to perform the operations associated with the production process.
Although processing system 340 is illustrated having a single processor, a single hard disk drive and a single local memory, processing system 340 may suitably be equipped with any multitude or combination of processors or storage devices. Processing system 340 may, in point of fact, be replaced by, or combined with, any suitable processing system operative in accordance with the principles of the present invention, including sophisticated calculators, and hand-held, laptop/notebook, mini, mainframe and super computers, as well as processing system network combinations of the same.
Conventional processing system architecture is more fully discussed in Computer Organization and Architecture, by William Stallings, MacMillam Publishing Co. (3rd ed. 1993); conventional processing system network design is more fully discussed in Data Network Design, by Darren L. Spohn, McGraw-Hill, Inc. (1993), and conventional data communications is more fully discussed in Data Communications Principles, by RD. Gitlin, J.F. Hayes and S.B. Weinstain, Plenum Press (1992) and in The Irwin Handbook of Telecommunications, by James Harry Green, Irwin Professional Publishing (2nd ed. 1992) Each of the foregoing publications is incorporated herein by reference. Alternatively, the hardware configuration may be arranged according to the multiple instruction multiple data (MLMD) multiprocessor format for additional computing efficiency. The details of this form of computer architecture are disclosed in greater detail in, for example, U.S. Patent No. 5,163,131; Boxer, A., Where Buses Cannot Go, IEEE Spectrum, February 1995, pp. 41-45; and Barroso, L.A. et al., RPM: A Rapid Prototyping Engine for Multiprocessor Systems, IEEE Computer February 1995, pp. 26-34, all of which are incorporated herein by reference.
In alternate preferred embodiments, the above-identified processor, and in particular microprocessing circuit 358, may be replaced by or combined with any other suitable processing circuits, including programmable logic devices, such as PALs (programmable array logic) and PLAs (programmable logic arrays). DSPs (digital signal processors), FPGSs (field programmable gate arrays), ASICs (application specific integrated circuits), VLSIs (very large scale integrated circuits) or the like. Figures 17A-17D include an illustrative data flow diagram for software in accordance with one embodiment of the present invention, which includes data flow diagrams for software necessary to implement the systems and/or processes described herein. Conventional legends for data flow diagrams are used, including the following: horizontal lines with a phrase therebetween denote a storing function, for example, in a list or database of data inputted thereto; a square denotes input from or output to, for example, an external entity; and a circle denotes a process that changes data inputted thereto.
The many features and advantages of the invention are apparent from the detailed specification, and thus, it is intended by the appended claims to cover all such features and advantages of the invention which fall within the true spirit and scope of the invention. Further, since numerous modifications and variations will readily occur to those skilled in the art, it is not desired to limit the invention to the exact construction and operation illustrated and described, and accordingly, all suitable modifications and equivalents may be resorted to, falling within the scope of the invention.
GLOSSARY
CAD Computer-aided design software is by architects, engineers, drafters, artists, and others to create precision drawings or technical illustrations. CAD software can be used to created two-dimensional (2-D) drawings and/or three dimensional (3-D) models.
Compiler A compiler is a program that processes statements written in a particular programming language and that produces corresponding machine-readable code that may be hardware-specific or hardware-non-specific.
Plug-and-Play Plug-and-Play is the ability to plug a device into a computer and have the computer recognize the device. The user need not specifically notify the computer of the device's existence.
Output device The output device, within the scope of the invention, may be any device capable of rendering a representation of a CAD drawing or model. By way of example, the output device may include a 2-D printer and/or a 3-D printer.

Claims

1. A method of producing instructions to create a representation of a computer-aided design model for an output device having at least one nozzle, said method comprising the steps of: converting the model, which defines at least one part, into component sets of coordinates, each part having respective sets of coordinates, each set of coordinates having an associated part identification; parsing the component sets of coordinates into ordered line segments for driving the output device; and compiling proto-instructions for the output device from at least the ordered line segments and each respective part identification of the sets of coordinates in each of the ordered line segments.
2. The method according to claim 1, further comprising the step of generating printer-specific instructions for the output device from the proto-instructions.
3. The method according to claim 1, further comprising a step of mapping each part identification to a respective reagent.
4. The method according to claim 1, further comprising a step of identifying machine setup data from a user or an output device setup database.
5. The method according to claim 4, wherein the machine setup data includes depth of a bed in which the representation is to be created by the output device.
6. The method according to claim 1, further comprising a step of mapping each nozzle to a corresponding reagent.
7. The method according to claim 1, wherein said parsing step includes modifying the component sets of coordinates in alternate scan lines so as to enable nozzle operation in offset opposing movements.
8. The method according to claim 1, further comprising the step of identifying a part identification to reagent correspondence from a user input or a correspondence database.
9. The method according to claim 8, further comprising the step of mapping each set of coordinates to a respective reagent using an associated part identification of each set of coordinates and the identified part identification to reagent correspondence.
10. A method of producing instructions to create a representation of a three- dimensional model for a three-dimensional printer having a plurality of nozzles, the model including sets of coordinates defining at least one part, each part having a respective part identification, said method comprising the steps of: identifying each set of coordinates; identifying a part identification associated with the each set of coordinates; identifying a part identification to reagent correspondence for each part identification from a first user input or a part identification to reagent correspondence database; parsing the sets of coordinates into line segments, which together form scan lines for linearly driving the three-dimensional printer; compiling proto-instructions for the three-dimensional printer from at least the ordered line segments and each respective part identification of the sets of coordinates in each of the ordered line segments.
11. The method according to claim 10, further comprising the step of generating printer-specific instructions for the three-dimensional printer from the proto- instructions.
12. The method according to claim 10, further comprising the steps of: storing all identified part identifications on a list; and removing from the list any duplicative part identification.
13. The method according to claim 10, further comprising the step of mapping the each set of coordinates to a respective reagent, using the associated part identification and the part identification to reagent correspondence.
14. The method according to claim 10, further comprising the step of identifying machine setup data from a second user input or a machine setup database.
15. The method according to claim 10, further comprising the step of identifying a nozzle to reagent correspondence for each nozzle from a third user input or a nozzle to reagent correspondence database.
16. The method according to claim 10, further comprising the step of sorting each set of coordinates in alternating printer scan lines so as to enable nozzle operation in offset opposing movements.
17. An apparatus for producing instructions to create a representation of a three-dimensional model for a three-dimensional printer having a plurality of nozzles, the model including sets of coordinates defining at least one part, each part having a respective part identification, said apparatus comprising: a coordinate set identifier, identifying the sets of coordinates of the model; a part identification identifier, identifying a part identification associated with each set of coordinates in said coordinate set identifier; a part identification to reagent correspondence identifier, identifying a part identification to reagent correspondence from a first user input or a part identification to reagent correspondence database; a coordinate set to reagent mapper, mapping the each set of coordinates to a corresponding reagent; a coordinate set parser, generating line segments from the sets of coordinates, which together form scan lines for the three-dimensional printer; and a proto-instructions compiler, compiling proto-instructions for the three- dimensional printer from at least the ordered line segments and the respective part identifications of the sets of coordinates in each of the ordered line segments.
18. The apparatus according to claim 17, further comprising a printer-specific instruction generator, translating the proto-instructions into instructions specific for the three- dimensional printer.
19. The apparatus according to claim 17, further comprising a list storing all identified part identifications.
20. The apparatus according to claim 17, further comprising a part identification to reagent editor for enabling the first user input.
21. The apparatus according to claim 17, further comprising a machine setup data editor for enabling the second user input.
22. The apparatus according to claim 17, further comprising a nozzle to reagent map editor for enabling the third user input.
23. The apparatus according to claim 17, further comprising means for adjusting the each set of coordinates to accommodate a location of each nozzle relative to the each set of coordinates.
24. A computer program product storing computer instructions for operating a three-dimensional printer to create a three-dimensional representation of a CAD model, the three-dimensional printer having a plurality of nozzles, the model including sets of coordinates defining at least one part, each part having a respective part identification, said computer program product comprising: a computer-readable medium; proto-instructions stored on said computer-readable medium, generic to at least one three-dimensional printer, for creating the three-dimensional representation; and at least one printer-specific instruction generator stored on said computer-readable medium and, in operation, translating the proto-instructions into instructions specific to the three- dimensional printer to be used to create the three-dimensional representation, wherein generation of said proto-instructions comprises the following steps: identifying each set of coordinates; identifying a part identification associated with the each set of coordinates; identifying part identification to reagent correspondence from a first user input or a part identification to reagent correspondence database; parsing the sets of coordinates into line segments, which together form scan lines for linearly driving the three-dimensional printer; compiling the proto-instructions for the three-dimensional printer from at least the ordered line segments and each respective part identification of the sets of coordinates in each of the ordered line segments.
25. A method of producing instructions to create a physical representation of a computer-aided design model for an output device having at least one nozzle, said method comprising the steps of: converting the model, which defines at least one object, into component sets of coordinates, each part having respective sets of coordinates, each set of coordinates having an associated object identification; parsing the component sets of coordinates into ordered line segments for driving the output device defining the at least one object; and compiling the instructions for the output device to create the physical representation from the ordered line segments and the associated part identification of the sets of coordinates as independently executable and output device independent compiled instructions.
26. A computer program product storing computer instructions for operating a three-dimensional printer to create a three-dimensional representation of a CAD model, the three-dimensional printer having a plurality of nozzles, the model including sets of coordinates defining at least-one part, each part having a respective part identification, said computer program product comprising: a computer-readable medium; instructions stored on said computer-readable medium and specific to at least of a three-dimensional printer and a manufacturer therefor, for creating the three-dimensional representation, wherein production of said instructions comprises the following steps: identifying each set of coordinates; identifying a part identification associated with the each set of coordinates; identifying part identification to reagent correspondence from a first user input or a part identification to reagent correspondence database; parsing the sets of coordinates into line segments, which together form scan lines for linearly driving the three-dimensional printer; generating the instructions for at least one of the three-dimensional printer and the manufacturer therefor from at least the ordered line segments and each respective part identification of the sets of coordinates in each of the ordered line segments.
PCT/US2000/000825 1999-01-12 2000-01-12 Method and apparatus for managing and/or utilizing data received from a cad model WO2000042574A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP00903271A EP1147491A1 (en) 1999-01-12 2000-01-12 Method and apparatus for managing and/or utilizing data received from a cad model
CA002358530A CA2358530A1 (en) 1999-01-12 2000-01-12 Method and apparatus for managing and/or utilizing data received from a cad model
AU25045/00A AU755858B2 (en) 1999-01-12 2000-01-12 Method and apparatus for managing and/or utilizing data received from a CAD model
JP2000594081A JP2003508828A (en) 1999-01-12 2000-01-12 Method and apparatus for managing and / or utilizing data received from a CAD model

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11558499P 1999-01-12 1999-01-12
US60/115,584 1999-01-12

Publications (1)

Publication Number Publication Date
WO2000042574A1 true WO2000042574A1 (en) 2000-07-20

Family

ID=22362273

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/000825 WO2000042574A1 (en) 1999-01-12 2000-01-12 Method and apparatus for managing and/or utilizing data received from a cad model

Country Status (5)

Country Link
EP (1) EP1147491A1 (en)
JP (1) JP2003508828A (en)
AU (1) AU755858B2 (en)
CA (1) CA2358530A1 (en)
WO (1) WO2000042574A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8970867B2 (en) 2012-03-06 2015-03-03 Mercury 3D, Llc Secure management of 3D print media

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6255233B2 (en) * 2013-11-29 2017-12-27 株式会社日本総合研究所 Imprint management system
KR101854845B1 (en) 2014-12-31 2018-05-04 주식회사 후본 3 dimentional printer output method for loading electrical components
JP7458693B2 (en) * 2015-06-25 2024-04-01 スリーエム イノベイティブ プロパティズ カンパニー Glassy bond abrasive article and method for manufacturing the same
JP5987954B2 (en) * 2015-06-30 2016-09-07 セイコーエプソン株式会社 Modeling system and modeling method
CN107214966A (en) * 2017-06-29 2017-09-29 安徽新芜精密装备制造产业技术研究院有限公司 A kind of control method of pair of color spray 3D printer

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0284674A1 (en) * 1984-07-02 1988-10-05 William E. Masters Manufacturing method and apparatus
US5204055A (en) * 1989-12-08 1993-04-20 Massachusetts Institute Of Technology Three-dimensional printing techniques

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5028950A (en) * 1990-02-20 1991-07-02 Lentec Corporation Dual stage 3D printer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0284674A1 (en) * 1984-07-02 1988-10-05 William E. Masters Manufacturing method and apparatus
US5204055A (en) * 1989-12-08 1993-04-20 Massachusetts Institute Of Technology Three-dimensional printing techniques

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8970867B2 (en) 2012-03-06 2015-03-03 Mercury 3D, Llc Secure management of 3D print media

Also Published As

Publication number Publication date
EP1147491A1 (en) 2001-10-24
CA2358530A1 (en) 2000-07-20
JP2003508828A (en) 2003-03-04
AU2504500A (en) 2000-08-01
AU755858B2 (en) 2003-01-02

Similar Documents

Publication Publication Date Title
Livesu et al. From 3D models to 3D prints: an overview of the processing pipeline
Qin et al. Status, comparison, and future of the representations of additive manufacturing data
US11718036B2 (en) Interactive slicing methods and systems for generating toolpaths for printing three-dimensional objects
US5659478A (en) Rapid product realization process
US5742288A (en) Method of generating or modifying solid model of an object according to cross-sectional shapes and a predetermined relationship and apparatus suitable for practicing the method
WO2018213334A1 (en) Systems and methods for determining tool paths in three-dimensional printing
CN105377533A (en) 3D printing method and computing device using arbitrary printers and arbitrary software applications
WO2017041214A1 (en) Data processing system and method
AU755858B2 (en) Method and apparatus for managing and/or utilizing data received from a CAD model
Kumar et al. Printing file formats for additive manufacturing technologies
US8477133B2 (en) Method and apparatus for generating three-dimensional finite element mesh
Altenhofen et al. Continuous property gradation for multi-material 3D-printed objects
JP2586889B2 (en) Interactive graphic input system
CN110293685A (en) A kind of daily necessities 3D printing speed data processing method
JP6840944B2 (en) 3D data generator, modeling device, manufacturing method and program of modeled object
Yaman et al. A command generation approach for desktop fused filament fabrication 3D printers
JPS62212880A (en) Method for designing paper ware
Shabani et al. Integrated reverse engineering and additive technology systems
US20230391013A1 (en) Determining whether using build data will result in generating an object with a generation defect
JPH0821089B2 (en) Solid model shape definition method in CAD / CAM system
US20230030783A1 (en) Watertight Spline Modeling for Additive Manufacturing
Kai et al. Data structure in rapid prototyping and manufacturing
PROTOTYPING et al. DATA STRUCTURE IN
Stark et al. Major Technology 2: Computer-Aided Industrial Design—CAID
Chua et al. Generation of Three-dimensional Shapes in CAD/CAM Systems Using Art-to-part Technique

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 25045/00

Country of ref document: AU

ENP Entry into the national phase

Ref document number: 2358530

Country of ref document: CA

Ref country code: CA

Ref document number: 2358530

Kind code of ref document: A

Format of ref document f/p: F

ENP Entry into the national phase

Ref country code: JP

Ref document number: 2000 594081

Kind code of ref document: A

Format of ref document f/p: F

WWE Wipo information: entry into national phase

Ref document number: 2000903271

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2000903271

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWG Wipo information: grant in national office

Ref document number: 25045/00

Country of ref document: AU

WWW Wipo information: withdrawn in national office

Ref document number: 2000903271

Country of ref document: EP