Repository navigation
fix(tabs): forward the step's power settings to the tab generator - #680
Conversation
IntentBuilder._transformer_settings() assembled the settings dict handed to the transformers' to_spec() from a fixed list, and the step's power and tab_power were missing from it. TabOpsTransformer therefore always saw tab_power=0 and degraded every tab to the gap mode, no matter what the user entered in the Tab Power field (#667). Forward both values so tabs with Tab Power above 0% are cut at reduced power (tab_power * power) instead of being skipped.
🤖 Estimated LLM implementation costReplayed each of the 1 commits in this pull request and counted the code lines each commit added or rewrote:
Added lines by language: Markdown 161, Python 105 Full estimate
Cost model: ≈10 tokens per code line at $15/Mtok output and $3/Mtok input (assuming heavy prompt caching); input ≈ 15× output for conversation replay; a review round ≈ 42,000 tokens; a failed CI run ≈ 21,000 tokens; file reads capped at 20 kB each. Active window from first commit to merge: <1 day.
|
Summary
Fixes #667.
The Tab Power setting never reached the tab generator. When the
toolpath was built,
IntentBuilder._transformer_settings()assembled the settings dict handed to the transformers'
to_spec()from a fixed list, and the step's
powerandtab_powerweresimply missing from it.
TabOpsTransformer.to_spec()thereforealways fell back to its default of
tab_power=0.0and degradedevery tab to the gap (skip) mode, no matter what the user entered in
the Tab Power field.
This forwards both values so a step with Tab Power above 0% now cuts
through the tab at reduced power (
tab_power * power), exactly asthe reporter expected. With the test machine configured for
1000 max power, a 70% Tab Power now emits the expected reduced-power
S700-style segment through the tab instead ofM5+G0skip.Both
FrameStepandShrinkWrapStepareLaserStepsubclasses,so they pick up the same fix.
Test plan
pixi run lintpassestests/pipeline/test_intent_builder.py:TabsSpecwith correctlyscaled clip data
regeneration)
reduced tab power present (
SET_POWER 0.7)main(verified by reverting the fix) and passwith it
pixi run test tests/pipeline/ rayforge/builtin_addons/rayforge-addon-post/tests/ rayforge/builtin_addons/rayforge-addon-laser/tests/: 714 passedDocs
The holding-tabs docs only described the gap mode. Added a "Tab
Power" section describing both modes and updated the intro/tab-width
wording, in all 8 languages. The translated setting names use the
exact strings from the app's UI catalogs (e.g. Haltesteg-Leistung,
Puissance des languettes, 定位片功率).