Loft
Extends BooleanOperation
Inherited from BooleanOperation
add()
add(): this
Additive boolean operation — fuses the result with all intersecting scene objects.
Use .scope() to target specific objects.
'new'()
'new'(): this
No boolean operation — keeps the result as a standalone shape, separate from all other scene objects.
remove()
remove(): this
Subtractive boolean operation — cuts the result from all intersecting scene objects.
Use .scope() to target specific objects.
scope()
scope(...objects: SceneObject[]): this
Narrows the boolean operation scope to specific target objects.
Must be chained after .add() or .remove().
| Parameter | Type | Description |
|---|---|---|
...objects | SceneObject[] | The target objects to operate on. (optional) |
Inherited from SceneObject
name()
name(value: string): this
Sets a custom display name for this object, overriding the default type-based name.
| Parameter | Type | Description |
|---|---|---|
value | string | The display name to assign. |
Methods
connect()
connect(...points: (LazyVertex | PointLike)[]): this
Joins one vertex on each profile, in profile order. Repeat .connect()
for additional connections. Each connection becomes an edge of the loft.
Points may be world coordinates or sketch/selection point references.
Requires closed, planar profiles with one region each. Full circles and
ellipses must be split into arcs to supply vertices. Connections compose
with start/end conditions; guides and thin walls are not yet supported.
| Parameter | Type | Description |
|---|---|---|
...points | (LazyVertex | PointLike)[] | One profile vertex per section, in the loft's profile order. (optional) |
guides()
guides(...guides: SceneObject[]): this
Adds side guide curves (rails) the loft surface must follow. Supports one or two guides in total; a single argument may carry several separate curves (e.g. a sketch holding a curve and its mirror) — each connected chain counts as one guide. Every guide must pass through every profile. Composes with start/end conditions (the condition fades out around each guide's contact point — rails win locally, the condition shapes the rest). Cannot be combined with thin mode.
| Parameter | Type | Description |
|---|---|---|
...guides | SceneObject[] | Sketches or edges forming the guide curves. (optional) |
startCondition()
startCondition(type: LoftConditionType, magnitude?: NumberParam): this
Constrains how the surface leaves the first profile.
| Parameter | Type | Description |
|---|---|---|
type | LoftConditionType | 'none', 'normal' or 'tangent' — see LoftConditionType. |
magnitude | NumberParam | Scales the takeoff strength; defaults to 1. Negative values flip the direction (e.g. inward instead of outward for 'tangent'). (optional) |
endCondition()
endCondition(type: LoftConditionType, magnitude?: NumberParam): this
Constrains how the surface arrives at the last profile.
| Parameter | Type | Description |
|---|---|---|
type | LoftConditionType | 'none', 'normal' or 'tangent' — see LoftConditionType. |
magnitude | NumberParam | Scales the arrival strength; defaults to 1. Negative values flip the direction (e.g. inward instead of outward for 'tangent'). (optional) |
startFaces()
startFaces(...args: (number | FaceFilterBuilder)[]): ISelection
Selects faces on the first profile plane of the loft.
Returns: ISelection
| Parameter | Type | Description |
|---|---|---|
...args | (number | FaceFilterBuilder)[] | Numeric indices or FaceFilterBuilder instances to filter the selection. (optional) |
endFaces()
endFaces(...args: (number | FaceFilterBuilder)[]): ISelection
Selects faces on the last profile plane of the loft.
Returns: ISelection
| Parameter | Type | Description |
|---|---|---|
...args | (number | FaceFilterBuilder)[] | Numeric indices or FaceFilterBuilder instances to filter the selection. (optional) |
sideFaces()
sideFaces(...args: (number | FaceFilterBuilder)[]): ISelection
Selects the lateral faces generated between loft profiles.
Returns: ISelection
| Parameter | Type | Description |
|---|---|---|
...args | (number | FaceFilterBuilder)[] | Numeric indices or FaceFilterBuilder instances to filter the selection. (optional) |
startEdges()
startEdges(...args: (number | EdgeFilterBuilder)[]): ISelection
Selects edges on the first profile plane of the loft.
Returns: ISelection
| Parameter | Type | Description |
|---|---|---|
...args | (number | EdgeFilterBuilder)[] | Numeric indices or EdgeFilterBuilder instances to filter the selection. (optional) |
endEdges()
endEdges(...args: (number | EdgeFilterBuilder)[]): ISelection
Selects edges on the last profile plane of the loft.
Returns: ISelection
| Parameter | Type | Description |
|---|---|---|
...args | (number | EdgeFilterBuilder)[] | Numeric indices or EdgeFilterBuilder instances to filter the selection. (optional) |
sideEdges()
sideEdges(...args: (number | EdgeFilterBuilder)[]): ISelection
Selects edges on the side faces, excluding edges shared with start/end faces.
Returns: ISelection
| Parameter | Type | Description |
|---|---|---|
...args | (number | EdgeFilterBuilder)[] | Numeric indices or EdgeFilterBuilder instances to filter the selection. (optional) |
thin()
thin(offset: NumberParam): this
Enables thin loft mode — offsets the profile edges of each section to create a thin-walled shell instead of lofting filled faces. All profiles must be sketches and share the same topology. Positive values offset outward, negative offsets inward.
| Parameter | Type | Description |
|---|---|---|
offset | NumberParam | The wall offset distance. Positive = outward, negative = inward. |
thin()
thin(offset1: NumberParam, offset2: NumberParam): this
Enables thin loft mode with two offset directions. The two offsets must go in opposite directions. If both have the same sign, the second offset is automatically flipped.
| Parameter | Type | Description |
|---|---|---|
offset1 | NumberParam | The first wall offset distance. Positive = outward, negative = inward. |
offset2 | NumberParam | The second wall offset distance, in the opposite direction of offset1. |
internalFaces()
internalFaces(...args: (number | FaceFilterBuilder)[]): ISelection
Selects faces created inside the solid during loft (e.g., the inner wall of a thin-walled loft from closed profiles).
Returns: ISelection
| Parameter | Type | Description |
|---|---|---|
...args | (number | FaceFilterBuilder)[] | Numeric indices or FaceFilterBuilder instances to filter the selection. (optional) |
internalEdges()
internalEdges(...args: (number | EdgeFilterBuilder)[]): ISelection
Selects edges bounding the internal geometry created during loft.
Returns: ISelection
| Parameter | Type | Description |
|---|---|---|
...args | (number | EdgeFilterBuilder)[] | Numeric indices or EdgeFilterBuilder instances to filter the selection. (optional) |
capFaces()
capFaces(...args: (number | FaceFilterBuilder)[]): ISelection
Selects the cap faces at the open ends of a thin-walled loft from open profiles. These are the small faces connecting the inner and outer walls at the profile endpoints.
Returns: ISelection
| Parameter | Type | Description |
|---|---|---|
...args | (number | FaceFilterBuilder)[] | Numeric indices or FaceFilterBuilder instances to filter the selection. (optional) |
capEdges()
capEdges(...args: (number | EdgeFilterBuilder)[]): ISelection
Selects edges on the cap faces of a thin-walled loft from open profiles.
Returns: ISelection
| Parameter | Type | Description |
|---|---|---|
...args | (number | EdgeFilterBuilder)[] | Numeric indices or EdgeFilterBuilder instances to filter the selection. (optional) |