v0.10.0
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_assist → CoolantMode 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 Opslink_passes()— link passes with retract/stay-down strategiesfind_pass_entry()/find_pass_exit()— consolidated entry/exit detectionState.spindle_rpmfield +set_spindle_rpm()builderState.coolantfield +set_coolant()builder
Internal
- Codebase refactoring: decomposed large functions, consolidated entry/exit logic
- Added
rustfmt.tomlwith 80-char line width - Makefile dependency installation