feat: Omniflo-Fahrstrecke (OMNI_FAHRSTRECKE) + Geruest-Dialoge ueberarbeitet
Fahrstrecke: - Neuer Befehl OMNI_FAHRSTRECKE (+ _BESCHRIFTEN) im Omniflo-Menue, Daten aus data/json/omniflo_fahrstrecke.json, Vorlage dcl/fahrstrecke.dcl - Nutzt die Linien-Logik des Geruest-Traegers (geruest-linien-starten, Dialog/Einfuegen/Beschriftung je Baugruppe parametriert) - Muffen-Dummy wie beim Traeger, farbig nur wo in der JSON gesetzt - Stueckliste: eigene Klasse "Omniflo Fahrstrecke" (GR_Fahrstrecke_*) Geruest-Dialoge: - DCL als statische Vorlagen mit //@NAME@-Platzhaltern (ssg-dcl-vorlage-fuellen in ssg_core), dcl/geruest.dcl neu - Ein Dialog je Bereich (keine Bereichsumschaltung mehr) - Varianten als Radiobuttons mit Artikelnummern im Label, "disabled": true graut Varianten aus - Eine Befestigungsspalte (Gesamtanzahl) + Zeile "Sonstiges", Art.-Nr. unter jedem Anbauteil - Winkel Platte (0/90): Anbauteile gedreht eingefuegt - Kennzeichnung geaenderter Konfiguration, Ueberspeichern per Enter - Traeger: Querstreben nur bei "mit_querstrebe": true Konfigurationen im alten Format (oben/unten) werden beim Laden uebernommen. Unit-Tests ergaenzt (599 gruen).
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
// ============================================================
|
||||
// fahrstrecke.dcl - Omniflo-Fahrstrecke konfigurieren (VORLAGE)
|
||||
// Verwendet von: OMNI_FAHRSTRECKE (GeruestInsert.lsp, geruest-traeger-dialog)
|
||||
// Daten: data/json/omniflo_fahrstrecke.json
|
||||
//
|
||||
// Gleicher Aufbau wie geruest_traeger.dcl - dieselben Tile-Keys, denn beide
|
||||
// Dialoge laufen ueber dieselben Funktionen (geruest-traeger-dialog).
|
||||
//
|
||||
// Diese Datei wird NICHT direkt geladen: //@VARIANTEN@ ist ein Platzhalter,
|
||||
// den GeruestInsert.lsp zur Laufzeit durch einen radio_button je
|
||||
// Variante (key v<i>, i = Index in geometrie_varianten) ersetzt
|
||||
// (ssg-dcl-vorlage-fuellen, ssg_core.lsp). Das Ergebnis wird als Temp-Datei
|
||||
// geladen.
|
||||
//
|
||||
// Jede Variante (auch die mit Muffe) hat einen eigenen Radiobutton, damit
|
||||
// ihre Artikelnummer sichtbar ist.
|
||||
//
|
||||
// Die Laenge steht bewusst NICHT im Dialog - sie wird nach dem Dialog in der
|
||||
// Zeichnung per Start-/Endpunkt (oder getippter Laenge) bestimmt.
|
||||
// ============================================================
|
||||
|
||||
fahrstrecke : dialog {
|
||||
label = "Fahrstrecke konfigurieren";
|
||||
|
||||
: boxed_column {
|
||||
label = "Basis";
|
||||
: radio_column {
|
||||
key = "variante";
|
||||
label = "Variante:";
|
||||
alignment = left;
|
||||
//@VARIANTEN@
|
||||
}
|
||||
: row {
|
||||
: popup_list { key = "farbe"; label = "Farbe:"; width = 25; }
|
||||
: edit_box { key = "farbe_frei"; label = "eigene:"; edit_width = 12; }
|
||||
}
|
||||
}
|
||||
|
||||
: boxed_column {
|
||||
label = "Längenabzug";
|
||||
: row {
|
||||
: toggle { key = "abzug_a"; label = "Längenabzug Anfang"; width = 24; fixed_width = true; }
|
||||
: edit_box { key = "abzug_a_w"; label = "mm:"; edit_width = 8; fixed_width = true; }
|
||||
}
|
||||
: row {
|
||||
: toggle { key = "abzug_e"; label = "Längenabzug Ende"; width = 24; fixed_width = true; }
|
||||
: edit_box { key = "abzug_e_w"; label = "mm:"; edit_width = 8; fixed_width = true; }
|
||||
}
|
||||
}
|
||||
|
||||
: toggle { key = "beschriftung"; label = "Beschriftung einfügen"; }
|
||||
|
||||
: text { key = "hinweis"; label = ""; width = 56; }
|
||||
|
||||
ok_cancel;
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
// ============================================================
|
||||
// geruest.dcl - Geruest-Baugruppe konfigurieren (VORLAGE)
|
||||
// Verwendet von: GERUEST_SAEULEN, GERUEST_ROHRABHAENGER,
|
||||
// GERUEST_WANDBEFESTIGUNG (GeruestInsert.lsp, geruest-dialog)
|
||||
//
|
||||
// Diese Datei wird NICHT direkt geladen: Zeilen der Form //@NAME@ sind
|
||||
// Platzhalter, die GeruestInsert.lsp zur Laufzeit durch datenabhaengige
|
||||
// Bloecke ersetzt (ssg-dcl-vorlage-fuellen, ssg_core.lsp) - DCL kann Tiles
|
||||
// weder zur Laufzeit erzeugen noch ausblenden, und Radiobutton-Labels lassen
|
||||
// sich per set_tile nicht aendern. Das Ergebnis wird als Temp-Datei geladen.
|
||||
//
|
||||
// //@TITEL@ label-Zeile des Dialogs (Bereichsname)
|
||||
// //@VARIANTEN@ ein radio_button je Geometrie-Variante (key v<i>)
|
||||
// //@BEFESTIGUNG@ Spalte "Befestigung oben und unten" (Tile-Keys b<i>/bm<i>,
|
||||
// entfaellt ohne Teile - ein leerer Cluster ist in DCL
|
||||
// unzulaessig)
|
||||
// //@SONSTIGES@ Spalte "Sonstiges" (s<i>/sm<i>, entfaellt ohne Teile)
|
||||
// Je Teil: Mengenfeld, Ankreuzfeld und darunter "Art.-Nr. ..." (sivas_id).
|
||||
// ============================================================
|
||||
|
||||
geruest : dialog {
|
||||
//@TITEL@
|
||||
: row {
|
||||
: popup_list { key = "konfig"; label = "Konfiguration:"; width = 40; }
|
||||
: button { key = "kspeichern"; label = "Speichern..."; fixed_width = true; }
|
||||
: button { key = "kloeschen"; label = "Löschen"; fixed_width = true; }
|
||||
}
|
||||
// Zeigt an, ob der Stand noch der gewaehlten Konfiguration entspricht
|
||||
// (geruest-dlg-aenderung-pruefen).
|
||||
: text { key = "kstatus"; label = ""; width = 64; }
|
||||
|
||||
: boxed_column {
|
||||
label = "Basis";
|
||||
// Radiobuttons statt Liste: alle Varianten sichtbar, Einfachauswahl,
|
||||
// Beschriftung in voller Breite.
|
||||
: radio_column {
|
||||
key = "variante";
|
||||
label = "Variante:";
|
||||
alignment = left;
|
||||
//@VARIANTEN@
|
||||
}
|
||||
: row {
|
||||
: edit_box { key = "laenge"; label = "Laenge (mm):"; edit_width = 10; }
|
||||
: popup_list { key = "farbe"; label = "Farbe:"; width = 25; }
|
||||
: edit_box { key = "farbe_frei"; label = "eigene:"; edit_width = 12; }
|
||||
}
|
||||
// Ausrichtung, in der die Anbauteile mit der Basis zusammengebaut werden
|
||||
: popup_list { key = "winkel"; label = "Winkel Platte:"; width = 22; fixed_width = true; }
|
||||
}
|
||||
|
||||
//@BEFESTIGUNG@
|
||||
//@SONSTIGES@
|
||||
|
||||
ok_cancel;
|
||||
}
|
||||
+21
-7
@@ -1,18 +1,32 @@
|
||||
// ============================================================
|
||||
// geruest_traeger.dcl - Rohr-Geruest-Traeger konfigurieren
|
||||
// geruest_traeger.dcl - Rohr-Geruest-Traeger konfigurieren (VORLAGE)
|
||||
// Verwendet von: GERUEST_TRAEGER (GeruestInsert.lsp, geruest-traeger-dialog)
|
||||
//
|
||||
// Diese Datei wird NICHT direkt geladen: //@VARIANTEN@ ist ein Platzhalter,
|
||||
// den GeruestInsert.lsp zur Laufzeit durch einen radio_button je
|
||||
// Variante (key v<i>, i = Index in geometrie_varianten) ersetzt
|
||||
// (ssg-dcl-vorlage-fuellen, ssg_core.lsp) - Radiobutton-Labels lassen sich
|
||||
// per set_tile nicht aendern. Das Ergebnis wird als Temp-Datei geladen.
|
||||
//
|
||||
// Jede Variante (auch die mit Muffe) hat einen eigenen Radiobutton, damit
|
||||
// ihre Artikelnummer sichtbar ist.
|
||||
//
|
||||
// Die Laenge steht bewusst NICHT im Dialog - sie wird nach dem Dialog in der
|
||||
// Zeichnung per Start-/Endpunkt (oder getippter Laenge) bestimmt. Aktive
|
||||
// Laengenabzuege ruecken die Linie am Anfang bzw. Ende ein.
|
||||
// ============================================================
|
||||
|
||||
geruest_traeger : dialog {
|
||||
label = "Rohr-Geruest-Traeger konfigurieren";
|
||||
label = "Rohr-Gerüst-Träger konfigurieren";
|
||||
|
||||
: boxed_column {
|
||||
label = "Basis";
|
||||
: popup_list { key = "variante"; label = "Variante:"; width = 56; }
|
||||
: radio_column {
|
||||
key = "variante";
|
||||
label = "Variante:";
|
||||
alignment = left;
|
||||
//@VARIANTEN@
|
||||
}
|
||||
: row {
|
||||
: popup_list { key = "farbe"; label = "Farbe:"; width = 25; }
|
||||
: edit_box { key = "farbe_frei"; label = "eigene:"; edit_width = 12; }
|
||||
@@ -20,18 +34,18 @@ geruest_traeger : dialog {
|
||||
}
|
||||
|
||||
: boxed_column {
|
||||
label = "Laengenabzug";
|
||||
label = "Längenabzug";
|
||||
: row {
|
||||
: toggle { key = "abzug_a"; label = "Laengenabzug Anfang"; width = 24; fixed_width = true; }
|
||||
: toggle { key = "abzug_a"; label = "Längenabzug Anfang"; width = 24; fixed_width = true; }
|
||||
: edit_box { key = "abzug_a_w"; label = "mm:"; edit_width = 8; fixed_width = true; }
|
||||
}
|
||||
: row {
|
||||
: toggle { key = "abzug_e"; label = "Laengenabzug Ende"; width = 24; fixed_width = true; }
|
||||
: toggle { key = "abzug_e"; label = "Längenabzug Ende"; width = 24; fixed_width = true; }
|
||||
: edit_box { key = "abzug_e_w"; label = "mm:"; edit_width = 8; fixed_width = true; }
|
||||
}
|
||||
}
|
||||
|
||||
: toggle { key = "beschriftung"; label = "Beschriftung einfuegen"; }
|
||||
: toggle { key = "beschriftung"; label = "Beschriftung einfügen"; }
|
||||
|
||||
: text { key = "hinweis"; label = ""; width = 56; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user