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:
+689
-387
File diff suppressed because it is too large
Load Diff
@@ -1479,6 +1479,27 @@
|
||||
(princ)
|
||||
)
|
||||
|
||||
;; --- Omniflo / Türlösungen Schwenkschienen ---
|
||||
;; Feste TEF-Bauteile ohne Sivas-Auswahl: Datei liegt direkt unter DXFM_OMNIFLO,
|
||||
;; wird per omni:insert-dxf am gewaehlten Einfuegepunkt ohne Drehung eingefuegt.
|
||||
(defun c:OMNI_SCHW_400_R ()
|
||||
(omni:insert-dxf "824604002" nil nil)
|
||||
(princ)
|
||||
)
|
||||
(defun c:OMNI_SCHW_400_L ()
|
||||
(omni:insert-dxf "824604001" nil nil)
|
||||
(princ)
|
||||
)
|
||||
(defun c:OMNI_SCHW_400_R_SENSORIK ()
|
||||
(omni:insert-dxf "824604012" nil nil)
|
||||
(princ)
|
||||
)
|
||||
(defun c:OMNI_SCHW_400_L_SENSORIK ()
|
||||
(omni:insert-dxf "824604011" nil nil)
|
||||
(princ)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
;; --- Omniflo / TEF Elemente ---
|
||||
|
||||
+43
-4
@@ -1643,10 +1643,9 @@
|
||||
;; Schreibt eine Liste von Textzeilen als temporaere DCL-Datei und liefert
|
||||
;; deren Pfad zurueck (oder nil bei Fehler, z.B. wenn open scheitert). Der
|
||||
;; Aufrufer ist fuer load_dialog/unload_dialog UND das Loeschen der Datei
|
||||
;; (vl-file-delete) danach selbst verantwortlich - analog zum bestehenden
|
||||
;; Muster in GeruestInsert.lsp (geruest-dcl-schreiben), hier nur als
|
||||
;; generischer Baustein fuer WEITERE Aufrufer (GeruestInsert.lsp selbst
|
||||
;; bleibt unveraendert, um dessen Code nicht anzufassen).
|
||||
;; (vl-file-delete) danach selbst verantwortlich. Fuer Dialoge mit fester
|
||||
;; Grundstruktur und nur einzelnen datenabhaengigen Bloecken siehe
|
||||
;; ssg-dcl-vorlage-fuellen.
|
||||
(defun ssg-dcl-temp-schreiben (praefix zeilen / pfad f)
|
||||
(setq pfad (vl-filename-mktemp praefix nil ".dcl"))
|
||||
(if (setq f (open pfad "w"))
|
||||
@@ -1659,6 +1658,46 @@
|
||||
)
|
||||
)
|
||||
|
||||
;; DCL-Vorlagen mit Platzhaltern: DCL kann Tiles weder zur Laufzeit erzeugen
|
||||
;; noch ausblenden, und Labels von radio_button/toggle lassen sich per
|
||||
;; set_tile nicht aendern. Datenabhaengige Teile (z.B. ein Radiobutton je
|
||||
;; Variante) werden darum in eine statische .dcl-Vorlage eingesetzt: jede
|
||||
;; Zeile, die getrimmt genau "//@NAME@" lautet, wird durch die Zeilen aus
|
||||
;; ersetzungen (("NAME" . (zeile ...)) ...) ersetzt. Eine leere Liste
|
||||
;; entfernt die Markerzeile; ein unbekannter Marker bleibt als DCL-Kommentar
|
||||
;; stehen (harmlos). Das Layout bleibt so eine normale, lesbare .dcl-Datei.
|
||||
(defun ssg-dcl-zeilen-ersetzen (zeilen ersetzungen / erg t1 name e)
|
||||
(setq erg nil)
|
||||
(foreach z zeilen
|
||||
(setq t1 (vl-string-trim " \t" z))
|
||||
(setq name (if (and (> (strlen t1) 4)
|
||||
(= (substr t1 1 3) "//@")
|
||||
(= (substr t1 (strlen t1) 1) "@"))
|
||||
(substr t1 4 (- (strlen t1) 4))))
|
||||
(if (and name (setq e (assoc name ersetzungen)))
|
||||
(setq erg (append erg (cdr e)))
|
||||
(setq erg (append erg (list z)))
|
||||
)
|
||||
)
|
||||
erg
|
||||
)
|
||||
|
||||
;; Vorlage lesen, Platzhalter ersetzen (ssg-dcl-zeilen-ersetzen) und als
|
||||
;; temporaere DCL-Datei schreiben. Rueckgabe: Pfad oder nil (Vorlage fehlt /
|
||||
;; nicht lesbar / nicht schreibbar). Laden und Loeschen wie bei
|
||||
;; ssg-dcl-temp-schreiben durch den Aufrufer.
|
||||
(defun ssg-dcl-vorlage-fuellen (vorlage-pfad praefix ersetzungen / f z zeilen)
|
||||
(if (and vorlage-pfad (findfile vorlage-pfad) (setq f (open vorlage-pfad "r")))
|
||||
(progn
|
||||
(setq zeilen nil)
|
||||
(while (setq z (read-line f)) (setq zeilen (cons z zeilen)))
|
||||
(close f)
|
||||
(ssg-dcl-temp-schreiben praefix
|
||||
(ssg-dcl-zeilen-ersetzen (reverse zeilen) ersetzungen))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
;; ------------------------------------------------------------
|
||||
;; REKURSIVER JSON-PARSER
|
||||
|
||||
@@ -163,6 +163,10 @@
|
||||
(cons "ils_kreisel" (ssg-text "sl-erk-kreisel")))
|
||||
((or (wcmatch b "VF_*") (wcmatch b "GF_*"))
|
||||
(cons "ils_strecke" (ssg-text "sl-erk-strecke")))
|
||||
;; Fahrstrecke (OMNI_FAHRSTRECKE) entsteht ueber den Geruest-Baukasten und
|
||||
;; traegt darum ebenfalls das GR_-Praefix - VOR dem allgemeinen GR_-Zweig.
|
||||
((wcmatch b "GR_FAHRSTRECKE_*")
|
||||
(cons "fahrstrecke" (ssg-text "sl-erk-fahrstrecke")))
|
||||
((wcmatch b "GR_*")
|
||||
(cons "geruest" (ssg-text "sl-erk-geruest")))
|
||||
((wcmatch b "AP60*")
|
||||
|
||||
+213
-307
@@ -83,137 +83,99 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"anbaugruppen": [
|
||||
{
|
||||
"artikel": "SPANNPRATZE ST - KH 8-11 KPL.SELBSTSICHERND",
|
||||
"sivas_id": 821004120,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
},
|
||||
{
|
||||
"artikel": "SPANNPRATZE SELBSTSICHERND KPL.",
|
||||
"sivas_id": 821004058,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
},
|
||||
{
|
||||
"name": "Schraubenset",
|
||||
"anzahl_vorgabe": 1,
|
||||
"teile": [
|
||||
{
|
||||
"artikel": "Scheibe DIN 125 - A 10,5 - 140 HV - St",
|
||||
"sivas_id": 913011010,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1
|
||||
},
|
||||
{
|
||||
"artikel": "Sechskantmutter DIN 934 - M10 - 8",
|
||||
"sivas_id": 912011010,
|
||||
"farbig": false,
|
||||
"stueckzahl": 2
|
||||
},
|
||||
{
|
||||
"artikel": "Sechskantschraube DIN 933 - M10 x 30 - 8.8",
|
||||
"sivas_id": 911011008,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"artikel": "U-BÜGEL M7 41X49 FÜR PROFILGERÜST - BG",
|
||||
"sivas_id": 825004049,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
},
|
||||
{
|
||||
"artikel": "ROHRKLAMMER 1\" KPL. VERTIKAL",
|
||||
"sivas_id": 825004040,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 2
|
||||
},
|
||||
{
|
||||
"artikel": "WINKEL 60X60X6X300",
|
||||
"sivas_id": 821006043,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
},
|
||||
{
|
||||
"artikel": "WINKEL 60X60X6X60",
|
||||
"sivas_id": 821006042,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
},
|
||||
{
|
||||
"artikel": "ROHRKLAMMER 1\" T-VERBINDUNG KPL.",
|
||||
"sivas_id": 825004030,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
},
|
||||
{
|
||||
"artikel": "ROHRKLAMMER 1\" FLACH UND LANG, KPL.",
|
||||
"sivas_id": 825002021,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
},
|
||||
{
|
||||
"artikel": "DURCHSTECKANKER HST M12X115X20",
|
||||
"sivas_id": 922021003,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
}
|
||||
],
|
||||
"konfigurationen": [
|
||||
{
|
||||
"name": "Abhaengung Spannpratze / Rohrklammer",
|
||||
"variante": "ROHR R 1\" 33,7 x 2,6",
|
||||
"laenge": 2000,
|
||||
"teilefarbe": "RAL7035",
|
||||
"oben": [
|
||||
{
|
||||
"artikel": "SPANNPRATZE SELBSTSICHERND KPL.",
|
||||
"anzahl": 1
|
||||
},
|
||||
{
|
||||
"artikel": "Schraubenset",
|
||||
"anzahl": 1
|
||||
}
|
||||
],
|
||||
"unten": [
|
||||
{
|
||||
"artikel": "ROHRKLAMMER 1\" KPL. VERTIKAL",
|
||||
"anzahl": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Abhaengung Duebel / T-Verbindung",
|
||||
"variante": "ROHR R 1\" 33,7 x 2,6 einseitig gequetscht",
|
||||
"laenge": 1500,
|
||||
"teilefarbe": "RAL7035",
|
||||
"oben": [
|
||||
{
|
||||
"artikel": "DURCHSTECKANKER HST M12X115X20",
|
||||
"anzahl": 2
|
||||
}
|
||||
],
|
||||
"unten": [
|
||||
{
|
||||
"artikel": "ROHRKLAMMER 1\" T-VERBINDUNG KPL.",
|
||||
"anzahl": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
"anbaugruppen": {
|
||||
"befestigung": [
|
||||
{
|
||||
"artikel": "SPANNPRATZE ST - KH 8-11 KPL.SELBSTSICHERND",
|
||||
"sivas_id": 821004120,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
},
|
||||
{
|
||||
"artikel": "SPANNPRATZE SELBSTSICHERND KPL.",
|
||||
"sivas_id": 821004058,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
},
|
||||
{
|
||||
"name": "Schraubenset",
|
||||
"anzahl_vorgabe": 1,
|
||||
"teile": [
|
||||
{
|
||||
"artikel": "Scheibe DIN 125 - A 10,5 - 140 HV - St",
|
||||
"sivas_id": 913011010,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1
|
||||
},
|
||||
{
|
||||
"artikel": "Sechskantmutter DIN 934 - M10 - 8",
|
||||
"sivas_id": 912011010,
|
||||
"farbig": false,
|
||||
"stueckzahl": 2
|
||||
},
|
||||
{
|
||||
"artikel": "Sechskantschraube DIN 933 - M10 x 30 - 8.8",
|
||||
"sivas_id": 911011008,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"artikel": "U-BÜGEL M7 41X49 FÜR PROFILGERÜST - BG",
|
||||
"sivas_id": 825004049,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
},
|
||||
{
|
||||
"artikel": "ROHRKLAMMER 1\" KPL. VERTIKAL",
|
||||
"sivas_id": 825004040,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 2
|
||||
},
|
||||
{
|
||||
"artikel": "WINKEL 60X60X6X300",
|
||||
"sivas_id": 821006043,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
},
|
||||
{
|
||||
"artikel": "WINKEL 60X60X6X60",
|
||||
"sivas_id": 821006042,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
},
|
||||
{
|
||||
"artikel": "ROHRKLAMMER 1\" T-VERBINDUNG KPL.",
|
||||
"sivas_id": 825004030,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
},
|
||||
{
|
||||
"artikel": "ROHRKLAMMER 1\" FLACH UND LANG, KPL.",
|
||||
"sivas_id": 825002021,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
},
|
||||
{
|
||||
"artikel": "DURCHSTECKANKER HST M12X115X20",
|
||||
"sivas_id": 922021003,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
}
|
||||
],
|
||||
"sonstiges": []
|
||||
},
|
||||
"konfigurationen": []
|
||||
},
|
||||
"Säulen": {
|
||||
"id": "Saeulen",
|
||||
@@ -273,126 +235,90 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"anbaugruppen": [
|
||||
{
|
||||
"artikel": "KLEMMRING MIT MUFFE EINFACH KPL.",
|
||||
"sivas_id": 825002019,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 2
|
||||
},
|
||||
{
|
||||
"artikel": "KLEMMRING MIT MUFFE DOPPELT 90 Grad, KPL.",
|
||||
"sivas_id": 825002009,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 2
|
||||
},
|
||||
{
|
||||
"artikel": "KLEMMRING MIT MUFFE DOPPELT 180 Grad, KPL.",
|
||||
"sivas_id": 825002008,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 2
|
||||
},
|
||||
{
|
||||
"artikel": "KLEMMRING M. MUFFE DREIFACH 90 Grad/180 Grad KPL.",
|
||||
"sivas_id": 825002007,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 2
|
||||
},
|
||||
{
|
||||
"artikel": "KLEMMRING MIT LASCHE KPL. ZUSAMMENBAUZEICHNUNG",
|
||||
"sivas_id": 825002020,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 2
|
||||
},
|
||||
{
|
||||
"artikel": "QUERSCHELLE F. 1\" UND 2\" ROHR GESCHW./VZ. M. 4X M10X30 KPL.",
|
||||
"sivas_id": 825002022,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 2
|
||||
},
|
||||
{
|
||||
"artikel": "KREUZSCHELLE F. 2\" UND 1\" ROHR SCHWENKBAR 360 Grad",
|
||||
"sivas_id": 922083009,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 2
|
||||
},
|
||||
{
|
||||
"artikel": "HALTEARM FÜR BODENSÄULE R 2\" 1-ARMIG KPL.",
|
||||
"sivas_id": 821004051,
|
||||
"farbig": true,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
},
|
||||
{
|
||||
"artikel": "HALTEARM FÜR BODENSÄULE R 2\" 2-ARMIG 90 Grad KPL.",
|
||||
"sivas_id": 821004054,
|
||||
"farbig": true,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
},
|
||||
{
|
||||
"artikel": "HALTEARM FÜR BODENSÄULE R 2\" 2-ARMIG 180 Grad KPL.",
|
||||
"sivas_id": 821004052,
|
||||
"farbig": true,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
},
|
||||
{
|
||||
"artikel": "HALTEARM FÜR BODENSÄULE R 2\" 3-ARMIG KPL.",
|
||||
"sivas_id": 821004053,
|
||||
"farbig": true,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
}
|
||||
],
|
||||
"konfigurationen": [
|
||||
{
|
||||
"name": "Bodensaeule 1 Zoll, Standardhoehe",
|
||||
"variante": "R 1\"",
|
||||
"laenge": 1000,
|
||||
"teilefarbe": "RAL7035",
|
||||
"oben": [],
|
||||
"unten": []
|
||||
},
|
||||
{
|
||||
"name": "Bodensaeule 2 Zoll, Haltearm 1-armig",
|
||||
"variante": "R 2\" Haltearm 1-ARMIG",
|
||||
"laenge": 1200,
|
||||
"teilefarbe": "RAL7035",
|
||||
"oben": [
|
||||
{
|
||||
"artikel": "KLEMMRING MIT MUFFE EINFACH KPL.",
|
||||
"anzahl": 2
|
||||
}
|
||||
],
|
||||
"unten": []
|
||||
},
|
||||
{
|
||||
"name": "Bodensaeule 2 Zoll, Haltearm 2-armig 90 Grad",
|
||||
"variante": "R 2\" Haltearm 2-ARMIG 90 Grad",
|
||||
"laenge": 1200,
|
||||
"teilefarbe": "RAL7035",
|
||||
"oben": [
|
||||
{
|
||||
"artikel": "KLEMMRING MIT MUFFE DOPPELT 90 Grad, KPL.",
|
||||
"anzahl": 2
|
||||
}
|
||||
],
|
||||
"unten": [
|
||||
{
|
||||
"artikel": "QUERSCHELLE F. 1\" UND 2\" ROHR GESCHW./VZ. M. 4X M10X30 KPL.",
|
||||
"anzahl": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
"anbaugruppen": {
|
||||
"befestigung": [
|
||||
{
|
||||
"artikel": "KLEMMRING MIT MUFFE EINFACH KPL.",
|
||||
"sivas_id": 825002019,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 2
|
||||
},
|
||||
{
|
||||
"artikel": "KLEMMRING MIT MUFFE DOPPELT 90 Grad, KPL.",
|
||||
"sivas_id": 825002009,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 2
|
||||
},
|
||||
{
|
||||
"artikel": "KLEMMRING MIT MUFFE DOPPELT 180 Grad, KPL.",
|
||||
"sivas_id": 825002008,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 2
|
||||
},
|
||||
{
|
||||
"artikel": "KLEMMRING M. MUFFE DREIFACH 90 Grad/180 Grad KPL.",
|
||||
"sivas_id": 825002007,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 2
|
||||
},
|
||||
{
|
||||
"artikel": "KLEMMRING MIT LASCHE KPL. ZUSAMMENBAUZEICHNUNG",
|
||||
"sivas_id": 825002020,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 2
|
||||
},
|
||||
{
|
||||
"artikel": "QUERSCHELLE F. 1\" UND 2\" ROHR GESCHW./VZ. M. 4X M10X30 KPL.",
|
||||
"sivas_id": 825002022,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 2
|
||||
},
|
||||
{
|
||||
"artikel": "KREUZSCHELLE F. 2\" UND 1\" ROHR SCHWENKBAR 360 Grad",
|
||||
"sivas_id": 922083009,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 2
|
||||
}
|
||||
],
|
||||
"sonstiges": [
|
||||
{
|
||||
"artikel": "HALTEARM FÜR BODENSÄULE R 2\" 1-ARMIG KPL.",
|
||||
"sivas_id": 821004051,
|
||||
"farbig": true,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
},
|
||||
{
|
||||
"artikel": "HALTEARM FÜR BODENSÄULE R 2\" 2-ARMIG 90 Grad KPL.",
|
||||
"sivas_id": 821004054,
|
||||
"farbig": true,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
},
|
||||
{
|
||||
"artikel": "HALTEARM FÜR BODENSÄULE R 2\" 2-ARMIG 180 Grad KPL.",
|
||||
"sivas_id": 821004052,
|
||||
"farbig": true,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
},
|
||||
{
|
||||
"artikel": "HALTEARM FÜR BODENSÄULE R 2\" 3-ARMIG KPL.",
|
||||
"sivas_id": 821004053,
|
||||
"farbig": true,
|
||||
"stueckzahl": 1,
|
||||
"anzahl_vorgabe": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
"konfigurationen": []
|
||||
},
|
||||
"Wandbefestigung": {
|
||||
"id": "Wandbefestigung",
|
||||
@@ -449,61 +375,41 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"anbaugruppen": [
|
||||
{
|
||||
"name": "Nylondübel 12x60 inkl. Holzschrauben",
|
||||
"anzahl_vorgabe": 2,
|
||||
"teile": [
|
||||
{
|
||||
"artikel": "HOLZSCHRAUB,10X70, 6KT DIN 571 VZ",
|
||||
"sivas_id": 911271027,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1
|
||||
},
|
||||
{
|
||||
"artikel": "NYLON - DUEBEL 12X60 (TYP S)",
|
||||
"sivas_id": 922013003,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "HST M12X115X20",
|
||||
"anzahl_vorgabe": 2,
|
||||
"teile": [
|
||||
{
|
||||
"artikel": "DURCHSTECKANKER HST M12X115X20 WANDABH.",
|
||||
"sivas_id": 922021003,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"konfigurationen": [
|
||||
{
|
||||
"name": "Wandflansch mit Duebeln",
|
||||
"variante": "WANDFLANSCH EINZELTEIL",
|
||||
"oben": [
|
||||
{
|
||||
"artikel": "Nylondübel 12x60 inkl. Holzschrauben",
|
||||
"anzahl": 2
|
||||
}
|
||||
],
|
||||
"unten": []
|
||||
},
|
||||
{
|
||||
"name": "Winkel 300 mit Schwerlastanker",
|
||||
"variante": "WINKEL 60X60X6X300",
|
||||
"oben": [
|
||||
{
|
||||
"artikel": "HST M12X115X20",
|
||||
"anzahl": 2
|
||||
}
|
||||
],
|
||||
"unten": []
|
||||
}
|
||||
]
|
||||
"anbaugruppen": {
|
||||
"befestigung": [
|
||||
{
|
||||
"name": "Nylondübel 12x60 inkl. Holzschrauben",
|
||||
"anzahl_vorgabe": 2,
|
||||
"teile": [
|
||||
{
|
||||
"artikel": "HOLZSCHRAUB,10X70, 6KT DIN 571 VZ",
|
||||
"sivas_id": 911271027,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1
|
||||
},
|
||||
{
|
||||
"artikel": "NYLON - DUEBEL 12X60 (TYP S)",
|
||||
"sivas_id": 922013003,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "HST M12X115X20",
|
||||
"anzahl_vorgabe": 2,
|
||||
"teile": [
|
||||
{
|
||||
"artikel": "DURCHSTECKANKER HST M12X115X20 WANDABH.",
|
||||
"sivas_id": 922021003,
|
||||
"farbig": false,
|
||||
"stueckzahl": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"sonstiges": []
|
||||
},
|
||||
"konfigurationen": []
|
||||
}
|
||||
}
|
||||
@@ -89,6 +89,7 @@
|
||||
"text": "DRT 80",
|
||||
"layer": "D-1-BEM"
|
||||
},
|
||||
"mit_querstrebe": true,
|
||||
"teileart": "Geruest Traeger",
|
||||
"layer": "D-1",
|
||||
"teile": [
|
||||
@@ -107,6 +108,7 @@
|
||||
"layer": "D-1-BEM"
|
||||
},
|
||||
"mit_muffe": true,
|
||||
"mit_querstrebe": true,
|
||||
"teileart": "Geruest Traeger",
|
||||
"layer": "D-1",
|
||||
"teile": [
|
||||
@@ -124,6 +126,7 @@
|
||||
"text": "DRT 114",
|
||||
"layer": "D-3-BEM"
|
||||
},
|
||||
"mit_querstrebe": true,
|
||||
"teileart": "Geruest Traeger",
|
||||
"layer": "D-3",
|
||||
"teile": [
|
||||
@@ -142,6 +145,7 @@
|
||||
"layer": "D-3-BEM"
|
||||
},
|
||||
"mit_muffe": true,
|
||||
"mit_querstrebe": true,
|
||||
"teileart": "Geruest Traeger",
|
||||
"layer": "D-3",
|
||||
"teile": [
|
||||
@@ -159,6 +163,7 @@
|
||||
"text": "RT 80/80",
|
||||
"layer": "D-5-BEM"
|
||||
},
|
||||
"mit_querstrebe": true,
|
||||
"teileart": "Geruest Traeger",
|
||||
"layer": "D-5",
|
||||
"teile": [
|
||||
@@ -177,6 +182,7 @@
|
||||
"layer": "D-5-BEM"
|
||||
},
|
||||
"mit_muffe": true,
|
||||
"mit_querstrebe": true,
|
||||
"teileart": "Geruest Traeger",
|
||||
"layer": "D-5",
|
||||
"teile": [
|
||||
|
||||
@@ -0,0 +1,157 @@
|
||||
{
|
||||
"Fahrstrecke": {
|
||||
"id": "Fahrstrecke",
|
||||
"titel": "Fahrstrecke",
|
||||
"teileart": "Omniflo Fahrstrecke",
|
||||
"muffe": {
|
||||
"dummy": "dummy_Muffe_1zoll.dwg"
|
||||
},
|
||||
"beschriftung": {
|
||||
"format": "%1 L=%2",
|
||||
"stil": "Lan",
|
||||
"ausrichtung": "BL",
|
||||
"hoehe": 100
|
||||
},
|
||||
"attribute": {
|
||||
"LAENGE": {
|
||||
"typ": "number",
|
||||
"min": 0,
|
||||
"max": 6000,
|
||||
"einheit": "mm"
|
||||
},
|
||||
"TEILEFARBE": {
|
||||
"typ": "auswahl",
|
||||
"optionen": [
|
||||
"RAL7035",
|
||||
"RAL7030"
|
||||
],
|
||||
"frei_erlaubt": true,
|
||||
"frei_option": "Individuell"
|
||||
}
|
||||
},
|
||||
"geometrie_varianten": [
|
||||
{
|
||||
"name": "AP 110",
|
||||
"beschriftung": {
|
||||
"text": "AP 110",
|
||||
"layer": "A-7-BEM"
|
||||
},
|
||||
"teileart": "Omniflo Fahrstrecke",
|
||||
"layer": "A-7",
|
||||
"teile": [
|
||||
{
|
||||
"artikel": "AP 110",
|
||||
"sivas_id": 821106001,
|
||||
"stueckzahl": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "APG 110",
|
||||
"beschriftung": {
|
||||
"text": "APG 110",
|
||||
"layer": "A-2-BEM"
|
||||
},
|
||||
"teileart": "Omniflo Fahrstrecke",
|
||||
"layer": "A-2",
|
||||
"teile": [
|
||||
{
|
||||
"artikel": "APG 110",
|
||||
"sivas_id": 821106002,
|
||||
"stueckzahl": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "AP 60",
|
||||
"beschriftung": {
|
||||
"text": "AP 60",
|
||||
"layer": "A-4-BEM"
|
||||
},
|
||||
"teileart": "Omniflo Fahrstrecke",
|
||||
"layer": "A-4",
|
||||
"teile": [
|
||||
{
|
||||
"artikel": "AP 60",
|
||||
"sivas_id": 821096001,
|
||||
"stueckzahl": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ST",
|
||||
"beschriftung": {
|
||||
"text": "ST",
|
||||
"layer": "L-2-BEM"
|
||||
},
|
||||
"mit_muffe": false,
|
||||
"teileart": "Omniflo Fahrstrecke",
|
||||
"layer": "L-2",
|
||||
"teile": [
|
||||
{
|
||||
"artikel": "ST",
|
||||
"sivas_id": 821084000,
|
||||
"farbig": true,
|
||||
"stueckzahl": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ST mit Muffen",
|
||||
"disabled": true,
|
||||
"beschriftung": {
|
||||
"text": "ST",
|
||||
"layer": "L-2-BEM"
|
||||
},
|
||||
"mit_muffe": true,
|
||||
"teileart": "Omniflo Fahrstrecke",
|
||||
"layer": "L-2",
|
||||
"teile": [
|
||||
{
|
||||
"artikel": "ST mit Muffen",
|
||||
"sivas_id": 821084007,
|
||||
"farbig": true,
|
||||
"stueckzahl": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "STL",
|
||||
"beschriftung": {
|
||||
"text": "STL",
|
||||
"layer": "L-2-BEM"
|
||||
},
|
||||
"mit_muffe": false,
|
||||
"teileart": "Omniflo Fahrstrecke",
|
||||
"layer": "L-2",
|
||||
"teile": [
|
||||
{
|
||||
"artikel": "STL",
|
||||
"sivas_id": 821084050,
|
||||
"farbig": true,
|
||||
"stueckzahl": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "STL mit Muffen",
|
||||
"disabled": true,
|
||||
"beschriftung": {
|
||||
"text": "STL",
|
||||
"layer": "L-2-BEM"
|
||||
},
|
||||
"mit_muffe": true,
|
||||
"teileart": "Omniflo Fahrstrecke",
|
||||
"layer": "L-2",
|
||||
"teile": [
|
||||
{
|
||||
"artikel": "STL mit Muffen",
|
||||
"sivas_id": 821084057,
|
||||
"farbig": true,
|
||||
"stueckzahl": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
[
|
||||
{
|
||||
"Sivasnr": 824331125,
|
||||
"Beschreibung": "Ladeschleife - 6300, stufenlos ausziehbar, kpl.",
|
||||
"Laenge": 6300,
|
||||
"ProfilTyp": "AP 110",
|
||||
"Stuetzfuß": 0,
|
||||
"Antriebsart": 0
|
||||
}
|
||||
]
|
||||
+247
-247
@@ -1,76 +1,4 @@
|
||||
[
|
||||
{
|
||||
"Sivasnr": 834372001,
|
||||
"ProfilTyp": "WEICHE S 45-L-350/700, KPL. MIT M",
|
||||
"WeichenTyp": "Einzelweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "M",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 1,
|
||||
"SivasnrTEF": null,
|
||||
"WeichenkörperLänge": 360
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372002,
|
||||
"ProfilTyp": "WEICHE S 45-L-350/700, KPL. MIT P",
|
||||
"WeichenTyp": "Einzelweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 1,
|
||||
"SivasnrTEF": null,
|
||||
"WeichenkörperLänge": 360
|
||||
},
|
||||
{
|
||||
"Sivasnr": "834372002+0_BG090090",
|
||||
"ProfilTyp": "WEICHE S 45-L-350/700, KPL. MIT P mit TEF Innen",
|
||||
"WeichenTyp": "Einzelweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 1,
|
||||
"SivasnrTEF": "0_B10090+0_B10090",
|
||||
"WeichenkörperLänge": 360
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372004,
|
||||
"ProfilTyp": "WEICHE S 45-R-350/700, KPL. MIT M",
|
||||
"WeichenTyp": "Einzelweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "M",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 2,
|
||||
"SivasnrTEF": null,
|
||||
"WeichenkörperLänge": 360
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372005,
|
||||
"ProfilTyp": "WEICHE S 45-R-350/700, KPL. MIT P",
|
||||
"WeichenTyp": "Einzelweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 2,
|
||||
"SivasnrTEF": null,
|
||||
"WeichenkörperLänge": 360
|
||||
},
|
||||
{
|
||||
"Sivasnr": "834372005+0_BG090090",
|
||||
"ProfilTyp": "WEICHE S 45-R-350/700, KPL. MIT P mit TEF Innen",
|
||||
"WeichenTyp": "Einzelweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 2,
|
||||
"SivasnrTEF": "0_B10090+0_B10090",
|
||||
"WeichenkörperLänge": 360
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372007,
|
||||
"ProfilTyp": "WEICHE S 45-L-400/750, KPL. MIT M",
|
||||
@@ -144,53 +72,77 @@
|
||||
"WeichenkörperLänge": 360
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372021,
|
||||
"ProfilTyp": "WEICHE S 90-L-500/600, KPL. MIT M",
|
||||
"Sivasnr": 834372001,
|
||||
"ProfilTyp": "WEICHE S 45-L-350/700, KPL. MIT M",
|
||||
"WeichenTyp": "Einzelweiche",
|
||||
"KurvenWinkel": 90,
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "M",
|
||||
"Breite": 500,
|
||||
"Länge": 600,
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 1,
|
||||
"SivasnrTEF": null,
|
||||
"WeichenkörperLänge": 360
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372022,
|
||||
"ProfilTyp": "WEICHE S 90-L-500/600, KPL. MIT P",
|
||||
"Sivasnr": 834372002,
|
||||
"ProfilTyp": "WEICHE S 45-L-350/700, KPL. MIT P",
|
||||
"WeichenTyp": "Einzelweiche",
|
||||
"KurvenWinkel": 90,
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 500,
|
||||
"Länge": 600,
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 1,
|
||||
"SivasnrTEF": null,
|
||||
"WeichenkörperLänge": 360
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372024,
|
||||
"ProfilTyp": "WEICHE S 90-R-500/600, KPL. MIT M",
|
||||
"Sivasnr": "834372002+0_BG090090",
|
||||
"ProfilTyp": "WEICHE S 45-L-350/700, KPL. MIT P mit TEF Innen",
|
||||
"WeichenTyp": "Einzelweiche",
|
||||
"KurvenWinkel": 90,
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 1,
|
||||
"SivasnrTEF": "0_B10090+0_B10090",
|
||||
"WeichenkörperLänge": 360
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372004,
|
||||
"ProfilTyp": "WEICHE S 45-R-350/700, KPL. MIT M",
|
||||
"WeichenTyp": "Einzelweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "M",
|
||||
"Breite": 500,
|
||||
"Länge": 600,
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 2,
|
||||
"SivasnrTEF": null,
|
||||
"WeichenkörperLänge": 360
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372025,
|
||||
"ProfilTyp": "WEICHE S 90-R-500/600, KPL. MIT P",
|
||||
"Sivasnr": 834372005,
|
||||
"ProfilTyp": "WEICHE S 45-R-350/700, KPL. MIT P",
|
||||
"WeichenTyp": "Einzelweiche",
|
||||
"KurvenWinkel": 90,
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 500,
|
||||
"Länge": 600,
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 2,
|
||||
"SivasnrTEF": null,
|
||||
"WeichenkörperLänge": 360
|
||||
},
|
||||
{
|
||||
"Sivasnr": "834372005+0_BG090090",
|
||||
"ProfilTyp": "WEICHE S 45-R-350/700, KPL. MIT P mit TEF Innen",
|
||||
"WeichenTyp": "Einzelweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 2,
|
||||
"SivasnrTEF": "0_B10090+0_B10090",
|
||||
"WeichenkörperLänge": 360
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372027,
|
||||
"ProfilTyp": "WEICHE S 90-L-700/700, KPL. MIT M",
|
||||
@@ -263,6 +215,54 @@
|
||||
"SivasnrTEF": "0_B10080+0_B10090",
|
||||
"WeichenkörperLänge": 360
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372021,
|
||||
"ProfilTyp": "WEICHE S 90-L-500/600, KPL. MIT M",
|
||||
"WeichenTyp": "Einzelweiche",
|
||||
"KurvenWinkel": 90,
|
||||
"Schaltungstyp": "M",
|
||||
"Breite": 500,
|
||||
"Länge": 600,
|
||||
"KurvenRichtung": 1,
|
||||
"SivasnrTEF": null,
|
||||
"WeichenkörperLänge": 360
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372022,
|
||||
"ProfilTyp": "WEICHE S 90-L-500/600, KPL. MIT P",
|
||||
"WeichenTyp": "Einzelweiche",
|
||||
"KurvenWinkel": 90,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 500,
|
||||
"Länge": 600,
|
||||
"KurvenRichtung": 1,
|
||||
"SivasnrTEF": null,
|
||||
"WeichenkörperLänge": 360
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372024,
|
||||
"ProfilTyp": "WEICHE S 90-R-500/600, KPL. MIT M",
|
||||
"WeichenTyp": "Einzelweiche",
|
||||
"KurvenWinkel": 90,
|
||||
"Schaltungstyp": "M",
|
||||
"Breite": 500,
|
||||
"Länge": 600,
|
||||
"KurvenRichtung": 2,
|
||||
"SivasnrTEF": null,
|
||||
"WeichenkörperLänge": 360
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372025,
|
||||
"ProfilTyp": "WEICHE S 90-R-500/600, KPL. MIT P",
|
||||
"WeichenTyp": "Einzelweiche",
|
||||
"KurvenWinkel": 90,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 500,
|
||||
"Länge": 600,
|
||||
"KurvenRichtung": 2,
|
||||
"SivasnrTEF": null,
|
||||
"WeichenkörperLänge": 360
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372047,
|
||||
"ProfilTyp": "WEICHE S PARALLEL-L-200/750, KPL. MIT M",
|
||||
@@ -311,61 +311,6 @@
|
||||
"SivasnrTEF": null,
|
||||
"WeichenkörperLänge": 360
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372100,
|
||||
"ProfilTyp": "WEICHE S D 45-350/700, KPL. MIT M",
|
||||
"WeichenTyp": "Doppelweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "M",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 3,
|
||||
"SivasnrTEF": null
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372101,
|
||||
"ProfilTyp": "WEICHE S D 45-350/700, KPL. MIT P",
|
||||
"WeichenTyp": "Doppelweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 3,
|
||||
"SivasnrTEF": null
|
||||
},
|
||||
{
|
||||
"Sivasnr": "0_BG090090+834372101",
|
||||
"ProfilTyp": "WEICHE S D 45-350/700, KPL. MIT P mit TEF links",
|
||||
"WeichenTyp": "Doppelweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 3,
|
||||
"SivasnrTEF": "0_B10090+0_B10090"
|
||||
},
|
||||
{
|
||||
"Sivasnr": "834372101+0_BG090090",
|
||||
"ProfilTyp": "WEICHE S D 45-350/700, KPL. MIT P mit TEF rechts",
|
||||
"WeichenTyp": "Doppelweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 3,
|
||||
"SivasnrTEF": "0_B10090+0_B10090"
|
||||
},
|
||||
{
|
||||
"Sivasnr": "0_BG090090+834372101+0_BG090090",
|
||||
"ProfilTyp": "WEICHE S D 45-350/700, KPL. MIT P mit TEF beideseitig",
|
||||
"WeichenTyp": "Doppelweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 3,
|
||||
"SivasnrTEF": "0_B10090+0_B10090+0_B10090+0_B10090"
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372103,
|
||||
"ProfilTyp": "WEICHE S D 45-400/750, KPL. MIT M",
|
||||
@@ -422,27 +367,60 @@
|
||||
"SivasnrTEF": "0_B10090+0_B10090+0_B10090+0_B10090"
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372106,
|
||||
"ProfilTyp": "WEICHE S D 90-500/600, KPL. MIT M",
|
||||
"Sivasnr": 834372100,
|
||||
"ProfilTyp": "WEICHE S D 45-350/700, KPL. MIT M",
|
||||
"WeichenTyp": "Doppelweiche",
|
||||
"KurvenWinkel": 90,
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "M",
|
||||
"Breite": 500,
|
||||
"Länge": 600,
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 3,
|
||||
"SivasnrTEF": null
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372107,
|
||||
"ProfilTyp": "WEICHE S D 90-500/600, KPL. MIT P",
|
||||
"Sivasnr": 834372101,
|
||||
"ProfilTyp": "WEICHE S D 45-350/700, KPL. MIT P",
|
||||
"WeichenTyp": "Doppelweiche",
|
||||
"KurvenWinkel": 90,
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 500,
|
||||
"Länge": 600,
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 3,
|
||||
"SivasnrTEF": null
|
||||
},
|
||||
{
|
||||
"Sivasnr": "0_BG090090+834372101",
|
||||
"ProfilTyp": "WEICHE S D 45-350/700, KPL. MIT P mit TEF links",
|
||||
"WeichenTyp": "Doppelweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 3,
|
||||
"SivasnrTEF": "0_B10090+0_B10090"
|
||||
},
|
||||
{
|
||||
"Sivasnr": "834372101+0_BG090090",
|
||||
"ProfilTyp": "WEICHE S D 45-350/700, KPL. MIT P mit TEF rechts",
|
||||
"WeichenTyp": "Doppelweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 3,
|
||||
"SivasnrTEF": "0_B10090+0_B10090"
|
||||
},
|
||||
{
|
||||
"Sivasnr": "0_BG090090+834372101+0_BG090090",
|
||||
"ProfilTyp": "WEICHE S D 45-350/700, KPL. MIT P mit TEF beideseitig",
|
||||
"WeichenTyp": "Doppelweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 3,
|
||||
"SivasnrTEF": "0_B10090+0_B10090+0_B10090+0_B10090"
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372109,
|
||||
"ProfilTyp": "WEICHE S D 90-700/700, KPL. MIT M",
|
||||
@@ -498,6 +476,28 @@
|
||||
"KurvenRichtung": 3,
|
||||
"SivasnrTEF": "0_B10080+0_B10090+0_B10080+0_B10090"
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372106,
|
||||
"ProfilTyp": "WEICHE S D 90-500/600, KPL. MIT M",
|
||||
"WeichenTyp": "Doppelweiche",
|
||||
"KurvenWinkel": 90,
|
||||
"Schaltungstyp": "M",
|
||||
"Breite": 500,
|
||||
"Länge": 600,
|
||||
"KurvenRichtung": 3,
|
||||
"SivasnrTEF": null
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372107,
|
||||
"ProfilTyp": "WEICHE S D 90-500/600, KPL. MIT P",
|
||||
"WeichenTyp": "Doppelweiche",
|
||||
"KurvenWinkel": 90,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 500,
|
||||
"Länge": 600,
|
||||
"KurvenRichtung": 3,
|
||||
"SivasnrTEF": null
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372115,
|
||||
"ProfilTyp": "WEICHE S D PARALLEL-200/750, KPL. MIT M",
|
||||
@@ -520,61 +520,6 @@
|
||||
"KurvenRichtung": 3,
|
||||
"SivasnrTEF": null
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372200,
|
||||
"ProfilTyp": "WEICHE S T 45-350/700, KPL. MIT M",
|
||||
"WeichenTyp": "Dreiwegeweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "M",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 7,
|
||||
"SivasnrTEF": null
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372201,
|
||||
"ProfilTyp": "WEICHE S T 45-350/700, KPL. MIT P",
|
||||
"WeichenTyp": "Dreiwegeweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 7,
|
||||
"SivasnrTEF": null
|
||||
},
|
||||
{
|
||||
"Sivasnr": "0_BG090090+834372201",
|
||||
"ProfilTyp": "WEICHE S T 45-350/700, KPL. MIT P mit TEF links",
|
||||
"WeichenTyp": "Dreiwegeweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 7,
|
||||
"SivasnrTEF": "0_B10090+0_B10090"
|
||||
},
|
||||
{
|
||||
"Sivasnr": "834372201+0_BG090090",
|
||||
"ProfilTyp": "WEICHE S T 45-350/700, KPL. MIT P mit TEF rechts",
|
||||
"WeichenTyp": "Dreiwegeweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 7,
|
||||
"SivasnrTEF": "0_B10090+0_B10090"
|
||||
},
|
||||
{
|
||||
"Sivasnr": "0_BG090090+834372201+0_BG090090",
|
||||
"ProfilTyp": "WEICHE S T 45-350/700, KPL. MIT P mit TEF beideseitig",
|
||||
"WeichenTyp": "Dreiwegeweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 7,
|
||||
"SivasnrTEF": "0_B10090+0_B10090+0_B10090+0_B10090"
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372203,
|
||||
"ProfilTyp": "WEICHE S T 45-400/750, KPL. MIT M",
|
||||
@@ -631,27 +576,60 @@
|
||||
"SivasnrTEF": "0_B10090+0_B10090+0_B10090+0_B10090"
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372206,
|
||||
"ProfilTyp": "WEICHE S T 90-500/600, KPL. MIT M",
|
||||
"Sivasnr": 834372200,
|
||||
"ProfilTyp": "WEICHE S T 45-350/700, KPL. MIT M",
|
||||
"WeichenTyp": "Dreiwegeweiche",
|
||||
"KurvenWinkel": 90,
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "M",
|
||||
"Breite": 500,
|
||||
"Länge": 600,
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 7,
|
||||
"SivasnrTEF": null
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372207,
|
||||
"ProfilTyp": "WEICHE S T 90-500/600, KPL. MIT P",
|
||||
"Sivasnr": 834372201,
|
||||
"ProfilTyp": "WEICHE S T 45-350/700, KPL. MIT P",
|
||||
"WeichenTyp": "Dreiwegeweiche",
|
||||
"KurvenWinkel": 90,
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 500,
|
||||
"Länge": 600,
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 7,
|
||||
"SivasnrTEF": null
|
||||
},
|
||||
{
|
||||
"Sivasnr": "0_BG090090+834372201",
|
||||
"ProfilTyp": "WEICHE S T 45-350/700, KPL. MIT P mit TEF links",
|
||||
"WeichenTyp": "Dreiwegeweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 7,
|
||||
"SivasnrTEF": "0_B10090+0_B10090"
|
||||
},
|
||||
{
|
||||
"Sivasnr": "834372201+0_BG090090",
|
||||
"ProfilTyp": "WEICHE S T 45-350/700, KPL. MIT P mit TEF rechts",
|
||||
"WeichenTyp": "Dreiwegeweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 7,
|
||||
"SivasnrTEF": "0_B10090+0_B10090"
|
||||
},
|
||||
{
|
||||
"Sivasnr": "0_BG090090+834372201+0_BG090090",
|
||||
"ProfilTyp": "WEICHE S T 45-350/700, KPL. MIT P mit TEF beideseitig",
|
||||
"WeichenTyp": "Dreiwegeweiche",
|
||||
"KurvenWinkel": 45,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 350,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 7,
|
||||
"SivasnrTEF": "0_B10090+0_B10090+0_B10090+0_B10090"
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372209,
|
||||
"ProfilTyp": "WEICHE S T 90-700/700, KPL. MIT M",
|
||||
@@ -707,6 +685,28 @@
|
||||
"KurvenRichtung": 7,
|
||||
"SivasnrTEF": "0_B10080+0_B10090+0_B10080+0_B10090"
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372206,
|
||||
"ProfilTyp": "WEICHE S T 90-500/600, KPL. MIT M",
|
||||
"WeichenTyp": "Dreiwegeweiche",
|
||||
"KurvenWinkel": 90,
|
||||
"Schaltungstyp": "M",
|
||||
"Breite": 500,
|
||||
"Länge": 600,
|
||||
"KurvenRichtung": 7,
|
||||
"SivasnrTEF": null
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372207,
|
||||
"ProfilTyp": "WEICHE S T 90-500/600, KPL. MIT P",
|
||||
"WeichenTyp": "Dreiwegeweiche",
|
||||
"KurvenWinkel": 90,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 500,
|
||||
"Länge": 600,
|
||||
"KurvenRichtung": 7,
|
||||
"SivasnrTEF": null
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372215,
|
||||
"ProfilTyp": "WEICHE S T PARALLEL-200/750, KPL. MIT M",
|
||||
@@ -729,30 +729,6 @@
|
||||
"KurvenRichtung": 7,
|
||||
"SivasnrTEF": null
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372400,
|
||||
"ProfilTyp": "WEICHE S C DELTA 1400/700, KPL. M",
|
||||
"WeichenTyp": "Deltaweiche",
|
||||
"KurvenWinkel": 90,
|
||||
"Schaltungstyp": "M",
|
||||
"Breite": 1400,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 3,
|
||||
"SivasnrTEF": null,
|
||||
"WeichenkörperLänge": 1400.4619
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372401,
|
||||
"ProfilTyp": "WEICHE S C DELTA 1400/700, KPL. P",
|
||||
"WeichenTyp": "Deltaweiche",
|
||||
"KurvenWinkel": 90,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 1400,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 7,
|
||||
"SivasnrTEF": null,
|
||||
"WeichenkörperLänge": 1400.4619
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372403,
|
||||
"ProfilTyp": "WEICHE S C DELTA 1600/800, KPL. M",
|
||||
@@ -812,6 +788,30 @@
|
||||
"KurvenRichtung": 3,
|
||||
"SivasnrTEF": "0_B10090+0_B10090+0_B10071",
|
||||
"WeichenkörperLänge": 1600.3844
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372400,
|
||||
"ProfilTyp": "WEICHE S C DELTA 1400/700, KPL. M",
|
||||
"WeichenTyp": "Deltaweiche",
|
||||
"KurvenWinkel": 90,
|
||||
"Schaltungstyp": "M",
|
||||
"Breite": 1400,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 3,
|
||||
"SivasnrTEF": null,
|
||||
"WeichenkörperLänge": 1400.4619
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372401,
|
||||
"ProfilTyp": "WEICHE S C DELTA 1400/700, KPL. P",
|
||||
"WeichenTyp": "Deltaweiche",
|
||||
"KurvenWinkel": 90,
|
||||
"Schaltungstyp": "P",
|
||||
"Breite": 1400,
|
||||
"Länge": 700,
|
||||
"KurvenRichtung": 7,
|
||||
"SivasnrTEF": null,
|
||||
"WeichenkörperLänge": 1400.4619
|
||||
},
|
||||
{
|
||||
"Sivasnr": 834372420,
|
||||
@@ -927,4 +927,4 @@
|
||||
"KurvenRichtung": 7,
|
||||
"SivasnrTEF": null
|
||||
}
|
||||
]
|
||||
]
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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; }
|
||||
|
||||
|
||||
+17
-9
@@ -973,6 +973,7 @@
|
||||
"gr-fehler-json-lesbar": "\nGeruest: Datendatei nicht lesbar: %1",
|
||||
"gr-fehler-baugruppe": "\nGeruest: Baugruppe '%1' steht nicht in der Datendatei.",
|
||||
"gr-fehler-keine-varianten": "\nGeruest: Baugruppe '%1' hat keine Geometrie-Varianten.",
|
||||
"gr-bereich-waehlen": "\nGeruest: bitte einen Bereich ueber das Menue waehlen (GERUEST_SAEULEN, GERUEST_ROHRABHAENGER, GERUEST_WANDBEFESTIGUNG).",
|
||||
"gr-fehler-dummy": "\nGeruest: Dummy-Baugruppe nicht gefunden: %1",
|
||||
"gr-fehler-dummy-variante": "\nGeruest: Dummy der Variante nicht gefunden: %1 - verwende Dummy der Baugruppe (%2)",
|
||||
"gr-fehler-dcl": "Dialog geruest.dcl konnte nicht geladen werden.",
|
||||
@@ -982,10 +983,15 @@
|
||||
"gr-abgebrochen": "\nAbgebrochen.",
|
||||
"gr-fertig": "\nGeruest-Baugruppe '%1' eingefuegt (Block %2).",
|
||||
"gr-alert-menge": "Ungueltige Anzahl. Erlaubt ist eine ganze Zahl ab 1; ein leeres Feld uebernimmt den Vorgabewert.",
|
||||
"gr-position-oben": "oben",
|
||||
"gr-position-unten": "unten",
|
||||
"gr-position-befestigung": "Befestigung",
|
||||
"gr-position-sonstiges": "sonstiges",
|
||||
"gr-konfig-keine": "<keine>",
|
||||
"gr-konfig-name": "\nName der Konfiguration: ",
|
||||
"gr-konfig-name-vorgabe": "\nName der Konfiguration <%1>: ",
|
||||
"gr-konfig-geaendert": "%1 (geaendert)",
|
||||
"gr-konfig-status-geaendert": "Geaendert gegenueber '%1' - Speichern (Enter beim Namen) ueberschreibt sie.",
|
||||
"gr-konfig-status-bibliothek": "Geaendert gegenueber '%1' (Bibliothek, schreibgeschuetzt) - zum Speichern einen neuen Namen vergeben.",
|
||||
"gr-winkel-grad": "%1%2",
|
||||
"gr-konfig-gespeichert": "\nKonfiguration '%1' gespeichert.",
|
||||
"gr-konfig-geloescht": "\nKonfiguration '%1' geloescht.",
|
||||
"gr-konfig-loeschen-frage": "\nKonfiguration '%1' wirklich loeschen? [Ja/Nein] <Nein>: ",
|
||||
@@ -993,25 +999,26 @@
|
||||
"gr-konfig-bibliothek-fest": "\nKonfigurationen der Bibliothek koennen nicht geloescht werden - nur eigene (mit * markiert).",
|
||||
"gr-konfig-teil-unbekannt": "\nGeruest: Anbauteil '%1' aus Konfiguration '%2' ist bei dieser Baugruppe unbekannt - uebersprungen.",
|
||||
"gr-konfig-variante-unbekannt": "\nGeruest: Variante '%1' aus Konfiguration '%2' ist bei dieser Baugruppe unbekannt - Auswahl unveraendert.",
|
||||
"gr-konfig-variante-gesperrt": "\nKonfiguration '%2': Variante '%1' ist gesperrt - Auswahl bleibt unveraendert.",
|
||||
"gr-fehler-schreiben": "\nGeruest: Datei konnte nicht geschrieben werden: %1",
|
||||
"gr-fehler-keine-baugruppen": "\nGeruest: Die Datendatei enthaelt keine Baugruppen.",
|
||||
"gr-tr-fehler-dcl": "Dialog %1 konnte nicht geladen werden.",
|
||||
"gr-tr-hinweis": "Die Laenge wird nach OK in der Zeichnung bestimmt.",
|
||||
"gr-tr-alert-abzug": "Laengenabzug ungueltig. Erlaubt ist eine Zahl ab 0 (mm); ein leeres Feld gilt als 0.",
|
||||
"gr-tr-prompt-start": "\nStartpunkt des Traegers waehlen <Ende>: ",
|
||||
"gr-tr-prompt-start": "\nStartpunkt (%1) waehlen <Ende>: ",
|
||||
"gr-tr-prompt-ende": "\nEndpunkt waehlen oder Laenge (mm) eingeben: ",
|
||||
"gr-tr-prompt-richtung": "\nRichtung angeben <0>: ",
|
||||
"gr-tr-eingabe-ungueltig": "\nEingabe '%1' ist weder Punkt noch Laenge.",
|
||||
"gr-tr-laenge-null": "\nStrecke %1 mm ist nicht laenger als die Abzuege (%2 mm) - kein Traeger eingefuegt.",
|
||||
"gr-tr-laenge-bereich": "\nTraegerlaenge %1 mm ausserhalb des erlaubten Bereichs %2 bis %3 mm - kein Traeger eingefuegt.",
|
||||
"gr-tr-fertig": "\nTraeger %1 mm eingefuegt (Block %2).",
|
||||
"gr-tr-ende": "\n%1 Traeger eingefuegt.",
|
||||
"gr-tr-laenge-null": "\nStrecke %1 mm ist nicht laenger als die Abzuege (%2 mm) - nichts eingefuegt (%3).",
|
||||
"gr-tr-laenge-bereich": "\n%4: Laenge %1 mm ausserhalb des erlaubten Bereichs %2 bis %3 mm - nichts eingefuegt.",
|
||||
"gr-tr-fertig": "\n%3 %1 mm eingefuegt (Block %2).",
|
||||
"gr-tr-ende": "\n%1x %2 eingefuegt.",
|
||||
"gr-tr-bez-abzug-anfang": "Abzug Anfang %1 mm",
|
||||
"gr-tr-bez-abzug-ende": "Abzug Ende %1 mm",
|
||||
"gr-tr-beschr-stil-fehlt": "\nTextstil %1 fehlt in der Zeichnung - Beschriftung mit aktuellem Stil %2.",
|
||||
"gr-tr-beschr-ausrichtung": "\nUnbekannte Ausrichtung %1 fuer die Traeger-Beschriftung - verwende BC.",
|
||||
"gr-tr-beschr-ergebnis": "\n%1 Traeger beschriftet (davon %2 ohne bekannte Variante), %3 nicht beschriftbar, %4 verwaiste Beschriftungen entfernt.",
|
||||
"gr-tr-beschr-keine": "\nKeine Rohr-Geruest-Traeger in der Zeichnung.",
|
||||
"gr-tr-beschr-ergebnis": "\n%5: %1 beschriftet (davon %2 ohne bekannte Variante), %3 nicht beschriftbar, %4 verwaiste Beschriftungen entfernt.",
|
||||
"gr-tr-beschr-keine": "\nKeine Bloecke vom Typ %1 in der Zeichnung.",
|
||||
"gr-tr-strebe-rand": "Traeger %1 mm: Der Randabstand der Querstreben betraegt %2 mm und liegt ausserhalb des erlaubten Bereichs %3 bis %4 mm (Strebenabstand %5 mm, %6 Streben). Der Traeger wird trotzdem eingefuegt.",
|
||||
"in-yesno-keys": "Ja Nein",
|
||||
"in-keys-bereich": "Alle Auswahl",
|
||||
@@ -1092,6 +1099,7 @@
|
||||
"sl-erk-kreisel": "ILS Kreisel/Eckrad",
|
||||
"sl-erk-strecke": "ILS Streckengruppe (VarioFoerderer/Gefaellestrecke)",
|
||||
"sl-erk-geruest": "Rohrgeruest",
|
||||
"sl-erk-fahrstrecke": "Omniflo Fahrstrecke",
|
||||
"sl-erk-ap60": "Omniflo Gerade AP60",
|
||||
"sl-erk-ap110": "Omniflo Gerade AP110",
|
||||
"sl-erk-apg110": "Omniflo Gerade APG110"
|
||||
|
||||
+17
-9
@@ -973,6 +973,7 @@
|
||||
"gr-fehler-json-lesbar": "\nScaffold: data file not readable: %1",
|
||||
"gr-fehler-baugruppe": "\nScaffold: assembly '%1' is not in the data file.",
|
||||
"gr-fehler-keine-varianten": "\nScaffold: assembly '%1' has no geometry variants.",
|
||||
"gr-bereich-waehlen": "\nScaffold: please choose an area from the menu (GERUEST_SAEULEN, GERUEST_ROHRABHAENGER, GERUEST_WANDBEFESTIGUNG).",
|
||||
"gr-fehler-dummy": "\nScaffold: dummy assembly not found: %1",
|
||||
"gr-fehler-dummy-variante": "\nScaffold: dummy of the variant not found: %1 - using dummy of the assembly (%2)",
|
||||
"gr-fehler-dcl": "Dialog geruest.dcl could not be loaded.",
|
||||
@@ -982,10 +983,15 @@
|
||||
"gr-abgebrochen": "\nCancelled.",
|
||||
"gr-fertig": "\nScaffold assembly '%1' inserted (block %2).",
|
||||
"gr-alert-menge": "Invalid quantity. Enter a whole number of 1 or more; an empty field uses the default.",
|
||||
"gr-position-oben": "top",
|
||||
"gr-position-unten": "bottom",
|
||||
"gr-position-befestigung": "mounting",
|
||||
"gr-position-sonstiges": "other",
|
||||
"gr-konfig-keine": "<none>",
|
||||
"gr-konfig-name": "\nConfiguration name: ",
|
||||
"gr-konfig-name-vorgabe": "\nConfiguration name <%1>: ",
|
||||
"gr-konfig-geaendert": "%1 (modified)",
|
||||
"gr-konfig-status-geaendert": "Modified compared to '%1' - Save (Enter at the name prompt) overwrites it.",
|
||||
"gr-konfig-status-bibliothek": "Modified compared to '%1' (library, read-only) - enter a new name to save.",
|
||||
"gr-winkel-grad": "%1%2",
|
||||
"gr-konfig-gespeichert": "\nConfiguration '%1' saved.",
|
||||
"gr-konfig-geloescht": "\nConfiguration '%1' deleted.",
|
||||
"gr-konfig-loeschen-frage": "\nReally delete configuration '%1'? [Ja/Nein] <Nein>: ",
|
||||
@@ -993,25 +999,26 @@
|
||||
"gr-konfig-bibliothek-fest": "\nLibrary configurations cannot be deleted - only your own (marked with *).",
|
||||
"gr-konfig-teil-unbekannt": "\nScaffold: add-on part '%1' from configuration '%2' is unknown for this assembly - skipped.",
|
||||
"gr-konfig-variante-unbekannt": "\nScaffold: variant '%1' from configuration '%2' is unknown for this assembly - selection unchanged.",
|
||||
"gr-konfig-variante-gesperrt": "\nConfiguration '%2': variant '%1' is disabled - selection left unchanged.",
|
||||
"gr-fehler-schreiben": "\nScaffold: could not write file: %1",
|
||||
"gr-fehler-keine-baugruppen": "\nScaffold: the data file contains no assemblies.",
|
||||
"gr-tr-fehler-dcl": "Dialog %1 could not be loaded.",
|
||||
"gr-tr-hinweis": "The length is defined in the drawing after OK.",
|
||||
"gr-tr-alert-abzug": "Invalid length deduction. Allowed is a number from 0 (mm); an empty field counts as 0.",
|
||||
"gr-tr-prompt-start": "\nSelect start point of the beam <exit>: ",
|
||||
"gr-tr-prompt-start": "\nSelect start point (%1) <exit>: ",
|
||||
"gr-tr-prompt-ende": "\nSelect end point or enter length (mm): ",
|
||||
"gr-tr-prompt-richtung": "\nSpecify direction <0>: ",
|
||||
"gr-tr-eingabe-ungueltig": "\nInput '%1' is neither a point nor a length.",
|
||||
"gr-tr-laenge-null": "\nDistance %1 mm is not longer than the deductions (%2 mm) - no beam inserted.",
|
||||
"gr-tr-laenge-bereich": "\nBeam length %1 mm outside the allowed range %2 to %3 mm - no beam inserted.",
|
||||
"gr-tr-fertig": "\nBeam %1 mm inserted (block %2).",
|
||||
"gr-tr-ende": "\n%1 beam(s) inserted.",
|
||||
"gr-tr-laenge-null": "\nDistance %1 mm is not longer than the deductions (%2 mm) - nothing inserted (%3).",
|
||||
"gr-tr-laenge-bereich": "\n%4: length %1 mm outside the allowed range %2 to %3 mm - nothing inserted.",
|
||||
"gr-tr-fertig": "\n%3 %1 mm inserted (block %2).",
|
||||
"gr-tr-ende": "\n%1x %2 inserted.",
|
||||
"gr-tr-bez-abzug-anfang": "Deduction start %1 mm",
|
||||
"gr-tr-bez-abzug-ende": "Deduction end %1 mm",
|
||||
"gr-tr-beschr-stil-fehlt": "\nText style %1 missing in drawing - labelling with current style %2.",
|
||||
"gr-tr-beschr-ausrichtung": "\nUnknown justification %1 for beam label - using BC.",
|
||||
"gr-tr-beschr-ergebnis": "\n%1 beam(s) labelled (%2 without known variant), %3 not labellable, %4 orphaned label(s) removed.",
|
||||
"gr-tr-beschr-keine": "\nNo pipe scaffold beams in the drawing.",
|
||||
"gr-tr-beschr-ergebnis": "\n%5: %1 labelled (%2 without known variant), %3 not labellable, %4 orphaned label(s) removed.",
|
||||
"gr-tr-beschr-keine": "\nNo blocks of type %1 in the drawing.",
|
||||
"gr-tr-strebe-rand": "Beam %1 mm: the edge distance of the cross braces is %2 mm, outside the allowed range %3 to %4 mm (brace spacing %5 mm, %6 braces). The beam is inserted anyway.",
|
||||
"in-yesno-keys": "Yes No",
|
||||
"in-keys-bereich": "All Selection",
|
||||
@@ -1092,6 +1099,7 @@
|
||||
"sl-erk-kreisel": "ILS roundabout/corner wheel",
|
||||
"sl-erk-strecke": "ILS conveyor section (VarioFoerderer/gravity conveyor)",
|
||||
"sl-erk-geruest": "Pipe scaffold",
|
||||
"sl-erk-fahrstrecke": "Omniflo track",
|
||||
"sl-erk-ap60": "Omniflo straight AP60",
|
||||
"sl-erk-ap110": "Omniflo straight AP110",
|
||||
"sl-erk-apg110": "Omniflo straight APG110"
|
||||
|
||||
+510
-437
File diff suppressed because it is too large
Load Diff
+35
-25
@@ -34,6 +34,9 @@
|
||||
[QC Linie mit GF (automatische Auf-Ab-Berechnung)]^C^C(ssg-ensure "VarioFoerderer") QcLinieMitGf
|
||||
[<-<-QC Linie mit GF und U-Form]^C^C(ssg-ensure "VarioFoerderer") QcLinieMitGfUForm
|
||||
[->Omniflo]
|
||||
[Fahrstrecke]^C^C(ssg-ensure "GeruestInsert") OMNI_FAHRSTRECKE
|
||||
[Fahrstrecken beschriften]^C^C(ssg-ensure "GeruestInsert") OMNI_FAHRSTRECKE_BESCHRIFTEN
|
||||
[--]
|
||||
[->Boegen APB110]
|
||||
[90]^C^C(ssg-ensure "OmniModulInsert") OMNI_APB_630_90
|
||||
[67.5]^C^C(ssg-ensure "OmniModulInsert") OMNI_APB_550_675
|
||||
@@ -46,26 +49,26 @@
|
||||
[AP 60]^C^C(ssg-ensure "OmniModulInsert") OMNI_AP60
|
||||
[AP 110]^C^C(ssg-ensure "OmniModulInsert") OMNI_AP110
|
||||
[<-APG 110]^C^C(ssg-ensure "OmniModulInsert") OMNI_APG110
|
||||
[->Weiche 90 Grad]
|
||||
[Einfach 90 700/700 links M]^C^C(ssg-ensure "OmniModulInsert") OMNI_W90_Einfach
|
||||
[Doppel 90 700/700 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_W90_Doppel
|
||||
[<-Dreiwege 90 700/700 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_W90_Dreiwege
|
||||
[->Weiche 45 Grad]
|
||||
[Einfach 45 350/700 links M]^C^C(ssg-ensure "OmniModulInsert") OMNI_W45_Einfach
|
||||
[Doppel 45 350/700 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_W45_Doppel
|
||||
[<-Dreiwege 45 350/700 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_W45_Dreiwege
|
||||
[->Weichen Parallel]
|
||||
[Einfach Parallel 200/750 links M]^C^C(ssg-ensure "OmniModulInsert") OMNI_WP_Einfach
|
||||
[Doppel Parallel 200/750 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_WP_Doppel
|
||||
[<-Dreiwege Parallel 200/750 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_WP_Dreiwege
|
||||
[->Weichenkoerper]
|
||||
[Einfach 22.5 links M]^C^C(ssg-ensure "OmniModulInsert") OMNI_WK_Einfach
|
||||
[Doppel 22.5 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_WK_Doppel
|
||||
[<-Dreiwege 22.5 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_WK_Dreiwege
|
||||
[->Weichenkombinationen]
|
||||
[Delta 1400/700 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_WKomb_Delta_1400
|
||||
[Delta 1600/800 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_WKomb_Delta_1600
|
||||
[<-Star 1400/1400 M]^C^C(ssg-ensure "OmniModulInsert") OMNI_WKomb_Star
|
||||
[->Weichen]
|
||||
[Einfach 90]^C^C(ssg-ensure "OmniModulInsert") OMNI_W90_Einfach
|
||||
[Doppel 90]^C^C(ssg-ensure "OmniModulInsert") OMNI_W90_Doppel
|
||||
[Dreiwege 90]^C^C(ssg-ensure "OmniModulInsert") OMNI_W90_Dreiwege
|
||||
[--]
|
||||
[Einfach 45]^C^C(ssg-ensure "OmniModulInsert") OMNI_W45_Einfach
|
||||
[Doppel 45]^C^C(ssg-ensure "OmniModulInsert") OMNI_W45_Doppel
|
||||
[Dreiwege 45]^C^C(ssg-ensure "OmniModulInsert") OMNI_W45_Dreiwege
|
||||
[--]
|
||||
[Einfach Parallel]^C^C(ssg-ensure "OmniModulInsert") OMNI_WP_Einfach
|
||||
[Doppel Parallel]^C^C(ssg-ensure "OmniModulInsert") OMNI_WP_Doppel
|
||||
[Dreiwege Parallel]^C^C(ssg-ensure "OmniModulInsert") OMNI_WP_Dreiwege
|
||||
[--]
|
||||
[Einfach 22.5]^C^C(ssg-ensure "OmniModulInsert") OMNI_WK_Einfach
|
||||
[Doppel 22.5]^C^C(ssg-ensure "OmniModulInsert") OMNI_WK_Doppel
|
||||
[Dreiwege 22.5]^C^C(ssg-ensure "OmniModulInsert") OMNI_WK_Dreiwege
|
||||
[--]
|
||||
[Delta 1600/800]^C^C(ssg-ensure "OmniModulInsert") OMNI_WKomb_Delta_1600
|
||||
[Delta 1400/700]^C^C(ssg-ensure "OmniModulInsert") OMNI_WKomb_Delta_1400
|
||||
[<-Star 1400/1400]^C^C(ssg-ensure "OmniModulInsert") OMNI_WKomb_Star
|
||||
[->TEF Elemente]
|
||||
[TEF Antriebst. rechts]^C^C(ssg-ensure "OmniModulInsert") OMNI_TEF_AntriebR
|
||||
[TEF Umlenkspannst. rechts]^C^C(ssg-ensure "OmniModulInsert") OMNI_TEF_UmlenkR
|
||||
@@ -79,6 +82,13 @@
|
||||
[Stopper AP]^C^C(ssg-ensure "OmniModulInsert") OMNI_STOPPER
|
||||
[Scanner]^C^C(ssg-ensure "OmniModulInsert") OMNI_SCANNER
|
||||
[<-Bürstenbremse]^C^C(ssg-ensure "OmniModulInsert") OMNI_BUERSTENBREMSE
|
||||
[->Spez. Streckenelemente]
|
||||
[->Türlösungen]
|
||||
[->Schwenkschienen]
|
||||
[Schwenkschiene Schiebetür L]^C^C(ssg-ensure "OmniModulInsert") OMNI_SCHW_400_L
|
||||
[Schwenkschiene Schiebetür R]^C^C(ssg-ensure "OmniModulInsert") OMNI_SCHW_400_R
|
||||
[Schwenkschiene Schiebetür L mit Sensorik]^C^C(ssg-ensure "OmniModulInsert") OMNI_SCHW_400_L_SENSORIK
|
||||
[<-<-<-Schwenkschiene Schiebetür R mit Sensorik]^C^C(ssg-ensure "OmniModulInsert") OMNI_SCHW_400_R_SENSORIK
|
||||
[~KettenFoerderer]^C^C(ssg-ensure "OmniModulInsert") OMNI_KettenFoerderer
|
||||
[Ladeschleifen]^C^C(ssg-ensure "OmniModulInsert") OMNI_LADESCHLEIFE_AP110
|
||||
[->Verbinder]
|
||||
@@ -116,12 +126,12 @@
|
||||
[~APBW 110 R550/67,5 208x347]^C^C(ssg-ensure "OmniModulInsert") OMNI_APBW_R550_675_208
|
||||
[<-~APBW 110 R550/67,5 58x497]^C^C(ssg-ensure "OmniModulInsert") OMNI_APBW_R550_675_58
|
||||
[<-Element bearbeiten]^C^C(ssg-ensure "OmniModulInsert") OMNI_EDIT
|
||||
[->Geruest]^C^C(ssg-ensure "GeruestInsert") GERUEST
|
||||
[Rohr-Geruest-Traeger]^C^C(ssg-ensure "GeruestInsert") GERUEST_TRAEGER
|
||||
[Saeulen]^C^C(ssg-ensure "GeruestInsert") GERUEST_SAEULEN
|
||||
[Rohrabhaenger]^C^C(ssg-ensure "GeruestInsert") GERUEST_ROHRABHAENGER
|
||||
[->Gerüst]^C^C(ssg-ensure "GeruestInsert") GERUEST
|
||||
[Rohr-Gerüst-Traeger]^C^C(ssg-ensure "GeruestInsert") GERUEST_TRAEGER
|
||||
[Säulen]^C^C(ssg-ensure "GeruestInsert") GERUEST_SAEULEN
|
||||
[Rohrabhänger]^C^C(ssg-ensure "GeruestInsert") GERUEST_ROHRABHAENGER
|
||||
[Wandbefestigung]^C^C(ssg-ensure "GeruestInsert") GERUEST_WANDBEFESTIGUNG
|
||||
[Gattertraeger]^C^C(ssg-ensure "GeruestInsert") GERUEST
|
||||
[Gatterträger]^C^C(ssg-ensure "GeruestInsert") GERUEST
|
||||
[->Funktionen]
|
||||
[<-<-Traeger beschriften]^C^C(ssg-ensure "GeruestInsert") GERUEST_TRAEGER_BESCHRIFTEN
|
||||
[->SPS]
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
"""Merkmale der GR_-Geruest-Bloecke im CSV-Export (build_geruest_merkmale).
|
||||
|
||||
Prueft die Teilefarbe (Attribut TEILEFARBE - das frueher gelesene FARBE gibt
|
||||
es im Schema nicht) und die Laengenabzuege, die nur der Rohr-Geruest-Traeger
|
||||
traegt und die bei den anderen GR_-Bloecken nicht auftauchen duerfen.
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "lib"))
|
||||
|
||||
from export_csv import build_geruest_merkmale # noqa: E402
|
||||
|
||||
|
||||
def test_teilefarbe_aus_teilefarbe_attribut():
|
||||
block = {"attribs": {"TEILEART": "Geruest Saeule 1 Zoll",
|
||||
"TEILEFARBE": ",RAL7030", "LAENGE": "2000",
|
||||
"LAYER": "D-6"}}
|
||||
m = build_geruest_merkmale(block)
|
||||
assert m["Farbe"] == ",RAL7030"
|
||||
assert m["Laenge"] == "2000"
|
||||
assert m["Layer"] == "D-6"
|
||||
|
||||
|
||||
def test_ohne_abzug_keine_abzugsmerkmale():
|
||||
m = build_geruest_merkmale({"attribs": {"TEILEART": "Geruest Rohrabhaenger"}})
|
||||
assert "LaengenabzugAnfang" not in m
|
||||
assert "LaengenabzugEnde" not in m
|
||||
|
||||
|
||||
def test_traeger_abzuege():
|
||||
block = {"attribs": {"TEILEART": "Geruest Traeger 1 Zoll", "LAENGE": "965",
|
||||
"LAENGENABZUGANFANG": "0",
|
||||
"LAENGENABZUGENDE": "35"}}
|
||||
m = build_geruest_merkmale(block)
|
||||
assert m["Laenge"] == "965"
|
||||
assert m["LaengenabzugAnfang"] == "0"
|
||||
assert m["LaengenabzugEnde"] == "35"
|
||||
@@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
test_export_sivas_zusammenfassen.py - zusammengefasste Sivas-Kopie
|
||||
(<output>_zusammengefasst.csv, export_sivas.items_zusammenfassen).
|
||||
Laeuft komplett ohne BricsCAD (reine Python-Logik).
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "lib"))
|
||||
|
||||
import export_sivas # noqa: E402
|
||||
|
||||
|
||||
def _geruest(teileid, laenge="2500"):
|
||||
return {"block_name": f"GR_{teileid}", "x": 0.0, "y": 0.0, "z": 0.0,
|
||||
"rotation": 0.0,
|
||||
"attribs": {"ID": teileid, "TEILEART": "Geruest Saeule 2 Zoll",
|
||||
"ARTINR": "821006051,825002022,825002022",
|
||||
"TEILEFARBE": "RAL7035,,",
|
||||
"BEZEICHNUNG": "Saeule", "LAENGE": laenge}}
|
||||
|
||||
|
||||
def test_gleiche_zeilen_werden_summiert():
|
||||
items, _ = export_sivas.process_blocks(
|
||||
[_geruest("0001"), _geruest("0002"), _geruest("0003", laenge="2800")])
|
||||
assert len(items) == 6
|
||||
zus = export_sivas.items_zusammenfassen(items)
|
||||
# Laenge gehoert zum Schluessel: 2500er und 2800er bleiben getrennt
|
||||
assert len(zus) == 4
|
||||
assert [z["nr"] for z in zus] == [1, 2, 3, 4]
|
||||
z = {(z["sivasnr"], z["laenge_mm"]): z for z in zus}
|
||||
assert z[("825002022", "2500")]["anzahl"] == 4
|
||||
assert z[("825002022", "2500")]["ids"] == ["0001", "0002"]
|
||||
assert z[("821006051", "2500")]["anzahl"] == 2
|
||||
assert z[("821006051", "2500")]["details"] == {export_sivas.MERKMAL_TEILEFARBE: "RAL7035"}
|
||||
assert z[("825002022", "2800")]["anzahl"] == 2
|
||||
assert z[("825002022", "2800")]["ids"] == ["0003"]
|
||||
|
||||
|
||||
def test_eingabe_bleibt_unveraendert():
|
||||
items, _ = export_sivas.process_blocks([_geruest("0001"), _geruest("0002")])
|
||||
vorher = [export_sivas.format_csv_line(it) for it in items]
|
||||
export_sivas.items_zusammenfassen(items)
|
||||
assert [export_sivas.format_csv_line(it) for it in items] == vorher
|
||||
|
||||
|
||||
def test_dateiname():
|
||||
assert export_sivas.zusammengefasster_dateiname("x/500651_sivas.csv") == \
|
||||
"x/500651_sivas_zusammengefasst.csv"
|
||||
@@ -0,0 +1,129 @@
|
||||
;; ============================================================
|
||||
;; test_lastent.lsp - Szenario-Test fuer ssg-lastent-ohne-attribute (ssg_core)
|
||||
;;
|
||||
;; Stellt den realen Bug nach: ein Block MIT Attributen (z.B. eine per
|
||||
;; Strg+C/V eingefuegte GR_-Kopie) ist das letzte Objekt der Zeichnung.
|
||||
;; Ein Makro merkt sich die Startmarke, zeichnet neue Objekte, sammelt
|
||||
;; "alles ab (entnext marke)" ein und wickelt es per _.-BLOCK zu einem Block.
|
||||
;; Mit nacktem (entlast) als Marke landeten dabei die ATTRIBs des alten
|
||||
;; Blocks im Auswahlsatz und wurden entfernt.
|
||||
;;
|
||||
;; Aufruf in BricsCAD:
|
||||
;; (load (strcat (getenv "DXFMAKRO") "/tests/test_lastent.lsp"))
|
||||
;; TEST_LASTENT
|
||||
;;
|
||||
;; Speichert tests/output/lastent_results.json (Konvention test_run_all).
|
||||
;; ============================================================
|
||||
|
||||
(setq *tle-pass* 0 *tle-fail* 0 *tle-fails* '())
|
||||
|
||||
;; Ein Assert: erwartet-Wert gleich ist-Wert (equal). Loggt Pass/Fail.
|
||||
(defun tle-eq (name erwartet ist)
|
||||
(if (equal erwartet ist)
|
||||
(progn (setq *tle-pass* (1+ *tle-pass*))
|
||||
(princ (strcat "\n [PASS] " name)))
|
||||
(progn (setq *tle-fail* (1+ *tle-fail*))
|
||||
(setq *tle-fails* (cons name *tle-fails*))
|
||||
(princ (strcat "\n [FAIL] " name
|
||||
"\n erwartet: " (vl-princ-to-string erwartet)
|
||||
"\n ist: " (vl-princ-to-string ist))))))
|
||||
|
||||
;; Blockdefinition mit zwei ATTDEFs anlegen (falls noch nicht vorhanden).
|
||||
(defun tle-blockdef (name)
|
||||
(if (not (tblsearch "BLOCK" name))
|
||||
(progn
|
||||
(entmake (list '(0 . "BLOCK") (cons 2 name) '(70 . 2) '(10 0.0 0.0 0.0)))
|
||||
(entmake '((0 . "LINE") (8 . "0") (10 0.0 0.0 0.0) (11 100.0 0.0 0.0)))
|
||||
(foreach tag '("ID" "ARTINR")
|
||||
(entmake (list '(0 . "ATTDEF") '(8 . "0") '(10 0.0 0.0 0.0)
|
||||
'(40 . 10.0) '(1 . "") (cons 2 tag) (cons 3 tag)
|
||||
'(70 . 0))))
|
||||
(entmake '((0 . "ENDBLK")))))
|
||||
name)
|
||||
|
||||
;; INSERT mit Attributen per entmake (INSERT 66=1, ATTRIBs, SEQEND).
|
||||
;; Rueckgabe: ename des INSERT.
|
||||
(defun tle-insert-mit-attributen (name pt werte / ins)
|
||||
(entmake (list '(0 . "INSERT") (cons 2 name) (cons 10 pt) '(66 . 1)))
|
||||
(setq ins (entlast))
|
||||
(foreach paar werte
|
||||
(entmake (list '(0 . "ATTRIB") '(8 . "0") (cons 10 pt) '(40 . 10.0)
|
||||
(cons 1 (cdr paar)) (cons 2 (car paar)) '(70 . 0))))
|
||||
(entmake '((0 . "SEQEND")))
|
||||
ins)
|
||||
|
||||
(defun lastent:tests ( / bname werte ins marke line ss e neu anz)
|
||||
(setvar "CMDECHO" 0)
|
||||
(setq bname (tle-blockdef "TLE_ATT_BLOCK"))
|
||||
(setq werte (list (cons "ID" "4711") (cons "ARTINR" "A1,A2")))
|
||||
(setq ins (tle-insert-mit-attributen bname '(0.0 0.0 0.0) werte))
|
||||
|
||||
;; --- Vorbedingung: Attribute lesbar, INSERT ist (entlast) ---
|
||||
(tle-eq "vorher: attribute lesbar" werte (ssg-attrib-read ins))
|
||||
(tle-eq "vorher: entlast = insert" ins (entlast))
|
||||
|
||||
;; --- Marke steht auf dem SEQEND des Attribut-Blocks ---
|
||||
(setq marke (ssg-lastent-ohne-attribute))
|
||||
(tle-eq "marke ist SEQEND" "SEQEND" (cdr (assoc 0 (entget marke))))
|
||||
|
||||
;; --- Neues Objekt zeichnen: entnext der Marke ist genau dieses Objekt ---
|
||||
(entmake '((0 . "LINE") (8 . "0") (10 0.0 50.0 0.0) (11 100.0 50.0 0.0)))
|
||||
(setq line (entlast))
|
||||
(tle-eq "entnext marke = neues objekt" line (entnext marke))
|
||||
|
||||
;; --- Einsammeln + _.-BLOCK wie geruest-block-bauen ---
|
||||
(setq ss (ssadd) anz 0 e (entnext marke))
|
||||
(while e (ssadd e ss) (setq anz (1+ anz)) (setq e (entnext e)))
|
||||
(tle-eq "genau 1 objekt eingesammelt" 1 anz)
|
||||
(setq neu (strcat "TLE_NEU_" (ssg-timestamp)))
|
||||
(command "_.-BLOCK" neu '(0.0 0.0 0.0) ss "")
|
||||
|
||||
;; --- Kern des Bugs: der alte Block behaelt seine Attribute ---
|
||||
(tle-eq "nachher: attribute erhalten" werte (ssg-attrib-read ins))
|
||||
(tle-eq "nachher: neuer block existiert" T (if (tblsearch "BLOCK" neu) T nil))
|
||||
|
||||
;; --- Leere Zeichnung wird hier nicht getestet (Testzeichnung ist nie leer);
|
||||
;; ohne Attribute liefert der Helfer (entlast) unveraendert ---
|
||||
(entmake '((0 . "LINE") (8 . "0") (10 0.0 90.0 0.0) (11 10.0 90.0 0.0)))
|
||||
(tle-eq "ohne attribute: marke = entlast" (entlast) (ssg-lastent-ohne-attribute))
|
||||
|
||||
;; Aufraeumen
|
||||
(entdel ins)
|
||||
(entdel (entlast))
|
||||
(princ))
|
||||
|
||||
|
||||
(defun lastent:export-results (out-dir / f pfad)
|
||||
(setq pfad (strcat out-dir "/lastent_results.json"))
|
||||
(setq f (open pfad "w"))
|
||||
(if f
|
||||
(progn
|
||||
(write-line "{" f)
|
||||
(write-line (strcat " \"pass\": " (itoa *tle-pass*) ",") f)
|
||||
(write-line (strcat " \"fail\": " (itoa *tle-fail*) ",") f)
|
||||
(write-line (strcat " \"status\": \""
|
||||
(if (= *tle-fail* 0) "OK" "FEHLER") "\"") f)
|
||||
(write-line "}" f)
|
||||
(close f)
|
||||
(princ (strcat "\n Ergebnis: " pfad))))
|
||||
(princ))
|
||||
|
||||
|
||||
(defun c:TEST_LASTENT ( / )
|
||||
(setq *tle-pass* 0 *tle-fail* 0 *tle-fails* '())
|
||||
(princ "\n================================================================")
|
||||
(princ "\n TEST_LASTENT - ssg-lastent-ohne-attribute (ssg_core.lsp)")
|
||||
(princ "\n================================================================")
|
||||
(lastent:tests)
|
||||
(princ "\n\n----------------------------------------------------------------")
|
||||
(princ (strcat "\n Ergebnis: " (itoa *tle-pass*) " PASS, "
|
||||
(itoa *tle-fail*) " FAIL"))
|
||||
(if (> *tle-fail* 0)
|
||||
(progn
|
||||
(princ "\n Fehlgeschlagen:")
|
||||
(foreach n (reverse *tle-fails*) (princ (strcat "\n - " n)))))
|
||||
(princ "\n================================================================")
|
||||
(princ))
|
||||
|
||||
(princ "\nTEST_LASTENT geladen. Aufruf: TEST_LASTENT")
|
||||
(princ)
|
||||
+268
-31
@@ -217,6 +217,21 @@
|
||||
(setq *ssg-ils-dim* _lay-dim-alt
|
||||
*ssg-layer-cfg* _lay-cfg-alt
|
||||
*ssg-layer-cfg-versucht* _lay-vers-alt)
|
||||
|
||||
;; --- DCL-Vorlagen: Platzhalterzeilen //@NAME@ ersetzen ---
|
||||
(tu-eq "ssg-dcl-zeilen-ersetzen/ersetzt"
|
||||
'("a {" " x;" " y;" "}")
|
||||
(ssg-dcl-zeilen-ersetzen '("a {" " //@L@" "}") '(("L" " x;" " y;"))))
|
||||
(tu-eq "ssg-dcl-zeilen-ersetzen/leer-entfernt"
|
||||
'("a {" "}")
|
||||
(ssg-dcl-zeilen-ersetzen '("a {" "\t//@L@ " "}") '(("L"))))
|
||||
(tu-eq "ssg-dcl-zeilen-ersetzen/mehrere"
|
||||
'("1" "2")
|
||||
(ssg-dcl-zeilen-ersetzen '("//@A@" "//@B@") '(("A" "1") ("B" "2"))))
|
||||
;; unbekannter Marker und normaler Kommentar bleiben stehen
|
||||
(tu-eq "ssg-dcl-zeilen-ersetzen/unbekannt"
|
||||
'("//@X@" "// Kommentar")
|
||||
(ssg-dcl-zeilen-ersetzen '("//@X@" "// Kommentar") '(("A" "1"))))
|
||||
)
|
||||
|
||||
|
||||
@@ -849,7 +864,7 @@
|
||||
)
|
||||
|
||||
(defun tu-tests-geruest ( / _eintrag _gruppe _teile _konfig _rec _pfad _f
|
||||
_zurueck _bgtest _saeulen)
|
||||
_zurueck _bgtest _saeulen _vmq _alt _fs)
|
||||
(princ "\n[GeruestInsert]")
|
||||
;; GeruestInsert ist ein lazy Feature-Modul (nicht in der Core-Ladeliste).
|
||||
;; Geladen wird es zentral in test_unit.scr auf .scr-Top-Level; hier nur
|
||||
@@ -917,10 +932,10 @@
|
||||
"{\"artikel\": \"X\", \"sivas_id\": 7, \"stueckzahl\": 2, \"anzahl_vorgabe\": 5}")
|
||||
2))
|
||||
;; Dummy, der zugleich Teile-DWG ist, faellt aus der Teileliste
|
||||
(tu-eq "geruest-ohne-pfad/entfernt" '("b/2.dwg")
|
||||
(geruest-ohne-pfad "A/1.DWG" '("a/1.dwg" "b/2.dwg")))
|
||||
(tu-eq "geruest-ohne-pfad/nil" '("a/1.dwg")
|
||||
(geruest-ohne-pfad nil '("a/1.dwg")))
|
||||
(tu-eq "geruest-ohne-pfad/entfernt" '(("b/2.dwg" . 90.0))
|
||||
(geruest-ohne-pfad "A/1.DWG" '(("a/1.dwg" . 0.0) ("b/2.dwg" . 90.0))))
|
||||
(tu-eq "geruest-ohne-pfad/nil" '(("a/1.dwg" . 0.0))
|
||||
(geruest-ohne-pfad nil '(("a/1.dwg" . 0.0))))
|
||||
;; Dummy-Wahl: Variante gewinnt, fehlende Varianten-DWG -> Baugruppe
|
||||
(setq _pfad (geruest-dummy-pfad "821006036.dwg"))
|
||||
(if (and _pfad (findfile _pfad))
|
||||
@@ -1015,7 +1030,148 @@
|
||||
"{\"artikel\": \"Schraubenset\", \"anzahl\": 3},"
|
||||
"{\"artikel\": \"unbekannt\", \"anzahl\": 1}]}")))
|
||||
(tu-eq "geruest-konfig-position" '(nil 3)
|
||||
(geruest-konfig-position _konfig "oben" _teile))
|
||||
(geruest-konfig-position _konfig "oben" _teile nil))
|
||||
|
||||
;; --- anbaugruppen: befestigung / sonstiges ---
|
||||
(setq _bgtest (ssg-json-parse
|
||||
(strcat "{\"anbaugruppen\": {\"befestigung\": [{\"artikel\": \"K\"}],"
|
||||
" \"sonstiges\": [{\"artikel\": \"H1\"}, {\"artikel\": \"H2\"}]}}")))
|
||||
(tu-eq "geruest-anbau-liste/befestigung" 1
|
||||
(length (geruest-anbau-liste _bgtest "befestigung")))
|
||||
(tu-eq "geruest-anbau-liste/sonstiges" '("H1" "H2")
|
||||
(mapcar 'geruest-eintrag-name (geruest-anbau-liste _bgtest "sonstiges")))
|
||||
;; altes flaches Array gilt als befestigung
|
||||
(setq _rec (ssg-json-parse "{\"anbaugruppen\": [{\"artikel\": \"A\"}, {\"artikel\": \"B\"}]}"))
|
||||
(tu-eq "geruest-anbau-liste/flach" 2 (length (geruest-anbau-liste _rec "befestigung")))
|
||||
(tu-nil "geruest-anbau-liste/flach-sonstiges" (geruest-anbau-liste _rec "sonstiges"))
|
||||
(tu-nil "geruest-anbau-liste/leer"
|
||||
(geruest-anbau-liste
|
||||
(ssg-json-parse "{\"anbaugruppen\": {\"befestigung\": [], \"sonstiges\": []}}")
|
||||
"sonstiges"))
|
||||
(tu-nil "geruest-anbau-liste/fehlt"
|
||||
(geruest-anbau-liste (ssg-json-parse "{\"id\": \"X\"}") "befestigung"))
|
||||
(tu-eq "geruest-dlg-standard/teile" '(("0" . "1") ("0" . "1"))
|
||||
(geruest-dlg-standard (geruest-anbau-liste _bgtest "sonstiges")))
|
||||
(tu-eq "geruest-mengen-addieren" '(nil 3 2 5)
|
||||
(geruest-mengen-addieren '(nil 1 nil 2) '(nil 2 2 3)))
|
||||
;; Alte Konfiguration mit Haltearm unter "oben": landet in sonstiges
|
||||
;; (Mengen addiert), oben meldet ihn nicht als unbekannt
|
||||
(setq _konfig (ssg-json-parse
|
||||
(strcat "{\"name\": \"Alt\","
|
||||
" \"oben\": [{\"artikel\": \"K\", \"anzahl\": 2}, {\"artikel\": \"H2\", \"anzahl\": 1}],"
|
||||
" \"unten\": [{\"artikel\": \"H2\", \"anzahl\": 2}],"
|
||||
" \"sonstiges\": [{\"artikel\": \"H1\", \"anzahl\": 4}]}")))
|
||||
(tu-eq "geruest-konfig-position/ausweich" '(2)
|
||||
(geruest-konfig-position _konfig "oben"
|
||||
(geruest-anbau-liste _bgtest "befestigung")
|
||||
(geruest-anbau-liste _bgtest "sonstiges")))
|
||||
;; --- Winkel Platte: Basis ungedreht, Anbauteile gedreht, kein Doppel ---
|
||||
(tu-eq "geruest-teile-dwgs-rot/90" '(("b.dwg" . 0.0) ("a.dwg" . 90.0))
|
||||
(geruest-teile-dwgs-rot '("b.dwg") '("b.dwg" "a.dwg") 90))
|
||||
(tu-eq "geruest-teile-dwgs-rot/0" '(("a.dwg" . 0.0))
|
||||
(geruest-teile-dwgs-rot nil '("a.dwg") 0))
|
||||
(tu-eq "geruest-rest-liste" '(3 4) (geruest-rest-liste '(1 2 3 4) 2))
|
||||
(tu-eq "geruest-winkel-aus-index/90" 90 (geruest-winkel-aus-index "1"))
|
||||
(tu-eq "geruest-winkel-aus-index/leer" 0 (geruest-winkel-aus-index ""))
|
||||
(tu-eq "geruest-winkel-index/90" "1" (geruest-winkel-index 90))
|
||||
(tu-eq "geruest-winkel-index/fehlt" "0" (geruest-winkel-index nil))
|
||||
;; --- Radiobuttons der Varianten: Key "v<i>" <-> Index ---
|
||||
(tu-eq "geruest-radio-key" "v3" (geruest-radio-key 3))
|
||||
(tu-eq "geruest-radio-index" 3 (geruest-radio-index "v3"))
|
||||
(tu-eq "geruest-radio-index/leer" 0 (geruest-radio-index ""))
|
||||
(tu-eq "geruest-radio-index/nil" 0 (geruest-radio-index nil))
|
||||
(tu-eq "geruest-indizes" '(0 1 2) (geruest-indizes 3))
|
||||
(tu-nil "geruest-indizes/0" (geruest-indizes 0))
|
||||
(tu-eq "geruest-dcl-varianten-zeilen"
|
||||
'(" : radio_button { key = \"v1\"; label = \"B 1''\"; }")
|
||||
(geruest-dcl-varianten-zeilen
|
||||
(list '(("name" . "A")) '(("name" . "B 1\""))) '(1)))
|
||||
;; Variante mit Teilen: Artikelnummern in Klammern, jede nur einmal
|
||||
(tu-eq "geruest-varianten-label/nummern" "R 2\" (111, 222)"
|
||||
(geruest-varianten-label
|
||||
(ssg-json-parse
|
||||
(strcat "{\"name\": \"R 2\\\"\", \"teile\": ["
|
||||
"{\"artikel\": \"A\", \"sivas_id\": 111},"
|
||||
"{\"artikel\": \"B\", \"sivas_id\": 222, \"stueckzahl\": 2}]}"))))
|
||||
(tu-eq "geruest-varianten-label/ohne" "A"
|
||||
(geruest-varianten-label '(("name" . "A"))))
|
||||
;; --- Gesperrte Varianten ("disabled": true) ---
|
||||
(setq _rec (list '(("name" . "A") ("disabled" . T))
|
||||
'(("name" . "B"))
|
||||
'(("name" . "C") ("disabled" . T))))
|
||||
(tu-true "geruest-variante-gesperrt-p/ja" (geruest-variante-gesperrt-p (nth 0 _rec)))
|
||||
(tu-nil "geruest-variante-gesperrt-p/nein" (geruest-variante-gesperrt-p (nth 1 _rec)))
|
||||
(tu-eq "geruest-erste-freie-variante" 1 (geruest-erste-freie-variante _rec))
|
||||
(tu-eq "geruest-erste-freie-variante/alle-gesperrt" 0
|
||||
(geruest-erste-freie-variante (list '(("disabled" . T)))))
|
||||
(tu-eq "geruest-variante-waehlbar/frei" 1 (geruest-variante-waehlbar _rec 1))
|
||||
(tu-eq "geruest-variante-waehlbar/gesperrt" 1 (geruest-variante-waehlbar _rec 2))
|
||||
(tu-eq "geruest-variante-waehlbar/zu-gross" 1 (geruest-variante-waehlbar _rec 7))
|
||||
;; Ersetzungen: ohne Teile entfallen die Bloecke (leerer Cluster)
|
||||
(setq _rec (geruest-dcl-ersetzungen "Saeulen" nil nil
|
||||
(list '(("name" . "A")))))
|
||||
(tu-nil "geruest-dcl-ersetzungen/ohne-befestigung"
|
||||
(cdr (assoc "BEFESTIGUNG" _rec)))
|
||||
(tu-nil "geruest-dcl-ersetzungen/ohne-sonstiges"
|
||||
(cdr (assoc "SONSTIGES" _rec)))
|
||||
(tu-eq "geruest-dcl-ersetzungen/varianten" 1
|
||||
(length (cdr (assoc "VARIANTEN" _rec))))
|
||||
;; --- Geaenderte Konfiguration: Vergleich ohne Namen ---
|
||||
(tu-true "geruest-record-gleich-p/name"
|
||||
(geruest-record-gleich-p '(("name" . "A") ("laenge" . "100"))
|
||||
'(("name" . "B") ("laenge" . "100"))))
|
||||
(tu-nil "geruest-record-gleich-p/geaendert"
|
||||
(geruest-record-gleich-p '(("name" . "A") ("laenge" . "100"))
|
||||
'(("name" . "A") ("laenge" . "200"))))
|
||||
;; Eigene Konfiguration gewinnt vor gleichnamiger Bibliothek; nur eine
|
||||
;; eigene liefert eine Namensvorgabe (Ueberspeichern)
|
||||
(setq _alt *geruest-konfig-liste*)
|
||||
(setq *geruest-konfig-liste*
|
||||
(list (cons nil '(("name" . "K"))) (cons T '(("name" . "K")))
|
||||
(cons nil '(("name" . "L")))))
|
||||
(tu-eq "geruest-konfig-index/eigene-zuerst" 2 (geruest-konfig-index "K"))
|
||||
(tu-eq "geruest-konfig-index/bibliothek" 3 (geruest-konfig-index "L"))
|
||||
(tu-eq "geruest-konfig-name-vorgabe/eigene" "K" (geruest-konfig-name-vorgabe 2))
|
||||
(tu-nil "geruest-konfig-name-vorgabe/bibliothek" (geruest-konfig-name-vorgabe 1))
|
||||
(tu-nil "geruest-konfig-name-vorgabe/keine" (geruest-konfig-name-vorgabe 0))
|
||||
(setq *geruest-konfig-liste* _alt)
|
||||
(tu-eq "geruest-konfig-sonstiges/umhaengen" '(4 3)
|
||||
(geruest-konfig-sonstiges _konfig
|
||||
(geruest-anbau-liste _bgtest "sonstiges")
|
||||
(geruest-anbau-liste _bgtest "befestigung")))
|
||||
;; Befestigung = Gesamtanzahl: neues Feld "befestigung", altes oben +
|
||||
;; unten summiert; der Haltearm unter "oben" wird hier still uebergangen
|
||||
(tu-eq "geruest-konfig-befestigung/alt" '(2)
|
||||
(geruest-konfig-befestigung _konfig
|
||||
(geruest-anbau-liste _bgtest "befestigung")
|
||||
(geruest-anbau-liste _bgtest "sonstiges")))
|
||||
(tu-eq "geruest-konfig-befestigung/oben-unten" '(5)
|
||||
(geruest-konfig-befestigung
|
||||
(ssg-json-parse
|
||||
(strcat "{\"name\": \"A\", \"oben\": [{\"artikel\": \"K\", \"anzahl\": 2}],"
|
||||
" \"unten\": [{\"artikel\": \"K\", \"anzahl\": 3}]}"))
|
||||
(geruest-anbau-liste _bgtest "befestigung")
|
||||
(geruest-anbau-liste _bgtest "sonstiges")))
|
||||
(tu-eq "geruest-konfig-befestigung/neu" '(4)
|
||||
(geruest-konfig-befestigung
|
||||
(ssg-json-parse
|
||||
"{\"name\": \"N\", \"befestigung\": [{\"artikel\": \"K\", \"anzahl\": 4}]}")
|
||||
(geruest-anbau-liste _bgtest "befestigung")
|
||||
(geruest-anbau-liste _bgtest "sonstiges")))
|
||||
;; Artikelnummer(n) fuer die Anzeige: Einzelteil bzw. Gruppe eindeutig
|
||||
(tu-eq "geruest-artnr-anzeige/einzelteil" "825002019"
|
||||
(geruest-artnr-anzeige _eintrag))
|
||||
(tu-eq "geruest-artnr-anzeige/gruppe" "111, 222"
|
||||
(geruest-artnr-anzeige _gruppe))
|
||||
;; Eine Befestigungsspalte (Prefix b) mit Art.-Nr.-Zeile je Teil
|
||||
(setq _rec (geruest-dcl-ersetzungen "Saeulen" (list _eintrag) nil
|
||||
(list '(("name" . "A")))))
|
||||
(tu-true "geruest-dcl-ersetzungen/befestigung-key"
|
||||
(vl-some '(lambda (z) (vl-string-search "key = \"bm0\"" z))
|
||||
(cdr (assoc "BEFESTIGUNG" _rec))))
|
||||
(tu-true "geruest-dcl-ersetzungen/artnr-zeile"
|
||||
(vl-some '(lambda (z) (vl-string-search "Art.-Nr. 825002019" z))
|
||||
(cdr (assoc "BEFESTIGUNG" _rec))))
|
||||
|
||||
;; --- Variante gewinnt vor Baugruppe (TEILEART/dummy) ---
|
||||
;; Die zusammengefuehrte Saeulen-Baugruppe unterscheidet 1 Zoll und
|
||||
@@ -1032,9 +1188,7 @@
|
||||
(geruest-variante-wert nil _bgtest "dummy"))
|
||||
|
||||
;; --- Zusammengefuehrte Saeulen-Baugruppe ---
|
||||
(setq _saeulen nil)
|
||||
(foreach _e (geruest-baugruppen-liste)
|
||||
(if (equal (car _e) "Saeulen") (setq _saeulen (cdr _e))))
|
||||
(setq _saeulen (geruest-baugruppe "Saeulen" (geruest-daten)))
|
||||
(tu-eq "geruest/saeulen-vorhanden" T (if _saeulen T nil))
|
||||
(if _saeulen
|
||||
(progn
|
||||
@@ -1046,10 +1200,27 @@
|
||||
(tu-geruest-artikel-unvollstaendig
|
||||
(ssg-json-get _saeulen "geometrie_varianten")))
|
||||
(tu-eq "geruest/saeulen-anbauteile" T
|
||||
(if (ssg-json-get _saeulen "anbaugruppen") T nil))
|
||||
(if (geruest-anbau-liste _saeulen "befestigung") T nil))
|
||||
(tu-eq "geruest/saeulen-anbauteile-artikel" 0
|
||||
(tu-geruest-artikel-unvollstaendig
|
||||
(ssg-json-get _saeulen "anbaugruppen")))
|
||||
(geruest-anbau-liste _saeulen "befestigung")))
|
||||
;; Haltearme passen weder oben noch unten -> eigene Sonstiges-Zeile
|
||||
(tu-eq "geruest/saeulen-sonstiges" 4
|
||||
(length (geruest-anbau-liste _saeulen "sonstiges")))
|
||||
(tu-eq "geruest/saeulen-sonstiges-artikel" 0
|
||||
(tu-geruest-artikel-unvollstaendig
|
||||
(geruest-anbau-liste _saeulen "sonstiges")))
|
||||
(tu-nil "geruest/saeulen-haltearm-nicht-befestigung"
|
||||
(vl-some '(lambda (a)
|
||||
(wcmatch (geruest-eintrag-name a) "HALTEARM*"))
|
||||
(geruest-anbau-liste _saeulen "befestigung")))
|
||||
;; Rohrabhaenger/Wandbefestigung haben keine Sonstiges-Teile
|
||||
(foreach _e '("Rohrabhaenger" "Wandbefestigung")
|
||||
(setq _rec (geruest-baugruppe _e (geruest-daten)))
|
||||
(tu-true (strcat "geruest/" _e "-befestigung")
|
||||
(geruest-anbau-liste _rec "befestigung"))
|
||||
(tu-nil (strcat "geruest/" _e "-ohne-sonstiges")
|
||||
(geruest-anbau-liste _rec "sonstiges")))
|
||||
(tu-eq "geruest/saeulen-titel" "Saeulen" (geruest-titel _saeulen))
|
||||
;; Variante R 1" traegt die eigene TEILEART - per Name gesucht,
|
||||
;; die Reihenfolge in geruest.json ist nicht fest.
|
||||
@@ -1136,20 +1307,33 @@
|
||||
(tu-eqf "geruest-traeger-streben/6000-letzte" 5750.0 (last _rec))
|
||||
;; Konfiguration: fehlende Felder -> Standard, ohne querstrebe -> nil
|
||||
;; Ergebnis (dummy laenge querlinie abstand rand-min rand-max)
|
||||
;; Streben nur bei Varianten mit "mit_querstrebe": true
|
||||
(setq _vmq (ssg-json-parse "{\"name\": \"A\", \"mit_querstrebe\": true}"))
|
||||
(tu-eqf "geruest-traeger-strebe-cfg/standard" '(nil 30.0 25.0 500.0 100.0 250.0)
|
||||
(geruest-traeger-strebe-cfg nil
|
||||
(geruest-traeger-strebe-cfg _vmq
|
||||
(ssg-json-parse "{\"querstrebe\": {\"rand_min\": 100}}")))
|
||||
(tu-eqf "geruest-traeger-strebe-cfg/dummy" '("s.dwg" 30.0 25.0 500.0 100.0 250.0)
|
||||
(geruest-traeger-strebe-cfg nil
|
||||
(geruest-traeger-strebe-cfg _vmq
|
||||
(ssg-json-parse "{\"querstrebe\": {\"dummy\": \"s.dwg\"}}")))
|
||||
(tu-eqf "geruest-traeger-strebe-cfg/wert" '(nil 30.0 25.0 400.0 100.0 250.0)
|
||||
(geruest-traeger-strebe-cfg _vmq
|
||||
(ssg-json-parse "{\"querstrebe\": {\"abstand\": 400}}")))
|
||||
(tu-eqf "geruest-traeger-strebe-cfg/variante" '(nil 30.0 25.0 300.0 100.0 250.0)
|
||||
(geruest-traeger-strebe-cfg
|
||||
(ssg-json-parse
|
||||
"{\"mit_querstrebe\": true, \"querstrebe\": {\"abstand\": 300}}")
|
||||
(ssg-json-parse "{\"querstrebe\": {\"abstand\": 400}}")))
|
||||
(tu-nil "geruest-traeger-strebe-cfg/ohne-flag"
|
||||
(geruest-traeger-strebe-cfg (ssg-json-parse "{\"name\": \"Rohr 1\"}")
|
||||
(ssg-json-parse "{\"querstrebe\": {\"abstand\": 400}}")))
|
||||
(tu-nil "geruest-traeger-strebe-cfg/ohne-variante"
|
||||
(geruest-traeger-strebe-cfg nil
|
||||
(ssg-json-parse "{\"querstrebe\": {\"abstand\": 400}}")))
|
||||
;; Querlinien an Anfang und Ende der 30 mm langen Strebe
|
||||
(tu-eqf "geruest-traeger-strebe-enden" '(235.0 265.0)
|
||||
(geruest-traeger-strebe-enden 250.0 30.0))
|
||||
(tu-nil "geruest-traeger-strebe-cfg/ohne"
|
||||
(geruest-traeger-strebe-cfg nil (ssg-json-parse "{\"id\": \"X\"}")))
|
||||
(geruest-traeger-strebe-cfg _vmq (ssg-json-parse "{\"id\": \"X\"}")))
|
||||
;; Muffe nur bei "mit_muffe": true; Variante darf eigene Muffe mitbringen
|
||||
(setq _bgtest (ssg-json-parse "{\"muffe\": {\"dummy\": \"m.dwg\"}}"))
|
||||
(tu-eq "geruest-traeger-muffe-dummy/flag" "m.dwg"
|
||||
@@ -1271,13 +1455,8 @@
|
||||
_bgtest "LAENGENABZUGENDE" "aktiv"))
|
||||
|
||||
;; --- Rohr-Geruest-Traeger in der echten Datendatei ---
|
||||
;; Eigene Datei data/json/geruest_traeger.json: im Bereichs-Dropdown von
|
||||
;; GERUEST darf er nicht auftauchen, ueber geruest-traeger-daten muss er
|
||||
;; auffindbar sein.
|
||||
(setq _rec nil)
|
||||
(foreach _e (geruest-baugruppen-liste)
|
||||
(if (equal (car _e) "Traeger") (setq _rec T)))
|
||||
(tu-nil "geruest/traeger-nicht-im-dropdown" _rec)
|
||||
;; Eigene Datei data/json/geruest_traeger.json: in geruest.json darf er
|
||||
;; nicht stehen, ueber geruest-traeger-daten muss er auffindbar sein.
|
||||
(tu-true "geruest/traeger-datei"
|
||||
(findfile (geruest-json-pfad "geruest_traeger.json")))
|
||||
(setq _traeger (geruest-baugruppe "Traeger" (geruest-traeger-daten)))
|
||||
@@ -1297,12 +1476,26 @@
|
||||
(geruest-attr-feld nil _traeger "LAENGE" "max"))
|
||||
(tu-eqf "geruest/traeger-querstrebe"
|
||||
'("dummy_Strebe_30x4.dwg" 30.0 25.0 500.0 100.0 250.0)
|
||||
(geruest-traeger-strebe-cfg nil _traeger))
|
||||
(geruest-traeger-strebe-cfg _vmq _traeger))
|
||||
;; Querstreben-Flag je Variante: alle ausser den beiden Rohr-1"-Varianten
|
||||
(setq _rec 0)
|
||||
(foreach _v (ssg-json-get _traeger "geometrie_varianten")
|
||||
(if (geruest-traeger-strebe-cfg _v _traeger) (setq _rec (1+ _rec))))
|
||||
(tu-eq "geruest/traeger-querstreben-varianten" 6 _rec)
|
||||
(tu-nil "geruest/traeger-rohr-ohne-querstrebe"
|
||||
(geruest-traeger-strebe-cfg
|
||||
(car (ssg-json-get _traeger "geometrie_varianten")) _traeger))
|
||||
;; Muffen-Flag ausdruecklich je Variante: genau die "mit (2) Muffe(n)"
|
||||
(setq _rec 0)
|
||||
(foreach _v (ssg-json-get _traeger "geometrie_varianten")
|
||||
(if (geruest-traeger-muffe-dummy _v _traeger) (setq _rec (1+ _rec))))
|
||||
(tu-eq "geruest/traeger-muffen-varianten" 4 _rec)
|
||||
;; Dialog: ein Radiobutton je Variante, auch fuer die mit Muffe
|
||||
(tu-eq "geruest/traeger-radiobuttons" 8
|
||||
(length (geruest-dcl-varianten-zeilen
|
||||
(ssg-json-get _traeger "geometrie_varianten")
|
||||
(geruest-indizes (length (ssg-json-get _traeger
|
||||
"geometrie_varianten"))))))
|
||||
;; Jede Variante definiert Beschriftungstext UND -layer selbst - der
|
||||
;; Layer ist je Traegervariante verschieden, eine Vorgabe der
|
||||
;; Baugruppe gibt es dafuer bewusst nicht.
|
||||
@@ -1327,6 +1520,44 @@
|
||||
)
|
||||
)
|
||||
|
||||
;; --- Omniflo-Fahrstrecke (data/json/omniflo_fahrstrecke.json) ---
|
||||
;; Gleiche Linien-Logik wie der Traeger: jede Variante ein Radiobutton,
|
||||
;; nur ST/STL gibt es mit Muffen, nur ST/STL sind farbig.
|
||||
(setq _fs (geruest-baugruppe "Fahrstrecke" (geruest-fahrstrecke-daten)))
|
||||
(tu-true "fahrstrecke/vorhanden" _fs)
|
||||
(if _fs
|
||||
(progn
|
||||
(setq _rec (ssg-json-get _fs "geometrie_varianten"))
|
||||
(tu-eq "fahrstrecke/titel" "Fahrstrecke" (geruest-titel _fs))
|
||||
(tu-eq "fahrstrecke/varianten"
|
||||
'("AP 110" "APG 110" "AP 60" "ST" "ST mit Muffen" "STL" "STL mit Muffen")
|
||||
(mapcar 'geruest-eintrag-name _rec))
|
||||
(tu-eq "fahrstrecke/mit-muffe" '("ST mit Muffen" "STL mit Muffen")
|
||||
(mapcar 'geruest-eintrag-name
|
||||
(vl-remove-if-not '(lambda (v) (ssg-json-get v "mit_muffe")) _rec)))
|
||||
;; AP 110 ohne "farbig" -> leerer TEILEFARBE-Eintrag, ST farbig
|
||||
(tu-eq "fahrstrecke/ap110-nicht-farbig" '("")
|
||||
(geruest-farbliste (geruest-teile-paare (nth 0 _rec) nil) "RAL7035"))
|
||||
(tu-eq "fahrstrecke/st-farbig" '("RAL7035")
|
||||
(geruest-farbliste
|
||||
(geruest-teile-paare
|
||||
(nth (geruest-name-index "ST" _rec) _rec) nil)
|
||||
"RAL7035"))
|
||||
;; Keine Querstreben; Muffen-Dummy wie beim Traeger nur bei den
|
||||
;; Varianten mit "mit_muffe": true
|
||||
(tu-nil "fahrstrecke/ohne-querstrebe"
|
||||
(geruest-traeger-strebe-cfg (nth (geruest-name-index "ST" _rec) _rec) _fs))
|
||||
(tu-eq "fahrstrecke/muffe-dummy" "dummy_Muffe_1zoll.dwg"
|
||||
(geruest-traeger-muffe-dummy
|
||||
(nth (geruest-name-index "ST mit Muffen" _rec) _rec) _fs))
|
||||
(tu-nil "fahrstrecke/ohne-muffe-dummy"
|
||||
(geruest-traeger-muffe-dummy
|
||||
(nth (geruest-name-index "ST" _rec) _rec) _fs))
|
||||
)
|
||||
)
|
||||
(tu-true "fahrstrecke/dcl-vorlage"
|
||||
(findfile (geruest-dcl-vorlage-pfad "fahrstrecke.dcl")))
|
||||
|
||||
;; --- Rundlauf Schreiber -> Parser ---
|
||||
;; Prueft den Konfigurations-Schreiber ohne BricsCAD-Dialog. Bewusst in
|
||||
;; eine temporaere Datei: ein Test darf cfg/geruest_user.json nicht
|
||||
@@ -1337,9 +1568,10 @@
|
||||
(cons "variante" "ROHR R 1\" 33,7 x 2,6")
|
||||
(cons "laenge" "2000")
|
||||
(cons "teilefarbe" "RAL 7035 Lichtgrau")
|
||||
(cons "oben" (list (list (cons "artikel" "ROHRKLAMMER 1\" KPL. VERTIKAL")
|
||||
(cons "anzahl" 2))))
|
||||
(cons "unten" nil)))
|
||||
(cons "befestigung" (list (list (cons "artikel" "ROHRKLAMMER 1\" KPL. VERTIKAL")
|
||||
(cons "anzahl" 2))))
|
||||
(cons "sonstiges" nil)
|
||||
(cons "winkel_platte" 90)))
|
||||
(setq _pfad (vl-filename-mktemp "grtest" nil ".json"))
|
||||
(setq _f (open _pfad "w"))
|
||||
(write-line "{ \"Test\": [" _f)
|
||||
@@ -1356,12 +1588,16 @@
|
||||
(ssg-json-get _zurueck "laenge"))
|
||||
(tu-eq "geruest-schreiber/farbe" "RAL 7035 Lichtgrau"
|
||||
(ssg-json-get _zurueck "teilefarbe"))
|
||||
(tu-eq "geruest-schreiber/oben-artikel" "ROHRKLAMMER 1\" KPL. VERTIKAL"
|
||||
(ssg-json-get (car (ssg-json-get _zurueck "oben")) "artikel"))
|
||||
(tu-eq "geruest-schreiber/oben-anzahl" 2
|
||||
(ssg-json-get (car (ssg-json-get _zurueck "oben")) "anzahl"))
|
||||
(tu-eq "geruest-schreiber/unten-leer" nil
|
||||
(ssg-json-get _zurueck "unten"))
|
||||
(tu-eq "geruest-schreiber/befestigung-artikel" "ROHRKLAMMER 1\" KPL. VERTIKAL"
|
||||
(ssg-json-get (car (ssg-json-get _zurueck "befestigung")) "artikel"))
|
||||
(tu-eq "geruest-schreiber/befestigung-anzahl" 2
|
||||
(ssg-json-get (car (ssg-json-get _zurueck "befestigung")) "anzahl"))
|
||||
(tu-eq "geruest-schreiber/sonstiges-leer" nil
|
||||
(ssg-json-get _zurueck "sonstiges"))
|
||||
(tu-eq "geruest-schreiber/winkel" 90
|
||||
(ssg-json-get _zurueck "winkel_platte"))
|
||||
;; altes Format wird nicht mehr geschrieben
|
||||
(tu-nil "geruest-schreiber/ohne-oben" (assoc "oben" _zurueck))
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -1713,6 +1949,7 @@
|
||||
(tu-eq "ssg-sl-klasse/vf" "ils_strecke" (car (ssg-sl-klasse "VF_2")))
|
||||
(tu-eq "ssg-sl-klasse/gf" "ils_strecke" (car (ssg-sl-klasse "GF_1")))
|
||||
(tu-eq "ssg-sl-klasse/geruest" "geruest" (car (ssg-sl-klasse "GR_Saeulen_20260101120000")))
|
||||
(tu-eq "ssg-sl-klasse/fahrstrecke" "fahrstrecke" (car (ssg-sl-klasse "GR_Fahrstrecke_20260101120000")))
|
||||
(tu-eq "ssg-sl-klasse/ap60" "ap60" (car (ssg-sl-klasse "AP60_20260101120000")))
|
||||
(tu-eq "ssg-sl-klasse/apg110" "apg110" (car (ssg-sl-klasse "APG110_20260101120000")))
|
||||
(tu-eq "ssg-sl-klasse/ap110" "ap110" (car (ssg-sl-klasse "AP110_20260101120000")))
|
||||
|
||||
Reference in New Issue
Block a user