From 241d24c1d267b8c242b2d34409bde3b1abcc9d3d Mon Sep 17 00:00:00 2001 From: Michael Stangl Date: Fri, 8 May 2026 15:25:04 +0200 Subject: [PATCH] =?UTF-8?q?Oberfl=C3=A4che=20f=C3=BCr=20Weichen=20dazu.=20?= =?UTF-8?q?Funktion=20dahintergeh=C3=A4ngt=20das=20eventuell=20vorhandene?= =?UTF-8?q?=20.dxf=20l=C3=A4dt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Lisp/OmniModulInsert.lsp | 144 ++++++++++++++++++++------------- data/dxf/834372115_symbol.dwl | 3 - data/dxf/834372115_symbol.dwl2 | 7 -- dcl/omniflo_weichen.dcl | 65 +++++++++++++++ 4 files changed, 152 insertions(+), 67 deletions(-) delete mode 100644 data/dxf/834372115_symbol.dwl delete mode 100644 data/dxf/834372115_symbol.dwl2 create mode 100644 dcl/omniflo_weichen.dcl diff --git a/Lisp/OmniModulInsert.lsp b/Lisp/OmniModulInsert.lsp index f338803..1830da6 100644 --- a/Lisp/OmniModulInsert.lsp +++ b/Lisp/OmniModulInsert.lsp @@ -511,9 +511,7 @@ (defun c:OMNI_APB_630_90 ( / eintrag) (setq eintrag (omni:bogen-dialog 90)) (if eintrag - (princ (strcat "\n[BOGEN] Gewaehlt: " - (omni:val eintrag "ProfilTyp") " (SivasNr: " - (omni:sivasid-to-str (omni:val eintrag "Sivasnr")) ")")) + (omni:insert-from-entry eintrag) (princ "\n[BOGEN] Abgebrochen.") ) (princ) @@ -522,9 +520,7 @@ (defun c:OMNI_APB_550_675 ( / eintrag) (setq eintrag (omni:bogen-dialog 67.5)) (if eintrag - (princ (strcat "\n[BOGEN] Gewaehlt: " - (omni:val eintrag "ProfilTyp") " (SivasNr: " - (omni:sivasid-to-str (omni:val eintrag "Sivasnr")) ")")) + (omni:insert-from-entry eintrag) (princ "\n[BOGEN] Abgebrochen.") ) (princ) @@ -533,9 +529,7 @@ (defun c:OMNI_APB_630_45 ( / eintrag) (setq eintrag (omni:bogen-dialog 45)) (if eintrag - (princ (strcat "\n[BOGEN] Gewaehlt: " - (omni:val eintrag "ProfilTyp") " (SivasNr: " - (omni:sivasid-to-str (omni:val eintrag "Sivasnr")) ")")) + (omni:insert-from-entry eintrag) (princ "\n[BOGEN] Abgebrochen.") ) (princ) @@ -544,9 +538,7 @@ (defun c:OMNI_APB_550_225 ( / eintrag) (setq eintrag (omni:bogen-dialog 22.5)) (if eintrag - (princ (strcat "\n[BOGEN] Gewaehlt: " - (omni:val eintrag "ProfilTyp") " (SivasNr: " - (omni:sivasid-to-str (omni:val eintrag "Sivasnr")) ")")) + (omni:insert-from-entry eintrag) (princ "\n[BOGEN] Abgebrochen.") ) (princ) @@ -555,9 +547,7 @@ (defun c:OMNI_APB_650_180 ( / eintrag) (setq eintrag (omni:bogen-dialog 180)) (if eintrag - (princ (strcat "\n[BOGEN] Gewaehlt: " - (omni:val eintrag "ProfilTyp") " (SivasNr: " - (omni:sivasid-to-str (omni:val eintrag "Sivasnr")) ")")) + (omni:insert-from-entry eintrag) (princ "\n[BOGEN] Abgebrochen.") ) (princ) @@ -752,6 +742,74 @@ ) +;; ============================================================ +;; OMNIFLO DXF-BLOCK EINFUEGEN +;; Fuegt eine DXF-Datei aus data/omniflo/ als Block ein. +;; Der Benutzer waehlt den Einfuegepunkt und Drehwinkel. +;; ============================================================ + +;; --- DXF-Datei als Block einfuegen --- +;; sivasnr-str = SivasNr als String (Dateiname ohne .dxf) +;; Rueckgabe: Einfuegepunkt oder nil bei Abbruch +(defun omni:insert-dxf (sivasnr-str / dxf-pfad data-pfad pt + oldOsnap oldCmdEcho oldLayer) + (setq data-pfad (getenv "DXFM_DATA")) + (if (null data-pfad) + (progn + (princ "\n[OMNI] FEHLER: DXFM_DATA nicht gesetzt!") + nil + ) + (progn + (setq dxf-pfad (strcat data-pfad "/omniflo/" sivasnr-str ".dxf")) + (if (not (findfile dxf-pfad)) + (progn + (princ (strcat "\n[OMNI] FEHLER: DXF nicht gefunden: " dxf-pfad)) + nil + ) + (progn + (setq pt (getpoint "\nEinfuegepunkt waehlen: ")) + (if (null pt) + (progn (princ "\n[OMNI] Abgebrochen.") nil) + (progn + ;; Einstellungen sichern + (setq oldOsnap (getvar "OSMODE")) + (setq oldCmdEcho (getvar "CMDECHO")) + (setq oldLayer (getvar "CLAYER")) + (setvar "CMDECHO" 0) + + ;; Block einfuegen mit Winkelabfrage (pause) + (command "_.INSERT" dxf-pfad pt "" "" pause) + + ;; Einstellungen wiederherstellen + (setvar "OSMODE" oldOsnap) + (setvar "CMDECHO" oldCmdEcho) + (setvar "CLAYER" oldLayer) + + (princ (strcat "\n[OMNI] " sivasnr-str " eingefuegt.")) + pt + ) + ) + ) + ) + ) + ) +) + + +;; --- Eintrag aus Dialog-Ergebnis einfuegen --- +;; Nimmt einen Eintrag (alist) und fuegt die zugehoerige DXF ein. +(defun omni:insert-from-entry (eintrag / sivasnr-str) + (if eintrag + (progn + (setq sivasnr-str (omni:sivasid-to-str (omni:val eintrag "Sivasnr"))) + (princ (strcat "\n[OMNI] Einfuegen: " + (omni:val eintrag "ProfilTyp") " (" sivasnr-str ")")) + (omni:insert-dxf sivasnr-str) + ) + ) +) + + ;; ============================================================ ;; OMNIFLO WEICHEN-BEFEHLE ;; ============================================================ @@ -760,9 +818,7 @@ (defun c:OMNI_W90_Einfach ( / eintrag) (setq eintrag (omni:weichen-dialog 90 "Einzelweiche")) (if eintrag - (princ (strcat "\n[WEICHE] Gewaehlt: " - (omni:val eintrag "ProfilTyp") " (SivasNr: " - (omni:sivasid-to-str (omni:val eintrag "Sivasnr")) ")")) + (omni:insert-from-entry eintrag) (princ "\n[WEICHE] Abgebrochen.") ) (princ) @@ -771,9 +827,7 @@ (defun c:OMNI_W90_Doppel ( / eintrag) (setq eintrag (omni:weichen-dialog 90 "Doppelweiche")) (if eintrag - (princ (strcat "\n[WEICHE] Gewaehlt: " - (omni:val eintrag "ProfilTyp") " (SivasNr: " - (omni:sivasid-to-str (omni:val eintrag "Sivasnr")) ")")) + (omni:insert-from-entry eintrag) (princ "\n[WEICHE] Abgebrochen.") ) (princ) @@ -782,9 +836,7 @@ (defun c:OMNI_W90_Dreiwege ( / eintrag) (setq eintrag (omni:weichen-dialog 90 "Dreiwegeweiche")) (if eintrag - (princ (strcat "\n[WEICHE] Gewaehlt: " - (omni:val eintrag "ProfilTyp") " (SivasNr: " - (omni:sivasid-to-str (omni:val eintrag "Sivasnr")) ")")) + (omni:insert-from-entry eintrag) (princ "\n[WEICHE] Abgebrochen.") ) (princ) @@ -794,9 +846,7 @@ (defun c:OMNI_W45_Einfach ( / eintrag) (setq eintrag (omni:weichen-dialog 45 "Einzelweiche")) (if eintrag - (princ (strcat "\n[WEICHE] Gewaehlt: " - (omni:val eintrag "ProfilTyp") " (SivasNr: " - (omni:sivasid-to-str (omni:val eintrag "Sivasnr")) ")")) + (omni:insert-from-entry eintrag) (princ "\n[WEICHE] Abgebrochen.") ) (princ) @@ -805,9 +855,7 @@ (defun c:OMNI_W45_Doppel ( / eintrag) (setq eintrag (omni:weichen-dialog 45 "Doppelweiche")) (if eintrag - (princ (strcat "\n[WEICHE] Gewaehlt: " - (omni:val eintrag "ProfilTyp") " (SivasNr: " - (omni:sivasid-to-str (omni:val eintrag "Sivasnr")) ")")) + (omni:insert-from-entry eintrag) (princ "\n[WEICHE] Abgebrochen.") ) (princ) @@ -816,9 +864,7 @@ (defun c:OMNI_W45_Dreiwege ( / eintrag) (setq eintrag (omni:weichen-dialog 45 "Dreiwegeweiche")) (if eintrag - (princ (strcat "\n[WEICHE] Gewaehlt: " - (omni:val eintrag "ProfilTyp") " (SivasNr: " - (omni:sivasid-to-str (omni:val eintrag "Sivasnr")) ")")) + (omni:insert-from-entry eintrag) (princ "\n[WEICHE] Abgebrochen.") ) (princ) @@ -828,9 +874,7 @@ (defun c:OMNI_WP_Einfach ( / eintrag) (setq eintrag (omni:weichen-dialog 0 "Einzelweiche")) (if eintrag - (princ (strcat "\n[WEICHE] Gewaehlt: " - (omni:val eintrag "ProfilTyp") " (SivasNr: " - (omni:sivasid-to-str (omni:val eintrag "Sivasnr")) ")")) + (omni:insert-from-entry eintrag) (princ "\n[WEICHE] Abgebrochen.") ) (princ) @@ -839,9 +883,7 @@ (defun c:OMNI_WP_Doppel ( / eintrag) (setq eintrag (omni:weichen-dialog 0 "Doppelweiche")) (if eintrag - (princ (strcat "\n[WEICHE] Gewaehlt: " - (omni:val eintrag "ProfilTyp") " (SivasNr: " - (omni:sivasid-to-str (omni:val eintrag "Sivasnr")) ")")) + (omni:insert-from-entry eintrag) (princ "\n[WEICHE] Abgebrochen.") ) (princ) @@ -850,9 +892,7 @@ (defun c:OMNI_WP_Dreiwege ( / eintrag) (setq eintrag (omni:weichen-dialog 0 "Dreiwegeweiche")) (if eintrag - (princ (strcat "\n[WEICHE] Gewaehlt: " - (omni:val eintrag "ProfilTyp") " (SivasNr: " - (omni:sivasid-to-str (omni:val eintrag "Sivasnr")) ")")) + (omni:insert-from-entry eintrag) (princ "\n[WEICHE] Abgebrochen.") ) (princ) @@ -862,9 +902,7 @@ (defun c:OMNI_WK_Einfach ( / eintrag) (setq eintrag (omni:weichen-dialog 22.5 "Einzelweiche")) (if eintrag - (princ (strcat "\n[WEICHE] Gewaehlt: " - (omni:val eintrag "ProfilTyp") " (SivasNr: " - (omni:sivasid-to-str (omni:val eintrag "Sivasnr")) ")")) + (omni:insert-from-entry eintrag) (princ "\n[WEICHE] Abgebrochen.") ) (princ) @@ -873,9 +911,7 @@ (defun c:OMNI_WK_Doppel ( / eintrag) (setq eintrag (omni:weichen-dialog 22.5 "Doppelweiche")) (if eintrag - (princ (strcat "\n[WEICHE] Gewaehlt: " - (omni:val eintrag "ProfilTyp") " (SivasNr: " - (omni:sivasid-to-str (omni:val eintrag "Sivasnr")) ")")) + (omni:insert-from-entry eintrag) (princ "\n[WEICHE] Abgebrochen.") ) (princ) @@ -884,9 +920,7 @@ (defun c:OMNI_WK_Dreiwege ( / eintrag) (setq eintrag (omni:weichen-dialog 22.5 "Dreiwegeweiche")) (if eintrag - (princ (strcat "\n[WEICHE] Gewaehlt: " - (omni:val eintrag "ProfilTyp") " (SivasNr: " - (omni:sivasid-to-str (omni:val eintrag "Sivasnr")) ")")) + (omni:insert-from-entry eintrag) (princ "\n[WEICHE] Abgebrochen.") ) (princ) @@ -896,9 +930,7 @@ (defun c:OMNI_WKomb_Delta ( / eintrag) (setq eintrag (omni:weichen-dialog nil "Deltaweiche")) (if eintrag - (princ (strcat "\n[WEICHE] Gewaehlt: " - (omni:val eintrag "ProfilTyp") " (SivasNr: " - (omni:sivasid-to-str (omni:val eintrag "Sivasnr")) ")")) + (omni:insert-from-entry eintrag) (princ "\n[WEICHE] Abgebrochen.") ) (princ) @@ -907,9 +939,7 @@ (defun c:OMNI_WKomb_Star ( / eintrag) (setq eintrag (omni:weichen-dialog nil "Sternweiche")) (if eintrag - (princ (strcat "\n[WEICHE] Gewaehlt: " - (omni:val eintrag "ProfilTyp") " (SivasNr: " - (omni:sivasid-to-str (omni:val eintrag "Sivasnr")) ")")) + (omni:insert-from-entry eintrag) (princ "\n[WEICHE] Abgebrochen.") ) (princ) diff --git a/data/dxf/834372115_symbol.dwl b/data/dxf/834372115_symbol.dwl deleted file mode 100644 index 048e2f7..0000000 --- a/data/dxf/834372115_symbol.dwl +++ /dev/null @@ -1,3 +0,0 @@ -m.stangl -ENTW-NB08 -Mittwoch, Mai 06, 2026 07:13:34 \ No newline at end of file diff --git a/data/dxf/834372115_symbol.dwl2 b/data/dxf/834372115_symbol.dwl2 deleted file mode 100644 index 3c9eb1a..0000000 --- a/data/dxf/834372115_symbol.dwl2 +++ /dev/null @@ -1,7 +0,0 @@ - - -m.stangl -ENTW-NB08 - -Mittwoch, Mai 06, 2026 07:13:34 - diff --git a/dcl/omniflo_weichen.dcl b/dcl/omniflo_weichen.dcl new file mode 100644 index 0000000..e629c70 --- /dev/null +++ b/dcl/omniflo_weichen.dcl @@ -0,0 +1,65 @@ +// ============================================================ +// omniflo_weichen.dcl - Weichen-Auswahl Dialog fuer Omniflo +// Zeigt gefilterte Weichen mit Details und Filteroptionen an. +// ============================================================ + +omniflo_weichen : dialog { + label = "Omniflo Weichen Auswahl"; + + : row { + : popup_list { + key = "profiltyp"; + label = "Profiltyp-Auswahl:"; + width = 50; + } + } + + : row { + : boxed_radio_column { + key = "schaltung"; + label = "Schaltungstyp"; + : radio_button { key = "sch_alle"; label = "Alle"; value = "1"; } + : radio_button { key = "sch_m"; label = "Mechanisch (M)"; } + : radio_button { key = "sch_p"; label = "Pneumatisch (P)"; } + } + : boxed_radio_column { + key = "richtung"; + label = "Richtung"; + : radio_button { key = "ri_alle"; label = "Alle"; value = "1"; } + : radio_button { key = "ri_links"; label = "Links"; } + : radio_button { key = "ri_rechts"; label = "Rechts"; } + } + } + + : row { + : edit_box { + key = "val_sivasnr"; + label = "SivasNr:"; + width = 22; + is_enabled = false; + } + : edit_box { + key = "val_winkel"; + label = "Winkel:"; + width = 12; + is_enabled = false; + } + } + + : row { + : edit_box { + key = "val_breite"; + label = "Breite:"; + width = 12; + is_enabled = false; + } + : edit_box { + key = "val_laenge"; + label = "Laenge:"; + width = 12; + is_enabled = false; + } + } + + ok_cancel; +}