Powder recovery
By simulating voxel thermal stress and using binary search technology, recyclable powders are identified, degraded voxels are eliminated, and fresh powders are mixed to achieve the target quality. This solves the problem of powder degradation in additive manufacturing and enables efficient reuse and cost reduction.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-03-26
- Publication Date
- 2026-04-07
AI Technical Summary
In the additive manufacturing process, powder materials are prone to degradation when exposed to high temperatures, leading to problems such as surface deformation, poor mechanical properties, and porosity. Existing remedial technologies have limited effectiveness and increase printing costs.
By simulating and estimating the voxel thermal stress of the construct, the amount of recyclable powder is determined. A binary search and closure method is used to exclude highly degraded voxels, and fresh powder is mixed to achieve the target quality level, reducing the impact of powder degradation.
It effectively reduces powder degradation, improves print quality, lowers printing costs, and achieves efficient powder reuse.
Smart Images

Figure CN116940458B_ABST
Abstract
Description
Background Technology
[0001] Additive manufacturing is a technique that forms an object by adding material until a three-dimensional (3D) object is formed. Material can be added by forming several layers of material, one layer on top of the previous layer. Examples of additive manufacturing include: melting filaments to form each layer of a 3D object (e.g., fused filament manufacturing); curing resins to form each layer of a 3D object (e.g., stereolithography); sintering, melting, or bonding powders to form each layer of a 3D object (e.g., selective laser sintering or melting, multi-jet melting, metal jet melting, etc.); and bonding sheets of material to form a 3D object (e.g., laminated object manufacturing, etc.). Attached Figure Description
[0002] Figure 1 This is a flowchart illustrating an example of a method for determining powder recovery;
[0003] Figure 2 This is a block diagram illustrating an example of an engine used for powder recycling;
[0004] Figure 3 This is a block diagram of an example device that can be used for powder recovery;
[0005] Figure 4 This is a block diagram illustrating an example of a computer-readable medium used for powder recycling;
[0006] Figure 5 This is a diagram illustrating an example of constructing a volume and an isolation mesh; and
[0007] Figure 6 This is a block diagram illustrating an example of an engine used to determine the degree of powder degradation during 3D printing. Detailed Implementation
[0008] Additive manufacturing can be used to create three-dimensional (3D) objects. 3D printing is an example of additive manufacturing. In many types of 3D printing, powder layers are fed into a build volume. After each layer is delivered, heat is applied to portions of that layer to cause the powder to coalesce (e.g., sinter) and / or remove solvent from the binder. For example, molten reagents or binders can be applied to portions where coalesce or bond, and / or refining agents can be applied to portions where coalesce. An energy source can deliver energy that is absorbed by the molten reagent to cause the powder to coalesce. Additional layers are delivered and selectively heated to build a 3D object from the coalesced powder. After all layers have been delivered and heated, the build volume is allowed to cool for a period of time. The 3D object is then removed from the powder bed. Residual powder can be reused or discarded. Reusing powder reduces waste and lowers the cost per object printed.
[0009] Unfortunately, these powders can degrade and oxidize when exposed to high temperatures. For example, polymer powders such as polyamide 12 (PA 12) can degrade during 3D printing due to exposure to high temperatures. In some cases, the powder may be exposed to temperatures above 160°C for 30 to 40 hours during the printing and cooling process, which is sufficient to cause powder degradation. Repeated printing can cause powder degradation to a degree that affects the 3D printing process. For example, degraded powder can cause surface deformation such as orange peel effect, poor mechanical properties, and outgassing that can create pores in the part.
[0010] Various remedial techniques can be used to limit degradation. For example, the powder may contain antioxidant packets, but degradation can still occur. Using a nitrogen atmosphere during 3D printing can reduce oxidation. However, oxygen can dissolve in the powder or penetrate it. Consequently, the effectiveness of remedial techniques may be limited. Furthermore, remedial techniques may increase printing costs.
[0011] Degradation can also be remedied by mixing fresh powder with recycled powder. As used herein, the term "fresh powder" refers to powder that has not yet been used for 3D printing, while the term "recycled powder" refers to powder that has already undergone a 3D printing process. Quality metrics can be used to determine the amount of powder degradation. For example, quality metrics could be relative solution viscosity, molecular weight, etc., which can be correlated with the amount of degradation. For PA 12, the quality metric could be colorimetry. The amount of degradation in PA 12 is highly correlated with the color of the powder. For example, the amount of degradation is correlated with the color of the Illumination Committee L. * a * b * (CIELAB) color space b * The composition is highly relevant. In some examples, degradation and / or powder quality can be described using b. * To measure and / or represent. For example, quality measures can be associated with powder color (e.g., yellowness index (YI), American Society for Testing and Materials (ASTM) E313[3]).
[0012] Fresh powder can be added to recycled powder to maintain quality metrics above a threshold. For example, a user might use b * Powder with a particle size less than 4 is targeted. Unfortunately, it can be difficult to discern the degree of powder degradation during a particular printing process. The powder may undergo temperature profile changes over 30 to 40 hours. Degradation is affected by the ability of the gas to diffuse into the surrounding environment (which in turn depends on the part arrangement) and by the amount of reagents (e.g., refiners, colorants, etc.) delivered to the powder.
[0013] Powder degradation estimation (e.g., prediction and / or simulation) can be performed to determine the powder refresh rate, which can reduce total cost of ownership and control the quality of manufactured objects. For example, objects made from powder may experience quality degradation if they are subjected to excessive thermal stress.
[0014] A voxel is a representation of a location in 3D space. For example, a voxel can represent a volume or component of 3D space. For instance, a voxel can represent a volume that is a subset of 3D space. In some examples, voxels can be arranged on a 3D mesh. For example, the shape of a voxel can be rectangular or cubic. Examples of voxel sizes can include 25.4 mm / 150 ≈ 170 micrometers (150 dots per inch (dpi)), 490 micrometers (50 dpi), 0.5 mm, 1 mm, 2 mm, 4 mm, 5 mm, etc. A set of voxels can be used to represent a construction volume.
[0015] A build volume is a volume in which one or more objects can be made. For example, a build volume can be a representation of a physical volume and / or an actual physical volume in which one or more objects can be made. "Building" can refer to an instance of 3D fabrication. A layer is a portion of a build volume. For example, a layer can be a cross-section of a build volume (e.g., a two-dimensional (2D) cross-section or a 3D portion). In some examples, a layer can refer to a horizontal portion of a build volume (e.g., a plane). In some examples, an "object" can refer to a layer and / or a volume within a build volume that is indicated for forming an object.
[0016] Some examples of the techniques described herein can estimate (e.g., predict and / or simulate) the thermal stress that a construct might cause to the powder contained in each voxel of that construct. Some examples of these techniques can determine the quantity of recycled powder (e.g., the mass of recyclable powder in each voxel). Some examples of these techniques can calculate which voxels can be excluded from powder recycling to enhance the quality of the recycled powder. Recycled powder is powder that can be reused and / or reused in subsequent manufacturing. In some examples, the quality of polymer powder blends (e.g., mixtures) at different degradation levels may follow the squared mean of the component degradation levels. Accordingly, highly degraded voxels may have a disproportionate impact on the quality of the powder blend. For example, by removing 2 kg of the most degraded powder from the construct, approximately 5 kg of fresh powder that could otherwise have been used to offset the effects of highly degraded voxels and maintain the target powder quality level can be saved.
[0017] While plastics (e.g., polymers) can be used as a means of illustrating some of the methods described herein, some of the techniques described herein can be used in a variety of examples of additive manufacturing. For example, some examples can be used with plastics, polymers, semi-crystalline materials, metals, etc. Some additive manufacturing techniques can be powder-based and driven by powder melting. Some examples of the methods described herein can be applied to region-based powder bed melting additive manufacturing such as stereolithography (SLA), multi-jet melting (MJF), metal jet melting, selective laser melting (SLM), selective laser sintering (SLS), and liquid resin-based printing. Some examples of the methods described herein can be applied to additive manufacturing in which reagents carried by droplets are used for voxel-level thermal modulation.
[0018] In some examples, "powder" can indicate or correspond to particles. In some examples, an object can indicate or correspond to the location (e.g., area, space, etc.) where particles are to be sintered, melted, or solidified. For example, an object can be formed from sintered or melted powder.
[0019] In all the accompanying drawings, similar reference numerals may denote similar or identical elements. When an element is mentioned without reference numerals, this may refer to the element generally, without limitation to any particular drawing or figure. In some examples, the drawings are not drawn to scale, and / or the dimensions of some parts may be enlarged to illustrate the examples shown more clearly. Furthermore, the drawings provide examples consistent with the description. However, the description is not limited to the examples provided in the drawings.
[0020] Figure 1 This is a flowchart illustrating an example of a method 100 for determining powder recovery. For example, method 100 can be performed to determine the amount of powder recovered based on a construction. Method 100 and / or one or more elements of method 100 can be performed by electronic equipment. For example, method 100 can be performed by... Figure 3 The described device 324 is used to perform this action.
[0021] The apparatus can estimate powder degradation of voxels in 102 3D manufactured constructs based on simulation. For example, the simulation (e.g., a physics-based thermal simulation) can determine multiple thermal states that the powder will experience at voxels in a 3D construct volume due to printing a particular construct. Each thermal state can correspond to a time period during printing and / or during cooling after printing. For example, the simulation can determine the thermal state of a voxel at each time point during the printer-to-printing process, previous thermal states, and / or environmental / boundary conditions. In some examples, the simulation can simulate the thermal states of all voxels in the construct volume (e.g., all voxels including the powder at that time point), and the thermal state of each voxel can be determined (e.g., partially determined) based on the thermal states of other voxels (e.g., nearby voxels) at previous time points. The simulation can determine (e.g., predict and / or calculate) the thermal state of a voxel during cooling based on the previous thermal states of the voxel or other voxels and / or based on environmental / boundary conditions.
[0022] In some examples, estimating powder degradation may include determining voxel stress. For example, the stress of powder at one or more voxels may be calculated based on multiple thermal states. The term "stress" refers to a number indicating the degree of degradation that powder will undergo due to environmental factors. The amount of degradation may depend on the interaction between multiple environmental factors; therefore, a particular stress may result in a variety of degradation amounts because one environmental factor depends on the state of other environmental factors. Environmental factors may include temperature, the amount of oxygen present at or near the voxel (or the extent to which oxygen can diffuse from the voxel), the amount of water or other substances present at or near the voxel (e.g., due to moisture, reagents delivered to the print volume, etc.), etc. Stress may or may not use defined units. For example, stress may be specified using a set of custom arbitrary units. Additionally, stress due to different environmental factors may use different units. In some examples, stress may be calculated based on multiple thermal states by appropriately combining values representing thermal states into scalar values representing stress.
[0023] In some examples, estimating 102 powder degradation may include determining the amount of degradation of the powder at one or more voxels based on one or more stresses. For example, the degree of degradation due to the interaction of other environmental factors with stress from the thermal state can be determined. In some examples, degradation can be quantified based on quality metrics. For example, the degree of degradation can be estimated by determining the quality metric of the powder at the voxel after printing, specifying the change in quality metric due to printing, etc. In some examples, estimating 102 powder degradation may be as follows: Figure 6 To accomplish as described.
[0024] The apparatus can determine the amount of 104 recyclable powder based on estimated powder degradation. Recyclable powder is powder intended for recycling (e.g., powder to be recycled, powder selected for recycling, etc.). For example, recycled powder can be recovered for use in subsequent printing processes (e.g., reused in subsequent builds). For example, after printing, a build volume may include one or more objects, trapped powder, recyclable powder, and / or recycled powder. An object is a solidified block. Trapped powder is powder trapped within the object and / or practically inaccessible after printing (e.g., without removing the powder from the object). Recyclable powder is accessible powder (e.g., powder not adhering to the object surface, powder located outside one or more objects, etc.). A recyclable voxel is a voxel corresponding to recyclable powder. Recyclable powder is powder determined for recycling. For example, recycled powder can be recyclable powder or a subset of recyclable powder. A recycled voxel is a voxel corresponding to recycled powder. In some examples, recycled powder may correspond to recycled voxels determined (e.g., selected) from recyclable voxels.
[0025] In some examples, determining the quantity of 104 recycled powder may include identifying recyclable voxels from the recyclable voxels based on an estimated powder degradation. For example, recyclable voxels may be identified as those that meet criteria (e.g., less than or greater than an estimated degradation level). In some examples, the apparatus may determine recyclable voxels by excluding recyclable voxels that do not meet criteria (e.g., exceed or are at least equal to an estimated degradation level). For example, voxels exceeding or at least equal to a threshold b may be excluded. * The value of recyclable voxels is used to determine the recyclable voxels. In some examples, the apparatus can determine the recyclable voxels by excluding some recyclable voxels to achieve a target quality level. For example, some recyclable voxels with an estimated degree of degradation (e.g., a higher degree) can be excluded such that a blend of recycled powder and fresh powder will achieve the target quality level.
[0026] A target quality level is a number representing the overall (e.g., total) quality level of the amount of powder (e.g., a blend of recycled and fresh powder). In some examples, the target quality level for the amount of powder can be expressed as b. * The target quality level can be a quality level that avoids printing defects and / or maintains a certain level of print quality. In some examples, the target quality level can be received from the input device (e.g., set by the user). An example of a target quality level could be b. * =4. In some examples, other examples of the target quality level can be used (e.g., 2, 3, 4, 4.5, 5, etc.).
[0027] In some examples, the device can use binary search to determine (e.g., select) retrievable voxels from retrievable voxels. Regarding Figure 2An example of binary search is described. In some examples, the device can use a closed-form method to determine (e.g., select) recyclable voxels from recyclable voxels.
[0028] In some examples, determining the quantity of 104 recycled powder based on estimated powder degradation may include determining the mass of the recycled powder corresponding to the recycled voxels. For example, determining the mass of the recycled powder corresponding to the recycled voxels may include summing the masses of the recycled voxels and / or multiplying the voxel mass (e.g., the mass of each voxel) by the amount of recycled voxels (e.g., the quantity). In some examples, the quantity of recycled powder (e.g., the mass of the recycled powder) may be used to determine the mass of fresh powder to be added to the recycled powder to achieve a target quality level.
[0029] Figure 2 This is a block diagram illustrating an example of an engine 210 for powder recovery. As used herein, the term "engine" refers to a combination of circuitry (e.g., analog or digital circuitry, a processor, such as an integrated circuit or other circuitry) or instructions (e.g., programming instructions (such as machine or processor-executable instructions), commands or code (such as device drivers, programming code, object code, etc.)) and circuitry. Some examples of circuitry may include circuitry without instructions, such as application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs). A combination of circuitry and instructions may include instructions hosted in circuitry (e.g., processor-readable memory such as random access memory (RAM), hard disk or solid-state drives, resistive memory, or optical media such as digital multifunction discs (DVDs) and / or instruction modules executed or interpreted by a processor), or circuitry and instructions hosted in circuitry.
[0030] In some examples, engine 210 may include voxelization engine 204, first binarization engine 201, dilation engine 203, XOR engine 205, scaling engine 207, OR engine 209, second binarization engine 211, closure engine 216, flood fill engine 213, AND engine 215, remixing engine 217, isolation engine 219, and / or voxel quality determination engine 208. In some examples, regarding Figure 2 One, some, or all of the described operations can be determined by... Figure 3The described device 324 is used to perform this operation. For example, in some examples, instructions for voxelization, first binarization, dilation, XOR, scaling, OR, second binarization, closure, flooding, AND, remixing, isolation, and / or voxel stress determination can be stored in memory and executed by a processor. In some examples, one or more operations (e.g., voxelization, first binarization, dilation, XOR, scaling, OR, second binarization, flooding, AND, remixing, isolation, and / or voxel stress determination, etc.) can be performed by another device. For example, voxelization can be performed on a separate device and sent to that device. In some examples, regarding... Figure 2 One, some, or all of the described operations can be found in the context of... Figure 1 The described method 100 is executed.
[0031] Model data 202 can be obtained. For example, model data 202 can be received from and / or generated from another device. Model data is data indicating one or more models of one or more objects. A model is a geometric model of one or more objects. A model can specify the shape and / or size of one or more 3D objects. In some examples, a model can be represented using polygonal meshes and / or coordinate points. For example, a model can be defined using one or more formats such as 3D Manufacturing Format (3MF) file format, Object (OBJ) file format, Computer-Aided Design (CAD) file format, and / or Stereolithography (STL) file format. In some examples, model data indicating one or more models can be received from and / or generated from another device. For example, the device can receive one or more files of model data and / or generate one or more files of model data. In some examples, the device can generate model data with a model created on the device based on one or more inputs (e.g., scanned object input, user-specified input, etc.).
[0032] Voxelization engine 204 can voxelize model data 202 by dividing it into multiple voxels. In some examples, the build volume can be a rectangular prism, and the voxels can be rectangular prisms. For example, voxelization engine 204 can slice the build volume to form voxels using planes parallel to the XY, YZ, and XZ planes. In some examples, the 3D printer can have a printing resolution such as a resolution in the XY plane and a resolution along the Z-axis. Voxelization engine 204 can voxelize (e.g., slice) model data 202 into voxels of size equal to the 3D printer's resolution, larger voxels, and / or smaller voxels. Some examples of voxel sizes can include 0.2 mm, 0.25 mm, 0.5 mm, 1 mm, 2 mm, 4 mm, 5 mm, etc. In some examples, each voxel can have an associated value indicating the degree to which the voxel is filled (e.g., filled by an object). For example, the associated value can be within a range of values (e.g., 0 to 255). In some examples, this value can be encoded as a channel in a color space. For example, a voxel can have an associated value between 0 and 255 representing a range between black and white. The voxels generated by the voxelization engine 204 can be provided to the first binarization engine 201, the second binarization engine 211, and the voxel quality determination engine 208.
[0033] In some examples, engine 210 can be arranged into different paths. For example, the clean-compensated voxel determination path 206 may include a first binarization engine 201, an expansion engine 203, an XOR engine 205, a scaling engine 207, and / or an OR engine 209. The clean-compensated voxel determination path 206 can be used to generate clean-compensated recycled voxels. For example, the clean-compensated voxel determination path 206 can determine peripheral voxels around an object in a 3D fabricated construct. Peripheral voxels are voxels that cover or surround an object. For example, peripheral voxels may represent powder that may adhere to an object and / or may not be recycled.
[0034] In some examples, the first binarization engine 201, the dilation engine 203, and / or the XOR engine 205 can be used to determine peripheral voxels. For example, the first binarization engine 201 can binarize a set of voxels to determine binary voxels that include object voxels and non-object voxels. A binary voxel is a voxel with a binary value (e.g., 0 or 1). For example, a binary value can indicate whether an object occupies a voxel or not. In some examples, the first binarization engine 201 can utilize a threshold. For example, the first binarization engine 201 can compare voxel values from the voxelization engine 204 with a threshold. In some examples, if a value meets the threshold, the corresponding voxel can be assigned a binary value (e.g., 0 or 1). For example, the threshold can be used to determine whether the value indicates that the voxel is filled to a greater extent than it is unfilled. In some examples, the threshold can be 128. For example, if a voxel's value is ≥128, the voxel can be assigned a binary value of 1, indicating that the binary voxel is occupied by an object. Otherwise, a voxel can be assigned the binary value 0, indicating that the voxel is empty. A voxel with a binary value indicating that the voxel is occupied can be an object voxel. A voxel with a binary value indicating that the voxel is empty can be a non-object voxel.
[0035] In some examples, the expansion engine 203 can expand an object voxel to produce an extended voxel. Expanding an object voxel can include adding a new object voxel around the object voxel. For example, the expansion engine 203 can change a non-object voxel in contact with the outer surface of the object voxel into a new object voxel to produce an extended voxel. In some examples, the expansion engine 203 can add a shell of a new object voxel around the object voxel to produce an extended voxel. The added object voxel can have a thickness of one or more voxels (e.g., 1 voxel, 2 voxels, 4 voxels, etc.). The extended voxel can be a binary voxel with the new object voxel and / or shell added. The extended voxel can be provided to the XOR engine.
[0036] XOR engine 205 can perform XOR operations on extended voxels and binary voxels to produce peripheral voxels. For example, XOR engine 205 can produce peripheral voxels by indicating those voxels that have different binary values between extended voxels and binary voxels. For example, peripheral voxels can indicate the region around each object in the build volume (e.g., regions of 0.5 mm, 1 mm, 2 mm, etc.). In some examples, peripheral voxels can indicate voxels with a value of 1 added during dilation and other voxels with a value of 0. Peripheral voxels (e.g., peripheral regions of 0.5 mm to 1 mm) can be provided to scaling engine 207.
[0037] In some examples, the clean-compensated voxel determination path 206 can scale peripheral voxels based on a recovery calibration value 214 to produce scaled peripheral voxels. The recovery calibration value 214 is a number indicating the amount (e.g., ratio) of powder that can be recovered from the peripheral voxel. For example, different cleaning methods may result in varying amounts of powder (e.g., potentially recyclable powder) cleaned from the printed object. In some examples, different users (e.g., cleaning technicians) may vary the thoroughness with which they clean the printed object. The recovery calibration value 214 can account for variations in different cleaning methods and / or thoroughness. The recovery calibration value 214 can be determined by printing an arbitrary construct, weighing the object after powder recovery, and weighing the part again after cleaning to determine the mass of powder adhering to the object. The recovery calibration value 214 can indicate the proportion of powder adhering to the object after cleaning. For example, the recovery calibration value 214 can be represented as a number between 0 and 1, and / or encoded within another range (e.g., 8 bits in the range of 0 to 255 in a continuous-tone image). Scaling engine 207 can scale peripheral voxels by applying (e.g., multiplying by) the recycling calibration value 214 to the peripheral voxels to produce scaled peripheral voxels. In some examples, the peripheral voxels and / or scaled peripheral voxels can be encoded within a range (e.g., continuous-tone images, 8 bits, 0 to 255 range, etc.). Scaled peripheral voxels can represent the amount of powder that can be recycled from the peripheral voxels (e.g., when using a coarse (e.g., 0.5 mm) voxel grid). In some examples, scaling may be user-dependent and / or geometry-independent. Scaled peripheral voxels can be provided to OR engine 209.
[0038] OR engine 209 can determine clean-compensated recovery voxels based on scaled peripheral voxels. For example, OR engine 209 can determine clean-compensated recovery voxels by performing an OR operation on scaled peripheral voxels and binary voxels to produce clean-compensated recovery voxels. In some examples, clean-compensated recovery voxels can be a combination of object voxels (from binary voxels) and scaled peripheral voxels. Clean-compensated recovery voxels are voxels determined based on a clean-compensation calibration (e.g., recovery calibration value 214). Clean-compensated recovery voxels can be provided to recovery powder determination path 212 (e.g., provided to AND engine 215). In some examples, the amount of recovery powder can be determined based on clean-compensated recovery voxels. For example, clean-compensated recovery voxels can be used to determine the amount of recovery powder.
[0039] In some examples, the powder recovery determination path 212 may include a second binarization engine 211, a closure engine 216, a flooding engine 213, an AND engine 215, a remixing engine 217, and / or an isolation engine 219. The second binarization engine 211 may binarize a set of voxels to determine a second binary voxel that includes a second object voxel and a second non-object voxel. In some examples, the second binarization engine 211 may utilize a threshold (e.g., a greedy threshold). Some examples of thresholds (e.g., a greedy threshold) may treat any voxel containing a portion of an object as an object voxel (e.g., a voxel occupied by an object at 1% or more volume may be indicated as a voxel 100% occupied by the object by volume). For example, the second binarization engine 211 may compare voxel values from the voxelization engine 204 with a threshold. In some examples, the second binarization engine 211 may operate in a manner similar to the first binarization engine 201. In some examples, the second binarization engine 211 may use a different threshold and / or operate on voxels of different sizes relative to the first binarization engine 201. In some examples, the first binarization engine 201 and the second binarization engine 211 may be combined into a single binarization engine (e.g., using the same method for voxel size and thresholding). The second binary voxel may be provided to the closed engine 216.
[0040] In some examples, the powder recovery determination path 212 can identify free powder voxels. Free powder voxels are voxels that are not occupied by an object and / or not trapped inside an object. For example, aspects of determining recyclable powder may include detecting powder trapped inside one or more objects. Powder trapping may be due to printing hollow objects, or it may be due to the object lacking openings or having one or more openings that are too small to be easily recovered.
[0041] In some examples, the powder recovery determination path 212 can be performed by performing a binary closure operation to determine (e.g., approximate) the amount of trapped powder. For example, closure engine 216 can perform expansion. For example, closure engine 216 can add voxels around an object voxel to cause the object voxel to expand, thereby forming a closed shell (e.g., the closed shell can seal one or more holes on the object). In some examples, closure engine 216 can perform erosion. For example, closure engine 216 can reduce the size of the closed shell. In some examples, expansion and / or erosion can be performed in a proportional manner (e.g., 0.5 mm to 4 mm). The voxel array obtained by closure engine 216 can be provided to flood filling engine 213.
[0042] In some examples, identifying free powder voxels may include performing flooding on a 3D fabricated construct. For example, flooding engine 213 may mark accessible voxels and / or voxels located outside a closed object indicated by the voxel array obtained by closing engine 216. Marked voxels may represent free powder voxels. For example, any voxel marked by the flooding operation can be a free powder voxel. Unmarked voxels may represent objects, powder trapped within objects, and / or peripheral voxels. Free powder voxels (e.g., marked voxels) may be provided to AND engine 215.
[0043] In some examples, the recycled powder determination path 212 can perform an AND operation on clean-compensated recycled voxels (e.g., from the OR engine) and free powder voxels to produce recyclable voxels. For example, the AND engine 215 can superimpose clean-compensated recycled voxels (e.g., the peripheral powder recyclable portion) with free powder voxels to obtain an indication of which voxels are recyclable. In some examples, the quality of the recyclable powder can be determined based on the recyclable voxels. Recyclable voxels can be supplied to the remixing engine 217 and / or the isolation engine 219.
[0044] The voxel quality determination engine 208 can determine the voxel quality corresponding to a voxel (e.g., a voxel provided by the voxelization engine 204). In some examples, determining voxel quality (e.g., voxel stress, estimated powder degradation, and / or quality metrics) can be as follows: Figure 1 and / or Figure 6 It is performed as described. For example, the voxel quality determination engine 208 can determine estimated powder degradation, voxel stress, and / or quality metrics based on simulation. In some examples, the estimated powder degradation can be expressed using a quality metric per voxel (e.g., b). * The quality metric can be provided to the remixing engine 217 and / or the isolation engine 219.
[0045] In some examples, the remixing engine 217 can determine recycling data based on recyclable voxels and / or quality metrics. Recycling data is data concerning one or more aspects of powder recycling. For example, this can be achieved by using (e.g., in combination) clean-compensated voxel data, recyclable voxel data, and / or quality metrics for each voxel (e.g., b...). *The remixing engine 217 can determine the overall quality and / or overall quality level of powder (e.g., recyclable powder and / or recycled powder, etc.). In some examples, the remixing engine 217 can determine object quality, the quality of trapped powder, the quality of waste powder on the object surface, the refresh rate for maintaining the target quality level, and / or the net impact of the structure on the supply of used powder. The refresh rate is the ratio of recycled powder to fresh powder. In some examples, the quality and / or overall quality level of recycled powder can be reassessed based on the removal of degraded powder (e.g., starting with the powder with the highest degree of degradedness), which may result in an updated refresh rate and / or an updated estimate of powder surplus.
[0046] In some examples, the remixing engine 217 can determine the recycled data based on one, some, or all of the following equations. Equation (1) represents the overall quality level (in b) used to determine the isomass voxels. * The method of representation.
[0047]
[0048] In equation (1), Q 级别 For the overall quality level, b is the quality measure of voxel i (e.g., b * ), where n is the number of voxels of equal mass (e.g., recyclable voxels and / or reclaimable voxels), and i is the index of the voxel.
[0049] Equation (2) represents the overall quality level used to determine a voxel of mass m (in b). * The method of representation.
[0050]
[0051] In equation (2), Q 级别 For the overall quality level, b is the quality measure of voxel i (e.g., b * N is the number of voxels (e.g., recyclable voxels and / or recovered voxels), m is the mass of voxel i, and i is the index of the voxel. In some examples, the remixing engine 217 can determine the overall quality level of the voxels based on estimated powder degradation (e.g., a quality metric of the voxels). For example, the overall quality level can be determined according to equation (1) and / or equation (2).
[0052] Equation (3) represents the method used to determine the refresh rate to produce powder blends with a target quality level.
[0053]
[0054] In equation (3), R is the refresh rate, and b t For the target quality level, br For the quality grade of recyclable voxels and / or recycled voxels, and b f This refers to the quality grade of fresh powder.
[0055] Equation (4) represents a method for determining the quality of fresh powder to produce a powder blend with a target quality level.
[0056]
[0057] In equation (4), m f For the mass of fresh powder, and m r For the mass of recyclable powder and / or recycled powder. In some examples, the remixing engine 217 can determine the mass of fresh powder (e.g., m). f This is to produce powder blends with a target quality level. For example, the remixing engine 217 can determine the quality of fresh powder according to equation (4).
[0058] In some examples, determining the quantity of recovered powder may include determining the mass of recovered powder corresponding to the recovered voxel (e.g., m). r For example, the remixing engine 217 can determine the mass of the recovered powder by adding the voxel masses of recovered voxels and / or recovered voxels of equal mass, and multiplying the voxel mass by the number of recovered voxels. The mass of the recovered powder (e.g., m) r ) can be used to determine the mass of fresh powder (e.g., m) f To produce powder blends with the target quality level.
[0059] In some examples, the remixing engine 217 can determine the reclaimed voxels from the reclaimable voxels. For example, the remixing engine 217 can iteratively remove a portion of the reclaimable voxels using a binary search algorithm, such that the remaining reclaimed voxels mixed with fresh powder can maintain a target quality level. In some examples, the binary search algorithm can be used to achieve a powder-balanced construct. A powder-balanced construct is one in which the total mass of powder and (e.g., plus) the object in the construct volume prior to recycling and / or reuse is approximately equal to the total mass of the recycled powder and (e.g., plus) the fresh powder. The total mass of the object and powder in the construct can be a given factor. The quality level and quality level of the recycled powder (e.g., b) * This may depend on the fraction of recyclable powder excluded. It is used to generate the target quality level (e.g., target b). * The quality of the fresh powder of the blended powder can be determined according to equation (4) above (and can also be determined based on the level of recycled powder). The binary search method can be used for iterative calculations. In some examples, a closed-form method can be utilized.
[0060] Binary search methods can utilize percentile estimates. A percentile estimate can represent the proportion (e.g., mass fraction) of recyclable powder to be recovered (e.g., powder that was not excluded). For example, a percentile estimate could be the ratio of the mass of recovered powder to the mass of recyclable powder. For instance, a percentile estimate of 0.9 might mean that 0.9 or 90% of the recyclable powder (e.g., the powder to be recovered) and / or 0.1 or 10% of the recyclable powder (e.g., worst case 10%) should be excluded. A percentile estimate can be initialized to a value (e.g., 0.5).
[0061] Binary search can include a number of iterations (e.g., K). For example, one or more loop operations can iterate over a range of variables k (e.g., k = 1, 2, ..., K, where K = 11 or other numbers). Equation (5) illustrates an example of a loop operation in binary search.
[0062] (b r m r = calc_remix(constructor, fraction) r =Percentile) (5)
[0063] In equation (5), b r To determine the quality level of the recovered powder, m r The function `calc_remix` calculates the remixing of the recycled powder, where `calc_remix` is the remixing calculation function, `constructor` is the construct being evaluated, and `score` is the value of the remixed powder. r This represents the fraction of recyclable powder to be recovered, and the percentiles are percentile estimates. For example, the `calc_remix` function can be used to determine the fraction including b. * The mass and b of all blends of recyclable powders below the percentile * Values (e.g., a percentile of 0.9 might mean that the worst 10% of recyclable powder is excluded from recycling). In some examples, the `calc_remix` function can take a construct voxel (“construct”) and a fraction. r Each construct voxel has mass and b * The `calc_remix` function can filter constructs (e.g., construct voxels) into powder voxels with the least degradation. For example, if the fraction... r =0.9, then the worst-case scenario of 10% of voxels will be disregarded. The calc_remix function can calculate the total mass m of the blend according to the following equation. r (e.g., the sum of the powder masses of each voxel considered) and b * : Where, m i Let b be the mass of voxel i (the filtered voxel). ib for voxel i * value.
[0064] Equation (6) illustrates an example of an operation for calculating the mass of fresh powder based on the quality level of the recycled powder and the mass of the recycled powder. This operation can be a loop operation in a binary search algorithm.
[0065] m f =calc_fresh(b t b r m r (6)
[0066] In equation (6), b t For the target quality level, b r For the quality grade of recovered voxels and / or powders, m r To determine the mass of recovered voxels and / or powder, m f Let be the mass of the fresh powder, and calc_fresh be the function for calculating the mass of the fresh powder. In some examples, the calc_fresh function can be equations (3) and (4) (e.g., and A combination of ) . For example, we can first determine the goal b to achieve. * The refresh rate level (e.g., R). Then, it can be based on R and m r To determine the quality of fresh powder (e.g., m) f ).
[0067] Equation (7) illustrates an example of an operation used to calculate the quality difference. This operation can be a loop operation in a binary search algorithm.
[0068] m Δ =m b -(m r +m f (7)
[0069] In equation (7), m Δ For poor quality, m b For the construction mass (e.g., the total mass of powder in the construction plus the mass of the object), m r For the mass of recovered voxels and / or powder, and m f The mass of the fresh powder.
[0070] In the example of the binary search method, it can be based on the net mass (e.g., m). Δ The percentile estimate is updated by comparing it with a threshold. For example, if the net mass is less than 0, the percentile estimate can be updated according to equation (8).
[0071]
[0072] Otherwise, percentile quality can be updated according to equation (9).
[0073]
[0074] At the end of the loop (e.g., 10 iterations from k=1 to k=10), the remixing engine 217 may have calculated a percentile threshold for excluding powder to maintain powder balance (e.g., the percentile threshold can be calculated to within 0.00097 in the range of 0 to 1). For example, a percentile estimate could be a value such as 0.85, meaning that the worst 15% of recyclable powder is excluded from the recyclable powder. In some examples, excluding the calculated amount of complete construct may result in achieving a target quality level (e.g., b). * (Grade) The amount of fresh powder used is reduced by several kilograms.
[0075] In some examples, the apparatus may display one or more recycling data points. For instance, the apparatus may display the mass of fresh powder (e.g., to produce a target quality level for the powder blend), quality metrics, the mass of recyclable powder, the mass of recycled powder, a visualization of voxels representing the build volume, and quality metrics of the voxels (e.g., b). * The device can visualize data such as the quality level of recyclable powder, the quality level of recycled powder, percentile estimates, and the quality level of recycled powder. In some examples, the device can send one or more recycling data points to another device. For example, the device can send one or more recycling data points to a smartphone, tablet, server, etc.
[0076] In some examples, one or more recycling data points can be provided to the isolation engine 219. The isolation engine 219 can determine one or more isolation objects. An isolation object is an object used to isolate powder. For example, an isolation object can be a hollow object added to a structure to contain a portion of the powder. For example, an isolation object can be used to isolate the voxels with the highest degree of degradation for a large quantity of powder (e.g., excluded powder, non-recyclable powder, etc.). In some examples, the isolation engine 219 can determine an isolation grid. For example, the isolation engine 219 can determine excluded voxels. Excluded voxels are voxels of powder excluded from the recycled powder (e.g., recyclable powder). For example, the isolation engine 219 can select the voxels with the highest degree of degradation (e.g., the voxels with the worst quality metric) to achieve a percentile estimate of the recycled powder (e.g., a percentile estimate as high as 1). The isolation engine 219 can determine the isolation grid based on the excluded voxels. For example, the isolation engine 219 can determine an isolation grid that encapsulates the excluded voxels. In some examples, the isolation grid can be a hollow grid with a wall thickness of 0.5 mm to 2 mm. In some examples, one or more isolation meshes can be printed within a 3D-manufactured construct. For instance, isolation meshes can be sent to a 3D printer and / or added to a construct for printing. Printed isolation meshes can facilitate the extraction of degraded powder during recycling.
[0077] In some examples, about Figure 2 The described engines and / or paths can utilize different voxel sizes. For example, the first binarization engine 201, the second binarization engine 211, and / or the voxel quality determination engine 208 can produce voxels of different sizes. In some examples, voxels (and / or corresponding data) can be downsampled and / or upsampled for use with different engines and / or paths.
[0078] Figure 3 This is a block diagram illustrating an example of a device 324 that can be used for powder recovery. Device 324 can be a computing device, such as a personal computer, server computer, printer, 3D printer, smartphone, tablet computer, etc. Device 324 may include and / or be coupled to a processor 328, a communication interface 330, and / or a memory 326. In some examples, device 324 can communicate with additive manufacturing equipment (e.g., a 3D printer) (e.g., coupled to the additive manufacturing equipment, having a communication link with the additive manufacturing equipment). In some examples, device 324 may be an example of a 3D printer. Without departing from the scope of this disclosure, device 324 may include additional components (not shown), and / or some of the components described herein may be removed and / or modified.
[0079] Processor 328 may be any of the following: a central processing unit (CPU), a semiconductor-based microprocessor, a graphics processing unit (GPU), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), and / or other hardware devices suitable for fetching and executing instructions stored in memory 326. Processor 328 may fetch, decode, and / or execute instructions stored in memory 326. In some examples, processor 328 may include one or more electronic circuits comprising electronic components for performing one or more functions of the instructions. In some examples, processor 328 may perform actions related to… Figures 1 to 6 One, some, or all of the aspects, elements, technologies, etc. described in the diagram.
[0080] Memory 326 is an electronic, magnetic, optical, and / or other physical storage device that contains or stores electronic information (e.g., instructions and / or data). Memory 326 may be, for example, random access memory (RAM), electrically erasable programmable read-only memory (EEPROM), storage devices, optical discs, etc. In some examples, memory 326 may be a volatile and / or non-volatile memory such as dynamic random access memory (DRAM), EEPROM, magnetoresistive random access memory (MRAM), phase-change RAM (PCRAM), memristors, flash memory, etc. In some examples, memory 326 may be a non-transitory tangible machine-readable storage medium, wherein the term "non-transitory" does not cover transient propagation signals. In some examples, memory 326 may include multiple devices (e.g., RAM cards and solid-state drives (SSDs)).
[0081] Device 324 may also include a communication interface 330 through which processor 328 can communicate with one or more external devices (not shown), for example, to receive and store information about one or more objects. Communication interface 330 may include hardware and / or machine-readable instructions that enable processor 328 to communicate with one or more external devices. Communication interface 330 can enable wired or wireless connections with one or more external devices. Communication interface 330 may also include a network interface card, and / or may also include hardware and / or machine-readable instructions that enable processor 328 to communicate with various input and / or output devices such as a keyboard, mouse, monitor, another device, electronic device, computing device, printer, etc., through which a user can input instructions to device 324.
[0082] In some examples, memory 326 may store model data 340. Model data 340 may include and / or indicate one or more models (e.g., 3D object models). Device 324 may generate model data 340 and / or may receive model data 340 from another device. In some examples, memory 326 may include slicing and / or voxelization instructions (…). Figure 3 (Not shown in the image). For example, processor 328 can execute slicing and / or voxelization instructions to voxelize 3D model data, thereby producing voxels of the construct.
[0083] Memory 326 may store overall quality instructions 341. For example, overall quality instructions 341 may be instructions for determining the overall quality level of non-object voxels of a 3D fabricated construct. In some examples, processor 328 may execute overall quality instructions 341 to determine the overall quality level of non-object voxels (e.g., recyclable voxels and / or recoverable voxels) of a 3D fabricated construct. In some examples, processor 328 may, as per [reference to...] Figure 1 and / or Figure 2 (For example, determining the overall quality level as described in equation (2)).
[0084] In some examples, memory 326 may store exclusion voxel instructions 342. Processor 328 may execute exclusion voxel instructions 342 to determine exclusion voxels based on the overall quality level. In some examples, determining exclusion voxels may be as follows: Figure 1 and / or Figure 2 It shall be performed as described. For example, processor 328 may determine a percentile estimate of the recycled powder based on the overall quality level. Exclusion voxels may be selected as the amount (e.g., 0.15) of voxels that best represent the degree of degradation of the recycled powder that satisfies the percentile estimate (e.g., 0.85).
[0085] In some examples, memory 326 may store isolation mesh instructions 344. Processor 328 may execute isolation mesh instructions 344 to determine the isolation mesh based on excluded voxels. In some examples, determining the isolation mesh may be as follows: Figure 1 and / or Figure 2 It will be executed as described. In some examples, processor 328 can determine the isolation grid by performing a moving cube on the excluded voxels.
[0086] Memory 326 may store operation instructions 346. In some examples, processor 328 may execute operation instructions 346 to perform operations based on overall quality level and / or isolation grid. In some examples, processor 328 may execute operation instructions 346 to determine the amount of fresh powder to reach a target quality level. In some examples, processor 328 may, as per [reference to...] Figure 1 and / or Figure 2 The quantity of fresh powder is determined as described. For example, processor 328 can use the overall quality level to determine the quantity of fresh powder (e.g., the mass of fresh powder), thereby producing a target quality level for the blend of fresh powder and recycled powder. In some examples, processor 328 can use the overall quality level to solve for the refresh rate, which can then be used to determine the quantity of fresh powder.
[0087] In some examples, processor 328 can execute operation instructions 346 to instruct the printer to print an isolation mesh within the 3D fabricated construct. In some examples, processor 328 can instruct the printer as follows: Figure 1 and / or Figure 2 The isolation grid is printed as described. For example, processor 328 can add an isolation grid to a structure, which can then be sent to a printer for printing. For example, device 324 can use communication interface 330 to send the isolation grid and / or structure to a printer for printing.
[0088] In some examples, the operation instruction 346 may include 3D printing instructions. For example, the processor 328 may execute 3D printing instructions to print one or more 3D objects. In some examples, the 3D printing instructions may include instructions for controlling one or more devices (e.g., rollers, printheads, thermal projectors, and / or filament lamps, etc.). For example, the 3D printing instructions may use a construct (e.g., including an isolation grid) to control one or more printheads to print one or more reagents at one or more locations specified by the construct. In some examples, the processor 328 may execute 3D printing instructions to print one or more layers. In some examples, the processor 328 may execute operation instructions to present one or more visualizations, isolation grids, overall quality levels, and / or other recycling data of the construct on a display, and / or send one or more visualizations, isolation grids, overall quality levels, and / or other recycling data of the construct to another device (e.g., a computing device, a monitor, etc.).
[0089] Figure 4 This is a block diagram illustrating an example of a computer-readable medium 448 for powder recycling. The computer-readable medium 448 is a non-transitory tangible computer-readable medium. The computer-readable medium 448 can be, for example, RAM, EEPROM, storage devices, optical discs, etc. In some examples, the computer-readable medium 448 can be a volatile and / or non-volatile memory such as DRAM, EEPROM, MRAM, PCRAM, memristors, flash memory, etc. In some examples, regarding... Figure 3 The described memory 326 may be about Figure 4Examples of the described computer-readable medium 448. In some examples, the computer-readable medium may include code, instructions, and / or data to cause a processor to perform actions regarding... Figure 1 , Figure 2 , Figure 3 , Figure 4 , Figure 5 and / or Figure 6 One, some, or all of the operations, aspects, elements, etc., described in the diagram.
[0090] Computer-readable medium 448 may include code (e.g., data and / or instructions). For example, computer-readable medium 448 may include refresh rate instructions 450, fresh powder quality instructions 452, and / or voxel recovery instructions 454.
[0091] The refresh rate instruction 450 may include code that causes the processor to determine the refresh rates for recycled and fresh powder to achieve a target quality level. In some examples, determining the refresh rates for recycled and fresh powder to achieve the target quality level may be as follows: Figure 1 , Figure 2 and / or Figure 3 It executes as described. For example, refresh rate instruction 450 may include code that causes the processor to determine the refresh rate based on recyclable voxels and quality metrics.
[0092] Fresh powder quality instruction 452 may include code for instructing the processor to determine the quality of the fresh powder based on the refresh rate. In some examples, determining the quality of the fresh powder based on the refresh rate may be as follows: Figure 1 , Figure 2 and / or Figure 3 Perform as described.
[0093] The voxel recovery instruction 454 may include code for causing the processor to determine recoverable voxels based on cleanliness-compensated recovered voxels. In some examples, determining recoverable voxels based on cleanliness-compensated recovered voxels may be as follows: Figure 1 , Figure 2 and / or Figure 3 Perform as described.
[0094] Figure 5 This is a diagram illustrating an example of constructing volume 556 and isolation mesh 558. For example, the apparatus can be as described regarding... Figure 1 , Figure 2 , Figure 3 and / or Figure 4The isolation grid 558 is determined as described above for isolating and / or containing degraded powder. In some examples, the isolation grid 558 may be printed as a hollow object to isolate the degraded powder. After printing, the object printed by the isolation grid 558 may be removed and / or discarded. Residual recycled powder may be recycled and / or mixed with fresh powder for printing in subsequent builds.
[0095] Figure 6 This is a block diagram illustrating an example of an engine 672 used to determine the degree of powder degradation in 3D printing. Engine 672 may include a slicing engine 674. Slicing engine 674 can slice a build file to determine multiple voxels. The build file may include data describing multiple objects to be printed within the build volume, including the pose of the objects within the build volume. Slicing engine 674 can slice the build file by dividing the build volume into multiple voxels. In some examples, the build volume may be a rectangular prism, and the voxels may be rectangular prisms. For example, slicing engine 674 may slice the build volume to form voxels using planes parallel to the XY plane, YZ plane, and XZ plane. The 3D printer may have a printing resolution such as a resolution in the XY plane and a resolution along the Z-axis. Slicing engine 674 can slice the build file into voxels of size equal to the 3D printer's resolution, larger voxels, or smaller voxels. There is a trade-off between larger voxel sizes that allow for more efficient computation and smaller voxel sizes that provide finer powder degradation resolution.
[0096] Engine 672 may include reagent delivery engine 676. Reagent delivery engine 676 can determine the amount of reagent to be delivered to each voxel. Reagent delivery engine 676 can determine the amount of molten reagent, refiner, binder, property modifier, colorant, etc., to be delivered. For example, reagent delivery engine 676 can determine the amount of reagent to be delivered based on the build file. Reagent delivery engine 676 can calculate a continuous tone map indicating how much reagent to deliver to each voxel. Reagent delivery engine 676 can use deterministic methods to determine the amount of reagent to be delivered to achieve or prevent aggregation (or another property) at different locations, and can use machine learning (e.g., deep learning) models to determine the amount of reagent to be delivered, etc. Machine learning models can be trained based on deterministic methods to achieve similar results more quickly. For example, a machine learning model can quickly determine the amount of reagent that a voxel with a resolution lower than the printer resolution can receive without calculating a continuous tone map at the print resolution. The reagent delivery engine 676 may include a separate model or sub-engine for determining the amount of each reagent used during the printing process. The amount of reagent delivered may depend on the 3D printer model, the version of instructions running on the 3D printer, the 3D printer layout, the 3D printer setup, the 3D printer installation, etc. Accordingly, the reagent delivery engine 676 can determine the amount of reagent to be delivered based on the 3D printer model, instruction version, etc.
[0097] Engine 672 may include a reagent response engine 678. The reagent response engine 678 can determine the temperature response that the powder at each voxel will experience based on the amount of reagent to be delivered. For example, a 3D printer may apply energy to a build volume, and the amount of reagent delivered to a voxel will affect how much energy the powder at that voxel absorbs. Accordingly, the reagent response engine 678 can determine the temperature response based on the amount of reagent to be delivered to the voxel and the amount of energy. The reagent response engine 678 can determine the amount of energy to be delivered or the relationship between selected reagent and temperature based on the 3D printer model, the version of instructions running on the 3D printer, layout, setup, installation, etc. In some examples, the 3D printer may deliver energy to selected voxels without using reagent. In such examples, engine 672 may include an engine for determining the amount of energy delivered to each voxel without determining the amount of reagent delivered. In some examples, reagent delivery engine 676 and / or reagent response engine 678 may perform deep learning operations to predict thermal conditions in the molten layer of simulation engine 684.
[0098] Engine 672 may include a material state engine 682 for determining the resulting coalescence state of powder at each voxel. For example, material state engine 682 may determine which voxels include objects and which do not based on slices of the build file. Material state engine 682 may select a coalescence state for voxels that include objects and a non-coalescing state for voxels that do not include objects. In some examples, for voxels that include both objects and loose powder, material state engine 682 may include various states between coalescence and non-coalescing.
[0099] Engine 672 may include a simulation engine 684 for determining multiple thermal states that the powder at each voxel will experience due to the construct specified in the printed build file. For example, simulation engine 684 may determine the initial thermal state of each voxel based on results from reagent delivery engine 676 and reagent response engine 678. Simulation engine 684 may determine the thermal state after the initial thermal state based on inter-voxel thermal conduction and heat loss to the environment. Simulation engine 684 may determine conductivity based on the coalescence state of each voxel determined by material state engine 682.
[0100] Simulation engine 684 can proceed through a series of time increments and determine the thermal state of each voxel at each time increment. In some examples, voxels that have not yet been printed can be ignored until they are formed. In examples, simulation engine 684 can generate a four-dimensional (4D) representation of the build volume, which includes the temperature at each time and voxel location (e.g., a 3D Cartesian location). At each time increment, simulation engine 684 can calculate the thermal state of each voxel based on the thermal state of the immediately preceding increment, the reagent response of any new voxels, and the thermal energy loss at the build volume boundary. The time increments can be selected based on the desired resolution. Larger increments allow for faster computation, while smaller increments provide more accurate results for the thermal experience of each voxel. Different time increments can be selected for the time the printer is printing and the time the build volume is cooling. In some examples, the printing time increments can be selected to have multiple time increments during each voxel formation period (e.g., at the resolution generated by slicing engine 674). The time increments during cooling can be larger (e.g., one or two orders of magnitude larger). Simulation Engine 684 can generate the thermal state for each voxel from its formation to the end of the cooling period.
[0101] Engine 672 may include stress engine 660. Stress engine 660 can calculate the stress of the powder at each voxel. Stress engine 660 can determine the stress based on multiple thermal states. Stress engine 660 can determine the effect of environmental factors on the amount of powder degradation at each voxel. As used herein, the term "environment" refers to anything at or around a voxel that affects the degradation of the powder at that voxel. The term "environmental factor" refers to an environmental property or a limited set of properties that affects the degradation of the powder at a voxel. Environmental factors may include heat, oxygen, reagents, etc. The term "effect" refers to a value (e.g., an alphanumeric value) that represents the effect of an environmental factor on powder degradation. This effect may represent how the environmental factor will interact with the stress to cause powder degradation (e.g., how the environmental factor will amplify or diminish the effect of the stress). In the illustrated example, stress engine 660 includes initial state engine 662, thermal engine 664, oxidation engine 666, and reagent engine 668. Initial state engine 662 can determine initial values that indicate the initial amount of powder degradation before printing. For example, the initial state engine 662 can be based on the quality metric of the powder prior to printing (e.g., b). * The initial value is determined by measuring the powder or based on the results of a previous simulation. Measurement results can be input by the user, received from the measuring device, or obtained from a non-transitory computer-readable medium. For some materials, the quality metric may vary non-linearly with stress. For example, the quality metric variation at a specific stress may depend on the initial state of the quality metric. The initial state engine 662 determines the initial value by transforming the initial quality metric into a value in a domain linearly related to stress.
[0102] Thermal Engine 664 can determine the thermal interaction between the powder and the voxel, which will generate stress on the powder. For example, Thermal Engine 664 can determine the stress generated on each voxel based on its thermal state throughout the printing process. Thermal Engine 664 can determine the thermal stress based on a version of the Arrhenius equation. In the example, Thermal Engine 664 can calculate the thermal stress according to equation (10):
[0103]
[0104] Where, σ 热 The thermal stress at the voxel is summed over all time increments m, t m Let m be the duration of the time increment, a0 be a material-specific constant, and E be the duration of the time increment. a The activation energy is given and is specific to the material and environment, where R is the gas constant and T is the activation energy. m Let be the temperature of the voxel at time increment m. In some examples, some time increments may have different lengths.
[0105] The oxidation engine 666 can determine the oxidative interaction between the powder at a voxel and the powder, which will generate stress on the powder. For example, the degradation amount may depend on the amount of oxygen present at each voxel, which in turn may depend on whether oxygen can diffuse away from the voxel. The oxidation engine 666 can determine whether there is aggregated powder blocking oxygen diffusion based on the orientation of the object in the build volume. For example, the oxidation engine 666 can use the results of the material state engine 682 to determine which voxels will be in an aggregated state that prevents diffusion. Based on the voxel state, the oxidation engine 666 can determine how much oxygen can diffuse away from the voxel. The oxidation engine 666 can determine a value for each voxel that indicates the degree of interaction between oxygen and the powder at that voxel; this value may be called an oxidation metric.
[0106] The reagent engine 668 can determine the interaction between the printing reagent and the powder at the voxel, which will generate stress on the powder. For example, a refining agent, melting agent, binder, property modifier, colorant, etc., can be applied to the powder. The amount of powder degradation may depend on the amount of reagent present at each voxel or adjacent voxels. The reagent engine 668 can receive instructions from the reagent delivery engine 676 regarding how much reagent will be delivered to each voxel. The reagent engine 668 can determine a value for each voxel, indicating how much reagent can interact with that voxel; this value can be called a reagent metric. The reagent engine 668 can use the instructions received from the reagent delivery engine 676 as a reagent metric, or it can calculate the reagent metric based on the instructions.
[0107] Engine 672 may include degradation engine 670. Degradation engine 670 may determine the amount of degradation of the powder at the voxel based on stress. For example, degradation engine 670 may calculate the amount of degradation based on initial values from initial state engine 662, thermal stress from thermal engine 664, oxidation metric from oxidation engine 666, and reagent metric from reagent engine 668. In some examples, degradation engine 670 may receive multiple values from initial state engine 662, thermal engine 664, oxidation engine 666, and reagent engine 668. For example, reagent engine 668 may include values for each type of reagent that may interact with the voxel, or may generate individual values based on separate equations or models of different ways in which heat, oxygen, or reagents interact with the powder at the voxel.
[0108] The degradation engine 670 can calculate the quality metric or quality metric change that will be caused by a specific print job for each voxel. In the example using PA 12, the degradation engine 670 can calculate the b-value that will be caused by the print job. * The value or b may be caused by a print job. *The value changes. In some examples, the degradation engine 670 can calculate a value representing the amount of degradation in the same domain as the initial value from the initial state engine 662, and can convert the calculated value into a quality metric domain (e.g., b). * (Domain). In the example, the degradation engine 670 can directly calculate quality metrics without first calculating values in an intermediate domain.
[0109] The degradation engine 670 may include a machine learning model to calculate quality metrics based on values from the stress engine 660. The machine learning model may include support vector regression, neural networks, etc. For each voxel, the machine learning model may receive initial values from the initial state engine 662, thermal stress, oxidation metrics, reagent metrics, or multiple such values, and output the quality metric or quality metric change of that voxel caused by the print job. The machine learning model may be trained based on data from actual print jobs. For example, the inputs to the machine learning model during training may be calculated based on the build file of an actual print job as discussed above. The baseline truth value of the output from the machine learning model can be obtained by measuring the quality metric (e.g., b) of the powder at a specific voxel (e.g., a powder sample from a specific voxel). * The quality metric is determined by the value. Values in the quality metric domain can be used as baseline ground truth values to train a machine learning model, or baseline ground truth quality metric values can be converted into intermediate baseline ground truth values for training the machine learning model. In some examples, the quality metric generated by the degradation engine 670 can be about... Figure 2 The described voxel quality determines the output of engine 208. For example, a quality metric can be provided to remix engine 217 and / or isolated engine 219. In some examples, one or more engines in engine 672 may be included in the description of... Figure 2 The described voxel quality determination engine 208. For example, in some examples, a reagent delivery engine 676, a reagent response engine 678, a material stage engine 682, a simulation engine 684, a stress engine 660, and / or a degradation engine 670 may be included in the voxel quality determination engine 208.
[0110] Engine 672 may include setting engine 680. Setting engine 680 can select 3D printing settings based on degradation amount. For example, setting engine 680 can select the ratio of fresh powder to recycled powder to be used during 3D printing. Setting engine 680 may include previously specified rules or receive user-specified rules regarding quality metrics. Rules may specify that quality metrics such as worst-case voxels, average voxels, and median voxels are kept below specific thresholds. Setting engine 680 can determine how much fresh powder to add to meet the rule specifications based on the quality metrics of recycled powder. The quality metrics of recycled powder may have already been measured or calculated by degradation engine 670 for previous print jobs. In the PA12 example, setting engine 680 can calculate the b of each type of added powder... * The weighted root mean square of the values (weighted by the amount of powder added) is used to calculate the b-value resulting from the combination of recycled and fresh powder. * The setting engine 680 can calculate the initial quality metric that will cause the print job to meet the rules, and determine the amount of fresh powder to be added to achieve that initial quality metric. In some examples, the setting engine 680 can select 3D printing settings by modifying the 3D printer settings, modifying the print job, etc.
[0111] Engine 672 may include printing engine 690. Printing engine 690 can instruct the 3D printer to print the print job with selected settings. For example, printing engine 690 can transmit build files, printer settings instructions, and instructions on the amount of fresh or recycled powder to be used to the 3D printer, and can instruct the 3D printer to use the transmitted information to print. The 3D printer can operate according to the transmitted information to form a build volume corresponding to the build file, using powder from a specified source, according to the specified settings.
[0112] Some examples of the techniques described in this article can help determine how much fresh powder to add to a build. For instance, when handling build trolleys, it can be difficult to identify and / or selectively avoid recycling specific powder areas that include highly degraded powder. When using materials such as PA 12, highly degraded powder may mix with other powders during object removal and recycling of less degraded powder, potentially leading to the diffusion of degraded powder.
[0113] Some of the techniques described herein can identify the location of highly degraded powder voxels in a given construct. The location of highly degraded powder voxels can be used, along with the target powder quality and used powder production, to automatically determine which powder voxels to exclude in order to achieve the target powder quality. This allows the constructed layout and / or matching refresh rate to maintain a given quality level and be a net consumer of used powder, with used powder balanced (e.g., producing as much used powder as consumed) or a net producer of used powder. This enhances control over the quality of reused powder and the cost required to maintain that quality.
[0114] Some examples of the techniques described herein enable the identification and / or targeted removal of degraded powder voxels. For example, some examples of these techniques can provide accurate determination of recyclable powder voxels, including calibration of the amount of powder recovered from the object surface. Some examples of the techniques described herein can determine the overall quality of recyclable powder voxels and / or the overall quality of the recycled powder voxels. Some examples of the techniques described herein can instruct the removal of recyclable voxels containing highly degraded powder to maintain target powder quality while reducing the amount of fresh powder. Some examples of the techniques described herein can enable the planning of build costs before printing (e.g., determining the quality of the object, the quality of powder trapped in the printed object, the quality of powder lost from the object surface, and / or the amount of fresh powder used to replenish the trolley after the build).
[0115] Some examples of the techniques described herein may include closed-loop methods for removing degraded powder voxels from a construct. For instance, some examples may include techniques for simulating voxel-level powder degradation of a construct and estimating the quality and grade of reusable powder after excluding certain voxels. Some examples may include techniques for excluding target powder voxels from recycling based on target powder quality and permissible waste. Some examples may include techniques for accurately assessing which powder voxels are recyclable, including calibration of powder recovered from an object surface.
[0116] As used herein, the term “and / or” can refer to one or more items. For example, the phrase “A, B and / or C” can refer to any of the following: A (without B and C), B (without A and C), C (without A and B), A and B (without C), B and C (without A), A and C (without B), or all of A, B and C.
[0117] While various examples are described herein, this disclosure is not limited to these examples. Variations of the examples described herein may be implemented within the scope of this disclosure. For example, aspects or elements of the examples described herein may be omitted or combined.
Claims
1. A method for determining powder recovery, comprising: The powder degradation of voxels of 3D manufactured constructs is estimated based on simulation, wherein the 3D manufactured constructs are instances of 3D manufacturing. as well as The quantity of recycled powder is determined by identifying multiple recyclable voxels from a plurality of recyclable voxels, based on estimated powder degradation, wherein the recyclable voxels are voxels corresponding to recyclable powder, the recycled voxels are voxels corresponding to recycled powder, and the plurality of recycled voxels are voxels among the plurality of recyclable voxels whose degradation estimates based on the plurality of recycled voxels meet the criteria, and wherein the recycled powder is powder that can be recycled for use in subsequent printing processes.
2. The method of claim 1, further comprising: Determine the peripheral voxels surrounding the object of the 3D fabricated construct; as well as The peripheral voxels are scaled based on a recovery calibration value to produce scaled peripheral voxels, wherein the recovery calibration value is a number indicating the amount of powder to be recovered from the peripheral voxels, and wherein the scaled peripheral voxels represent the amount of powder that can be recovered from the peripheral voxels; and The clean-compensated recovered voxels are determined based on scaled peripheral voxels, wherein the quantity of recovered powder is determined based on the clean-compensated recovered voxels, and the clean-compensated recovered voxels are voxels determined based on clean-compensation calibration.
3. The method as described in claim 2, wherein, Determining the peripheral voxels includes: A set of voxels is binarized to determine the binary voxels that include both object voxels and non-object voxels; Inflate the object voxel to produce an extended voxel; and An XOR operation is performed on the extended voxel and the binary voxel to produce the peripheral voxel.
4. The method of claim 3, wherein, Determining clean-compensated recovered voxels involves performing an OR operation on scaled peripheral voxels and the binary voxels to produce clean-compensated recovered voxels.
5. The method of claim 2, further comprising: Identify free powder voxels; An AND operation is performed on the cleaned and compensated recovered voxels and the free powder voxels to produce recyclable voxels.
6. The method of claim 5, wherein, Determining the free powder voxel includes performing a flooding process on the 3D fabricated construct.
7. The method of claim 1, wherein, Determining the quantity of the recovered powder includes determining the mass of the recovered powder corresponding to the recovered voxel.
8. The method of claim 1, further comprising determining the overall quality level of the voxel based on estimated powder degradation.
9. The method of claim 8, further comprising determining the mass of the fresh powder to produce a powder blend having a target quality level.
10. An apparatus for determining powder recovery, comprising: Memory; as well as A processor coupled to the memory, wherein the processor is configured to perform the method as described in any one of claims 1-9.
11. The apparatus of claim 10, wherein, The processor is used to determine the quantity of fresh powder that meets the target quality level.
12. A non-transitory tangible computer-readable medium storing executable code, the computer-readable medium comprising: Code for causing the processor to execute the method as described in any one of claims 1-9.
Citation Information
Patent Citations
Build material recovery for three-dimensional (3D) printer
CN110719839A
3D printing
WO2021015728A1