Pular para o conteúdo principal

raygeo.ops.assembly.wavefront

Functions

adaptive_wavefronts()

adaptive_wavefronts(
cleared: ops.cut.cleared_area.ClearedArea,
pocket_boundary: Sequence[tuple[float, float]],
islands: Sequence[Sequence[tuple[float, float]]] = [],
tool_radius: float = 3,
step_over: float = 2,
z: float = 0,
area_tolerance: float = 1,
cut_feed_rate: int = 1200,
cut_power: float = 1,
) -> ops.Ops

Inside-out adaptive wavefronts.

Starting from the cleared state, each iteration expands the cleared boundary outward by step_over, clips to the valid tool area (pocket boundary offset inward by tool_radius, with islands excluded), and adds the result back to cleared. The loop terminates when the newly added area drops below area_tolerance.

Each ring fragment is emitted as MoveTo + LineTo at height z with cut_feed_rate applied.

ParameterTypeDescription
clearedops.cut.cleared_area.ClearedAreaClearedArea instance (mutated in place).
pocket_boundarySequence[tuple[float, float]]Outer boundary of the pocket.
islandsSequence[Sequence[tuple[float, float]]] = []List of island (hole) polygons (default []).
tool_radiusfloat = 3Tool radius in mm (default 3.0).
step_overfloat = 2Radial expansion per iteration (default 2.0).
zfloat = 0Z height for generated commands (default 0.0).
area_tolerancefloat = 1Minimum area increase to continue (default 1.0).
cut_feed_rateint = 1200Feed rate for cutting moves (default 1200).
cut_powerfloat = 1Laser power for cutting moves (0.0-1.0, default 1.0).
Returnsops.OpsOps with wavefront cutting commands.

Adaptive wavefronts expanding outward from the initial cleared disk (blue) to fill the pocket boundary (black)

Adaptive wavefronts expanding outward from the initial cleared disk (blue) to fill the pocket boundary (black)

Adaptive wavefronts in a pocket with three islands — contours wrap around each island as they expand

Adaptive wavefronts in a pocket with three islands — contours wrap around each island as they expand

Adaptive wavefronts in a Y-shaped channel — contours split and propagate along each branch

Adaptive wavefronts in a Y-shaped channel — contours split and propagate along each branch

Adaptive wavefronts expanding within a complex shape loaded from an SVG file — contours adapt to the irregular boundary and wrap around internal islands

Adaptive wavefronts expanding within a complex shape loaded from an SVG file — contours adapt to the irregular boundary and wrap around internal islands