Toolpath-Mesh Intersection Module

The toolpath-mesh intersection module computes the geometric intersections between various toolpaths used in additive manufacturing processes and a finite element mesh of the part to be manufactured.

This page discusses:

Introduction

A toolpath represents the motion of a given component of a machine tool such as a laser source, a recoater roller, or a wire-feed nozzle. A toolpath is defined by a geometric shape attached to a reference point that moves along a path. The path is defined by connecting a collection of points in space and time. An event series defines the collection of points. The first field defined in the event series describes a state of the tool, such as the laser power, the "on/off" state for a recoater roller, or a wire-feed nozzle. This field is assumed to be constant between two consecutive points. A zero-valued field indicates the "off" state of the tool.

Three shapes are considered for toolpath-mesh intersection: a point, an infinite line, and a box (see Figure 1). These shapes provide different levels of abstraction to characterize the shape of the tool depending on the particular application. In addition to these three shapes, a scan pattern that describes the idealized motion of a tool instead of the actual path of the motion can be used. The topics below list some of the quantities computed by the toolpath-mesh intersection module for each shape and a scan pattern. For a complete list of the quantities computed by the module, see the tables in Data Retrieval Utility Routines.

Point, infinite line, and box toolpaths.

Point Toolpath-Mesh Intersection

The point representation of the tool shape is useful for situations where the action zone of the tool is very small compared to the mesh size and can be idealized as a point; for example, when the laser beam radius is very small compared to the element size.

Figure 2 depicts intersections of a point toolpath with a finite element, E. The toolpath is defined by the path connecting points (X1,X2,X3,...,Xn) at times (t1,t2,t3,...,tn). It is assumed that the tool travels at a constant velocity over a segment connecting two successive points in the path. The first field defined in the event series represents a state of the tool, such as the laser power. The field defined for a point Xn remains constant over the segment connecting Xn and Xn+1. All path segments where the tool is in the "on" state are required to be perpendicular to the global zg-direction. For a given element, the toolpath-mesh intersection module computes the number of intersections of the toolpath, the coordinates of the start and end points (ξs and ξe, respectively, expressed in the element reference coordinate system), and the start and end times (ts and te, respectively) for each intersection.

Point toolpath-mesh intersection.

Infinite Line Toolpath-Mesh Intersection

The infinite line representation of the tool shape is useful to describe the process of layer-by-layer material deposition, such as the action of the recoater roller in powder bed fabrication.

Figure 3 depicts intersections of an infinite line toolpath with a finite element, E. The toolpath is defined by an infinite line attached to a reference point that is moving along the path connecting points (X1,X2,X3,...,Xn) such that the reference point is at Xi at time ti. It is assumed that the tool travels at a constant velocity over a segment connecting two successive points in the path, and the infinite line remains perpendicular to the segment. The first field defined in the event series represents a state of the tool, such as the "on/off" state of a recoater roller. The field defined for a point Xn remains constant over the segment connecting Xn and Xn+1. All path segments when the tool is in the "on" state must be perpendicular to the global zg-direction. For a given element, the toolpath-mesh intersection module computes the number of intersections, m, of the toolpath and the volume fraction, vf, for each intersection. The volume fraction is equal to the ratio of the partial volume of the element below the z-plane defined by the motion of the infinite line following the path to the total volume of the element. The module also computes the area, A; the coordinate Xa with respect to the element reference coordinate system of the center of intersection of the z-plane and the element; as well as the area fractions, afi, below the z-plane for all sides (i = 1 to the number of side facets of the element) for each intersection.

Infinite line toolpath-mesh intersection.

Box Toolpath-Mesh Intersection

The box shape functionality is intended for situations where the action of the tool is best described as a spatially varying distribution. Examples include modeling a Goldak's double ellipsoid heat source and polymer extrusion material deposition when using fine meshes.

Intersections of a box toolpath and a mesh can be computed using two different algorithms or approaches; namely, the subsegment approach and the subelement approach. For both the subsegment and the subelement approaches, the box length in the local xl-direction can be set to zero to obtain a rectangular-shaped toolpath.

Using the Subsegment Approach

Figure 4 depicts intersections of a box toolpath with a finite element, E, using the subsegment approach. The toolpath is defined by a box attached to a reference point that is moving along the path connecting points (X1,X2,X3,...,Xn) such that the reference point is at Xi at time ti. A segment-specific local coordinate system is defined by the vectors x1, y1, and z1. Vector x1 is along the segment connecting two successive points, and z1 is a user-defined vector. The origin of this local system is at the start point of the segment. The box is oriented along the local coordinate system directions, and the center is at a constant user-defined offset, F, from the reference point on the segment. The box lengths L1, L2, and L3 along the local directions are user defined. The box is divided into a user-defined number of smaller boxes. It is assumed that a subsegment starts at the center of each smaller box and is parallel to the main segment. A user-defined weight is associated with each subsegment. The weight is multiplied with the field associated with the main segment to obtain a field associated with the subsegment. The sum of the weights of all of the subsegments is usually equal to one. For a given element, the toolpath-mesh intersection module computes the number of intersections of subsegments with the element, the coordinates of the start and end points (ξs and ξe, respectively, expressed in the element reference coordinate system), and the start and end times (ts and te, respectively) for each intersection.

Box toolpath-mesh intersection using the subsegment approach.

Using the Subelement Approach

