fix: verbleibende e76e24e-Luecken aus vollstaendigem Gap-Vergleich geschlossen

Bei der abschliessenden Datei-fuer-Datei-Gap-Analyse gegen e76e24e (Funktions-
inventar + Lang-Key-Diff) zusaetzlich gefunden und behoben:

- vfl-modus-abbruch-sichern: "Zurueck"-Behandlung fehlte komplett - verwarf
  bisher wie "Abbrechen" den kompletten Stand statt nur das letzte
  angefangene Kettenglied zu verwerfen und automatisch neu zu fragen
  (vfl-journal-truncate/-replay-start)
- vfl-vf-einheit (Punkt 7, Auf/Ab-Foerderer-Fortsetzung): Fall "Kette kommt
  bereits flach an" (z.B. nach Horizontal-VF/Vario-Kurve) fehlte - fragte
  bisher immer nach einer Zielhoehe, obwohl dort keine sinnvolle Zielhoehe
  existiert; nutzt jetzt vfl-waehle-winkel-hoehen-tabelle
- Horizontal-VF: GF1-Stumpf wird bei vollem Eingang jetzt aus einer
  abgefragten Zielhoehe berechnet statt pauschal auf *vfl-gf-min-laenge*
  gesetzt
- Linie-VF/Linie (automatisch): erweiterte Stufe-2-Diagnose bei "nicht
  baubar" (Mindestwert-Vorschlaege aus vfl-stufe2-diagnose) ergaenzt
