Oberfläche für Weichen dazu. Funktion dahintergehängt das eventuell vorhandene .dxf lädt

This commit is contained in:
2026-05-08 15:25:04 +02:00
parent a2cdc4e87b
commit 241d24c1d2
4 changed files with 152 additions and 67 deletions
+87 -57
View File
@@ -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)
-3
View File
@@ -1,3 +0,0 @@
m.stangl
ENTW-NB08
Mittwoch, Mai 06, 2026 07:13:34
-7
View File
@@ -1,7 +0,0 @@
<?xml version="1.0"?>
<whprops>
<username>m.stangl</username>
<machinename>ENTW-NB08</machinename>
<fullname></fullname>
<datetime>Mittwoch, Mai 06, 2026 07:13:34</datetime>
</whprops>
+65
View File
@@ -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;
}