# US 11,027,493 B2 · Additive manufacturing of a 3D part

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,027,493 B2
- Document ID: US11027493B2
- Status: Granted
- Kind: B2
- Application number: 16/186,094
- Filed: 2018-11-09
- Published: 2019-05-09
- Granted: 2021-06-08
- Earliest claimed: 2017-11-09
- Assignees: Dassault Systemes
- Applicants: Dassault Systemes
- Inventors: Martin-Pierre Schmidt
- Web page: https://patentgrep.com/patent/US11027493B2

## CPC

- B29C 64/393: for controlling or regulating additive manufacturing processes
- B29C 64/386: Data acquisition or data processing for additive manufacturing
- B33Y 50/00: Data acquisition or data processing for additive manufacturing
- G05B 19/4099: Surface or curve machining, making three-dimensional [3D] objects, e.g. desktop manufacturing
- G06F 30/00: Computer-aided design [CAD]
- G06F 30/17: Mechanical parametric or variational design
- G06F 30/23: using finite element methods [FEM] or finite difference methods [FDM]
- G06T 17/00: Three-dimensional [3D] modelling for computer graphics
- G06T 17/20: Finite element generation, e.g. wire-frame surface description, {tesselation}
- B33Y 50/02: for controlling or regulating additive manufacturing processes
- G05B 2219/49023: 3-D printing, layer of powder, add drops of binder in layer, new powder
- G06F 2113/10: Additive manufacturing, e.g. three-dimensional [3D] printing
- G06F 2119/18: Manufacturability analysis or optimisation for manufacturability
- B29C: SHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING (making preforms B29B11/00; making laminated products by combining previously unconnected layers which become one product whose layers will remain together B32B37/00 - B32B41/00)
- B33Y: ADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

Described is a computer-implemented method of additive manufacturing of a three-dimensional part. The method includes obtaining a surface representation of a 3D part in a 3D scene, the surface representation being enclosed inside a bounding volume, discretizing the scene into voxels, forming an unsigned distance field by storing a minimal distance value to the surface representation of the part for each voxel, determining one or more voxels located outside the bounding volume, the one or more voxels located outside the bounding volume being associated with a label, propagating by flood filling the label until a stopping condition is met, which is reaching a gradient inversion of the distance field, inverting the sign of the distance value of all unlabeled voxels so as to obtain a signed distance field, computing an iso-surface of the part at iso-value zero based on the signed distance field, and additive manufacturing the part.

## Claims

### Claim 1

A computer-implemented method of additive manufacturing of a three-dimensional (3D) part, comprising:
obtaining a surface representation of a 3D part in a 3D scene, the surface representation being enclosed inside a bounding volume;
discretizing the 3D scene into voxels;
forming an unsigned distance field by storing a minimal distance value to the surface representation of the 3D part for each voxel;
determining one or more voxels located outside the bounding volume, the one or more voxels located outside the bounding volume being associated with a label;
propagating flood filling the label until a stopping condition is met, which is reaching a gradient inversion of the distance field;
inverting the sign of a distance value of all unlabeled voxels to obtain a signed distance field;
computing an iso-surface of the 3D part at iso-value zero based on the signed distance field; and
additive manufacturing the 3D part,
wherein the propagating by flood filling the label until the stopping condition is met further comprises:
comparing the value of the minimal distance value of labelled voxel with the value of the minimal distance value of a neighbor unlabeled voxel, and
propagating the label to the unlabeled voxel if the minimal distance value of the neighbor unlabeled voxel is equal or lower that the value of the minimal distance value of labelled voxel.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein storing a minimal distance value to the surface representation of the 3D part for each voxel further comprises:
determining the voxels having a minimal distance value that is greater than a band size, the band size being a pre-determined distance value; and
assigning a same value to the determined voxels, the same value being different from the values comprises between 0 and the band size.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, wherein the band size is equal to or greater than twice a size of a voxel.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the minimal distance values are stored in a first matrix, each cell of the first matrix corresponding to a voxel with a set of coordinates in 3D space and each cell of the first matrix containing a scalar value, a set of cells of the first matrix forming a scalar field.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, wherein the values of the voxels having a minimal distance value that is greater than a band size are not stored in the matrix.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, further comprising, before discretizing the 3D scene:
selecting a size of the voxels that discretize the 3D scene.

### Claim 7 (depends on 4)

