Files

188 lines
6.9 KiB
Common Lisp

;-----------------------------------------------------------------;
; ASI ;
;-----------------------------------------------------------------;
; 16.7.2008 ;
;-----------------------------------------------------------------;
(defun Dbox (/ Dat)
(setq Dat (load_dialog (strcat lw "/acadsst/steuerg/ASI.DCL")))
(if (not (new_dialog "ASI" Dat)) (exit))
(set_tile "DWG_NAME" m_DWG_NAME); Blockname
(set_tile "FAKT" m_FAKT)
(mode_tile "anzeige" 0)
(SetDia)
(ACTION_TILE "DWG_NAME" "(zeig_dia)")
(action_tile "accept" "(SetPara) (done_dialog)")
(action_tile "cancel" "(exit) (done_dialog)")
(start_dialog)
(unload_dialog Dat)
)
(defun SetDia()
(setq breite (dimx_tile "anzeige"))
(setq hoehe (dimy_tile "anzeige"))
(start_image "anzeige")
(FILL_IMAGE 0 0 breite hoehe -18)
(cond
((= m_DWG_NAME "0")
(slide_image 0 0 breite hoehe "steuerg(90000001)")
)
((= m_DWG_NAME "1")
(slide_image 0 0 breite hoehe "steuerg(90000002)")
)
((= m_DWG_NAME "2")
(slide_image 0 0 breite hoehe "steuerg(90000003)")
)
((= m_DWG_NAME "3")
(slide_image 0 0 breite hoehe "steuerg(90000004)")
)
((= m_DWG_NAME "4")
(slide_image 0 0 breite hoehe "steuerg(90000005)")
)
((= m_DWG_NAME "5")
(slide_image 0 0 breite hoehe "steuerg(90000006)") ; LED Leuchte
)
) ; end cond
(end_image)
)
(defun zeig_dia()
(setq WINKEL1 0)
(setq m_DWG_NAME (get_tile "DWG_NAME"))
(setq m_FAKT (get_tile "FAKT"))
(SetDia)
)
(defun setpara()
(setq m_FAKT (get_tile "FAKT"))
(setq FAKTO (atof m_FAKT))
(setq ANZ_CHARACT 0)
)
(defun datain ()
(setq dummy nil)
)
(defun geometrie()
(cond
((= m_DWG_NAME "0")
(setq BL_NAME "790000001") ;ASI KOMPAKT K60 4E/4A M12 KPL.
(setq BEZEICHNUNG "ASI KOMPAKT K60 4E/4A M12 KPL.")
)
((= m_DWG_NAME "1")
(setq BL_NAME "790000002") ;ASI KOMPAKT F90 4E/4A IP20 KPL.
(setq BEZEICHNUNG "ASI KOMPAKT F90 4E/4A IP20 KPL.")
)
((= m_DWG_NAME "2")
(setq BL_NAME "790000003") ;ASI NOT-AUS IN 1 FACH GEHÄUSE KPL.
(setq BEZEICHNUNG "ASI NOT-AUS IN 1 FACH GEHÄUSE KPL.")
)
((= m_DWG_NAME "3")
(setq BL_NAME "790000004") ;ASI-TABLEAU MIT 2 BEFEHLSSTELLEN KPL.
(setq BEZEICHNUNG "ASI-TABLEAU MIT 2 BEFEHLSSTELLEN KPL.")
)
((= m_DWG_NAME "4")
(setq BL_NAME "790000005") ;ASI-TABLEAU MIT 1 BEFEHLSSTELLEN KPL.
(setq BEZEICHNUNG "ASI-TABLEAU MIT 1 BEFEHLSSTELLEN KPL.")
)
((= m_DWG_NAME "5")
(setq BL_NAME "790000006")
(setq BEZEICHNUNG "LED LEUCHTE <STÖRUNG-TROUBLE> KPL.")
)
) ; end cond
(setq AUSWAHL-SATZ-ROTATE nil) ; wird am Ende ROTATE
(setq AUSWAHL-SATZ nil) ; Blockbildung
(setq P0 (getpoint "\nPick insert point: "))
(setvar "osmode" 0)
(bl-name P0) ;--> Block-Name definieren -> Rückgabe: element-name
;<<< Schalter einfügen
(command "_layer" "_m" "ASI" "_c" "7" "" "")
(command "_insert" (strcat lw "/acadsst/steuerg/" BL_NAME) P0 "1" "" "")
(setq AUSWAHL-SATZ-ROTATE (ssget "_L"))
(cond
((= m_DWG_NAME "0") ;790000001-ASI KOMPAKT K60 4E/4A M12 KPL.
)
((= m_DWG_NAME "1") ;790000002-ASI KOMPAKT F90 4E/4A IP20 KPL.
)
((= m_DWG_NAME "2") ;790000003-ASI NOT-AUS IN 1 FACH GEHÄUSE KPL.
(IO_ZEICHNEN P0 "EINGANG" "6" "S0000" "EMERGENCY STOP" "A1+Kx-Axxx" )
(setq P0 (list (+ (car p0) (* FAKTO 0)) (- (cadr p0) (* FAKTO 330)) (caddr p0)))
(IO_ZEICHNEN P0 "EINGANG" "6" "S0000" "EMERGENCY STOP" "A1+Kx-Axxx")
)
((= m_DWG_NAME "3") ;790000004-ASI-TABLEAU MIT 2 BEFEHLSSTELLEN KPL.
(IO_ZEICHNEN P0 "EINGANG" "6" "S0000" "RESTART AFTER TROUBLE" "A1+Kx-Axxx")
(setq P0 (list (+ (car p0) (* FAKTO 0)) (- (cadr p0) (* FAKTO 330)) (caddr p0)))
(IO_ZEICHNEN P0 "OUTPUT" "3" "H0000" "RESTART AFTER TROUBLE" "A1+Kx-Axxx")
(setq P0 (list (+ (car p0) (* FAKTO 1170)) (+ (cadr p0) (* FAKTO 330)) (caddr p0)))
(IO_ZEICHNEN P0 "EINGANG" "6" "S0000" "TRAVELTIME ERROR" "A1+Kx-Axxx")
(setq P0 (list (+ (car p0) (* FAKTO 0)) (- (cadr p0) (* FAKTO 330)) (caddr p0)))
(IO_ZEICHNEN P0 "OUTPUT" "3" "H0000" "TRAVELTIME ERROR" "A1+Kx-Axxx")
)
((= m_DWG_NAME "4") ;790000005-ASI-TABLEAU MIT 1 BEFEHLSSTELLEN KPL.
(IO_ZEICHNEN P0 "EINGANG" "6" "S0000" "TRAIN REQUEST" "A1+Kx-Axxx")
(setq P0 (list (+ (car p0) (* FAKTO 0)) (- (cadr p0) (* FAKTO 330)) (caddr p0)))
(IO_ZEICHNEN P0 "OUTPUT" "3" "H0000" "TRAIN REQUEST" "A1+Kx-Axxx")
)
((= m_DWG_NAME "5") ;790000006-LED LEUCHTE KPL.
(IO_ZEICHNEN P0 "OUTPUT" "3" "H0000" "TROUBLE/WARNING" "A1+Kx-Axxx")
)
) ; end cond
(command "_rotate" AUSWAHL-SATZ-ROTATE "" P0 pause)
)
(defun IO_ZEICHNEN (P0 IO_EBENE IO_FARBE IO_ADRESSE IO_BEZEICHNUNG IO_VERWENDUNG)
;<<< IO Einfügen
(setq P10 (list (+ (car p0) (+ (* FAKTO 1170)) (* 150 ANZ_CHARACT)) (+ (cadr p0) (* FAKTO 0)) (caddr p0)))
(setq P11 (list (+ (car p0) (+ (* FAKTO 1170)) (* 150 ANZ_CHARACT)) (- (cadr p0) (* FAKTO 330)) (caddr p0)))
(setq P12 (list (+ (car p0) (* FAKTO 0)) (- (cadr p0) (* FAKTO 330)) (caddr p0)))
(setq P13 (list (+ (car p0) (* FAKTO 340)) (+ (cadr p0) (* FAKTO 0)) (caddr p0)))
(setq P14 (list (+ (car p0) (* FAKTO 340)) (- (cadr p0) (* FAKTO 330)) (caddr p0)))
(setq P15 (list (+ (car p12)(* FAKTO 20)) (+ (cadr p12) (* FAKTO 20)) (caddr p12)))
(command "_layer" "_m" IO_EBENE "_c" IO_FARBE "" "")
(command "_insert" (strcat lw "/acadsst/steuerg/io") P15 FAKTO "" "")
(ATTRIBUTE-AENDERN_IO IO_ADRESSE "9999" "NO-ID" IO_BEZEICHNUNG IO_VERWENDUNG)
(ssadd (entlast) AUSWAHL-SATZ-ROTATE)
;<<< Korpus zeichnen ---------------------------------------
(command "_layer" "_m" IO_EBENE "_c" IO_FARBE "" "")
(command "_pline" P0 "_w" "0" "0" P10 P11 P12 P0 "")
(setq AUSWAHL-SATZ (ssget "_L"))
(ssadd (entlast) AUSWAHL-SATZ-ROTATE)
(command "_pline" P13 P14 "")
(ssadd (entlast) AUSWAHL-SATZ)
(ssadd (entlast) AUSWAHL-SATZ-ROTATE)
(ssadd (entlast) AUSWAHL-SATZ-ROTATE)
; (setq AUSWAHL-SATZ (ssget "_L")) ; Auswahlsatz reinitialieren
:<<<-------------------------------------------------------------------
)
;------------------------------------------------------------------------------
(defun c:ASI ( / DWG_NAME BL_NAME P0)
(setvar "limcheck" 0)
(setvar "CMDECHO" 0)
(setvar "BLIPMODE" 0)
(setq ALTFANG (getvar "osmode"))
(setq EINZEL 0) ; fuer EINZEL=0 Baugruppen / EINZEL=1 fuer APB
(prompt "**** ASI KOMPONENTEN *******")
(prompt "")
(if (null m_DWG_NAME) (setq m_DWG_NAME "0")) ; Auswahl
(if (null m_FAKT) (setq m_FAKT "0.5")) ; Skalierungsfaktor
(Dbox)
(prompt "")
(datain)
(geometrie)
(setvar "osmode" ALTFANG)
)