[ADD] Verbinder für Omniflo Fahrstrecke hinzugefügt

This commit is contained in:
2026-10-21 10:24:49 +02:00
parent 6b8f0f9ec3
commit e528913fbf
28 changed files with 244 additions and 187 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
+144 -107
View File
@@ -1004,8 +1004,7 @@
;; hoehe = Hoehe in mm als String (wird als HOEHE-Attribut gesetzt)
;; drehung = Drehwinkel in Grad als String (Block-Rotation)
;; Rueckgabe: Einfuegepunkt oder nil bei Abbruch
(defun omni:insert-dxf (sivasnr-str hoehe drehung / dxf-pfad omniflo-pfad angleDeg
drehung-anzeige blockEnt attribs layer-name ed pt10 zval zdelta)
(defun omni:insert-dxf (sivasnr-str hoehe drehung / dxf-pfad omniflo-pfad)
(setq omniflo-pfad (getenv "DXFM_OMNIFLO"))
(if (null omniflo-pfad)
(progn
@@ -1019,94 +1018,102 @@
(princ (ssg-textf "omni-fehler-dxf-nicht-gefunden" (list (strcat omniflo-pfad "/" sivasnr-str ".dxf"))))
nil
)
(progn
(ssg-start "OMNI DXF Insert" '(("ATTREQ") ("ATTDIA")))
(setvar "ATTREQ" 0)
(setvar "ATTDIA" 0)
;; Absolute Z-Hoehe fuer den Einfuegepunkt bestimmen
(setq zval (if (and hoehe (/= hoehe "")) (atof hoehe) 0.0))
;; Interaktives Einfuegen mit Live-Vorschau am Mauszeiger:
;; dxf-pfad -> Block aus Datei definieren/waehlen
;; 1. 'pause -> Einfuegepunkt; Objekt haengt sichtbar am Cursor und
;; verschiebt sich mit der Maus (erster Klick positioniert)
;; "" "" -> X-/Y-Massstab = 1
;; Drehung -> aus Dialog fest, sonst 2. 'pause: Objekt dreht sich
;; beim Ziehen sichtbar mit, zweiter Klick beendet
(if drehung
(progn
(setq angleDeg (atof drehung))
(setq drehung-anzeige drehung)
(command "_.INSERT" dxf-pfad pause "" "" angleDeg)
)
(command "_.INSERT" dxf-pfad pause "" "" pause)
)
;; INSERT vollstaendig abschliessen (bei Bedarf weitere Eingabe zulassen)
(while (> (getvar "CMDACTIVE") 0) (command pause))
(setq blockEnt (entlast))
(if (and blockEnt (= (cdr (assoc 0 (entget blockEnt))) "INSERT"))
(progn
(setq ed (entget blockEnt))
;; Tatsaechlich per Maus gesetzte Drehung ermitteln (interaktiv)
(if (null drehung)
(progn
(setq angleDeg (* (cdr (assoc 50 ed)) (/ 180.0 pi)))
(setq drehung-anzeige (rtos angleDeg 2 1))
)
)
;; Z-Hoehe absolut anwenden: Block (inkl. Attribute) per MOVE um
;; die Differenz zum aktuellen Einfuegepunkt-Z verschieben. Osnap
;; beim interaktiven Einfuegen kann eine abweichende Z-Lage liefern,
;; daher Differenz statt fixem Wert (vgl. GF-Z-Versatz-Bug).
;; Explizite Koordinaten unterliegen keinem Objektfang.
(setq pt10 (cdr (assoc 10 ed)))
(setq zdelta (- zval (caddr pt10)))
(if (/= zdelta 0.0)
(command "_.MOVE" blockEnt "" (list 0.0 0.0 0.0) (list 0.0 0.0 zdelta))
)
;; HOEHE und DREHUNG Attribute setzen
(ssg-attrib-set-on blockEnt
(list (cons "HOEHE" (if hoehe hoehe (ssg-cfg-or "omniflo" "default_hoehe" "2000")))
(cons "DREHUNG" drehung-anzeige)))
;; Layer aus der Block-Vorgabe (LAYER-Attribut) setzen
(setq attribs (ssg-attrib-read blockEnt))
(setq layer-name (ssg-block-layer-vorgabe blockEnt sivasnr-str attribs))
)
)
;; Fallback fuer Anzeige, falls keine Drehung ermittelt wurde
(if (null drehung-anzeige)
(setq drehung-anzeige (rtos (if angleDeg angleDeg 0.0) 2 1))
)
;; Eindeutige ID zuweisen
(if (and blockEnt (atoms-family 1 '("ssg-id-generate")))
(ssg-id-generate blockEnt)
)
(princ (ssg-textf "omni-dxf-eingefuegt"
(list
sivasnr-str
(if hoehe hoehe (ssg-cfg-or "omniflo" "default_hoehe" "2000"))
drehung-anzeige
(if layer-name (strcat " Layer=" layer-name) "")
)))
(ssg-end)
;; Rueckgabe: tatsaechlicher Einfuegepunkt
(if blockEnt (cdr (assoc 10 (entget blockEnt))))
)
(omni:insert-datei dxf-pfad sivasnr-str hoehe drehung)
)
)
)
)
;; --- Block-Datei (DXF/DWG) interaktiv einfuegen ---
;; dxf-pfad = vollstaendiger Pfad der Blockdatei (bereits auf Existenz geprueft)
;; name = Anzeigename/Blockname fuer Meldung und Layer-Vorgabe
;; hoehe, drehung wie omni:insert-dxf
;; Rueckgabe: Einfuegepunkt oder nil bei Abbruch
(defun omni:insert-datei (dxf-pfad name hoehe drehung / angleDeg
drehung-anzeige blockEnt attribs layer-name ed pt10 zval zdelta)
(ssg-start "OMNI DXF Insert" '(("ATTREQ") ("ATTDIA")))
(setvar "ATTREQ" 0)
(setvar "ATTDIA" 0)
;; Absolute Z-Hoehe fuer den Einfuegepunkt bestimmen
(setq zval (if (and hoehe (/= hoehe "")) (atof hoehe) 0.0))
;; Interaktives Einfuegen mit Live-Vorschau am Mauszeiger:
;; dxf-pfad -> Block aus Datei definieren/waehlen
;; 1. 'pause -> Einfuegepunkt; Objekt haengt sichtbar am Cursor und
;; verschiebt sich mit der Maus (erster Klick positioniert)
;; "" "" -> X-/Y-Massstab = 1
;; Drehung -> aus Dialog fest, sonst 2. 'pause: Objekt dreht sich
;; beim Ziehen sichtbar mit, zweiter Klick beendet
(if drehung
(progn
(setq angleDeg (atof drehung))
(setq drehung-anzeige drehung)
(command "_.INSERT" dxf-pfad pause "" "" angleDeg)
)
(command "_.INSERT" dxf-pfad pause "" "" pause)
)
;; INSERT vollstaendig abschliessen (bei Bedarf weitere Eingabe zulassen)
(while (> (getvar "CMDACTIVE") 0) (command pause))
(setq blockEnt (entlast))
(if (and blockEnt (= (cdr (assoc 0 (entget blockEnt))) "INSERT"))
(progn
(setq ed (entget blockEnt))
;; Tatsaechlich per Maus gesetzte Drehung ermitteln (interaktiv)
(if (null drehung)
(progn
(setq angleDeg (* (cdr (assoc 50 ed)) (/ 180.0 pi)))
(setq drehung-anzeige (rtos angleDeg 2 1))
)
)
;; Z-Hoehe absolut anwenden: Block (inkl. Attribute) per MOVE um
;; die Differenz zum aktuellen Einfuegepunkt-Z verschieben. Osnap
;; beim interaktiven Einfuegen kann eine abweichende Z-Lage liefern,
;; daher Differenz statt fixem Wert (vgl. GF-Z-Versatz-Bug).
;; Explizite Koordinaten unterliegen keinem Objektfang.
(setq pt10 (cdr (assoc 10 ed)))
(setq zdelta (- zval (caddr pt10)))
(if (/= zdelta 0.0)
(command "_.MOVE" blockEnt "" (list 0.0 0.0 0.0) (list 0.0 0.0 zdelta))
)
;; HOEHE und DREHUNG Attribute setzen
(ssg-attrib-set-on blockEnt
(list (cons "HOEHE" (if hoehe hoehe (ssg-cfg-or "omniflo" "default_hoehe" "2000")))
(cons "DREHUNG" drehung-anzeige)))
;; Layer aus der Block-Vorgabe (LAYER-Attribut) setzen
(setq attribs (ssg-attrib-read blockEnt))
(setq layer-name (ssg-block-layer-vorgabe blockEnt name attribs))
)
)
;; Fallback fuer Anzeige, falls keine Drehung ermittelt wurde
(if (null drehung-anzeige)
(setq drehung-anzeige (rtos (if angleDeg angleDeg 0.0) 2 1))
)
;; Eindeutige ID zuweisen
(if (and blockEnt (atoms-family 1 '("ssg-id-generate")))
(ssg-id-generate blockEnt)
)
(princ (ssg-textf "omni-dxf-eingefuegt"
(list
name
(if hoehe hoehe (ssg-cfg-or "omniflo" "default_hoehe" "2000"))
drehung-anzeige
(if layer-name (strcat " Layer=" layer-name) "")
)))
(ssg-end)
;; Rueckgabe: tatsaechlicher Einfuegepunkt
(if blockEnt (cdr (assoc 10 (entget blockEnt))))
)
;; --- Eintrag aus Dialog-Ergebnis einfuegen ---
;; dlg-result = (eintrag hoehe drehung) aus omni:bogen-dialog / omni:weichen-dialog
@@ -1650,76 +1657,106 @@
)
;; --- Omniflo / Verbinder ---
;; Verbinder-Bloecke liegen dimensionsunabhaengig als DWG in
;; data/omniflo/Verbinder (nicht unter DXFM_OMNIFLO = data/omniflo/<DIM>).
;; Einfuegen wie die festen TEF-Bauteile ueber omni:insert-datei: Punkt und
;; Drehung interaktiv, Layer aus dem LAYER-Attribut, ID per ssg-id-generate.
;; Befehl -> DWG-Name steht direkt im jeweiligen c:OMNI_TV_*-Befehl.
;; Pfad der Verbinder-DWG aus Datenverzeichnis + Dateiname (ohne .dwg)
(defun omni:verbinder-pfad (data-pfad datei)
(strcat (vl-string-right-trim "/" (vl-string-translate "\\" "/" data-pfad))
"/omniflo/Verbinder/" datei ".dwg")
)
;; Verbinder-DWG interaktiv einfuegen. Rueckgabe: Einfuegepunkt oder nil
(defun omni:insert-verbinder (datei / data-pfad pfad)
(setq data-pfad (getenv "DXFM_DATA"))
(cond
((null data-pfad)
(princ (ssg-text "omni-fehler-dxfm-data"))
nil)
((not (findfile (setq pfad (omni:verbinder-pfad data-pfad datei))))
(princ (ssg-textf "omni-fehler-dxf-nicht-gefunden" (list pfad)))
nil)
(t (omni:insert-datei pfad datei nil nil))
)
)
(defun c:OMNI_TV_W_W ()
(princ "\n[DUMMY] TV W-W kpl")
(omni:insert-verbinder "TV_W-W_kpl")
(princ)
)
(defun c:OMNI_TV_W_AP110 ()
(princ "\n[DUMMY] TV W-AP110 kpl")
(omni:insert-verbinder "TV_W-AP110_kpl")
(princ)
)
(defun c:OMNI_TV_W_AP60 ()
(princ "\n[DUMMY] TV W-AP60 oben kpl.")
(omni:insert-verbinder "TV_W-AP60_oben")
(princ)
)
(defun c:OMNI_TV_W_AP60_KPL ()
(omni:insert-verbinder "TV_W-AP60_kpl")
(princ)
)
(defun c:OMNI_TV_W_AP110_W ()
(princ "\n[DUMMY] TV W-AP110-W kpl")
(princ)
)
(defun c:OMNI_TV_W_AP ()
(princ "\n[DUMMY] TV W-AP oben kpl")
(omni:insert-verbinder "TV_W-AP110-W_kpl")
(princ)
)
(defun c:OMNI_TV_80 ()
(princ "\n[DUMMY] TV 80")
(omni:insert-verbinder "TV_80_kpl")
(princ)
)
(defun c:OMNI_TV_50 ()
(princ "\n[DUMMY] TV 50")
(omni:insert-verbinder "TV_50_kpl")
(princ)
)
(defun c:OMNI_TV_ENDPLATTE ()
(princ "\n[DUMMY] Endplatte Al-Profil AP schraubbar")
(omni:insert-verbinder "VB_ENDP_AP")
(princ)
)
(defun c:OMNI_TV_ANSCHLAG ()
(princ "\n[DUMMY] Anschlag AP-Ende fuer Spulenzug")
(omni:insert-verbinder "VB_ENDP_AP_Spulenzug")
(princ)
)
(defun c:OMNI_TV_A_AP110_AP60 ()
(princ "\n[DUMMY] TV-A fuer AP110/AP60 kpl")
(omni:insert-verbinder "TV_AP110-AP60_kpl")
(princ)
)
(defun c:OMNI_TV_A_AP60_ST ()
(princ "\n[DUMMY] TV-A fuer AP60/ST")
(omni:insert-verbinder "TV_AP60-ST_kpl")
(princ)
)
(defun c:OMNI_TV_A_AP110_ST ()
(princ "\n[DUMMY] TV-A fuer AP110/ST kpl")
(omni:insert-verbinder "TV_AP110-ST_kpl")
(princ)
)
(defun c:OMNI_TV_SW_II_SW_SW ()
(princ "\n[DUMMY] TV-SW II fuer SW-SW")
(omni:insert-verbinder "TV_SW-SW")
(princ)
)
(defun c:OMNI_TV_SW_III_AP110_SW ()
(princ "\n[DUMMY] TV-SW III fuer SW-AP110-SW")
(omni:insert-verbinder "TV_SW-AP110-SW")
(princ)
)
(defun c:OMNI_TV_SW_III_AP110 ()
(princ "\n[DUMMY] TV-SW III fuer SW-AP110")
(defun c:OMNI_TV_W_AP60_KPL ()
(omni:insert-verbinder "TV_W-AP60_kpl")
(princ)
)
(defun c:OMNI_TV_SW_I_AP110 ()
(omni:insert-verbinder "TV_SW_I_SW-AP110")
(princ)
)
(defun c:OMNI_TV_SW_IV_AP60 ()
(princ "\n[DUMMY] TV-SW IV fuer Anschluss SW-AP60")
(omni:insert-verbinder "TV_SW_IV_SW-AP60")
(princ)
)
(defun c:OMNI_TV_SW_IV_ST ()
(princ "\n[DUMMY] TV-SW IV fuer SW-ST")
(omni:insert-verbinder "TV_SW_IV_SW-ST")
(princ)
)
(defun c:OMNI_TV_MUFFE ()
(princ "\n[DUMMY] Muffe")
(omni:insert-verbinder "VB_Muffe")
(princ)
)
+1 -2
View File
@@ -39,7 +39,6 @@ am Label-Anfang, bei Submenue-Schliessern hinter dem `<-` (`[<-~Label]`).
| Menuebereich | Eintraege | Definiert in |
| --- | --- | --- |
| Omniflo ▸ Anbaugruppen | `OMNI_KettenFoerderer` | `OmniModulInsert.lsp` |
| Omniflo ▸ Verbinder | alle `OMNI_TV_*` (18) | `OmniModulInsert.lsp` |
| Omniflo ▸ Boegen fuer Weichen | alle `OMNI_APBW_*` (14) | `OmniModulInsert.lsp` |
| ILS ▸ Zusatzmodule/Kurven | `ILS_ETF_Etagenfoerderer`, `ILS_K{90,60,30}{L,R}{A,I}` (12), `ILS_Gefaellestrecke` | `SSG_LIB_Commands.lsp` |
| Geruest | `GERUEST` (Gattertraeger-Platzhalter, derselbe Befehl wie Saeulen/Rohrabhaenger/Wandbefestigung) | `GeruestInsert.lsp` |
@@ -703,7 +702,7 @@ AutoLISP-Implementierung fuer alle Omniflo-Komponenten: Boegen, Weichen, Verbind
| Ladeschleifen | `OMNI_LADESCHLEIFE_AP110` | Ladeschleife aus `omniflo_ladeschleifen.json` ueber DCL-Dialog (`dcl/omniflo_ladeschleifen.dcl`) einfuegen; Daten per `ssg-json-laden` (Beschreibungen enthalten Kommas). Blockdatei `<Sivasnr>.dwg` unter `DXFM_OMNIFLO` (`omni:insert-dxf` faellt auf `.dwg` zurueck, wenn keine `.dxf` existiert). Per `OMNI_EDIT` editierbar |
| TEF Elemente | `OMNI_TEF_UmlenkR/L`, `OMNI_TEF_AntriebL/R`, `OMNI_TEF_Gerade` | Feste TEF-Bauteile ohne Sivas-Auswahl, direkt per `omni:insert-dxf` an gewaehltem Punkt eingefuegt (Dateien unter `DXFM_OMNIFLO`) |
| Anbaugruppen ⚠️ | `OMNI_KettenFoerderer` | **Dummy** (noch nicht implementiert, im Menue ausgegraut); `OMNI_STOPPER`/`OMNI_SCANNER`/`OMNI_BUERSTENBREMSE` sind implementiert |
| Transferwagen ⚠️ | `OMNI_TV_*` | **Dummy** (noch nicht implementiert, im Menue ausgegraut) |
| Verbinder | `OMNI_TV_*` | Verbinder-DWG aus `data/omniflo/Verbinder` (dimensionsunabhaengig, `omni:insert-verbinder` -> `omni:insert-datei`, Punkt + Drehung interaktiv). Zuordnung Befehl -> DWG nach Dateiname, z.B. `OMNI_TV_W_AP60` -> `TV_W-AP60_oben`, `OMNI_TV_ENDPLATTE` -> `VB_ENDP_AP`, `OMNI_TV_W_AP60_KPL` -> `TV_W-AP60_kpl`, `OMNI_TV_ANSCHLAG` -> `VB_ENDP_AP_Spulenzug`, `OMNI_TV_SW_I_AP110` -> `TV_SW_I_SW-AP110`, `OMNI_TV_MUFFE` -> `VB_Muffe`. Alle 18 Eintraege aktiv |
| Bogenweichen ⚠️ | `OMNI_APBW_*` | **Dummy** (noch nicht implementiert, im Menue ausgegraut) |
| Bearbeiten | `OMNI_EDIT` | Omniflo-Block selektieren und Attribute bearbeiten |
+4
View File
@@ -2394,6 +2394,9 @@
;; GeruestInsert.lsp). Wie BTMT eigenstaendig und von keinem anderen
;; Element mitgezaehlt - export_csv.py UND export_sivas.py fuehren sie
;; beide als eigene TeileArt-Zeilen.
;; VB_*/TV_* = Omniflo-Verbinder (siehe pattern_verbinder in
;; cfg/export.cfg, OMNI_TV_* in OmniModulInsert.lsp). export_sivas.py
;; fuehrt sie ueber TEILEART/ARTINR im allgemeinen Omniflo-Zweig.
;; Bloecke auf GEFRORENEN Layern (und die Hilfsobjekte gefrorener VF_n/GF_n)
;; werden ausgelassen, solange *csv-gefrorene-ausschliessen* an ist (Standard,
;; Dialog CSV_EXPORT_KONFIG); ausgeschaltete Layer zaehlen nicht als gefroren.
@@ -2445,6 +2448,7 @@
(wcmatch bname (export:pattern "pattern_eingang" "Eingang*"))
(wcmatch bname (export:pattern "pattern_ausgang" "Ausgang*"))
(wcmatch bname (export:pattern "pattern_geruest" "GR_*"))
(wcmatch bname (export:pattern "pattern_verbinder" "VB_*,TV_*"))
(wcmatch bname (export:pattern "pattern_unit_marker" "ZZ_UNIT_MARKER*"))
;; Rein numerische Namen = Omniflo SivasNr (Boegen/Weichen)
;; Rein LISP-intern (Python klassifiziert Omniflo stattdessen
+3
View File
@@ -45,6 +45,8 @@
;; Spalte (auch auf Kreiseln) bekommen.
;; GR_* (Geruest-Baugruppen, siehe pattern_geruest in cfg/export.cfg) ebenso -
;; das ID-ATTDEF steht seit *geruest-attrib-defs* zur Verfuegung.
;; VB_*/TV_* (Omniflo-Verbinder, siehe pattern_verbinder in
;; cfg/export.cfg) ebenso - fest im Code wie GR_*.
;; Gefaellebogen_* (siehe pattern_nested_bogen in cfg/export.cfg): einer der
;; Bausteine einer GF-Kette, verpackt in VF_n/GF_n; wird beim Export ebenso
;; als temporaere Kopie ausgepackt wie die uebrigen Vario_*/Staustrecke_*-
@@ -81,6 +83,7 @@
(wcmatch bname "BTMT-Beladung*,SC_Entladung*")
(wcmatch bname "Eingang*,Ausgang*")
(wcmatch bname "GR_*")
(wcmatch bname "VB_*,TV_*")
(wcmatch bname "#*")
)
(ssadd ename ss-out)
+6
View File
@@ -71,6 +71,11 @@
# Eigenstaendig wie BTMT, kein ANZAHL_*-Attribut an einem Carrier - export_csv.py
# UND export_sivas.py fuehren sie als eigene TeileArt-Zeilen.
#
# pattern_verbinder: Omniflo-Verbinder (OMNI_TV_*, DWGs in data/omniflo/
# Verbinder). Nur fuer Lisp's Block-SAMMLUNG und ID-Vergabe - export_sivas.py
# erkennt sie wie alle Omniflo-Teile ueber TEILEART "Omniflo ..." und schreibt
# je Nummer aus ARTINR eine Omniflo-Zeile.
#
# pattern_nested_bogen/_streckenelement/_umlenkstation/_motorstation: die
# uebrigen Bausteine einer VF_n/GF_n-Kette (Boegen, gerade Foerderer-/
# Gefaellestrecken-Segmente, Umlenk-/Motorstation). Wie pattern_schleuselement
@@ -130,6 +135,7 @@ pattern_ks_subblocks= KS_EIN, KS_AUS, K1, K2, K3, K4
pattern_gerade= AP110*, AP_110*, AP60*
# Gerüst
pattern_geruest= GR_*
pattern_verbinder= VB_*, TV_*
[python]
# Interpreter fuer die Export-Skripte (lib/export_csv.py, lib/export_sivas.py).
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -98,7 +98,7 @@ Gross-/Kleinschreibung spielt an der Kommandozeile keine Rolle.
| `OMNI_APBW_R400_45_140`, `OMNI_APBW_R400_675_260`, `OMNI_APBW_R550_45_77`, `OMNI_APBW_R550_45_194`, `OMNI_APBW_R550_225_360`, `OMNI_APBW_R550_225_410A`/`B`/`C`, `OMNI_APBW_R550_675_58`/`_125`/`_208`/`_360`, `OMNI_APBW_R650_90_300`, `OMNI_APBW_R750_90_200` | Boegen fuer Weichen (fest, ohne Dialog) |
| `OMNI_TEF_UmlenkL`/`R`, `OMNI_TEF_AntriebL`/`R`, `OMNI_TEF_Gerade` | TEF-Elemente (fest, ohne Drehung) |
| `OMNI_STOPPER`, `OMNI_SCANNER`, `OMNI_BUERSTENBREMSE` | Anbaugruppen |
| `OMNI_TV_W_W`, `OMNI_TV_W_AP`, `OMNI_TV_W_AP60`, `OMNI_TV_W_AP110`, `OMNI_TV_W_AP110_W`, `OMNI_TV_50`, `OMNI_TV_80`, `OMNI_TV_ENDPLATTE`, `OMNI_TV_ANSCHLAG`, `OMNI_TV_MUFFE`, `OMNI_TV_A_AP110_AP60`, `OMNI_TV_A_AP60_ST`, `OMNI_TV_A_AP110_ST`, `OMNI_TV_SW_II_SW_SW`, `OMNI_TV_SW_III_AP110`, `OMNI_TV_SW_III_AP110_SW`, `OMNI_TV_SW_IV_AP60`, `OMNI_TV_SW_IV_ST` | Verbinder |
| `OMNI_TV_W_W`, `OMNI_TV_W_AP60`, `OMNI_TV_W_AP60_KPL`, `OMNI_TV_W_AP110`, `OMNI_TV_W_AP110_W`, `OMNI_TV_50`, `OMNI_TV_80`, `OMNI_TV_ENDPLATTE`, `OMNI_TV_ANSCHLAG`, `OMNI_TV_MUFFE`, `OMNI_TV_A_AP110_AP60`, `OMNI_TV_A_AP60_ST`, `OMNI_TV_A_AP110_ST`, `OMNI_TV_SW_II_SW_SW`, `OMNI_TV_SW_I_AP110`, `OMNI_TV_SW_III_AP110_SW`, `OMNI_TV_SW_IV_AP60`, `OMNI_TV_SW_IV_ST` | Verbinder |
| `OMNI_LADESCHLEIFE_AP110` | Ladeschleife (Dialog `omniflo_ladeschleifen.dcl`) |
| `OMNI_KettenFoerderer` | Platzhalter (noch ohne Funktion) |
| `OMNI_EDIT` | Omniflo-Element per Dialog bearbeiten; auch per Doppelklick |
+58 -58
View File
@@ -411,23 +411,23 @@
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00098">
<Macro>
<Name>TV W-W kpl</Name>
<Command>^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_W_W</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00099">
<Macro>
<Name>TV W-AP110 kpl</Name>
<Command>^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_W_AP110</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00100">
<MenuMacro UID="MM_00099">
<Macro>
<Name>TV W-AP60 oben kpl.</Name>
<Command>^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_W_AP60</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00100">
<Macro>
<Name>TV W-W kpl</Name>
<Command>^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_W_W</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00101">
<Macro>
<Name>TV W-AP110-W kpl</Name>
@@ -436,8 +436,8 @@
</MenuMacro>
<MenuMacro UID="MM_00102">
<Macro>
<Name>TV W-AP oben kpl</Name>
<Command>^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_W_AP</Command>
<Name>TV W-AP60 kpl</Name>
<Command>^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_W_AP60_KPL</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00103">
@@ -460,55 +460,55 @@
</MenuMacro>
<MenuMacro UID="MM_00106">
<Macro>
<Name>Anschlag AP-Ende fuer Spulenzug</Name>
<Name>Anschlag AP-Ende für Spulenzug</Name>
<Command>^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_ANSCHLAG</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00107">
<Macro>
<Name>TV-A fuer AP110/AP60 kpl</Name>
<Name>TV-A für AP110/AP60 kpl</Name>
<Command>^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_A_AP110_AP60</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00108">
<Macro>
<Name>TV-A fuer AP60/ST</Name>
<Name>TV-A für AP60/ST</Name>
<Command>^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_A_AP60_ST</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00109">
<Macro>
<Name>TV-A fuer AP110/ST kpl</Name>
<Name>TV-A für AP110/ST kpl</Name>
<Command>^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_A_AP110_ST</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00110">
<Macro>
<Name>TV-SW II fuer SW-SW</Name>
<Name>TV-SW II für SW-SW</Name>
<Command>^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_SW_II_SW_SW</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00111">
<Macro>
<Name>TV-SW III fuer SW-AP110-SW</Name>
<Name>TV-SW III für SW-AP110-SW</Name>
<Command>^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_SW_III_AP110_SW</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00112">
<Macro>
<Name>TV-SW III fuer SW-AP110</Name>
<Command>^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_SW_III_AP110</Command>
<Name>TV-SW I für SW-AP110</Name>
<Command>^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_SW_I_AP110</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00113">
<Macro>
<Name>TV-SW IV fuer Anschluss SW-AP60</Name>
<Name>TV-SW IV für Anschluss SW-AP60</Name>
<Command>^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_SW_IV_AP60</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00114">
<Macro>
<Name>TV-SW IV fuer SW-ST</Name>
<Name>TV-SW IV für SW-ST</Name>
<Command>^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_SW_IV_ST</Command>
</Macro>
</MenuMacro>
@@ -872,61 +872,61 @@
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_showroom_ils.lsp")) (c:TEST_SHOWROOM_ILS)</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00210">
<MenuMacro UID="MM_00189">
<Macro>
<Name>Testanlage test_system</Name>
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_test_system.lsp")) (c:TEST_TEST_SYSTEM)</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00189">
<MenuMacro UID="MM_00190">
<Macro>
<Name>KS 2D/3D pruefen (CSV)</Name>
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/Lisp/ks_pruefung.lsp")) KS_PRUEFEN</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00201">
<MenuMacro UID="MM_00202">
<Macro>
<Name>Kreisel bearbeiten</Name>
<Command>(ssg-ensure "KreiselInsert") KreiselEdit</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00202">
<MenuMacro UID="MM_00203">
<Macro>
<Name>Eckrad bearbeiten</Name>
<Command>(ssg-ensure "KreiselInsert") EckradEdit</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00203">
<MenuMacro UID="MM_00204">
<Macro>
<Name>Omniflo Element bearbeiten</Name>
<Command>(ssg-ensure "OmniModulInsert") OMNI_EDIT</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00204">
<MenuMacro UID="MM_00205">
<Macro>
<Name>Gefaellestrecke bearbeiten</Name>
<Command>(ssg-ensure "Gefaellestrecke") GEFAELLESTRECKE_EDIT</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00205">
<MenuMacro UID="MM_00206">
<Macro>
<Name>VarioFoerderer bearbeiten</Name>
<Command>(ssg-ensure "VarioFoerderer") VARIOFOERDERER_EDIT</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00206">
<MenuMacro UID="MM_00207">
<Macro>
<Name>TRO-Marker bearbeiten</Name>
<Command>(ssg-ensure "Tro_Edit") TRO_EDIT</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00207">
<MenuMacro UID="MM_00208">
<Macro>
<Name>Verbindung bearbeiten</Name>
<Command>(ssg-ensure "Connection_Edit") CONNECTION_EDIT</Command>
</Macro>
</MenuMacro>
<MenuMacro UID="MM_00209">
<MenuMacro UID="MM_00210">
<Macro>
<Name>SSG Bearbeiten (Auto)</Name>
<Command>(ssg-ensure "SSG_LIB_Commands") SSG_BLOCKEDIT</Command>
@@ -1430,109 +1430,109 @@
<PopMenu UID="PM_00097">
<Name>Verbinder</Name>
<PopMenuItem>
<NameRef>~TV W-W kpl</NameRef>
<NameRef>TV W-AP110 kpl</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00098"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>~TV W-AP110 kpl</NameRef>
<NameRef>TV W-AP60 oben kpl.</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00099"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>~TV W-AP60 oben kpl.</NameRef>
<NameRef>TV W-W kpl</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00100"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>~TV W-AP110-W kpl</NameRef>
<NameRef>TV W-AP110-W kpl</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00101"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>~TV W-AP oben kpl</NameRef>
<NameRef>TV W-AP60 kpl</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00102"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>~TV 80</NameRef>
<NameRef>TV 80</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00103"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>~TV 50</NameRef>
<NameRef>TV 50</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00104"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>~Endplatte Al-Profil AP schraubbar</NameRef>
<NameRef>Endplatte Al-Profil AP schraubbar</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00105"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>~Anschlag AP-Ende fuer Spulenzug</NameRef>
<NameRef>Anschlag AP-Ende für Spulenzug</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00106"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>~TV-A fuer AP110/AP60 kpl</NameRef>
<NameRef>TV-A für AP110/AP60 kpl</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00107"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>~TV-A fuer AP60/ST</NameRef>
<NameRef>TV-A für AP60/ST</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00108"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>~TV-A fuer AP110/ST kpl</NameRef>
<NameRef>TV-A für AP110/ST kpl</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00109"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>~TV-SW II fuer SW-SW</NameRef>
<NameRef>TV-SW II für SW-SW</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00110"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>~TV-SW III fuer SW-AP110-SW</NameRef>
<NameRef>TV-SW III für SW-AP110-SW</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00111"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>~TV-SW III fuer SW-AP110</NameRef>
<NameRef>TV-SW I für SW-AP110</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00112"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>~TV-SW IV fuer Anschluss SW-AP60</NameRef>
<NameRef>TV-SW IV für Anschluss SW-AP60</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00113"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>~TV-SW IV fuer SW-ST</NameRef>
<NameRef>TV-SW IV für SW-ST</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00114"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>~Muffe</NameRef>
<NameRef>Muffe</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00115"/>
</MenuItem>
@@ -1930,66 +1930,66 @@
<PopMenuItem>
<NameRef>Testanlage test_system</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00210"/>
<MacroRef MenuMacroID="MM_00189"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>KS 2D/3D pruefen (CSV)</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00189"/>
<MacroRef MenuMacroID="MM_00190"/>
</MenuItem>
</PopMenuItem>
</PopMenu>
<PopMenu UID="PM_00200">
<PopMenu UID="PM_00201">
<Alias>POP501</Alias>
<Name>SSG_LIB Edit Context</Name>
<PopMenuItem>
<NameRef>Kreisel bearbeiten</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00201"/>
<MacroRef MenuMacroID="MM_00202"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>Eckrad bearbeiten</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00202"/>
<MacroRef MenuMacroID="MM_00203"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>Omniflo Element bearbeiten</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00203"/>
<MacroRef MenuMacroID="MM_00204"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>Gefaellestrecke bearbeiten</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00204"/>
<MacroRef MenuMacroID="MM_00205"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>VarioFoerderer bearbeiten</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00205"/>
<MacroRef MenuMacroID="MM_00206"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>TRO-Marker bearbeiten</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00206"/>
<MacroRef MenuMacroID="MM_00207"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem>
<NameRef>Verbindung bearbeiten</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00207"/>
<MacroRef MenuMacroID="MM_00208"/>
</MenuItem>
</PopMenuItem>
<PopMenuItem IsSeparator="true"/>
<PopMenuItem>
<NameRef>SSG Bearbeiten (Auto)</NameRef>
<MenuItem>
<MacroRef MenuMacroID="MM_00209"/>
<MacroRef MenuMacroID="MM_00210"/>
</MenuItem>
</PopMenuItem>
</PopMenu>
+18 -18
View File
@@ -95,24 +95,24 @@
[~KettenFoerderer]^C^C(ssg-ensure "OmniModulInsert") OMNI_KettenFoerderer
[Ladeschleifen]^C^C(ssg-ensure "OmniModulInsert") OMNI_LADESCHLEIFE_AP110
[->Verbinder]
[~TV W-W kpl]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_W_W
[~TV W-AP110 kpl]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_W_AP110
[~TV W-AP60 oben kpl.]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_W_AP60
[~TV W-AP110-W kpl]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_W_AP110_W
[~TV W-AP oben kpl]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_W_AP
[~TV 80]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_80
[~TV 50]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_50
[~Endplatte Al-Profil AP schraubbar]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_ENDPLATTE
[~Anschlag AP-Ende fuer Spulenzug]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_ANSCHLAG
[~TV-A fuer AP110/AP60 kpl]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_A_AP110_AP60
[~TV-A fuer AP60/ST]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_A_AP60_ST
[~TV-A fuer AP110/ST kpl]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_A_AP110_ST
[~TV-SW II fuer SW-SW]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_SW_II_SW_SW
[~TV-SW III fuer SW-AP110-SW]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_SW_III_AP110_SW
[~TV-SW III fuer SW-AP110]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_SW_III_AP110
[~TV-SW IV fuer Anschluss SW-AP60]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_SW_IV_AP60
[~TV-SW IV fuer SW-ST]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_SW_IV_ST
[<-~Muffe]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_MUFFE
[TV W-AP110 kpl]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_W_AP110
[TV W-AP60 oben kpl.]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_W_AP60
[TV W-W kpl]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_W_W
[TV W-AP110-W kpl]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_W_AP110_W
[TV W-AP60 kpl]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_W_AP60_KPL
[TV 80]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_80
[TV 50]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_50
[Endplatte Al-Profil AP schraubbar]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_ENDPLATTE
[Anschlag AP-Ende für Spulenzug]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_ANSCHLAG
[TV-A für AP110/AP60 kpl]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_A_AP110_AP60
[TV-A für AP60/ST]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_A_AP60_ST
[TV-A für AP110/ST kpl]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_A_AP110_ST
[TV-SW II für SW-SW]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_SW_II_SW_SW
[TV-SW III für SW-AP110-SW]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_SW_III_AP110_SW
[TV-SW I für SW-AP110]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_SW_I_AP110
[TV-SW IV für Anschluss SW-AP60]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_SW_IV_AP60
[TV-SW IV für SW-ST]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_SW_IV_ST
[<-Muffe]^C^C(ssg-ensure "OmniModulInsert") OMNI_TV_MUFFE
[->Boegen fuer Weichen]
[~APB 110 R400/45 140 nur fuer Delta]^C^C(ssg-ensure "OmniModulInsert") OMNI_APBW_R400_45_140
[~APB 110 R550/45 194 nur fuer Delta]^C^C(ssg-ensure "OmniModulInsert") OMNI_APBW_R550_45_194
+8
View File
@@ -794,6 +794,14 @@
(tu-eq "omni:filter/anzahl" 2 (length (omni:filter _lst "KurvenWinkel" 45)))
(tu-eq "omni:filter/wert"
100 (cdr (assoc "Sivasnr" (car (omni:filter _lst "KurvenWinkel" 45)))))
;; Verbinder-Pfad: Backslashes normalisiert, abschliessender Trenner entfernt
(tu-eq "omni:verbinder-pfad/backslash"
"C:/x/data/omniflo/Verbinder/TV_W-W_kpl.dwg"
(omni:verbinder-pfad "C:\\x\\data" "TV_W-W_kpl"))
(tu-eq "omni:verbinder-pfad/trenner"
"C:/x/data/omniflo/Verbinder/VB_ENDP_AP.dwg"
(omni:verbinder-pfad "C:/x/data/" "VB_ENDP_AP"))
)