The computer-implemented method of claim 4, further comprising:
storing in a second matrix labels associated with voxels.

### Claim 8 (depends on 7)

The computer-implemented method of claim 7, wherein the first matrix and the second matrix are distinct.

### Claim 9 (depends on 2)

The computer-implemented method of claim 2, wherein the minimal distance values are stored in a first matrix, each cell of the first matrix corresponding to a voxel with a set of coordinates in 3D space and each cell of the first matrix containing a scalar value, a set of cells of the first matrix forming a scalar field.

### Claim 10 (depends on 3)

The computer-implemented method of claim 3, wherein the minimal distance values are stored in a first matrix, each cell of the first matrix corresponding to a voxel with a set of coordinates in 3D space and each cell of the first matrix containing a scalar value, a set of cells of the first matrix forming a scalar field.

### Claim 11 (depends on 9)

The computer-implemented method of claim 9, wherein the values of the voxels having a minimal distance value that is greater than the band size are not stored in the matrix.

### Claim 12 (depends on 2)

The computer-implemented method claim 2, further comprising, before discretizing the 3D scene:
selecting a size of the voxels that discretize the 3D scene.

### Claim 13 (depends on 3)

The computer-implemented method of claim 3, further comprising, before discretizing the 3D scene:
selecting a size of the voxels that discretize the 3D scene.

### Claim 14 (depends on 4)

The computer-implemented method of claim 4, further comprising, before discretizing the 3D scene:
selecting a size of the voxels that discretize the 3D scene.

### Claim 15 (depends on 5)

The computer-implemented method of claim 5, further comprising, before discretizing the 3D scene:
selecting a size of the voxels that discretize the 3D scene.

### Claim 16 (depends on 2)

The computer-implemented method of claim 2, further comprising:
storing in a second matrix labels associated with voxels.

### Claim 17 (depends on 3)

The computer-implemented method of claim 3, further comprising:
storing in a second matrix labels associated with voxels.

### Claim 18

A computer readable storage medium having recorded thereon a computer program that when executed by a computer causes the computer to implement a computer-implemented method of instructing additive manufacturing of a three-dimensional (3D) part, comprising:
obtaining a surface representation of a 3D part in a 3D scene, the surface representation being enclosed inside a bounding volume;
discretizing the 3D scene into voxels;
forming an unsigned distance field by storing a minimal distance value to the surface representation of the 3D part for each voxel;
determining one or more voxels located outside the bounding volume, the one or more voxels located outside the bounding volume being associated with a label;
propagating flood filling the label until a stopping condition is met, which is reaching gradient inversion of the distance field;
inverting the sign of a distance value of all unlabeled voxels so as to obtain a signed distance field;
computing an iso-surface of the 3D part at iso-value zero based on the signed distance field; and
instructing additive manufacturing of the 3D part,
wherein the propagating by flood filling the label until the stopping condition is met further comprises:
comparing the value of the minimal distance voxel of labelled voxel with the value of the minimal distance value of a neighbor unlabeled voxel, and
propagating the label to the unlabeled voxel if the minimal distance value of the neighbor unlabeled voxel is equal or lower that the value of the minimal distance value of labelled voxel.

### Claim 19

A system comprising:
a processor coupled to a memory and a graphical user interface, the memory having recorder thereon a computer program that when executed by the processor causes the processor to instruct additive manufacturing of a three-dimensional (3D) part by being configured to:
obtain a surface representation of a 3D part in a 3D scene, the surface representation being enclosed inside a bounding volume;
discretize the 3D scene into voxels;
form an unsigned distance field by storing a minimal distance value to the surface representation of the 3D part for each voxel;
determine one or more voxels located outside the bounding volume, the one or more voxels located outside the bounding volume being associated with a label;
propagate by flood filling the label until a stopping condition is met, which is reaching a gradient inversion of the distance field;
invert the sign of a distance value of all unlabeled voxels so as to obtain a signed distance field;
compute an iso-surface of the 3D part at iso-value zero based on the signed distance field; and
instruct additive manufacturing of the 3D part,
wherein the processor is further configured to propagate by flood filling the label until the stopping condition is met by being further configured to:
compare the value of the minimal distance value of labelled voxel with the value of the minimal distance value of a neighbor unlabeled voxel, and
propagate the label to the unlabeled voxel if the minimal distance value of the neighbor unlabeled voxel is equal or lower that the value of the minimal distance value of labelled voxel.
