# US 10,872,178 B2 · Processing 3D objects

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

- Number: US 10,872,178 B2
- Document ID: US10872178B2
- Status: Granted
- Kind: B2
- Application number: 16/349,669
- Filed: 2017-01-29
- Published: 2019-11-07
- Granted: 2020-12-22
- Earliest claimed: 2017-01-29
- Assignees: Hewlett-Packard Development Company, L.P.
- Applicants: Hewlett-Packard Development Company, L.P.
- Inventors: Jian Fan; Jun Zeng
- Web page: https://patentgrep.com/patent/US10872178B2

## CPC

- G06F 30/00: Computer-aided design [CAD]
- B29C 64/386: Data acquisition or data processing for additive manufacturing
- G06F 30/10: Geometric CAD
- G06T 17/00: Three-dimensional [3D] modelling for computer graphics
- B33Y 50/00: Data acquisition or data processing for additive manufacturing
- G06F 2113/10: Additive manufacturing, e.g. three-dimensional [3D] printing
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- 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)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- 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

## Abstract

In an example implementation, a method of processing a 3D object includes receiving a 3D object model representing a new 3D object to be processed. The method includes computing attributes of the object and comparing the object attributes with stored object attributes from previously processed 3D objects. When the comparison provides a match between the object attributes and stored object attributes, then a print recipe associated with the matching stored object attributes is retrieved.

## Claims

### Claim 1

A method of processing a 3D object, comprising:
receiving a 3D object model representing an object to be processed;
computing geometric and material property object attributes of the object;
wherein computing a geometric object attribute comprises normalizing an alignment of the object through:
orienting the object on a 3D coordinate system;
computing a center of mass of the object;
translating the object such that the center of mass is placed at a coordinate of the 3D coordinate system;
rotating the object about the coordinate such that a shortest dimension of the object is aligned with a first axis of the 3D coordinate system;
rotating the object about the first axis such that a longest dimension of the object is aligned with a second axis of the 3D coordinate system; and,
computing a minimum bounding box for the object; and,
wherein computing material property object attributes comprises:
slicing the object into layers perpendicular to the first axis with a resolution of a voxel;
dividing each layer into voxels;
computing bounding boxes for each layer of the object; and,
computing values of attributes for the whole object, for each layer of the object, and for each voxel;
comparing the object attributes with stored object attributes; and,
retrieving a previous print recipe associated with stored object attributes that match the object attributes.

### Claim 2 (depends on 1)

A method as in claim 1, further comprising, when the comparing does not provide a match:
generating a print recipe for the object;
storing the object attributes and the print recipe; and,
associating the object attributes with the print recipe.

### Claim 3 (depends on 1)

A method as in claim 1, wherein comparing the object attributes with stored object attributes comprises determining if each object attribute falls within an error tolerance of a corresponding stored object attribute.

### Claim 4 (depends on 1)

A method as in claim 1, wherein:
the coordinate at which the center of mass is placed is the origin of the 3D coordinate system;
the first axis is the Z axis of the 3D coordinate system; and,
the second axis is the X axis of the 3D coordinate system.

### Claim 5 (depends on 1)

A method as in claim 1, wherein normalizing an alignment of the object further comprises linearly scaling the bounding box such that the bounding box comprises a unit length.

### Claim 6 (depends on 1)

A method as in claim 1, wherein:
the first axis is the Z axis of the 3D coordinate system;
dividing each layer into voxels comprises dividing each layer into N-by-N voxels;
computing bounding boxes comprises computing two-dimensional (2D) bounding boxes for each layer of the object; and,
computing values of attributes comprises computing minimum and maximum values of attributes for the whole object, for each layer of the object, and for each voxel.

### Claim 7 (depends on 1)

A 3D printing system for processing a 3D object according to the method of claim 1, the system comprising:
a memory device comprising the stored object attributes and associated previous object print recipes from previously processed 3D objects; and,
a processor programmed with instructions from an attribute module executable to compute the object attributes and compare the object attributes with the stored object attributes and retrieve a previous object print recipe.

### Claim 8 (depends on 7)

A 3D printing system as in claim 7, further comprising a 3D print engine to print a 3D object based on the retrieved previous object print recipe.
