IP Library Granted Patent US 10,248,740
Granted Patent B2
US 10,248,740 · App. 13/859,058 · Granted Apr 2, 2019

Three-dimensional printing preparation

Inventors: Saul Griffith (San Francisco, CA); Martin Wicke (San Francisco, CA); Keith Pasko (San Francisco, CA); Geoffrey Irving (San Francisco, CA); Sam Calisch (San Francisco, CA); Tucker Gilman (San Francisco, CA); Daniel Benoit (Alameda, CA); Jonathan Bachrach (Berkeley, CA)
Assignee: AUTODESK, INC.
G06F17/50B29C64/386B33Y50/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,248,740
App. No.
13/859,058
Granted
Apr 2, 2019
Kind
B2
Abstract

Embodiments disclosed herein provide systems and methods for preparing geometry for 3D printing. In one embodiment, a 3D printing preparation application receives 3D geometry and repairs non-manifold edges and non-manifold vertices, producing a topological manifold geometry. The 3D printing preparation application then welds coincident edges without coincident faces and fills holes in the geometry. The 3D printing preparation application may further perform resolution-aware thickening of the geometry by estimating distances to a medial axis based on distances to distance field shocks, and advecting the distance field using a velocity field. A similar approach may be used to perform resolution-aware separation enforcement. Alternatively, one component may be globally thickened and subtracted from another for separation enforcement. The 3D printing preparation application may also split large models and add connectors for connecting the split pieces after printing. In addition, the 3D printing preparation application may generate a 3D print preview.

Claims (85)

1. A computer-implemented method for preparing 3D geometry for 3D printing, comprising:

receiving, by a processor, the 3D geometry;

identifying, by the processor, one or more non-manifold edges in the 3D geometry;

for each non-manifold edge, separating, by the processor, the non-manifold edge into a plurality of edges corresponding to faces meeting at the non-manifold edge, to create a set of patches;

orienting, by the processor, the patches so that coincident faces have topologically consistent normals; and

iteratively stitching, by the processor, boundaries of the patches together, wherein the boundaries are stitched together by stitching a longest zip first.

2. The method of claim 1 , wherein each zip is a boundary between a set of patches which does not change within the zip, and wherein, for any zip, patches with normals incident to the zip have the largest dot product are stitched first.

3. The method of claim 1 , further comprising:

identifying one or more non-manifold vertices; and

duplicating the non-manifold vertices and assigning the duplicated vertices to respective surface components.

4. The computer-implemented method of claim 1 , further comprising:

determining boundaries of holes in the 3D geometry; and

for each hole, recursively inserting additional edges in the hole to fill the hole.

5. The method of claim 4 , wherein the additional edges are inserted based on priority criteria, the priority criteria being one of:

shortest additional edges first,

additional edges along a preferred direction first, and

additional edges closest to a predefined surface first.

6. The method of claim 4 , further comprising:

checking for intersections with the received 3D geometry while inserting the additional edges; and

if an intersection is identified:

recursively splitting a new triangle formed by the inserted additional edge, and

moving a split point associated with the new triangle to avoid the intersection.

7. The computer-implemented method of claim 1 , further comprising:

identifying edges in the 3D geometry closer together in absolute distance but farther apart in geodesic distance; and

inserting triangles into the 3D geometry to connect the identified edges.

8. The method of claim 7 , further comprising repairing the inserted triangles by at least one of: performing edge flips, decimations, and edge collapses.

9. The method of claim 7 , further comprising splitting coincident edges.

10. One or more non-transitory computer-readable storage media storing instructions, which when executed by a computer system, perform operations for preparing 3D geometry for 3D printing, the operations comprising:

receiving the 3D geometry;

identifying one or more non-manifold edges in the 3D geometry;

for each non-manifold edge, separating the non-manifold edge into a plurality of edges corresponding to faces meeting at the non-manifold edge, to create a set of patches; and

iteratively stitching boundaries of the patches together by combining the plurality of edges into a single manifold edge, wherein the boundaries are stitched together by stitching a longest zip first.

11. The non-transitory computer-readable storage media of claim 10 , wherein each zip is a boundary between a set of patches which does not change within the zip, and wherein, for any zip, patches with normals incident to the zip have the largest dot product are stitched first.

