rob
|
c36ed3407e
|
Phase 1: material + finish fields + color resolver
Parts now carry material/finish/finish_color instead of a finishes list.
- Part: material, finish (raw|sanded|clear|stain|paint), finish_color (hex).
from_dict migrates the old finishes list; serialization additive.
- scene.set_material / set_finish / paint (finish() kept as alias); colors
normalized via new colors.py (name->hex, lighten/darken/blend).
- part_color() resolves stock->material->finish->visual; viewer applies it with
a subtle deterministic per-part tint (same-material boards stay distinct);
sanded reads lighter, painted shows its color, stain/clear tint.
- lumber.MATERIAL_COLORS + default_material(stock).
- CLI: paint / finish / material subcommands; controller TOOL_CMD wood-paint/
finish/material + group methods; Parts panel Paint…/Material… buttons +
inspector shows material/finish.
- Updated instructions (sand + finish coats), cli status, estimate to new model.
- tests: set/paint/migrate/json-roundtrip, color priority + fallback, helpers.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-05-30 19:01:28 -03:00 |