In the subelement approach, the box is not divided into smaller boxes. Instead, the element is subdivided into subelements of the same topology (see Figure 5). The number of subelement divisions of an element is set automatically by the module based on the element size and the minimum dimension of the box. The toolpath-mesh intersection module computes the number of subelements that have their centers inside the path of the box, the coordinates of the centers of the subelements, the volume of the subelements, and the start and end times of the box passing through the centers of the subelements.

Box toolpath-mesh intersection using the subelement approach.

Scan Pattern–Mesh Intersection

Some additive manufacturing processes are characterized by a tool trajectory that follows a repetitive pattern in space; for example, powder bed fusion with the laser beam following a predefined island scanning strategy. In such cases, instead of describing individual trajectories of a toolpath, it is more effective to define a scan pattern that represents the idealized motion of a tool inside a part. The part being printed is divided into equally spaced (uniform thickness, h) slices or cutting planes that are perpendicular to the build axis, K (see Figure 6(a) and Figure 6(b)). The build axis system IJK is a user-defined coordinate system that indicates the printing direction, K. A scan pattern is a representation of the movements of a tool that is moving or scanning regions of a cutting plane or slice.

A scan pattern with four pattern patches.

The scan pattern consists of a rectangular unit cell (see Figure 7). The rectangular unit cell is repeated to cover the cutting plane. The rectangular unit cell consists of a number of smaller rectangular patches. Each patch can define a local angle, φ, between the direction of the scanning motion of the tool and the I-axis. You can assign an eigenstrain tensor to each of the pattern patches representing the inelastic deformation induced by the process. You can define a scan pattern by defining extents of individual patches (xmin, ymin) and (xmax, ymax). All patches together must form a rectangular unit cell that must be situated entirely in the first quadrant of the IJ plane, and one corner of the cell must be at (0, 0).

A scan pattern with four patches with local orientations rotated by 90°, 0°, 135°, and 45° with respect to the I-axis of the build axis system.

A scan pattern is active inside a scanning region. A scanning region is a build axis–oriented bounding box defined by its extent (xmin, ymin, zmin) and (xmax, ymax, zmax) (see Figure 6(a)). The height of a scanning region (zmaxzmin) must be an integral multiple of the thickness, h, of a slice. Multiple nonoverlapping scanning regions can be defined to cover the entire part. A different scan pattern can be active inside each scanning region. All scanning regions share the same build axis system. A layer-to-layer or slice-to-slice rotation angle, θ, can be defined. The scan pattern is rotated by (i1)θ on the ith slice for layer i>1 (see Figure 6(c)).

For a given element, the toolpath-mesh intersection module computes the number of slices, m, inside the element in a given increment (see Figure 8). It finds which pattern patch contains the center of each slice in that element and the local orientation of that patch considering the layer-to-layer rotation, θ, and the local rotation, φ, of the scanning direction in that patch. The module also computes the partial volumes, vf, of the element below each slice.

Scan pattern overlaid on an element.

Supported Elements

Linear and quadratic 4-, 5-, 6-, 8-, 10-, 15-, and 20-node solid elements and 3-, 4-, 6-, and 8-node shell elements with constant shell thickness are supported. For shell elements, the middle surface of the shell must be the reference surface.

Activating and Using the Toolpath-Mesh Intersection Module

The toolpath-mesh intersection module enables simulations of a wide range of additive manufacturing processes. The functionality provides a high level of user control and customization using the Toolpath-Mesh Intersection Utility Routines, user subroutines, and table collections (see Table Collections, Parameter Tables, and Property Tables). This section describes a general workflow for the simulation of an additive manufacturing process using user subroutines and utility routines. The toolpath-mesh intersection module is also used in special-purpose techniques for common additive manufacturing processes. You do not have to invoke the toolpath-mesh intersection module utilities or the user subroutines to use the special-purpose techniques.

You can use progressive element activation in a structural or a thermal analysis to simulate controlled deposition of raw materials. You can define a specific type of toolpath (for example, the infinite line or the box toolpath) that best approximates the sequence of the material deposition for the additive manufacturing process and compute the intersection of that toolpath with the finite element mesh. You can use the geometric information of the intersection to define the active/inactive status of elements at a given increment by invoking the toolpath-mesh intersection module utilities from the user subroutines that are associated with the progressive element activation.

Table 1. Subroutines associated with the progressive element activation.
UEPActivationSetup

Set up data needed for the toolpath-mesh intersection module for material deposition and the evolving free surface.

UEPActivationVol

Find the intersection information from the toolpath-mesh intersection module and define active/inactive status of elements and/or volume fraction of the element based on the intersection information.

Specify the volume fraction increase for element activation.

Optionally, specify material orientation and eigenstrain components to be applied upon activation.

UEPActivationFacet

Specify the facet area fraction of an element to apply a film or radiation condition during progressive element activation.

You can define a moving heat flux to simulate laser-induced heating in a thermal analysis. You can define a specific type of toolpath that best approximates the motion and the nature of the heat source for the additive manufacturing process. You can use the geometric information of the intersection to define a heat flux in an element at a given increment by invoking the toolpath-mesh intersection module utilities from the user subroutines that are associated with the moving heat flux. The flowchart in Figure 9 depicts a workflow of a typical additive manufacturing process simulation.

Table 2. Subroutines associated with the moving heat flux.
UMDFluxSetup

Set up data needed for the toolpath-mesh intersection module for the moving heat source.

UMDFlux

Prescribe the heat flux from the moving heat source.

The workflow of a typical AM process simulation.