188 lines
6.9 KiB
Common Lisp
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)
|
|
)
|