mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-15 19:11:37 -04:00
MaterialConfig only ever had one grade per material name, so the tree
and GetMaterial/GetParameters couldn't represent e.g. Mild Steel A36
vs. A1011 as distinct, independently-parameterized entries. Prep work
for an upcoming drawing database that will store material + grade per
drawing and needs to resolve cut parameters by that pair.
- MachineConfig gains GetMaterial(name, grade), GetGrades(name), and a
GetParameters(material, grade, thickness) overload, all keyed through
the existing SharedListNames normalization. The name-only overloads
stay for back-compat ("first grade found").
- MachineConfigForm's tree gains a real tier: Machine -> Material name
(synthetic grouping node) -> Grade -> Thickness. Add/remove gained
"Add Grade" and split "Delete Material" (all grades) from "Delete
Grade" (one entry). Renaming a grade's Name relocates its node to the
matching (or a new) group on focus-loss, keeping the tree in sync
without a full reload.
- No schema/JSON changes; existing machine files keep working as-is.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>