;------------------------------------------------------------------------;
; AUSGAENGE_F              
; Spinnerei                                              ;
;------------------------------------------------------------------------;
; 22.09.2007 
; 18.07.2008                                                            ;
;------------------------------------------------------------------------;
(defun Dbox (/ Dat)
  (setq Dat (load_dialog (strcat lw "/acadsst/steuerg/AUSGAENGE_F.DCL")))
  (if (not (new_dialog "AUSGAENGE_F" Dat)) (exit))

  (set_tile "DWG_NAME" m_DWG_NAME); Blockname
  (set_tile "INPUT"          m_INPUT)   
  (set_tile "IDENT"          m_IDENT)   
  (set_tile "COMPONENT"      m_COMPONENT)   
  (set_tile "BEZEICHNUNG"    m_BEZEICHNUNG)   
  (set_tile "KENNZEICHNUNG"  m_KENNZEICHNUNG)   
  (set_tile "FAKT"           m_FAKT)
  (set_tile "ZUSATZ"         m_ZUSATZ)
  (set_tile "SPS-NR"         m_SPS-NR)  
  (set_tile "PREFIX"         m_PREFIX)  ; B,S oder E
  (set_tile "IO-BEZ"         m_IO-BEZ)   
  (set_tile "IO-BEZ-RECHTS"  m_IO-BEZ-RECHTS)   
  (set_tile "LAENGE"         m_LAENGE)   
  (set_tile "LEISTUNG"       m_LEISTUNG)   
  
  (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 "ils2100(i00)")
    )
    ((= m_DWG_NAME "1")       
      (slide_image 0 0 breite hoehe "steuerg(sp_sw)")
    )
    ((= m_DWG_NAME "2")	                                ; VENTIL FÜR RA1 (Reibradsantrieb)
      (slide_image 0 0 breite hoehe "steuerg(sp_ra1)")	
    )
    ((= m_DWG_NAME "3")        
      (slide_image 0 0 breite hoehe "steuerg(sp_ra2)")  ; VENTIL FÜR RA2 (Doppelstreckenantrieb)
    )
    ((= m_DWG_NAME "4")	                                ; MOTOR FÜR RA1 (Reibradsantrieb)
      (slide_image 0 0 breite hoehe "steuerg(sp_m_ra1)")	
    )
    ((= m_DWG_NAME "5")        
      (slide_image 0 0 breite hoehe "steuerg(sp_m_ra2)")  ; MOTOR FÜR RA2 (Doppelstreckenantrieb)
    )
    ((= m_DWG_NAME "6")        
      (slide_image 0 0 breite hoehe "steuerg(sp_stop)")  ; Anschluss Ventil am Flyer-Stopper
    )    
  )  ; end cond
  (end_image)
)

(defun zeig_dia()
  (setq WINKEL1 0)
  (setq m_DWG_NAME         (get_tile "DWG_NAME"))
  (setq m_COMPONENT        (get_tile "COMPONENT"))
  (setq m_PREFIX           (get_tile "PREFIX"))
  (setq m_FAKT             (get_tile "FAKT"))
  (setq m_ZUSATZ           (get_tile "ZUSATZ"))
  (setq m_SPS-NR           (get_tile "SPS-NR"))  
  (setq m_IO-BEZ           (get_tile "IO-BEZ"))
  (setq m_IO-BEZ-RECHTS    (get_tile "IO-BEZ-RECHTS"))
  (setq m_LAENGE           (get_tile "LAENGE"))
  (setq m_LEISTUNG         (get_tile "LEISTUNG"))  
  (SetDia)
)

(defun setpara()
  (setq m_PREFIX        (get_tile "PREFIX"))
  (setq m_INPUT         (get_tile "INPUT"))  
  (setq m_IDENT         (get_tile "IDENT"))  
  (setq m_COMPONENT     (get_tile "COMPONENT"))  
  (setq m_BEZEICHNUNG   (get_tile "BEZEICHNUNG"))  
  (setq m_KENNZEICHNUNG (get_tile "KENNZEICHNUNG"))  
  (setq m_DWG_NAME      (get_tile "DWG_NAME"))
  (setq m_FAKT          (get_tile "FAKT"))
  (setq m_IO-BEZ        (get_tile "IO-BEZ"))
  (setq m_IO-BEZ-RECHTS (get_tile "IO-BEZ-RECHTS"))
  (setq m_LAENGE        (get_tile "LAENGE"))  
  (setq m_LEISTUNG      (get_tile "LEISTUNG"))  
  (setq m_ZUSATZ        (get_tile "ZUSATZ"))
  (setq m_SPS-NR        (get_tile "SPS-NR"))  
  (setq FAKTO           (atof m_FAKT))
  (InputStringAnalyse)
)

