diff --git a/Lisp/SSG_LIB_Commands.lsp b/Lisp/SSG_LIB_Commands.lsp index db64330..e59b26f 100644 --- a/Lisp/SSG_LIB_Commands.lsp +++ b/Lisp/SSG_LIB_Commands.lsp @@ -15,6 +15,47 @@ (princ) ) +;; --- ILS / Zusatzmodul: Sensoren (Scanner / Separator) einfuegen --- + +;; Ermittelt den Pfad zu einer Sensor-Blockdatei. Die Sensor-Bloecke +;; werden fest aus data/ils/3D geladen (unabhaengig von der +;; 2D/3D-Umschaltung). +(defun ils-sensor-pfad (fname / p) + (setq p (strcat (getenv "DXFMAKRO") "\\data\\ils\\3D\\" fname ".dwg")) + (if (findfile p) p nil) +) + +;; Fuegt einen Sensor-Block wiederholt ein, bis der Benutzer mit +;; ENTER oder ESC abbricht. Rotation je Einfuegung interaktiv. +(defun ils-insert-sensor (fname / pfad pt oldattreq n) + (setq pfad (ils-sensor-pfad fname)) + (if (null pfad) + (princ (strcat "\n>>> FEHLER: Blockdatei '" fname ".dwg' nicht gefunden." + " (in data/ils/3D pruefen)")) + (progn + (setq oldattreq (getvar "ATTREQ")) + (setvar "ATTREQ" 0) + (setq n 0) + (while (setq pt (getpoint (strcat "\nEinfuegepunkt fuer " fname + " [ENTER=Ende]: "))) + (command "_.INSERT" pfad pt "" "" pause) + (setq n (1+ n)) + ) + (setvar "ATTREQ" oldattreq) + (princ (strcat "\n>>> " (itoa n) " x " fname " eingefuegt.")) + ) + ) + (princ) +) + +(defun c:ILS_SCANNER_INSERT () + (ils-insert-sensor "Scanner") +) + +(defun c:ILS_SEPARATOR_INSERT () + (ils-insert-sensor "Separator_SP") +) + ;; --- ILS / Foerderer --- (defun c:ILS_TEF_Strecke () (princ "\n[DUMMY] ILS_TEF_Strecke aufgerufen") diff --git a/menu/SSG_LIB.mnu b/menu/SSG_LIB.mnu index 6a5b2d9..3da22d7 100644 --- a/menu/SSG_LIB.mnu +++ b/menu/SSG_LIB.mnu @@ -10,7 +10,12 @@ [<-Eckrad]^C^C(ssg-ensure "KreiselInsert") ILS_Eckrad [->Zusatzmodul] [~BTMT-Beladung]^C^C(ssg-ensure "SSG_LIB_Commands") ILS_BTMT_Beladung -[<-~BTMT-Entladung]^C^C(ssg-ensure "SSG_LIB_Commands") ILS_BTMT_Entladung +[~BTMT-Entladung]^C^C(ssg-ensure "SSG_LIB_Commands") ILS_BTMT_Entladung +[--] +[Scanner einfuegen]^C^C(ssg-ensure "SSG_LIB_Commands") ILS_SCANNER_INSERT +[Separator einfuegen]^C^C(ssg-ensure "SSG_LIB_Commands") ILS_SEPARATOR_INSERT +[--] +[<-Scanner/Separator zaehlen -> ANZAHL schreiben]^C^C(ssg-ensure "count_sep_scan") ZAEHLE_SEP_SCAN [->Foerderer] [~Durch TEF angetriebene Strecke]^C^C(ssg-ensure "SSG_LIB_Commands") ILS_TEF_Strecke [VarioFoerderer]^C^CVarioFoerderer