12. The non-transitory computer-readable storage media of claim 10 , the operations further comprising:

identifying one or more non-manifold vertices; and

duplicating the non-manifold vertices and assigning the duplicated vertices to respective surface components.

13. The non-transitory computer-readable storage media of claim 10 , medium the operations further comprising:

determining boundaries of holes in the 3D geometry; and

for each hole, recursively inserting additional edges in the hole to fill the hole.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the additional edges are inserted based on priority criteria, the priority criteria being one of:

shortest additional edges first,

additional edges along a preferred direction first, and

additional edges closest to a predefined surface first.

15. The non-transitory computer-readable storage medium of claim 13 , the operations further comprising:

checking for intersections with the received 3D geometry while inserting the additional edges; and

if an intersection is identified:

recursively splitting a new triangle formed by the inserted additional edge and

moving a split point associated with the new triangle to avoid the intersection.

16. The non-transitory computer-readable storage media of claim 10 , the operations further comprising:

identifying edges in the 3D geometry closer together in absolute distance but farther apart in geodesic distance; and

inserting triangles into the 3D geometry to connect the identified edges.

17. The non-transitory computer-readable storage media of claim 16 , the operations further comprising, repairing the inserted triangles by at least one of: performing edge flips, decimations, and edge collapses.

18. The non-transitory computer-readable storage media of claim 16 , further comprising splitting coincident edges.

19. A system, comprising:

a processor; and

a memory, wherein the memory includes an application program configured to perform operations for preparing 3D geometry for 3D printing, the operations comprising:

receiving the 3D geometry,

identifying one or more non-manifold edges in the 3D geometry,

for each non-manifold edge, separating the non-manifold edge into a plurality of edges corresponding to faces meeting at the non-manifold edge, to create a set of patches, and

iteratively stitching boundaries of the patches together by combining the plurality of edges into a single manifold edge, wherein the boundaries are stitched together by stitching a longest zip first.

20. The system of claim 19 , each zip is a boundary between a set of patches which does not change within the zip, and wherein, for any zip, patches with normals incident to the zip have the largest dot product are stitched first.

21. The system of claim 19 , the operations further comprising:

identifying one or more non-manifold vertices; and

duplicating the non-manifold vertices and assigning the duplicated vertices to respective surface components.

22. The system of claim 19 , the operations further comprising:

determining boundaries of holes in the 3D geometry; and

for each hole, recursively inserting additional edges in the hole to fill the hole.

23. The system of claim 22 , wherein the additional edges are inserted based on priority criteria, the priority criteria being one of:

shortest additional edges first,

additional edges along a preferred direction first, and

additional edges closest to a predefined surface first.

24. The system of claim 22 , the operations further comprising:

checking for intersections with the received 3D geometry while inserting the additional edges; and

if an intersection is identified:

recursively splitting a new triangle formed by the inserted additional edge, and

moving a split point associated with the new triangle to avoid the intersection.

25. The system of claim 19 , the operations further comprising:

identifying edges in the 3D geometry closer together in absolute distance but farther apart in geodesic distance; and

inserting triangles into the 3D geometry to connect the identified edges.

26. The system of claim 25 , the operations further comprising:

repairing the inserted triangles by at least one of:

performing edge flips,

decimations, and

edge collapses.

27. The system of claim 25 , the operations further comprising splitting coincident edges.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2019
From: GRIFFITH, SAUL; WICKE, MARTIN; PASKO, KEITH; IRVING, GEOFFREY; CALISCH, SAM; GILMAN, TUCKER; BENOIT, DANIEL; BACHRACH, JONATHAN
To: AUTODESK, INC.
Reel/Frame 048799/0132 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2013
From: GRIFFITH, SAUL; WICKE, MARTIN; PASKO, KEITH; IRVING, GEOFFREY; CALISCH, SAM; GILMAN, TUCKER; BENOIT, DANIEL; BACHRACH, JONATHAN
To: AUTODESK, INC.
Reel/Frame 030850/0538 →
Continuity (2)
Provisional Application 61621942 · Apr 9, 2012
Related Publication 20130297059A1 · Nov 7, 2013
Cited By (1)
US 12,523,982