(defun InputStringAnalyse()
  (setq DisplayString "")
  (setq InputLaenge (strlen m_INPUT))
;  (alert (itoa InputLaenge))
  (if (or (> InputLaenge 4) (= InputLaenge 0))
    (progn
      (alert "Mehr als 4 Stellen nicht bzw. LEERE Eingabe nicht erlaubt")
      (exit)
    )
  )
  
  (cond 
    ((= InputLaenge 1)
      (setq DisplayString (strcat "000" m_INPUT))
    )
    ((= InputLaenge 2)
      (setq DisplayString (strcat "00" m_INPUT))    
    )
    ((= InputLaenge 3)
      (setq DisplayString (strcat "0" m_INPUT))    
    )
    ((= InputLaenge 4)
      (setq DisplayString m_INPUT)    
    )
  )  ; end cond
  
  (cond 
    ((= m_COMPONENT "0")
      (setq m_IDENT "9999")
      (setq VERWENDUNG "NO-ID")     
    )
  )  ; end cond
;	(alert verwendung)
)

(defun datain ()  
  (setq dummy nil)
)

(defun geometrie()

  (cond 
    ((= m_LAENGE "LAENGE_1")
      (setq BEZ2 "ASI-2")        
    )
    ((= m_LAENGE "LAENGE_2")
      (setq BEZ2 "ASI-3")        
    )
    ((= m_LAENGE "LAENGE_3")
      (setq BEZ2 "ASI-5")        
    )
    ((= m_LAENGE "LAENGE_4")
      (setq BEZ2 "ASI10")        
    )
  )

  (cond
    ((= m_DWG_NAME "0")
      (setq BL_NAME "") ;Blinde Eintragung
      (setq BEZEICHNUNG "")
      (setq BEZ1 "")
      (setq BEZ2 "")
      (setq BEZEICHNUNG_BG "")
      (setq ANZAHL "1")
      (setq FARBE "3")
      (setq EBENE "AUSGANG")			
    )
    ;<<< ANSCHLUSS VENTIL FÜR WEICHE
    ((and (= m_DWG_NAME "1") (= m_LAENGE "LAENGE_1"))  ; 2m ASI Kabel für Weiche     
      (setq BL_NAME "722001121") 
      (setq BEZEICHNUNG "ANSCHLUSSKABEL WEICHE - MQ12ST. GEW.->M8 BU. GEW.2m 3-POL.")
      (setq BEZEICHNUNG_BG "---")          
      (setq BEZ1 "SW")
      (setq ANZAHL "1")
      (setq FARBE "3")			
      (setq EBENE "AUSGANG")						
    )
    ((and (= m_DWG_NAME "1") (= m_LAENGE "LAENGE_2"))  ; 3m ASI Kabel für Weiche     
      (setq BL_NAME "722001122") 
      (setq BEZEICHNUNG "ANSCHLUSSKABEL WEICHE - MQ12ST. GEW.->M8 BU. GEW.3m 3-POL.")
      (setq BEZEICHNUNG_BG "---")          
      (setq BEZ1 "SW")
      (setq EBENE "AUSGANG")						
      (setq ANZAHL "1")
      (setq FARBE "3")			
    )
    ((and (= m_DWG_NAME "1") (= m_LAENGE "LAENGE_3"))  ; 5m ASI Kabel für Weiche     
      (setq BL_NAME "722001123") 
      (setq BEZEICHNUNG "ANSCHLUSSKABEL WEICHE - MQ12ST. GEW.->M8 BU. GEW.5m 3-POL.")
      (setq BEZEICHNUNG_BG "---")          
      (setq BEZ1 "SW")
      (setq ANZAHL "1")
      (setq FARBE "3")			
      (setq EBENE "AUSGANG")						
    )
    ((and (= m_DWG_NAME "1") (= m_LAENGE "LAENGE_4"))  ; 10m ASI Kabel für Weiche     
      (setq BL_NAME "722001124") 
      (setq BEZEICHNUNG "ANSCHLUSSKABEL WEICHE - MQ12ST. GEW.->M8 BU. GEW.10m 3-POL.")
      (setq BEZEICHNUNG_BG "---")          
      (setq BEZ1 "SW")
      (setq ANZAHL "1")
      (setq FARBE "3")			
      (setq EBENE "AUSGANG")						
    )
    ;<<< ANSCHLUSS VENTIL FÜR RA1 (1 Stück)
    ((= m_DWG_NAME "2")  ; 1 x Ventilstecker für Reibradantrieb RA1       
      (setq BL_NAME "722003052") 
      (setq BEZEICHNUNG "VENTILSTECKER BAUFORM BI->M12")
      (setq BEZEICHNUNG_BG "RA VENTILSTECKER")          
      (setq BEZ1 "RR")
      (setq ANZAHL "1")
      (setq FARBE "3")			
      (setq EBENE "AUSGANG")						
    )
    ;<<< ANSCHLUSS VENTIL FÜR RA2 (2 Stück)
    ((= m_DWG_NAME "3")  ; 2 x Ventilstecker für Doppelstreckenantrieb RA2       
      (setq BL_NAME "722003052") 
      (setq BEZEICHNUNG "VENTILSTECKER BAUFORM BI->M12")
      (setq BEZEICHNUNG_BG "RA VENTILSTECKER")          
      (setq BEZ1 "DSA")
      (setq ANZAHL "1")
      (setq FARBE "3")			
      (setq EBENE "AUSGANG")						
    )
    ;<<< ANSCHLUSS MOTOR UNI -> LEISTUNG 0.12 KW
    ((and (= m_DWG_NAME "4") (= m_LEISTUNG "LEISTUNG_1"))  ; Motor mit 0.12 KW UNI
      (setq BL_NAME "703001049") 
      (setq BEZEICHNUNG "DIREKTSTARTER 0,12KW 24V MS 3RV1011 0,45-0,63A M-UNI")
      (setq BEZEICHNUNG_BG "DIREKTSTARTER 0,12KW 24V ")          
      (setq BEZ1 "DSA")
      (setq ANZAHL "1")
      (setq FARBE "4")			
      (setq EBENE "MOTOR")						
    )    
    ;<<< ANSCHLUSS MOTOR UNI -> LEISTUNG 0.18 KW    
    ((and (= m_DWG_NAME "4") (= m_LEISTUNG "LEISTUNG_2"))  ; Motor mit 0.12 KW BI
      (setq BL_NAME "703001050") 
      (setq BEZEICHNUNG "DIREKTSTARTER 0,18KW 24V MS 3RV1011 0,55-0,8A M-UNI")
      (setq BEZEICHNUNG_BG "DIREKTSTARTER 0,18KW 24V")          
      (setq BEZ1 "DSA")
      (setq ANZAHL "1")
      (setq FARBE "4")						
      (setq EBENE "MOTOR")									
    )    
    ;<<< ANSCHLUSS MOTOR BI -> LEISTUNG 0.12 KW    
    ((and (= m_DWG_NAME "5") (= m_LEISTUNG "LEISTUNG_1"))  ; Motor mit 0.12 KW UNI
      (setq BL_NAME "703001059") 
      (setq BEZEICHNUNG "WENDESTARTER 0,12 KW 24V MS 3RV1011 0,45-0,63A M-BI")
      (setq BEZEICHNUNG_BG "WENDESTARTER 0,12 KW 24V ")          
      (setq BEZ1 "DSA")
      (setq ANZAHL "1")
      (setq FARBE "4")						
      (setq EBENE "MOTOR")									
    )    
    ;<<< ANSCHLUSS MOTOR BI -> LEISTUNG 0.18 KW        
    ((and (= m_DWG_NAME "5") (= m_LEISTUNG "LEISTUNG_2"))  ; Motor mit 0.18 KW BI
      (setq BL_NAME "703001060") 
      (setq BEZEICHNUNG "WENDESTARTER 0,18 KW 24V MS 3RV1011 0,55-0,8A M-BI")
      (setq BEZEICHNUNG_BG "WENDESTARTER 0,18 KW 24V ")          
      (setq BEZ1 "DSA")
      (setq ANZAHL "1")
      (setq FARBE "4")						
      (setq EBENE "MOTOR")									
    )    
    ;<<< ANSCHLUSS FÜR VENTIL FÜR FLYER-STOPPER
    ((= m_DWG_NAME "6")  ; 5m ASI Kabel für Flyer-Stopper     
      (setq BL_NAME "722001153") 
      (setq BEZEICHNUNG "MQ12ST.GEW.3POL.->VEN.BFC/8 5M")
      (setq BEZEICHNUNG_BG "---")          
      (setq BEZ1 "STOP")
      (setq ANZAHL "1")
      (setq FARBE "3")			
      (setq EBENE "AUSGANG")
      (setq BEZ2 "ASI-5") 									
    )
  )  ; end cond

  (cond 
    ((= m_PREFIX "PREFIX_1")
      (setq _PREFIX "M")
      (setq ANZ_CHARACT 0)
    )
    ((= m_PREFIX "PREFIX_2")
      (setq _PREFIX "Y")
      (setq ANZ_CHARACT 0)
    )
    ((= m_PREFIX "PREFIX_3")
      (setq _PREFIX "A")
      (setq ANZ_CHARACT 0)			
    )
    ((= m_PREFIX "PREFIX_4")
      (setq _PREFIX "K")
      (setq ANZ_CHARACT 0)			
    )
    ((= m_PREFIX "PREFIX_5")
      (setq _PREFIX "H")
      (setq ANZ_CHARACT 0)			
    )
    ((= m_PREFIX "PREFIX_6")
      (setq _PREFIX "LT")
      (setq ANZ_CHARACT 1)			
    )
    ((= m_PREFIX "PREFIX_7")
      (setq _PREFIX "SOL")
      (setq ANZ_CHARACT 2)			
    )
    ((= m_PREFIX "PREFIX_8")
      (setq _PREFIX "MTR")
      (setq ANZ_CHARACT 2)			
    )
    ((= m_PREFIX "PREFIX_8")
      (setq _PREFIX "O")
      (setq ANZ_CHARACT 0)			
    )		
  )

  (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    

  (IO_ZEICHNEN "0" P0 _PREFIX EBENE FARBE)
	
  (if (= m_DWG_NAME "0") 
    (progn
      (mach-block-ohne-prop P0 "0" AUSWAHL-SATZ)	
    )
    (progn
      (mach-block P0 "0" AUSWAHL-SATZ)	
      (attribute-aendern "0" "0" "9" "0" (strcat _PREFIX DisplayString) block-kennung BL_NAME BEZEICHNUNG ANZAHL "")     
    )
  )

  (ssadd (entlast) AUSWAHL-SATZ-ROTATE)			

  (setq AUSWAHL-SATZ (ssget "_L")) ; Auswahlsatz reinitialieren 	
	:<<<-------------------------------------------------------------------

  ;<<<< BAUGRUPPEN >>>
  (cond
    ((= m_DWG_NAME "2")  ; Anschluss für Ventil für RA1
      (cond
        ((= m_LAENGE "LAENGE_1")
          ;<<< 2m ASI Kabel 
          (EINZELTEIL P10 "722001101" "MQ12ST. GEW.->MQ12BU. GER.2m 4-POL." "1" "0")
          (setq BEZEICHNUNG_BG (strcat BEZEICHNUNG_BG "+ASI-KABEL 2M"))          
          (command "_layer" "_m" "A-GRUPPE" "_c" "7" "" "")  
          (mach-block P0 "0" AUSWAHL-SATZ)
          (attribute-aendern "0" "2" "9" "0" (strcat _PREFIX DisplayString) block-kennung "333333333" BEZEICHNUNG_BG "1" "")
          (ssadd (entlast) AUSWAHL-SATZ-ROTATE)
        )
        ((= m_LAENGE "LAENGE_2")
          ;<<< 2m ASI Kabel 
          (EINZELTEIL P10 "722001102" "MQ12ST. GEW.->MQ12BU. GER.3m 4-POL." "1" "0")
          (setq BEZEICHNUNG_BG (strcat BEZEICHNUNG_BG "+ASI-KABEL 3M"))          
          (command "_layer" "_m" "A-GRUPPE" "_c" "7" "" "")  
          (mach-block P0 "0" AUSWAHL-SATZ)
          (attribute-aendern "0" "2" "9" "0" (strcat _PREFIX DisplayString) block-kennung "333333333" BEZEICHNUNG_BG "1" "")
          (ssadd (entlast) AUSWAHL-SATZ-ROTATE)
        )
        ((= m_LAENGE "LAENGE_3")
          (EINZELTEIL P10 "722001103" "MQ12ST. GEW.->MQ12BU. GER.5m 4-POL." "1" "0")
          (setq BEZEICHNUNG_BG (strcat BEZEICHNUNG_BG "+ASI-KABEL 5M"))          
          (command "_layer" "_m" "A-GRUPPE" "_c" "7" "" "")  
          (mach-block P0 "0" AUSWAHL-SATZ)
          (attribute-aendern "0" "2" "9" "0" (strcat _PREFIX DisplayString) block-kennung "333333333" BEZEICHNUNG_BG "1" "")
          (ssadd (entlast) AUSWAHL-SATZ-ROTATE)        
        )
        ((= m_LAENGE "LAENGE_4")
          (EINZELTEIL P10 "722001104" "MQ12ST. GEW.->MQ12BU. GER.10m 4-POL." "1" "0")
          (setq BEZEICHNUNG_BG (strcat BEZEICHNUNG_BG "+ASI-KABEL 10M"))          
          (command "_layer" "_m" "A-GRUPPE" "_c" "7" "" "")  
          (mach-block P0 "0" AUSWAHL-SATZ)
          (attribute-aendern "0" "2" "9" "0" (strcat _PREFIX DisplayString) block-kennung "333333333" BEZEICHNUNG_BG "1" "")
          (ssadd (entlast) AUSWAHL-SATZ-ROTATE)        
        )
      )                   
    )
    ((= m_DWG_NAME "3")  ; 2 x Ventilstecker für RA2     
      (cond
        ((= m_LAENGE "LAENGE_1")
          ;<<< 2m ASI Kabel 
          (EINZELTEIL P10 "722001101" "MQ12ST. GEW.->MQ12BU. GER.2m 4-POL." "1" "0")
          (setq BEZEICHNUNG_BG (strcat BEZEICHNUNG_BG "+ASI-KABEL 2M"))          
          (command "_layer" "_m" "A-GRUPPE" "_c" "7" "" "")  
          (mach-block P0 "0" AUSWAHL-SATZ)
          (attribute-aendern "0" "2" "9" "0" (strcat _PREFIX DisplayString) block-kennung "333333333" BEZEICHNUNG_BG "1" "")
          (ssadd (entlast) AUSWAHL-SATZ-ROTATE)
          ;<<< .... und jetzt kopieren
          (command "_copy" AUSWAHL-SATZ-ROTATE "" P0 P12)
          (ssadd (entlast) AUSWAHL-SATZ-ROTATE)          
        )
        ((= m_LAENGE "LAENGE_2")
          ;<<< 2m ASI Kabel 
          (EINZELTEIL P10 "722001102" "MQ12ST. GEW.->MQ12BU. GER.3m 4-POL." "1" "0")
          (setq BEZEICHNUNG_BG (strcat BEZEICHNUNG_BG "+ASI-KABEL 3M"))          
          (command "_layer" "_m" "A-GRUPPE" "_c" "7" "" "")  
          (mach-block P0 "0" AUSWAHL-SATZ)
          (attribute-aendern "0" "2" "9" "0" (strcat _PREFIX DisplayString) block-kennung "333333333" BEZEICHNUNG_BG "1" "")
          (ssadd (entlast) AUSWAHL-SATZ-ROTATE)
          ;<<< .... und jetzt kopieren
          (command "_copy" AUSWAHL-SATZ-ROTATE "" P0 P12)
          (ssadd (entlast) AUSWAHL-SATZ-ROTATE)                    
        )
        ((= m_LAENGE "LAENGE_3")
          (EINZELTEIL P10 "722001103" "MQ12ST. GEW.->MQ12BU. GER.5m 4-POL." "1" "0")
          (setq BEZEICHNUNG_BG (strcat BEZEICHNUNG_BG "+ASI-KABEL 5M"))          
          (command "_layer" "_m" "A-GRUPPE" "_c" "7" "" "")  
          (mach-block P0 "0" AUSWAHL-SATZ)
          (attribute-aendern "0" "2" "9" "0" (strcat _PREFIX DisplayString) block-kennung "333333333" BEZEICHNUNG_BG "1" "")
          (ssadd (entlast) AUSWAHL-SATZ-ROTATE)        
          ;<<< .... und jetzt kopieren
          (command "_copy" AUSWAHL-SATZ-ROTATE "" P0 P12)
          (ssadd (entlast) AUSWAHL-SATZ-ROTATE)                    
        )
        ((= m_LAENGE "LAENGE_4")
          (EINZELTEIL P10 "722001104" "MQ12ST. GEW.->MQ12BU. GER.10m 4-POL." "1" "0")
          (setq BEZEICHNUNG_BG (strcat BEZEICHNUNG_BG "+ASI-KABEL 10M"))          
          (command "_layer" "_m" "A-GRUPPE" "_c" "7" "" "")  
          (mach-block P0 "0" AUSWAHL-SATZ)
          (attribute-aendern "0" "2" "9" "0" (strcat _PREFIX DisplayString) block-kennung "333333333" BEZEICHNUNG_BG "1" "")
          (ssadd (entlast) AUSWAHL-SATZ-ROTATE)        
          ;<<< .... und jetzt kopieren
          (command "_copy" AUSWAHL-SATZ-ROTATE "" P0 P12)
          (ssadd (entlast) AUSWAHL-SATZ-ROTATE)                    
        )
      )                   
    )
    ((= m_DWG_NAME "4") ; ANSCHLUSS MOTOR  
        (TEILE_ANSCHLUSS_MOTOR)   
    )  
    ((= m_DWG_NAME "5")  
      (TEILE_ANSCHLUSS_MOTOR)    
      (IO_ZEICHNEN "1" P12 "K" "MOTOR" "4")
;      (mach-block P0 "0" AUSWAHL-SATZ)   
;      (ssadd (entlast) AUSWAHL-SATZ-ROTATE)                          
    )
  )  ; end cond

  (command "_rotate" AUSWAHL-SATZ-ROTATE "" P0 pause)
)

(defun EINZELTEIL (P1 E_ARTINR E_BEZEICHNUNG E_MENGE E_LAENGE)
  (setq WINKEL1 (+ WINKEL1 10))
  (command "_insert" (strcat lw "/acadsst/steuerg/d_einzel") P10 "" "" (rtos WINKEL1)) 
  (attribute-aendern "0" "0" "29" E_LAENGE "" block-kennung E_ARTINR E_BEZEICHNUNG E_MENGE "")     
  (ssadd (entlast) AUSWAHL-SATZ)
)

(defun IO_ZEICHNEN (LOS P0 IO_PREFIX IO_EBENE IO_FARBE)
 ;jh (setq P10  (list (+ (car p0) (+ (* FAKTO 1170)) (* 150 ANZ_CHARACT)) (+ (cadr p0) (* FAKTO 0))    (caddr p0)))
  (setq P10  (list (+ (car p0) (+ (* FAKTO 830)) (* 150 ANZ_CHARACT)) (+ (cadr p0) (* FAKTO 0))    (caddr p0)))
  ;(setq P11  (list (+ (car p0) (+ (* FAKTO 1170)) (* 150 ANZ_CHARACT)) (- (cadr p0) (* FAKTO 360))  (caddr p0)))
  (setq P11  (list (+ (car p0) (+ (* FAKTO 830)) (* 150 ANZ_CHARACT)) (- (cadr p0) (* FAKTO 360))  (caddr p0)))
  (setq P12  (list (+ (car p0) (* FAKTO 0))                            (- (cadr p0) (* FAKTO 360))  (caddr p0)))
 ;jh (setq P13  (list (+ (car p0) (* FAKTO 340))                          (+ (cadr p0) (* FAKTO 0))    (caddr p0)))
  (setq P13  (list (+ (car p0) (* FAKTO 0))                          (+ (cadr p0) (* FAKTO 0))    (caddr p0)))
  (setq P14  (list (+ (car p0) (* FAKTO 0))                          (- (cadr p0) (* FAKTO 360))  (caddr p0)))
 ;jh (setq P14  (list (+ (car p0) (* FAKTO 340))                          (- (cadr p0) (* FAKTO 360))  (caddr p0)))
    
  ;<<<Text>>>
  (setq P1  (list (+ (car p12) (* FAKTO 380))                          (+ (cadr p12) (* FAKTO 90))  (caddr p12)))
  (setq P2  (list (+ (car p12) (* FAKTO 550))                          (+ (cadr p12) (* FAKTO 90))  (caddr p12)))
  (setq P3  (list (+ (car p12) (* FAKTO 20))                           (+ (cadr p12) (* FAKTO 220)) (caddr p12)))
  (setq P4  (list (+ (car p12) (* FAKTO 20))                           (+ (cadr p12) (* FAKTO 120)) (caddr p12)))
  (setq P5  (list (+ (car p12) (* FAKTO 20))                           (+ (cadr p12) (* FAKTO 10))  (caddr p12)))
  (setq P6  (list (- (car p12) (* FAKTO 320))                            (+ (cadr p12) (* FAKTO 20))  (caddr p12)))
 ;jh (setq P6  (list (+ (car p12) (* FAKTO 20))                           (+ (cadr p12) (* FAKTO 20))  (caddr p12)))
  (setq P7  (list (+ (car p0) (+ (* FAKTO 1200)) (* 150 ANZ_CHARACT))  (+ (cadr p12) (* FAKTO 100)) (caddr p12)))

  (command "_layer" "_m" IO_EBENE "_c" IO_FARBE "" "")
  ;<<< IO Einfügen
  (command "_insert" (strcat lw "/acadsst/steuerg/io") P6 FAKTO "" "") 

  ;<<< LOS=0 beim ersten Durchlauf
  (if (= LOS "0")  
    (setq AUSWAHL-SATZ-ROTATE (ssget "_L"))	
    (ssadd (entlast) AUSWAHL-SATZ-ROTATE)    
  )


  (if (= m_IO-BEZ "1") ; IO-Bezeichnung = Artikelbezeichnung
    (ATTRIBUTE-AENDERN_IO (strcat IO_PREFIX DisplayString) m_IDENT VERWENDUNG BEZEICHNUNG m_KENNZEICHNUNG m_SPS-NR) 
    (ATTRIBUTE-AENDERN_IO (strcat IO_PREFIX DisplayString) m_IDENT VERWENDUNG m_BEZEICHNUNG m_KENNZEICHNUNG m_SPS-NR) 
  )

  (ssadd (entlast) AUSWAHL-SATZ-ROTATE)
  ;>>> Byteweise arbeiten. Wenn die letzte Zahl "7" dann auf "10" aufrunden
  (setq LAENGE_m_INPUT (strlen m_INPUT))
  (if (= (substr m_INPUT LAENGE_m_INPUT 1) "7")
    (setq m_INPUT (itoa (+ 3 (atoi m_INPUT))))
    (setq m_INPUT (itoa (+ 1 (atoi m_INPUT))))
  )

  ;<<< Korpus zeichnen ---------------------------------------
  (command "_layer" "_m" "A-GRUPPE" "_c" "7" "" "")
	(command "_pline" P10 "_w" "0" "0" P11 P14 P13 P10 "")
  (setq AUSWAHL-SATZ (ssget "_L"))	
  (ssadd (entlast) AUSWAHL-SATZ-ROTATE)			
  (setq P15  (list (car p10) (cadr p10) (caddr p10)))
   (setq P16  (list (car p11) (cadr p11) (caddr p11)))
  ;<<<<<<<<< IO-Bezeichnung auch als TEXT rechts einfügen
  (if (= m_IO-BEZ-RECHTS "1") 
    (progn
      (setq P8  (list (+ (car p16) (* FAKTO 100)) (+ (cadr p16) (* FAKTO 100)) (caddr p16)))
      (command "_text" P8 (rtos (* FAKTO 150)) "0" m_BEZEICHNUNG)			
      (ssadd (entlast) AUSWAHL-SATZ-ROTATE)			
    )
  )
  ;<<<< SPS-NR checken - wenn eingetragen dann einrahmen >>>>>>>
  (if (> (strlen m_SPS-NR) 0 ) 
    (progn
      (setq left_length (* (strlen m_SPS-NR) 160))
      (setq P17  (list (- (car p13) (* FAKTO left_length)) (+ (cadr p13) (* FAKTO 0))   (caddr p0))) 
      (setq P18  (list (- (car p13) (* FAKTO left_length)) (- (cadr p13) (* FAKTO 360)) (caddr p0)))
      
      (command "_layer" "_m" "AUSGANG-HW" "_c" "7" "" "")
      (command "_pline" P13 P14 P18 P17 P13 "")
      (ssadd (entlast) AUSWAHL-SATZ)
      (ssadd (entlast) AUSWAHL-SATZ-ROTATE)			
    )
  )
)

(defun TEILE_ANSCHLUSS_MOTOR ()  
  (EINZELTEIL P10 "703001017" "HILFSCHALTER F. 3RV1011- 1S+1O" "1" "0")
  (setq BEZEICHNUNG_BG (strcat BEZEICHNUNG_BG "+HILFSCHALTER"))          
  (EINZELTEIL P10 "700004200" "ZUGFEDER-DURCHGANGSKLEMME ST2,5" "3" "0")
  (setq BEZEICHNUNG_BG (strcat BEZEICHNUNG_BG "+KLEMME1"))                  
  (EINZELTEIL P10 "700004203" "ZUGFEDER-SCHUTZLEITERKLEMME ST2,5-PE" "1" "0")
  (setq BEZEICHNUNG_BG (strcat BEZEICHNUNG_BG "+KLEMME2"))                  
  (EINZELTEIL P10 "723000006" "ADERL. H07V-K 1,5 QMM SCHWARZ" "1" "3")
  (command "_layer" "_m" "A-GRUPPE" "_c" "7" "" "")  
  (mach-block P10 "0" AUSWAHL-SATZ)
  (attribute-aendern "0" "2" "9" "0" (strcat _PREFIX DisplayString) block-kennung "333333333" BEZEICHNUNG_BG "1" "")
  (ssadd (entlast) AUSWAHL-SATZ-ROTATE)
)
;------------------------------------------------------------------------------
(defun c:AUSGAENGE_F ( / 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 "**** AUSGÄNGE SPINNEREI *******")
  (prompt "")
  (if (null m_DWG_NAME)      (setq m_DWG_NAME "0"))                   ; Auswahl
  (if (null m_INPUT)         (setq m_INPUT "1"))                      ; Input Bit   
  (if (null m_IDENT)         (setq m_IDENT "1000"))                   ; ID   
  (if (null m_COMPONENT)     (setq m_COMPONENT "0"))                  ; Verwendung   
  (if (null m_BEZEICHNUNG)   (setq m_BEZEICHNUNG "xxxxxxxxxxxxxxx"))  ; BEZEICHNUNG   
  (if (null m_KENNZEICHNUNG) (setq m_KENNZEICHNUNG "=Axx+Exxx-Axxx")) ; KENNZEICHNUNG   
  (if (null m_FAKT)          (setq m_FAKT "1"))                       ; Skalierungsfaktor   
  (if (null m_ZUSATZ)        (setq m_ZUSATZ ""))                      ; Zusatztext
  (if (null m_SPS-NR)        (setq m_SPS-NR ""))                      ; SPS Prefix  
  (if (null m_PREFIX)        (setq m_PREFIX "PREFIX_1"))              ; Prefix (B,E oder S)
  (if (null m_IO-BEZ)        (setq m_IO-BEZ "0"))                     ; Bezeicnung nicht der Artikelbezeichnung gleichsetzen
  (if (null m_IO-BEZ-RECHTS) (setq m_IO-BEZ-RECHTS "0"))              ; Bezeicnung als Text rechts andrucken
  (if (null m_LAENGE)        (setq m_LAENGE "LAENGE_1"))              ; Länge 2m/3m/5m/10m  
  (if (null m_LEISTUNG)      (setq m_LEISTUNG "LEISTUNG_1"))          ; LEISTUNG 0.12/018    
  (Dbox)
  (prompt "")
  (datain)
  (geometrie)
  (setvar "osmode" ALTFANG)  
)
