Paths
A path defines the direction and magnitude of motion for a preserve. Every input preserve needs at least one path to tell the solver which direction force is applied. Output preserves also need paths to specify the desired motion direction. Fixed preserves and boundary fixed preserves do not use paths.
Paths are children of preserves in the scene tree. Their origin is anchored to the parent preserve's part position.
Path types
deFlex supports two path types: Linear and Rotational.
Linear path
A linear path defines translational motion along a straight line.
| Property | Type | Description |
|---|---|---|
| Name | Text | Display name shown in the scene tree and properties panel. |
| Direction | Vector3 (x, y, z) | Direction and magnitude of the motion. The vector length represents the displacement distance. |
| Length | Read-only | Computed Euclidean length of the direction vector, displayed in the current length unit. |
| Line Width | Number (0.5 -- 10) | Visual thickness of the path arrow in the viewport. Does not affect the solver. |
The direction vector is editable per-axis. Changing the vector changes both the direction and magnitude of the prescribed motion. The length readout updates automatically.
In the viewport, a linear path renders as an arrow originating at the parent part's position and extending along the direction vector.
Rotational path
A rotational path defines motion around an axis of rotation.
| Property | Type | Description |
|---|---|---|
| Name | Text | Display name. |
| Angle | Number | Rotation angle in degrees (displayed in the current angle unit). |
| Clockwise | Checkbox | When checked, rotation follows the clockwise direction looking down the axis. Default is counterclockwise. |
| Axis | Vector3 (x, y, z) | The rotation axis. Only shown in 3D scenes. In 2D scenes, the axis is locked to Z (rotation in the XY plane). |
| Center Offset | Vector3 (x, y, z) | Offset of the rotation center from the parent part position. Collapsed by default; expand the "Center Offset" section to edit. |
| Line Width | Number (0.5 -- 10) | Visual thickness of the arc in the viewport. |
The rotation center is anchored to the parent part. Use the center offset to shift the rotation axis away from the part's origin when the pivot point is not at the part center.
In the viewport, a rotational path renders as an arc centered on the parent part (plus any offset), sweeping through the specified angle.
Multi-path support
Output preserves support multiple paths. This allows you to describe complex motion patterns that combine translation and rotation, or multiple translation directions. In the scene tree, output preserves always show a "+" placeholder for adding additional paths, even when paths already exist.
Input preserves support a single path. The following preserve subtypes also support multiple paths:
- Deformation function outputs
- Deformation-from-STEP outputs
Fixed preserves and boundary fixed preserves do not use paths at all.
How paths attach to preserves
Each preserve supports a specific number of paths:
- Single-path preserves (input preserves): support one path.
- Multi-path preserves (output, deformation function, deformation-from-STEP): support one or more paths.
- No-path preserves (fixed, boundary fixed): do not use paths.
When you create a preserve through the toolbar or context menu, deFlex does not automatically create a path. The scene tree shows a dashed placeholder labeled "Add path" beneath the preserve until you create one. The preserve is not valid for solving until at least one path is attached (except for fixed preserves and certain output subtypes like Output surfaces and Deformation-from-STEP outputs).
Paths and the solver
The solver reads path data to determine boundary conditions:
- Linear path direction vector: used directly as the force/displacement direction. The vector magnitude sets the prescribed displacement or force magnitude.
- Rotational path angle and axis: converted to a rotation boundary condition. The center offset positions the rotation center relative to the preserve.
Changing a path updates the solver boundary conditions for the next run. Existing solver results are not affected retroactively.
Related pages
- Input Preserves -- where paths are required
- Output Preserves -- multi-path support
- Scene Tree -- how paths appear in the hierarchy
- Object Types -- full property reference for linear and rotational paths