Methods of additive manufacturing may use a radiant emitter to emit a beam that processes an underlying material. Optical elements may be used to affect the size of the beam or resulting beam spot on the underlying material.
Using a beam with a larger beam spot size to process underlying material may offer several advantages. For example, a larger beam spot may reduce the total number of vectors that the beam spot needs to traverse in order to process a particular area, which, in-turn, may reduce the total processing time of an object. This strategy may be particularly useful when processing an infill area i.e. an area within the outer contours of an object being manufactured.
A disadvantage to using a larger beam spot size is the inability to process features that are smaller than the beam spot size. Thus, there is a tradeoff between beam spot size and processing speed and resolution, which may ultimately affect manufacturing speed and quality of the object as a whole.
Accordingly, there is a need for apparatuses and methods for utilizing various beam spot sizes to increase the speed of optical additive manufacturing while maintaining the ability to form small features.
This application describes methods and apparatuses for using multiple beam spot sizes in order to obtain improved performance in optical additive manufacturing techniques.
In one embodiment, an optical additive manufacturing apparatus for manufacturing an object, comprises: a scanner configured to direct a beam emitted by an emitter towards an object layer; a control module in data communication with the scanner, wherein the control module is configured to: calculate a plurality of hatch vectors; select two or more of the plurality hatch vectors to be compared; compare the two or more selected hatch vectors to a first combination parameter; and calculate a first new hatch vector based on the two or more selected hatch vectors.
In some embodiments of the optical additive manufacturing apparatus, the emitter is a laser emitter and the beam is a laser beam.
In some embodiments of the optical additive manufacturing apparatus, the first combination parameter relates to a proximity of a first endpoint of a first selected hatch vector and a first endpoint of a second selected hatch vector.
In some embodiments of the optical additive manufacturing apparatus, the first combination parameter relates to a length of a first selected hatch vector.
In some embodiments of the optical additive manufacturing apparatus, the control module is further configured to: compare the two or more elected hatch vectors to a second combination parameter.
In some embodiments of the optical additive manufacturing apparatus, the second combination parameter is different than the first combination parameter.
In some embodiments of the optical additive manufacturing apparatus, the control module is further configured to: calculate the first new hatch vector based on a first beam size.
In some embodiments of the optical additive manufacturing apparatus, the control module is further configured to: calculate a second new hatch vector based on a second beam size.
In some embodiments of the optical additive manufacturing apparatus, the control module is further configured to: calculate an adjusted object layer offset based on the calculated first new hatch vector.
In some embodiments of the optical additive manufacturing apparatus, the scanner further comprises: a sensor.
In another embodiment, a method of determining a plurality of hatch vectors, comprises: calculating a plurality of hatch vectors; selecting two or more of the plurality hatch vectors to be compared; comparing the two or more selected hatch vectors to a first combination parameter; calculating a first new hatch vector based on the two or more selected hatch vectors; and directing, using a scanner, a beam emitted by an emitter along the new hatch vector.
In some embodiments of the method, the emitter is a laser emitter and the beam is a laser beam.
In some embodiments of the method, the first combination parameter relates to a proximity of a first endpoint of a first selected hatch vector and a first endpoint of a second selected hatch vector.
In some embodiments of the method, the first combination parameter relates to a length of a first selected hatch vector.
In some embodiments of the method, the method further comprises: comparing the two or more elected hatch vectors to a second combination parameter.
In some embodiments of the method, the second combination parameter is different than the first combination parameter.
In some embodiments of the method, the control module is further configured to: calculate the first new hatch vector based on a first beam size.
In some embodiments of the method, the method further comprises: calculating a second new hatch vector based on a second beam size.
In some embodiments of the method, the method further comprises: calculating an adjusted object layer offset based on the calculated first new hatch vector.
In some embodiments of the method, the scanner comprises a sensor.
The present application discloses apparatuses and methods for using multiple beam spot sizes for obtaining improved performance in optical additive manufacturing techniques.
Methods of additive manufacturing may include the use of radiant emitters, such as lasers or other high-intensity light sources, for fusing, sintering, melting, curing or otherwise processing a base material in order to create three-dimensional objects.
A radiant emitter's beam, such as a laser beam, may be controlled by a scanner, which directs the beam along a particular path in order to process an underlying material and form an object. The scanner may be used to form, for example, an “outline” or “boundary” or “contour” of an object by guiding a beam along a computer-controlled path based on, for example, one or more lines (or vectors) in a Computer Aided Design (CAD) of the object. Similarly, interior portions of an object, for example, “infill,” may be created by moving a beam along a series of parallel (i.e. “hatched”) or intersecting lines (i.e. “cross-hatched”) within an outline of the object. Such lines may be referred to as “hatch vectors” or just “vectors” and may be included in data comprising a CAD design. The beam is then scanned back and forth along the hatch vectors so that underlying material is cured in a controlled manner. The hatch vectors may be offset from an object boundary by an “offset boundary,” which may dictate where a hatch vector should stop given a proximity to an object boundary and a selected beam spot width. Additionally, the scanner may manipulate a beam emitted by a radiant emitter using optical elements, such as mirrors, focusing lenses, and other optical elements, such that the focal point of the beam, or “beam spot”, on an object being formed is relatively larger or relatively smaller. Finally, the scanner may further manipulate the power or energy level of the beam using electrical control elements.
The total time needed to process a layer of an object during additive manufacturing may be impacted by the number of vectors the scanner needs to follow to form that particular layer. For example, when many hatch vectors are needed to process a single layer of an object, the total processing time is impacted not only by the time needed to actively process the base material using the beam (e.g. curing), but also by the time needed to move the scanner between various vector endpoints and vector starting points. These so-call “jumps” (i.e. movements of the scanner not intended to process the underlying material) may amount to a significant amount of time over the course of manufacturing a particular layer, and even more so when considering the time to manufacture an entire object.
Various optical additive manufacturing technologies that use radiant emitters are known in the art, such as: Stereolithography (SLA), Selective Laser Sintering (SLS) and Selective Laser Melting (SLM). In cases where a laser emitter is used in SLA, SLS, or SLM, the process may be generally referred to as Laser Additive Manufacturing (LAM).
Stereolithography (SLA) is an optical additive manufacturing technique used for “printing” three-dimensional (3D) objects one layer at a time. An SLA apparatus may employ, for example, an Ultraviolet (UV) Laser to cure a photo-reactive substance with emitted radiation. In some embodiments, the SLA apparatus directs the UV laser across a surface of a photo-reactive substance, such as, for example, an ultraviolet-curable photopolymer (“resin”), in order to build an object one layer at a time. For each layer, the laser beam traces a cross-section of the object on the surface of the liquid resin, which cures and solidifies the cross-section and joins it to the layer below. After a layer has been completed, the SLA apparatus lowers a manufacturing platform by a distance equal to the thickness of a single layer and then deposits a new surface of uncured resin (or like photo-reactive material) on the previous layer. On this surface, a new pattern is traced thereby forming a new layer. By repeating this process one layer at a time, a complete 3D part may be formed.
Stereolithography may require the use of structures that attach and support the object being formed to the manufacturing platform in order to prevent deflection due to gravity and other manufacturing steps (such as depositing new surfaces). Support structures may be generated during the creation of a Computer Aided Design (CAD) model of the object to be manufactured. Support structures are typically removed from the finished product.
Selective laser sintering (SLS) is another optical additive manufacturing technique used for 3D printing objects. SLS apparatuses often use a high-powered laser (e.g. a carbon dioxide laser) to “sinter” (i.e. fuse) small particles of plastic, metal, ceramic, or glass powders into a 3D object. Similar to SLA, the SLS apparatus may use a laser to scan cross-sections on the surface of a powder bed in accordance with a CAD design. Also similar to SLA, the SLS apparatus may lower a manufacturing platform by one layer thickness after a layer has been completed and add a new layer of material in order that a new layer can be formed. In some embodiments, an SLS apparatus may preheat the powder in order to make it easier for the laser to raise the temperature during the sintering process.
Unlike SLA, SLS does not necessarily require support structures because the object being formed may be surrounded by un-sintered powder at all times, which provides support for the object. Therefore, objects manufactured by this method may not require the step of removing support structures.
Selective Laser Melting (SLM) is yet another optical additive manufacturing technique used for 3D printing objects Like SLS, an SLM apparatus typically uses a high-powered laser to selectively melt thin layers of metal powder to form solid metal objects. While similar, SLM differs from SLS because it typically uses materials with much higher melting points. When constructing objects using SLM, thin layers of metal powder may be distributed using various coating mechanisms. Like SLA and SLS, a manufacturing surface moves up and down to allow layers to be formed individually.
Optical additive manufacturing apparatus 100 includes a controller 110, which is in data communication with an emitter 120, a scanner 130, and a platform 140. Controller 110 may be, for example, a computer system with software for operating optical additive manufacturing apparatus 100. In other embodiments, controller 110 may be embodied as a general purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any suitable combination thereof designed to perform the functions described herein as are known by those of skill in the art.
Notably, the lines of data communication depicted between controller 110 and emitter 120, scanner 130, and platform 140 in
Controller 110 may control emitter 120. For example, controller 110 may send data signals to emitter 120 in order to power on and off the emitter. Additionally, controller 110 may control the output power of emitter 120. In some embodiments, controller 110 may control multiple emitters 120 (not shown) in the same optical additive manufacturing apparatus 100. In some embodiments, emitter 120 may additionally send data back to controller 110. For example, emitter 120 may send operational parameters such as power output, power use, temperature, and other operational parameters as are known in the art. The operational parameters of emitter 120 may be used by controller 110 to further control or optimize the processing of object 150.
Controller 110 may also control scanner 130. For example, controller 110 may cause scanner 130 to select a certain beam spot size. In some embodiments the controller may cause a beam spot size to be selected via beam selection module 132. Notably, while depicted in
Controller 110 may also cause the selection, manipulation, articulation, engagement or other use of optical elements 134. For example, controller 110 may cause a focusing lens element to move in order to affect the size of a resulting beam 136 or a size of a resulting beam spot 138. Further, controller 110 may cause a mirror or similar optical element to redirect resulting beam 136 in different directions and onto different locations of object 150. As yet another example, controller 110 may cause a shutter or similar optical element to mask resulting beam 136 even while emitter 120 is active.
In some embodiments, controller 110 may receive data back from scanner 130. For example, scanner 130 may send operational parameters such as power output, power use, temperature, beam size selection, beam power, beam direction, beam spot position, position of optical elements, condition of optical elements, and other operational parameters as are known in the art. The operational parameters of emitter 120 may be used by controller 110 to further control or optimize the processing of object 150. In some embodiments, controller 110 may be a part of scanner 130.
Controller 110 may also control platform 140. For example, controller 110 may cause platform 140 to move in one or more dimensions (e.g. up and down or side to side). Controller 110 may receive operational data from platform 140, such as position, temperature, weight, proximity, and others as are known to persons of skill in the art. Controller 110 may cause platform 140 to move in increments of one layer of object 150 at a time so that scanner 130 can process a layer of material to add to object 150. Layers of object 150 may be defined in three-dimensional design drawings (e.g. 3D CAD) or in one or more two dimensional cross-sectional drawings (e.g. 2D CAD).
In some embodiments, controller 110 may store or otherwise have access to object design data, such as 3D CAD drawings of an object to be manufactured by optical additive manufacturing apparatus 100. For example, controller 110 may be a part of a computer system that also includes object design software and hardware, such as CAD software. In this way, controller 110 may have access to object design data in order to control emitter 120, scanner 130, and platform 140 and to manufacture object 150. In other embodiments, controller 110 may be connected by a communication path to a repository, database, or the like of design data, such as database 160 in
Emitter 120 may be, for example, a laser emitter, such as a diode laser, pulsed laser, or fiber layer, or other types of laser as are known by those of skill in the art. In some embodiments, the emitter 120 may be an ultraviolet laser, carbon dioxide laser, or ytterbium laser. Emitter 120 may be other types of irradiating emitters as known by those of skill in the art.
Emitter 120 emits a beam, for example laser beam 122, which is then processed by scanner 130. Notably, while not shown in
In some embodiments, emitter 120 may be a part of scanner 130.
Scanner 130 may include a beam selection module 132 and optical elements 134. Beam selection module 132 may be responsive to data commands from controller 110 to select a beam characteristic (e.g. spot width) for processing object 150. As will be discussed further below, the beam selection module may use rules, heuristics or algorithms implemented in software and hardware in order to select optimal beam characteristics for processing object 150. In some embodiments, beam selection module 132 may determine beam characteristics using data from controller 110. In other embodiments, beam selection module may additionally use data from scanner 130 when determining beam characteristics.
Scanner 130 also includes optical elements 134. For example, optical elements may include lenses, mirrors, filters, splitters, prisms, diffusers, windows, displacers, and other elements as are known in the art. The optical elements 134 may be fixed or moveable based on data received by scanner 130 or controller 110.
Scanner 130 may also include sensors (not shown) that sense various operating parameters during operation of the scanner 130. Generally speaking, the sensors may provide data feedback to the scanner 130 and or controller 110 in order to improve calibration and manufacturing performance of optical additive manufacturing apparatus 100.
For example, scanner 130 may include position sensors, heat sensors, proximity sensors, and the like. Additionally, scanner 130 may include one or more image sensors. The image sensors could be used to provide visual feedback to an operator of optical additive manufacturing apparatus 100. The image sensors could also be used, for example, to analyze the size, focus and position of the beam spot incident on the object being manufactured for calibration and precise tracking. Further, the image sensor may be sensitive to heat (e.g. a thermal image sensor) and be used to determine the state of the underlying material (e.g. resin) as it is being processed. For example, a thermal image sensor may measure the local heating around the beam spot and/or the level of curing of the material being processed.
Platform 140 acts as a moveable base for the manufacture of object 150. As described above, platform 140 may move in one or more directions and be controlled by a controller, such as controller 110. For example, platform 140 may be controlled by controller 110 and moved one layer or cross-section of object 150 at a time during the manufacture of object 150.
Platform 140 may include sensors that determine operational data and transmit that data to controller 110 or to other parts of optical additive manufacturing apparatus 100.
Platform 140 may be enclosed by a container or vessel (not shown) containing manufacturing materials (e.g. photosensitive resin) that is processed by an incident beam spot directed by scanner 130. For example, scanner 130 may direct a beam over a layer of photosensitive resin, which causes the resin to cure and form a permanent layer of object 150.
Platform 140 may be made of any suitable material of adequate strength and resilience to serve as a manufacturing base for objects like object 150.
In addition to a container or vessel around platform 140, optical additive manufacturing apparatus 100 may also include a manufacturing material dispensing element. For example, an element may dispense a new layer of manufacturing material after each respective layer of object 150 is completed by the action of scanner 130.
Object 150 is formed by optical additive manufacturing apparatus 100 using various methods, such as SLA, SLS, SLM and others as are known by those of skill in the art. Object 150 may be formed of any material suitable for optical additive manufacturing. Suitable materials include, for example: polypropylene, thermoplastic polyurethane, polyurethane, acrylonitrile butadiene styrene (ABS), polycarbonate (PC), PC-ABS, polyamide, polyamide with additives such as glass or metal particles, resorbable materials such as polymer-ceramic composites, and other similar suitable materials. In some embodiments, commercially available materials may be utilized. These materials may include: DSM Somos® series of materials 7100, 8100, 9100, 9420, 10100, 11100, 12110, 14120 and 15100 from DSM Somos; Accura Plastic, DuraForm, CastForm, Laserform and VisiJet line of materials from 3-Systems; Aluminium, CobaltChrome and Stainless Steel materials; Maranging Steel; Nickel Alloy; Titanium; the PA line of materials, PrimeCast and PrimePart materials and Alumide and CarbonMide from EOS GmbH.
As discussed briefly above, there are advantages and disadvantages associated with selected beam characteristics, such as beam spot width, when using an apparatus such as optical additive manufacturing apparatus 100 to create an object.
Lines 202a, 202b, 202c, and 202d in
In the example depicted in
Feature 208 of
Unprocessed area 212 of
As with before,
In other embodiments, the hatch vectors may be calculated in step 302 using different schemes. For example, in some embodiments the hatch vectors are calculated such that they are all parallel to each other while in other embodiments the hatch vectors may overlap each other at selected angles. For example, cross-hatched vectors may intersect at orthogonal angles or other angles as necessary. Moreover, hatch vectors at different angles may be processed using a scanner with the ability to direct the beam in multiple dimensions (e.g. x and y) or with a platform that can rotate with respect to the scanner, or both.
Once the hatch vectors have been calculated in step 302, the method 300 progresses to step 304, where certain hatch vectors are selected to be combined. The selection of hatch vectors to be combined may be done in many ways. In one embodiment, all hatch vectors of a particular beam spot size are pairwise compared to determine whether each particular pair of hatch vectors is a candidate to be combined based on certain, predetermined combination parameters.
For example, a first combination parameter may be the distance between one or more endpoints of each hatch vector being pairwise compared. In certain embodiments, it is preferable to combine hatch vectors where their endpoints are relatively close in order that the resulting combined hatch vector may be roughly the same length and distance from the object layer boundaries near the endpoints of the hatch vectors. This is because where the endpoints of two hatch vectors are not close, a combined hatch vector may result in unprocessed infill area or the need to create additional hatch vectors to process the uncombined spaces—both of which may negatively impact processing speed or efficiency.
In some embodiments, multiple combination parameters may be considered during step 304. For example, in addition to comparing the distance between one or more endpoints of each hatch vector being compared, the length of each hatch vector or the resulting length of a combined hatch vector may be considered. If, for example, the length of the hatch vectors being compared is relatively longer and the endpoints are relatively close together, then combining the hatch vectors may increase the efficiency of processing an infill area with a larger beam spot size. If, however, the length of the hatch vectors are relatively short, then the resulting larger hatch vector may offer little if any process efficiency.
Other combination parameters may be used. Examples of combination parameters include aspects related to the absolute or relative position of a hatch vector, the size of a hatch vector (e.g. length), the angle of a hatch vector, the total number of hatch vectors, the resulting size of a combined hatch vector, and others as are known in the art.
In some embodiments, multiple combination parameters may be considered, while in other embodiments only a single combination parameter may be considered. In yet other embodiments, multiple combination parameters may be considered and given different weight in order to reach a determination as to whether the hatch vectors being considered should be combined. For example, a variety of combination vectors with different weights could result in an overall combination score that is then compared to a combination score threshold to determine whether to combine the hatch vectors being compared.
In some embodiments, only parallel hatch vectors are compared during any particular instance of step 304. However, as method 300 is depicted as a loop, it is possible that groups of parallel hatch vectors that are parallel within the group, but not parallel to other groups (such as cross-hatch vectors), may be compared independently. That is, the step of selecting hatch vectors to combine can be done in discrete steps considering discrete groups of vectors (such as parallel vectors), or it may be done all at once.
Method 300 then moves to step 306, where new, combined hatch vectors are calculated. In some embodiments, the beam spot size for the new, combined hatch vectors will be increased (e.g. doubled) and the combined hatch vector will be calculated down the midpoint between the two hatch vectors selected to be combined in step 304. For example, were hatch vectors 202a and 202c in
After the new hatch vectors based on the hatch vectors selected to be combined have been calculated in step 306, the method 300 moves to step 308, where an offset boundary (or boundaries) is adjusted. As described above, if a new hatch vector is created with a larger beam spot size, then the offset from the object boundary on either side of the hatch vector needs to be adjusted so that the larger beam spot size does not impinge on the object boundary. In some embodiments, the offset boundary on each side of the combined hatch vector is set to the half the width or the radius of the combined hatch vector.
After an offset boundary is adjusted in step 308, the method 300 moves to step 310, where it is determined whether the optimization is complete i.e. whether the method should continue. In some embodiments, the determination of whether the method 300 should continue is based on a beam spot size used for calculating the combined hatch vectors reaching a maximum beam spot size. Such a parameter may be set arbitrarily, or may be an inherent limitation of the system design, the emitter, the optical elements, or the like as is known by those of skill in the art. In other embodiments, the determination may be based on reaching a certain predefined number of iterations, or a number of combined vectors, or a number of resulting vectors, or a resulting vector size, or the like. If it is determined that the method should continue, then the method returns to step 302. If, however, it is determined that the method should not continue, then the method completes at step 312.
Notably, method 300 is only one embodiment of a method for determining the beam spot size of hatch vectors for a particular infill area. The depicted and described steps may not all be necessary, and other steps may be added as determined by those of skill in the art. Additionally, the method 300 described in
An example of a programmable algorithm for implementing a process similar to that depicted in
The above algorithm is an example of an algorithm that may be used to optimize existing hatch vectors for a particular object layer. For example, the above algorithm could be programmed into computer-executable code and executed by a processing device. In the above algorithm, “BeamSize”, “minBeamSize”, and “maxBeamSize” are all programmable variables.
The algorithm begins by setting “BeamSize” as a minimum hatch beam size, “minBeamSize.” Notably, here it is assumed that the hatch beam size is the same as the beam spot size. The minimum hatch beam size may be, for example, between 0.05 mm and 0.6 mm. In other embodiments, the initial hatch beam size may be different sizes based on the emitter type, material to be processed, scanner, optical elements, and other parameters as are known by those of skill in the art. In some embodiments, the initial hatch beam size will be determined to be a size that is equally divisible into a particular dimension of a particular infill area (e.g. the height, width, or other arbitrary direction of the area). Similarly, the initial hatch beam size may be determined to have a radius that is equally divisible into a particular dimension of a particular infill area.
The algorithm then enters a “while loop” that runs while the variable “BeamSize” is less than or equal to half the “maxBeamSize.” The first step in the while loop is to increment the “BeamSize” variable by a factor of two. Notably, in other embodiments, the value that “BeamSize” is incremented may be different.
The algorithm then enters a “for loop” within the while loop. The for loop iterates through all of the hatch vectors with a particular BeamSize and makes decisions on whether or not to combine hatch vectors based on predetermined conditions (e.g. logical tests or functions).
In this embodiment, the for loop first compares a first pair of hatch vector endpoints using the function “Vector(i)Endpoint” to determine whether the distance between them is less than a threshold, “EndPointThreshold.” Notably, in this example, only one endpoint is considered in one dimension in the interest of brevity. However, in other embodiments, multiple endpoints may be evaluated in multiple dimensions.
The for loop next compares each hatch vectors length to a threshold, “VectorLengthTheshold” using the function “Vector(i)Length.”
If, based on the “EndPointThreshold” and “VectorLengthThreshold” determinations, all of the logical tests returns a “true” value, then the function “RecalculateVector” recalculates a new, combined hatch vector “NewVector” based on the two hatch vectors presently being compared (i.e. Vector(i) and Vector(i+1)). Additionally, because the new, combined hatch vector will have a new beam size, the offset value for the object layer boundary needs to be changed for that vector. Recall that in some embodiments, the offset is approximately equal to half the beam spot width (which is the same as the beam radius for a round beam). Thus, the function “RecalculateOffsetQ” calculates a new offset for “NewVector.”
If, on the other hand, one of the logical comparisons returns a “false,” then the hatch vector pointer ‘i’ is incremented to the next hatch vector and the for loop repeats. And if there are no more hatch vectors with BeamSize=(BeamSize/2), then the for loop exits to the while loop, where the BeamSize is incremented by a factor of two again. The algorithm thus repeats until it finishes with all of the hatch vectors.
As can be seen with the algorithm above, combined hatch vectors may be further reconsidered and combined as the algorithm iterates through a variety of hatch beam sizes. This iterative approach may result in two or more hatch vector sizes for a particular infill area. For example, an instance of the algorithm might consider “BeamSizes” including 0.05, 0.1, 0.2, 0.4, and 0.8 mm before terminating.
Notably, the algorithm, above, is only one embodiment of an algorithm for determining the beam spot size of hatch vectors for a particular infill area. The described steps may not all be necessary, and other steps may be added as determined by those of skill in the art. The algorithm, above, may be implemented, for example, by a hardware and/or software module such as beam selection module 132 in
While
For example,
Thus,
In some embodiments, the system 600 may include one or more computers 602a-602d. The computers 602a-602d may take various forms such as, for example, any workstation, server, or other computing device capable of processing information. The computers 602a-602d may be connected by a computer network 605. The computer network 605 may be, for example, the Internet, a local area network, a wide area network, or some other type of network capable of digital communications between electronic devices. Additionally, the computers 602a-602d may communicate over the computer network 605 via any suitable communications technology or protocol. For example, the computers 602a-602d may share data by transmitting and receiving information such as software, digital representations of 3D objections, commands and/or instructions to operate an additive manufacturing device, and the like.
The system 600 further may include one or more additive manufacturing devices 606a and 606b. These additive manufacturing devices may comprise 3D printers or some other manufacturing device as known in the art. In the example shown in
Although a specific computer and network configuration is described in
The processor 710 may be a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic, discrete hardware components, or any suitable combination thereof designed to perform the functions described herein. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The processor 710 may be coupled, via one or more data buses, to read information from or write information to memory 720. The processor may additionally, or in the alternative, contain memory, such as processor registers. The memory 720 may include processor cache, including a multi-level hierarchical cache in which different levels have different capacities and access speeds. The memory 720 may further include random access memory (RAM), other volatile storage devices, or non-volatile storage devices. The storage can include hard drives, optical discs, such as compact discs (CDs) or digital video discs (DVDs), flash memory, floppy discs, magnetic tape, Zip drives, USB drives, and others as are known in the art.
The processor 710 may also be coupled to an input device 730 and an output device 740 for, respectively, receiving input from and providing output to a user of the computer 602a. Suitable input devices include, but are not limited to, a keyboard, a rollerball, buttons, keys, switches, a pointing device, a mouse, a joystick, a remote control, an infrared detector, a voice recognition system, a bar code reader, a scanner, a video camera (possibly coupled with video processing software to, e.g., detect hand gestures or facial gestures), a motion detector, a microphone (possibly coupled to audio processing software to, e.g., detect voice commands), or other device capable of transmitting information from a user to a computer. The input device may also take the form of a touch-screen associated with the display, in which case a user responds to prompts on the display by touching the screen. The user may enter textual information through the input device such as the keyboard or the touch-screen. Suitable output devices include, but are not limited to, visual output devices, including displays and printers, audio output devices, including speakers, headphones, earphones, and alarms, additive manufacturing devices, and haptic output devices.
The processor 710 further may be coupled to a network interface card 760. The network interface card 760 prepares data generated by the processor 710 for transmission via a network according to one or more data transmission protocols. The network interface card 760 may also be configured to decode data received via the network. In some embodiments, the network interface card 760 may include a transmitter, receiver, or both. Depending on the specific embodiment, the transmitter and receiver can be a single integrated component, or they may be two separate components. The network interface card 760, may be embodied as a general purpose processor, a DSP, an ASIC, a FPGA, or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any suitable combination thereof designed to perform the functions described herein.
The process begins at step 805, where a digital representation of the device to be manufactured is designed using a computer, such as the computer 602a in
Various specific additive manufacturing techniques may be used to produce objects using a method like that shown in
The invention disclosed herein may be implemented as a method, apparatus, or article of manufacture using standard programming or engineering techniques to produce software, firmware, hardware, or any combination thereof. The term “article of manufacture” as used herein refers to code or logic implemented in hardware or non-transitory computer readable media such as optical storage devices, and volatile or non-volatile memory devices or transitory computer readable media such as signals, carrier waves, etc. Such hardware may include, but is not limited to, FPGAs, ASICs, complex programmable logic devices (CPLDs), programmable logic arrays (PLAs), microprocessors, or other similar processing devices.
It will be appreciated by persons skilled in the art that numerous variations and/or modifications may be made to the invention without departing from the spirit or the scope of the invention as broadly described. The above described embodiments are, therefore, to be considered in all respects as illustrative and not restrictive.