Add configurable production machine constraints
This commit is contained in:
@@ -31,6 +31,23 @@ roll_calculation.calculate_roll()
|
||||
|
||||
The PDF endpoint accepts the same calculation request, recalculates it through the core, then adapts the authoritative result to the established one-page PDF layout. It does not accept calculated values from the browser.
|
||||
|
||||
## Production-Machine Feasibility
|
||||
|
||||
`config/machines.yaml` is the runtime source for configured production-machine
|
||||
limits; `data/source/LineLimitations_RollCalc.csv` is retained as the reference
|
||||
source document. `machine_constraints.py` loads and validates the YAML through
|
||||
`MachineRepository`, resolves only stable IDs/names/configured aliases, and
|
||||
evaluates independent constraints through `check_production_feasibility()`.
|
||||
|
||||
V1 compares material-only roll weight, nominal/average diameter, calculated
|
||||
maximum diameter, core diameter, and product width. All configured V1 inputs
|
||||
are required before a feasible result may be claimed. Nominal diameter is used
|
||||
for a configured minimum; an average diameter over the maximum fails, whereas
|
||||
an average fit whose calculated maximum exceeds the maximum is a retained
|
||||
warning. Line speed remains configured but is outside the initial roll-only
|
||||
scope. Flask and MCP are thin adapters; no machine constraints are duplicated
|
||||
in those layers or in browser code.
|
||||
|
||||
## Constrained Natural-Language Flow
|
||||
|
||||
```text
|
||||
|
||||
Reference in New Issue
Block a user