- vfl-hor-koerper-bauen: klemmt weiterhin still auf Mindestlaenge (Kollegen-
  Entscheidung, Bauteil muss fuer vf_spec.lsp deterministisch/kopflos
  bleiben), meldet das Klemmen jetzt aber ueber vfl-meldung - die
  urspruengliche interaktive "trotzdem bauen?"-Rueckfrage mit Checkpoint-
  Rueckbau war nicht ohne Bruch der Kopflos-Tauglichkeit restaurierbar

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Yuelin Wang
2026-09-11 22:02:39 +02:00
co-authored by Claude Sonnet 5
parent 0a1d21d8c5
commit 18ee46b361
3 changed files with 259 additions and 45 deletions
+18
View File
@@ -27,6 +27,10 @@
"vfl-menu-linie-ende-ka-6": "\n 6 - Neue Linie BIS Kettenende (danach Separator + ES-Element)",
"vfl-prompt-wahl-1-6-def3": "\nIhre Wahl (1-6) [3]: ",
"vfl-fehler-horizontal-vf-kurz": "\nFEHLER: Horizontaler VF braucht >= 1000 mm (Umlenk + Motor) - laenger zeichnen.",
"vfl-prompt-hoehe-eingang-gf1": "\nZielhoehe (Z) am Uebergang zur horizontalen Strecke [%1]: ",
"vfl-alert-eingang-kann-nicht-steigen": "Diese VF-Einheit (horizontaler Anfang) kann nicht steigen - bitte 'Neue Linie: Ab/Auf VF' verwenden.",
"vfl-alert-eingang-hoehe-zu-klein": "Zielhoehe zu klein: mindestens %1 mm Hoehenabsenkung noetig (Separator+Umlenkstation+Uebergangsbogen allein erreichen schon so viel). Bitte tiefere Zielhoehe eingeben.",
"vfl-alert-eingang-hoehe-zu-gross": "Zielhoehe zu weit entfernt fuer diese Streckenlaenge - maximal erreichbare Zielhoehe waere ca. %1 mm. Bitte 'Neue Linie: Ab/Auf VF' verwenden.",
"vfl-fehler-linie-zu-kurz": "\nFEHLER: Linie zu kurz (oder entgegen der Fahrtrichtung) - bitte erneut waehlen.",
"vfl-fehler-vf-kurz": "\nFEHLER: VarioFoerderer braucht >= 1000 mm (Umlenk + Motor) - laenger zeichnen oder \"GF\" waehlen.",
"vfl-gefaelle-festlegen-header": "\nGefaelle festlegen:",
@@ -342,6 +346,10 @@
"vfl-alert-kettenende-p2-beide": "\n\n2. Horizontal+GF nicht baubar - noetig waeren mindestens △L=%1 mm ODER mindestens △H=%2 mm.",
"vfl-alert-kettenende-p2-nur-minh": "\n\n2. Horizontal+GF nicht baubar - noetig waere mindestens △H=%1 mm Hoehenaenderung.",
"vfl-alert-kettenende-p2-nur-minl": "\n\n2. Horizontal+GF nicht baubar - noetig waere mindestens △L=%1 mm Streckenlaenge.",
"vfl-alert-vf-entscheidung-p1": "1. Ziel △L=%1 mm, △H=%2 mm (%3): Winkel-Tabelle nicht baubar.",
"vfl-alert-vf-entscheidung-p2-beide": "\n\n2. Mindestens noetig waeren: △L=%1 mm ODER △H=%2 mm.",
"vfl-alert-vf-entscheidung-p2-nur-minh": "\n\n2. Mindestens noetig waere: △H=%1 mm Hoehenaenderung.",
"vfl-alert-vf-entscheidung-p2-nur-minl": "\n\n2. Mindestens noetig waere: △L=%1 mm Streckenlaenge.",
"vfl-stufe1-start": "\n\n[Diagnose Stufe 1 - VF-Winkel-Suche]",
"vfl-stufe2-diagnose": "\n\n[Diagnose Stufe 2 - horizontal+GF] deltaL=%1 mm deltaH=%2 mm -> GF_total=%3 mm L_VF=%4 mm (%5)",
"vfl-stufe2-diagnose-details": "\n [Details] schon-flach=%1 | aus-dx=%2 mm (Einlauf, sollte 0 sein) | ein-dx=%3 mm ein-dz=%4 mm (ES-Element) | bogen-x1=%5 mm bogen-z1=%6 mm (Eintrittsbogen 3->0 Grad, nur falls nicht schon-flach) | bogen-x2=%7 mm bogen-z2=%8 mm (Austrittsbogen 0->3 Grad, immer) | FESTE_HORIZONTAL=%9 mm (Separator+Motorstation)",
@@ -357,6 +365,7 @@
"vfl-fuege-block-ein": "\n Fuege %1 ein ...",
"vfl-hinweis-gf2-minimum": "\n HINWEIS: berechnetes GF2=%1 mm < Minimum %2 mm -> auf Minimum angehoben (ES endet dadurch etwas weiter; siehe Ist-Ziel-Report).",
"vfl-horizontale-zwischenstrecke": "\n\nHorizontale Zwischenstrecke (0 Grad, L=%1 mm)",
"vfl-hinweis-horizontal-fussabdruck-geklemmt": "\n Hinweis: Reststrecke waere hier nur %1 mm gewesen (Minimum %2 mm) - auf das Minimum geklemmt; der Kettenpunkt landet dadurch entsprechend weiter als angeklickt.",
"vfl-kettenende-modus-ziel": "\n>>> Kettenende-Modus: Ziel dL=%1 mm, dH=%2 mm (%3). GF2 variiert mit dem Winkel.",
"vfl-prompt-hoehe-endpunkt": "\nHoehe (Z) des Endpunkts [%1]: ",
"vfl-prompt-hoehe-endpunkt-2": "\nHoehe (Z) des Endpunkts (Ab: %1 | Auf: %2) [%1]: ",
@@ -370,6 +379,14 @@
"vfl-winkel-hoehen-option": "\n %1 - %2 Grad (Endhoehe: %3 mm)",
"vfl-winkel-hoehen-zeile": "\n %1 Grad - Endhoehe: %2 mm",
"vfl-winkel-hoehen-zeile-ungueltig": "\n %1 Grad - nicht baubar (Bogen passt nicht in die gewaehlte Strecke)",
"vfl-winkel-hoehen-zeile-tile": "Endhoehe: %1 mm",
"vfl-winkel-wahl-zeile-tile": "L_GF=%1 mm L_VF=%2 mm",
"vfl-winkel-zeile-tile-ungueltig": "nicht baubar (Bogen passt nicht in die gewaehlte Strecke)",
"vfl-prompt-richtung-waehlen": "\n\nFahrtrichtung waehlen (Punkt in gewuenschter Richtung klicken - der Abstand wird ignoriert): ",
"vfl-winkel-hoehen-abweichung": "\n [Hinweis] Ist-Ziel-Vergleich: vorhergesagte Endhoehe %1 mm, tatsaechlich erreicht %2 mm.",
"vfl-antwort-ja": "Ja",
"vfl-antwort-nein": "Nein",
"vfl-wizard-antwort-echo": "\n -> Auswahl im Dialog: %1",
"vfl-segment-gf-nicht-erlaubt": "\n Segment waere GF (zu steil) oder nicht baubar - innerhalb einer VF-Einheit nicht erlaubt.\n Bitte flacher/steigend zeichnen oder Foerderer beenden.",
"vfl-winkel-option": "\n %1 - %2 Grad (L_GF=%3 mm L_VF=%4 mm)",
"vfs-as90-mass": "\n AS_90: dx=%1 dz=%2",
@@ -850,6 +867,7 @@
"tro-insert-prompt-punkt": "\nEinfuegepunkt: ",
"tro-insert-eingefuegt": "\nTRO eingefuegt: ID = %1, TYP = %2",
"vfl-abbruch-gesichert": "\n>>> Linienzug abgebrochen: %1 Objekt(e) als Block gesichert (per Doppelklick editierbar/fortsetzbar).",
"vfl-zurueck-glied-verworfen": "\n>>> Zurueck: letztes Kettenglied wird verworfen - bitte neu beantworten.",
"vfl-abbruch-nichts-gebaut": "\n>>> Abgebrochen - es wurde noch keine Geometrie erzeugt.",
"vfl-abbruch-wickeln-fehler": "\n>>> FEHLER beim Sichern der Teil-Geometrie als Block: %1",
"vfl-edit-dialog-fehlt": "Dialog nicht gefunden: %1",
+18
View File
@@ -27,6 +27,10 @@
"vfl-menu-linie-ende-ka-6": "\n 6 - New line TO chain end (then separator + ES element)",
"vfl-prompt-wahl-1-6-def3": "\nYour choice (1-6) [3]: ",
"vfl-fehler-horizontal-vf-kurz": "\nERROR: Horizontal VF needs >= 1000 mm (deflection + motor) - draw it longer.",
"vfl-prompt-hoehe-eingang-gf1": "\nTarget height (Z) at the transition to the horizontal section [%1]: ",
"vfl-alert-eingang-kann-nicht-steigen": "This VF unit (horizontal start) cannot rise - please use 'New line: up/down VF' instead.",
"vfl-alert-eingang-hoehe-zu-klein": "Target height too small: at least %1 mm of drop is needed (separator+deflection station+transition bend alone already reach that much). Please enter a lower target height.",
"vfl-alert-eingang-hoehe-zu-gross": "Target height too far away for this distance - the maximum reachable target height would be about %1 mm. Please use 'New line: up/down VF' instead.",
"vfl-fehler-linie-zu-kurz": "\nERROR: Line too short (or against travel direction) - please pick again.",
"vfl-fehler-vf-kurz": "\nERROR: VarioFoerderer needs >= 1000 mm (deflection + motor) - draw it longer or choose \"GF\".",
"vfl-gefaelle-festlegen-header": "\nDefine slope:",
@@ -343,6 +347,10 @@
"vfl-alert-kettenende-p2-beide": "\n\n2. Horizontal+GF not buildable - would need at least ΔL=%1 mm OR at least ΔH=%2 mm.",
"vfl-alert-kettenende-p2-nur-minh": "\n\n2. Horizontal+GF not buildable - would need at least ΔH=%1 mm of height change.",
"vfl-alert-kettenende-p2-nur-minl": "\n\n2. Horizontal+GF not buildable - would need at least ΔL=%1 mm of distance.",
"vfl-alert-vf-entscheidung-p1": "1. Target ΔL=%1 mm, ΔH=%2 mm (%3): angle table not buildable.",
"vfl-alert-vf-entscheidung-p2-beide": "\n\n2. At least needed: ΔL=%1 mm OR ΔH=%2 mm.",
"vfl-alert-vf-entscheidung-p2-nur-minh": "\n\n2. At least needed: ΔH=%1 mm of height change.",
"vfl-alert-vf-entscheidung-p2-nur-minl": "\n\n2. At least needed: ΔL=%1 mm of distance.",
"vfl-stufe1-start": "\n\n[Diagnosis stage 1 - VF angle search]",
"vfl-stufe2-diagnose": "\n\n[Diagnosis stage 2 - horizontal+GF] deltaL=%1 mm deltaH=%2 mm -> GF_total=%3 mm L_VF=%4 mm (%5)",
"vfl-stufe2-diagnose-details": "\n [Details] already-flat=%1 | aus-dx=%2 mm (entry, should be 0) | ein-dx=%3 mm ein-dz=%4 mm (ES element) | bogen-x1=%5 mm bogen-z1=%6 mm (entry bend 3->0 deg, only if not already-flat) | bogen-x2=%7 mm bogen-z2=%8 mm (exit bend 0->3 deg, always) | FESTE_HORIZONTAL=%9 mm (separator+motor station)",
@@ -357,6 +365,7 @@
"vfl-fuege-block-ein": "\n Inserting %1 ...",
"vfl-hinweis-gf2-minimum": "\n NOTE: calculated GF2=%1 mm < minimum %2 mm -> raised to minimum (ES therefore ends a bit further on; see actual-vs-target report).",
"vfl-horizontale-zwischenstrecke": "\n\nHorizontal intermediate section (0 deg, L=%1 mm)",
"vfl-hinweis-horizontal-fussabdruck-geklemmt": "\n Note: the remaining length here would have been only %1 mm (minimum %2 mm) - clamped to the minimum; the chain point will therefore end up further along than clicked.",
"vfl-kettenende-modus-ziel": "\n>>> Chain-end mode: target dL=%1 mm, dH=%2 mm (%3). GF2 varies with the angle.",
"vfl-prompt-hoehe-endpunkt": "\nHeight (Z) of the end point [%1]: ",
"vfl-prompt-hoehe-endpunkt-2": "\nHeight (Z) of the end point (down: %1 | up: %2) [%1]: ",
@@ -370,6 +379,14 @@
"vfl-winkel-hoehen-option": "\n %1 - %2 deg (end height: %3 mm)",
"vfl-winkel-hoehen-zeile": "\n %1 deg - end height: %2 mm",
"vfl-winkel-hoehen-zeile-ungueltig": "\n %1 deg - not buildable (bend does not fit into the chosen distance)",
"vfl-winkel-hoehen-zeile-tile": "end height: %1 mm",
"vfl-winkel-wahl-zeile-tile": "L_GF=%1 mm L_VF=%2 mm",
"vfl-winkel-zeile-tile-ungueltig": "not buildable (bend does not fit into the chosen distance)",
"vfl-prompt-richtung-waehlen": "\n\nChoose direction (click a point in the desired direction - the distance is ignored): ",
"vfl-winkel-hoehen-abweichung": "\n [Note] Target-vs-actual check: predicted end height %1 mm, actually reached %2 mm.",
"vfl-antwort-ja": "Yes",
"vfl-antwort-nein": "No",
"vfl-wizard-antwort-echo": "\n -> Dialog selection: %1",
"vfl-segment-gf-nicht-erlaubt": "\n Segment would be GF (too steep) or not buildable - not allowed within a VF unit.\n Please draw flatter/rising or end the conveyor.",
"vfl-winkel-option": "\n %1 - %2 deg (L_GF=%3 mm L_VF=%4 mm)",
"vfs-as90-mass": "\n AS_90: dx=%1 dz=%2",
@@ -850,6 +867,7 @@
"tro-insert-prompt-punkt": "\nInsertion point: ",
"tro-insert-eingefuegt": "\nTRO inserted: ID = %1, TYPE = %2",
"vfl-abbruch-gesichert": "\n>>> Chain cancelled: %1 object(s) saved as a block (editable/resumable via double-click).",
"vfl-zurueck-glied-verworfen": "\n>>> Back: discarding the last chain element - please answer it again.",
"vfl-abbruch-nichts-gebaut": "\n>>> Cancelled - no geometry was created yet.",
"vfl-abbruch-wickeln-fehler": "\n>>> ERROR saving the partial geometry as a block: %1",
"vfl-edit-dialog-fehlt": "Dialog not found: %1",