Files
cadSet/SimpleCADAPI/docs/api/union_rsolid.md
T

65 lines
1.8 KiB
Markdown

# union_rsolid
## API Definition
```python
def union_rsolid(
*solids: Union[Solid, Sequence[Solid]],
clean: bool = True,
glue: bool = _DEFAULT_UNION_GLUE,
tol: Optional[float] = None,
tracking_policy: TrackingPolicy | str = TrackingPolicy.FULL,
) -> Solid
```
*Source: operations.py*
## Import Surface
- top-level: `from simplecadapi import union_rsolid`
## Description
Compute the boolean union and return one solid.
Accepts standalone `Solid` objects, lists of `Solid`, and nested sequences,
but always returns exactly one `Solid`. If the kernel cannot produce
exactly one solid result, the API raises a clear error instead of
returning multiple pieces.
## Parameters
### solids
- **Description**: One or more Solid objects or sequences of Solid. Nested sequences are flattened before processing.
### clean
- **Description**: Unify same-domain faces and remove splitter edges when possible.
### glue
- **Description**: Enable OCC glue mode for touching or partially overlapping inputs. Defaults to True for SimpleCAD's standard union behavior.
### tol
- **Type**: `Optional fuzzy-boolean tolerance used by the OCC union kernel. When`
- **Description**: omitted, SimpleCAD chooses a conservative scale-aware tolerance.
### tracking_policy
- **Description**: `TrackingPolicy.FULL` computes topology history and lineage. `TrackingPolicy.GRAPH` preserves the canonical union node, parameters, inputs, result topology references, and replay while omitting `TopoDelta` and history-derived topology lineage. Geometry options `clean`, `glue`, and `tol` are unchanged.
## Returns
Solid: The merged union result.
## Examples
```python
body = make_box_rsolid(10, 4, 4, bottom_face_center=(0, 0, 0))
rib = make_box_rsolid(2, 4, 4, bottom_face_center=(4, 0, 0))
merged = union_rsolid(body, rib)
print(merged.get_volume())
```