IP Library Granted Patent US 12694171
Granted Patent B2
US 12694171 · App. 17/787,969 · Granted Jul 28, 2026

Method of determining toolpaths for an infill structure for a digital 3D model

Inventor: Tim Kuipers (Utrecht, NL)
Assignee: Ultimaker B.V.
G06F30/17B29C64/393G05B19/4099G05B19/4103G05B2219/49023
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 12694171
App. No.
17/787,969
Granted
Jul 28, 2026
Kind
B2
Abstract

The invention relates to a method of determining toolpaths for an infill structure for a digital 3D model. The invention provides for a framework for planning toolpaths with control over the adaptive width for minimizing over- and underfill and introduce a beading scheme which reduces the bead width variation compared to the state of the art. We show that this framework supports various control schemes (so-called ‘beading schemes’) for determining the bead spacing and extrusion widths. Furthermore we present an approach to accurately realize adaptive bead width. The proposed method provides for a geometric framework allowing various adaptive bead width control schemes used to generate contour-parallel toolpaths which minimize under- and overfill.

Claims (26)

1 . A method of determining toolpaths for an infill structure for a digital 3D model, the method comprising:

a. receiving a polygon, the polygon representing an outline of a layer of the digital 3D model;

b. determining a medial axis within the polygon, the medial axis comprising a number of nodes and a number of edges;

c. decomposing areas between the medial axis and the polygon into a set of trapezoids and triangles, by introducing further edges from the nodes of the medial axis to a closest point on the polygon;

d. defining a skeleton comprising the nodes and edges of the medial axis and the further edges;

e. determining, for each node of the skeleton, a feature radius value, where the feature radius of a location on the skeleton is defined as the radius of an inscribed circle centered at the location;

f. calculating, for each edge of the skeleton, a significance value S with S=r1−r2|/D, wherein r1 is the feature radius of a first node of the edge, and r2 is a feature radius of a second node of the edge, and D is a length of the edge;

g. marking those edges of the skeleton that have a significance value S which is lower than a predefined threshold T to obtain the marked edges;

h. defining marked nodes as those nodes which are either connected to a marked edge or have a feature radius larger than all of their neighboring nodes, and defining unmarked nodes as being all those nodes that are not marked nodes;

i. assigning each marked node in the skeleton a bead count value b, which is defined as a number of beads to fit along a diameter of the inscribed circle centered at the respective marked node;

j. assigning to each marked node, a bead distribution B, defined as the combination of a location list L of feature radii values and a bead width list W of bead widths, for which the location list and bead width list have a size of at least half of the bead count b assigned to that marked node;

k. assigning to each unmarked node, a bead distribution B which is based on the bead distributions of nodes connected to the unmarked node via an edge of the skeleton;

l. determining, on each unmarked edge, junctions at those locations along the unmarked edge where the feature radius corresponds to any of the feature radii values in the location list of the node with the higher feature radius value of the two nodes connected to the respective unmarked node and assigning to each of the junctions a corresponding bead width out of the bead width list W;

m. filling the polygon with toolpaths, the toolpaths passing through the junctions and having a variable width defined by the assigned bead widths.

2 . The method according to claim 1 , wherein before step c), the method comprises:

finding curved lines in the medial axis and dividing the curved lines into a number of straight edges, thereby increasing the number of nodes and edges of the medial axis.

3 . The method according to claim 1 , wherein the bead count value b of a node is determined by b=round(2r w*), with r being the feature radius of the node and w* being the preferred bead width.

4 . The method according to claim 1 , wherein the method comprises:

determining on each of the marked edges one or more anchor points using the bead count of the associated nodes;

optionally, removing anchor points which lie within a threshold distance from each other;

determining around each anchor point, a transition starting point and a transition end point lying on the associated marked edge;

adding the transition starting point and transition end point of all the anchor points as further nodes into the skeleton;

adding, for each one of the further nodes of the skeleton an unmarked edge between each of the further nodes of the skeleton and a closest point on the polygon which is closest to the further node.

5 . The method according to claim 4 , wherein the one or more anchor points are determined at locations on the skeleton which have a feature radius for which the quantization operator q transitions from n to n+1, with n an integer value.

6 . A computing device comprising one or more processing units, the one or more processing units being arranged to perform the method according to claim 1 .

7 . A computer program product comprising code embodied on computer-readable storage and configured so as when run on one or more processing units to perform the method according to claim 1 .