Sanding never shrinks the design model; instead the cut plan distinguishes the rough size you cut from the final size you sand to. - CutItem gains final_length_in/final_width_in (+ final_len/final_wid/ has_allowance helpers); length_in/width_in are the ROUGH cut size. - _cut_items(scene, settings): a finished (finish != raw) board is cut oversize by sanding_allowance_in on dimensions actually CUT — length always, width only for sheet goods. Dimensional lumber's section width is the stock as delivered, not padded (Rob's point). note gains "sand to final". - ShopSettings.sanding_allowance_in default 1/32"; serialization additive. - BOM cut list shows "Cut … → final …" and a sanding-allowance footnote. - tests: raw = no allowance, sanded lumber pads length only, plywood pads width too, allowance roundtrips in plan JSON. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| test_bom_window.py | ||
| test_cutlist.py | ||
| test_cutplan.py | ||
| test_driver.py | ||
| test_estimate.py | ||
| test_geometry.py | ||
| test_gui_controller.py | ||
| test_instructions.py | ||
| test_jigs.py | ||
| test_layout.py | ||
| test_materials.py | ||
| test_prices.py | ||
| test_scene.py | ||