Omniflo Dialoge mit dcl Datei erzeugt
This commit is contained in:
+135
-11
@@ -408,32 +408,156 @@
|
|||||||
|
|
||||||
|
|
||||||
;; ============================================================
|
;; ============================================================
|
||||||
;; OMNIFLO MODUL-BEFEHLE (Dummy-Implementierungen)
|
;; OMNIFLO BOGEN-DIALOG
|
||||||
|
;; Generischer Dialog fuer Bogen-Auswahl nach Winkel
|
||||||
|
;; ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
;; --- Detail-Felder im Dialog aktualisieren ---
|
||||||
|
;; Wird bei Dropdown-Aenderung aufgerufen (action_tile callback)
|
||||||
|
(defun omni:bogen-dlg-update (idx-str / idx eintrag wkl)
|
||||||
|
(setq idx (atoi idx-str))
|
||||||
|
(setq eintrag (nth idx *OMNI-DLG-BOEGEN*))
|
||||||
|
(if eintrag
|
||||||
|
(progn
|
||||||
|
(set_tile "val_sivasnr"
|
||||||
|
(omni:sivasid-to-str (omni:val eintrag "Sivasnr")))
|
||||||
|
(setq wkl (omni:val eintrag "KurvenWinkel"))
|
||||||
|
(set_tile "val_winkel"
|
||||||
|
(if (= (type wkl) 'INT) (strcat (itoa wkl) " Grad")
|
||||||
|
(strcat (rtos wkl 2 1) " Grad")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(set_tile "val_radius"
|
||||||
|
(itoa (fix (omni:val eintrag "Radius"))))
|
||||||
|
(set_tile "val_breite"
|
||||||
|
(itoa (fix (omni:val eintrag "Breite"))))
|
||||||
|
(set_tile "val_laenge"
|
||||||
|
(itoa (fix (omni:val eintrag "Länge"))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
;; --- Bogen-Auswahl-Dialog oeffnen ---
|
||||||
|
;; winkel = KurvenWinkel (90, 67.5, 45, 22.5, 180)
|
||||||
|
;; Rueckgabe: gewaehlter Bogen-Eintrag (alist) oder nil bei Abbruch
|
||||||
|
(defun omni:bogen-dialog (winkel / dcl-pfad dat boegen-liste
|
||||||
|
profil-liste ergebnis)
|
||||||
|
(if (null *OMNI-BOEGEN*) (omni:load-data))
|
||||||
|
|
||||||
|
;; Boegen nach Winkel filtern
|
||||||
|
(setq boegen-liste (omni:filter *OMNI-BOEGEN* "KurvenWinkel" winkel))
|
||||||
|
(if (null boegen-liste)
|
||||||
|
(progn
|
||||||
|
(alert (strcat "Keine Boegen fuer "
|
||||||
|
(if (= (type winkel) 'INT) (itoa winkel) (rtos winkel 2 1))
|
||||||
|
" Grad gefunden."))
|
||||||
|
nil
|
||||||
|
)
|
||||||
|
(progn
|
||||||
|
;; In globaler Variable fuer Dialog-Callbacks speichern
|
||||||
|
(setq *OMNI-DLG-BOEGEN* boegen-liste)
|
||||||
|
|
||||||
|
;; ProfilTyp-Liste fuer Dropdown aufbauen
|
||||||
|
(setq profil-liste
|
||||||
|
(mapcar '(lambda (e) (cdr (assoc "ProfilTyp" e))) boegen-liste))
|
||||||
|
|
||||||
|
;; DCL laden
|
||||||
|
(setq dcl-pfad (strcat (getenv "DXFM_DCL") "/omniflo_boegen.dcl"))
|
||||||
|
(setq dat (load_dialog dcl-pfad))
|
||||||
|
(if (not (new_dialog "omniflo_boegen" dat))
|
||||||
|
(progn (alert "Bogen-Dialog konnte nicht geladen werden.") nil)
|
||||||
|
(progn
|
||||||
|
;; Dropdown befuellen
|
||||||
|
(start_list "bogenart")
|
||||||
|
(mapcar 'add_list profil-liste)
|
||||||
|
(end_list)
|
||||||
|
(set_tile "bogenart" "0")
|
||||||
|
|
||||||
|
;; Startwerte anzeigen
|
||||||
|
(omni:bogen-dlg-update "0")
|
||||||
|
|
||||||
|
;; Callback bei Dropdown-Aenderung
|
||||||
|
(action_tile "bogenart" "(omni:bogen-dlg-update $value)")
|
||||||
|
|
||||||
|
;; OK/Abbrechen
|
||||||
|
(action_tile "accept"
|
||||||
|
"(setq ergebnis (atoi (get_tile \"bogenart\"))) (done_dialog 1)")
|
||||||
|
(action_tile "cancel" "(done_dialog 0)")
|
||||||
|
|
||||||
|
(start_dialog)
|
||||||
|
(unload_dialog dat)
|
||||||
|
|
||||||
|
;; Gewaehlten Eintrag zurueckgeben
|
||||||
|
(if ergebnis
|
||||||
|
(nth ergebnis *OMNI-DLG-BOEGEN*)
|
||||||
|
nil
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
;; ============================================================
|
||||||
|
;; OMNIFLO MODUL-BEFEHLE
|
||||||
;; ============================================================
|
;; ============================================================
|
||||||
|
|
||||||
;; --- Omniflo / Boegen ---
|
;; --- Omniflo / Boegen ---
|
||||||
(defun c:OMNI_APB_630_90 ()
|
(defun c:OMNI_APB_630_90 ( / eintrag)
|
||||||
(princ "\n[DUMMY] APB 110 R 630/90 800/800 (821104033)")
|
(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")) ")"))
|
||||||
|
(princ "\n[BOGEN] Abgebrochen.")
|
||||||
|
)
|
||||||
(princ)
|
(princ)
|
||||||
)
|
)
|
||||||
|
|
||||||
(defun c:OMNI_APB_550_675 ()
|
(defun c:OMNI_APB_550_675 ( / eintrag)
|
||||||
(princ "\n[DUMMY] APB 110 R 550/67.5 432 (821104027)")
|
(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")) ")"))
|
||||||
|
(princ "\n[BOGEN] Abgebrochen.")
|
||||||
|
)
|
||||||
(princ)
|
(princ)
|
||||||
)
|
)
|
||||||
|
|
||||||
(defun c:OMNI_APB_630_45 ()
|
(defun c:OMNI_APB_630_45 ( / eintrag)
|
||||||
(princ "\n[DUMMY] APB 110 R 630/45 400 (821104031)")
|
(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")) ")"))
|
||||||
|
(princ "\n[BOGEN] Abgebrochen.")
|
||||||
|
)
|
||||||
(princ)
|
(princ)
|
||||||
)
|
)
|
||||||
|
|
||||||
(defun c:OMNI_APB_550_225 ()
|
(defun c:OMNI_APB_550_225 ( / eintrag)
|
||||||
(princ "\n[DUMMY] APB 110 R 550/22.5 84 (821104025)")
|
(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")) ")"))
|
||||||
|
(princ "\n[BOGEN] Abgebrochen.")
|
||||||
|
)
|
||||||
(princ)
|
(princ)
|
||||||
)
|
)
|
||||||
|
|
||||||
(defun c:OMNI_APB_650_180 ()
|
(defun c:OMNI_APB_650_180 ( / eintrag)
|
||||||
(princ "\n[DUMMY] APB 110 R 650/180 L=150 (821104043)")
|
(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")) ")"))
|
||||||
|
(princ "\n[BOGEN] Abgebrochen.")
|
||||||
|
)
|
||||||
(princ)
|
(princ)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ set "DXFM_CFG=%DXFMAKRO%\cfg"
|
|||||||
set "DXFM_LOG=%DXFMAKRO%\log"
|
set "DXFM_LOG=%DXFMAKRO%\log"
|
||||||
set "DXFM_BLOCKS=%DXFMAKRO%\Blocks"
|
set "DXFM_BLOCKS=%DXFMAKRO%\Blocks"
|
||||||
set "DXFM_LISP=%DXFMAKRO%\Lisp"
|
set "DXFM_LISP=%DXFMAKRO%\Lisp"
|
||||||
|
set "DXFM_DCL=%DXFMAKRO%\dcl"
|
||||||
set "DXFM_RESULTS=%DXFMAKRO%\results"
|
set "DXFM_RESULTS=%DXFMAKRO%\results"
|
||||||
|
|
||||||
set BRISCAD="C:\Program Files\Bricsys\BricsCAD V25 de_DE\bricscad.exe"
|
set BRISCAD="C:\Program Files\Bricsys\BricsCAD V25 de_DE\bricscad.exe"
|
||||||
|
|||||||
@@ -0,0 +1,54 @@
|
|||||||
|
// ============================================================
|
||||||
|
// omniflo_boegen.dcl - Bogen-Auswahl Dialog fuer Omniflo
|
||||||
|
// Zeigt gefilterte Boegen nach Winkel mit Details an.
|
||||||
|
// ============================================================
|
||||||
|
|
||||||
|
omniflo_boegen : dialog {
|
||||||
|
label = "Omniflo Bogen Auswahl";
|
||||||
|
|
||||||
|
: row {
|
||||||
|
: popup_list {
|
||||||
|
key = "bogenart";
|
||||||
|
label = "Bogenart:";
|
||||||
|
width = 42;
|
||||||
|
}
|
||||||
|
: edit_box {
|
||||||
|
key = "val_sivasnr";
|
||||||
|
label = "SivasNr:";
|
||||||
|
width = 22;
|
||||||
|
is_enabled = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
: row {
|
||||||
|
: edit_box {
|
||||||
|
key = "val_winkel";
|
||||||
|
label = "Winkel:";
|
||||||
|
width = 16;
|
||||||
|
is_enabled = false;
|
||||||
|
}
|
||||||
|
: edit_box {
|
||||||
|
key = "val_radius";
|
||||||
|
label = "Radius:";
|
||||||
|
width = 16;
|
||||||
|
is_enabled = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
: row {
|
||||||
|
: edit_box {
|
||||||
|
key = "val_breite";
|
||||||
|
label = "Breite:";
|
||||||
|
width = 16;
|
||||||
|
is_enabled = false;
|
||||||
|
}
|
||||||
|
: edit_box {
|
||||||
|
key = "val_laenge";
|
||||||
|
label = "Laenge:";
|
||||||
|
width = 16;
|
||||||
|
is_enabled = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ok_cancel;
|
||||||
|
}
|
||||||
+19
-19
@@ -39,32 +39,32 @@
|
|||||||
[<-ILS Schliessen]^C^C
|
[<-ILS Schliessen]^C^C
|
||||||
[->Omniflo]
|
[->Omniflo]
|
||||||
[->Boegen]
|
[->Boegen]
|
||||||
[APB 110 R 630/90 800/800 (821104033)]^C^COMNI_APB_630_90
|
[90]^C^COMNI_APB_630_90
|
||||||
[APB 110 R 550/67.5 432 (821104027)]^C^COMNI_APB_550_675
|
[67.5]^C^COMNI_APB_550_675
|
||||||
[APB 110 R 630/45 400 (821104031)]^C^COMNI_APB_630_45
|
[45]^C^COMNI_APB_630_45
|
||||||
[APB 110 R 550/22.5 84 (821104025)]^C^COMNI_APB_550_225
|
[22.5]^C^COMNI_APB_550_225
|
||||||
[<-APB 110 R 650/180 L=150 (821104043)]^C^COMNI_APB_650_180
|
[<-180 ]^C^COMNI_APB_650_180
|
||||||
[->Aluprofil Gerade]
|
[->Aluprofil Gerade]
|
||||||
[<-AP 110]^C^COMNI_AP110
|
[<-AP 110]^C^COMNI_AP110
|
||||||
[->Weiche 90 Grad]
|
[->Weiche 90 Grad]
|
||||||
[Einfach 90 700/700 links M (834372027)]^C^COMNI_W90_Einfach
|
[Einfach 90 700/700 links M]^C^COMNI_W90_Einfach
|
||||||
[Doppel 90 700/700 M (834372109)]^C^COMNI_W90_Doppel
|
[Doppel 90 700/700 M]^C^COMNI_W90_Doppel
|
||||||
[<-Dreiwege 90 700/700 M (834372209)]^C^COMNI_W90_Dreiwege
|
[<-Dreiwege 90 700/700 M]^C^COMNI_W90_Dreiwege
|
||||||
[->Weiche 45 Grad]
|
[->Weiche 45 Grad]
|
||||||
[Einfach 45 350/700 links M (834372001)]^C^COMNI_W45_Einfach
|
[Einfach 45 350/700 links M]^C^COMNI_W45_Einfach
|
||||||
[Doppel 45 350/700 M (834372100)]^C^COMNI_W45_Doppel
|
[Doppel 45 350/700 M]^C^COMNI_W45_Doppel
|
||||||
[<-Dreiwege 45 350/700 M (834372200)]^C^COMNI_W45_Dreiwege
|
[<-Dreiwege 45 350/700 M]^C^COMNI_W45_Dreiwege
|
||||||
[->Weichen Parallel]
|
[->Weichen Parallel]
|
||||||
[Einfach Parallel 200/750 links M (834372047)]^C^COMNI_WP_Einfach
|
[Einfach Parallel 200/750 links M]^C^COMNI_WP_Einfach
|
||||||
[Doppel Parallel 200/750 M (834372115)]^C^COMNI_WP_Doppel
|
[Doppel Parallel 200/750 M]^C^COMNI_WP_Doppel
|
||||||
[<-Dreiwege Parallel 200/750 M (834372215)]^C^COMNI_WP_Dreiwege
|
[<-Dreiwege Parallel 200/750 M]^C^COMNI_WP_Dreiwege
|
||||||
[->Weichenkoerper]
|
[->Weichenkoerper]
|
||||||
[Weichenkoerper Einfach 22.5 links M (834342011)]^C^COMNI_WK_Einfach
|
[Weichenkoerper Einfach 22.5 links M]^C^COMNI_WK_Einfach
|
||||||
[Weichenkoerper Doppel 22.5 M (834342100)]^C^COMNI_WK_Doppel
|
[Weichenkoerper Doppel 22.5 M]^C^COMNI_WK_Doppel
|
||||||
[<-Weichenkoerper Dreiwege 22.5 M (834342200)]^C^COMNI_WK_Dreiwege
|
[<-Weichenkoerper Dreiwege 22.5 M]^C^COMNI_WK_Dreiwege
|
||||||
[->Weichenkombinationen]
|
[->Weichenkombinationen]
|
||||||
[Delta 1400/700 M (834372400)]^C^COMNI_WKomb_Delta
|
[Delta 1400/700 M]^C^COMNI_WKomb_Delta
|
||||||
[<-Star 1400/1400 M (834372420)]^C^COMNI_WKomb_Star
|
[<-Star 1400/1400 M]^C^COMNI_WKomb_Star
|
||||||
[->TEF Elemente]
|
[->TEF Elemente]
|
||||||
[Umlenkspannst. rechts fuer TEF links]^C^COMNI_TEF_UmlenkR
|
[Umlenkspannst. rechts fuer TEF links]^C^COMNI_TEF_UmlenkR
|
||||||
[Umlenkspannst. links fuer TEF rechts]^C^COMNI_TEF_UmlenkL
|
[Umlenkspannst. links fuer TEF rechts]^C^COMNI_TEF_UmlenkL
|
||||||
|
|||||||
Reference in New Issue
Block a user