Skip to content

v0.10.0

Choose a tag to compare

@knipknap knipknap released this 17 Jun 11:41
· 142 commits to main since this release

v0.10.0 — CNC generalization & geometry primitives

This release generalizes the API from laser-specific terminology to generic CNC machining terms and introduces new geometry generation primitives.

Migration Guide

1. State — renamed fields

Old field New field
state.air_assist (bool) state.coolant (CoolantMode)
state.cut_speed state.feed_rate
state.travel_speed state.rapid_rate
state.active_laser_uid state.active_head_uid

State.__init__ keyword args renamed accordingly.

2. air_assistCoolantMode enum

The boolean air_assist is replaced by CoolantMode in raygeo.ops.state:

from raygeo.ops.state import CoolantMode

# Before
state.air_assist = True
ops.enable_air_assist(False)

# After
state.coolant = CoolantMode.AIR
ops.set_coolant(CoolantMode.OFF)

Variants: OFF, FLOOD, MIST, AIR.

3. Ops builder methods — renamed

Old New
set_cut_speed(speed) set_feed_rate(feed_rate)
set_travel_speed(speed) set_rapid_rate(rapid_rate)
set_laser(uid) set_head(uid)
enable_air_assist(bool) set_coolant(CoolantMode)
speed(idx) rate(idx)
laser_uid(idx) head_uid(idx)
get_frame(power=, speed=) get_frame(power=, feed_rate=)

4. Time estimation — renamed parameters

# Before
ops.estimate_time(default_cut_speed=..., default_travel_speed=...)

# After
ops.estimate_time(default_feed_rate=..., default_rapid_rate=...)

Same for estimate_command_times().

5. CommandType — renamed variants

Old New
SET_CUT_SPEED SET_FEED_RATE
SET_TRAVEL_SPEED SET_RAPID_RATE
SET_LASER SET_HEAD
ENABLE_AIR_ASSIST (removed)
DISABLE_AIR_ASSIST (removed)

New variant: SET_COOLANT.

6. CommandInfo — renamed properties

Old New
.speed .feed_rate

New: .rapid_rate, .spindle_rpm, .coolant.

7. Serialization format

Dict/JSON/numpy serialization field names changed to match new naming. Old serialized data is not backward-compatible.

8. allow_rapid_change()

Now compares coolant instead of air_assist.

New Features

  • Geometry primitives: raygeo.geo.algo.helix, .ramp, .trochoid, .offset (concentric offsets)
  • polyline_to_ops() — convert polylines to Ops
  • link_passes() — link passes with retract/stay-down strategies
  • find_pass_entry() / find_pass_exit() — consolidated entry/exit detection
  • State.spindle_rpm field + set_spindle_rpm() builder
  • State.coolant field + set_coolant() builder

Internal

  • Codebase refactoring: decomposed large functions, consolidated entry/exit logic
  • Added rustfmt.toml with 80-char line width
  • Makefile dependency installation