Files
Walz/MODULE/B_TYP8.LSP
T

260 lines
12 KiB
Common Lisp

;------------------------------------------------------------------------;
; Bügelplätze zeichnen - TYP 8 - ;
; -----------------------------------------------------------------------;
; 14.10.93 / 13.6.98 ;
;------------------------------------------------------------------------;
(defun Dbox (/ Dat)
(setq Dat (load_dialog (strcat lw "/acadsst/module/b_typ8.dcl")))
(if (not (new_dialog "b_typ8" Dat)) (exit))
(set_tile "L1" m_L1)
(set_tile "L2" m_L2)
(set_tile "K0" m_K0)
(set_tile "ART" m_ART)
(SetDia)
(ACTION_TILE "ART" "(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)
(if (= m_ART "ART_1") ; Nr 1
(slide_image 0 0 breite hoehe "arbplz(btyp08_1)")
)
(if (= m_ART "ART_2") ; Nr 2
(slide_image 0 0 breite hoehe "arbplz(btyp08_2)")
)
(if (= m_ART "ART_3") ; Nr 3
(slide_image 0 0 breite hoehe "arbplz(btyp08_3)")
)
(end_image)
)
(defun zeig_dia()
(setq m_ART (get_tile "ART"))
(SetDia)
)
(defun SetPara ()
(setq m_L1 (get_tile "L1") ; Breite
m_K0 (get_tile "K0") ; Tiefe
m_ART (get_tile "ART") ; Art
m_L2 (get_tile "L2") ; Streckenabstand
)
)
(defun datain()
(setq L1 (atoi m_L1)) ; Breite
(setq K0 (atoi m_K0)) ; Anzahl Plätze
(setq ART (atoi (substr m_ART 5 1))) ; Art
(setq L2 (atoi m_L2)) ; Tiefe
;----------------------------------------------------------------------;
; >>>>>> Eingabeteil <<<<<< ;
;----------------------------------------------------------------------;
(setq P0 (getpoint "\nUntere linke Ecke definieren: "))
(initget (+ 2 4))
;----------------------------------------------------------------------;
; >>>>>> Prüfung ob die Grenzwerte eingehalten sind <<<<<< ;
; >>>>>> in Abhängigkeit von der Bügelplatzart <<<<<< ;
;----------------------------------------------------------------------;
(while (or (< L1 2300) (> L1 4000))
(initget (+ 1 2 4))
(setq L1 (getint "\nBreite eingeben [2300-4000]: "))
)
(If
(or (= ART 1) (= ART 2))
(while (or (< L2 2500) (> L2 4000))
(initget (+ 1 2 4))
(setq L2 (getreal "\nTiefe eingeben [2500-4000]: "))
)
)
(If
(= Art 3)
(while (or (< L2 2800) (> L2 4000))
(initget (+ 1 2 4))
(setq L2 (getreal "\nTiefe eingeben [2800-4000]: "))
)
)
)
(defun punkte()
;-----------------------------------------------------------------------;
; >>>>>> Konstruktionspunkte definieren <<<<<< ;
;-----------------------------------------------------------------------;
(cond
((= ART 1)
(setq P1 (list (+ (car p0) 800) (cadr p0)))
(setq P2 (list (car p1) (+ (cadr p1) L2)))
(setq P3 (list (+ (car p2) L1) (cadr p2)))
(setq P4 (list (+ (car p0) L1) (cadr p0)))
(setq P5 (list (car p1) (+ (cadr p1) 800)))
(setq P6 (list (car p2) (- (cadr p2) 800)))
(setq P7 (list (+ (car p2) 800) (cadr p2)))
(setq P8 (list (+ (car p0) 100) (- (cadr p0) 100)))
(setq P9 (list (+ (car p3) 100) (+ (cadr p3) 100)))
(setq P10 (list (- (car p1) 500) (cadr p1)))
(setq P11 (list (car p1) (+ (cadr p1) (+ (/ L2 2) 187.5))))
(setq P12 (list (+ (car p2) (+ (/ L1 2) 187.5)) (cadr p2)))
(setq P13 (list (+ (car p2) 1200) (- (cadr p2) 400)))
(setq P14 (list (- (car p13) 560) (- (cadr p13) 700)))
(setq P15 (list (- (car p13) 400) (- (cadr p13) 200)))
(setq P16 (list (- (car p13) 1050) (- (cadr p13) 1400)))
(setq P17 (list (+ (car p1) (/ L1 3)) (cadr p1)))
(setq P18 (list (car p2) (- (cadr p2) 700)))
)
((= ART 2)
(setq P1 (list (+ (car p0) 800) (cadr p0)))
(setq P2 (list (car p1) (+ (cadr p1) L2)))
(setq P3 (list (+ (car p2) L1) (cadr p2)))
(setq P4 (list (+ (car p0) L1) (cadr p0)))
(setq P5 (list (car p1) (+ (cadr p1) 800)))
(setq P6 (list (car p2) (- (cadr p2) 800)))
(setq P7 (list (+ (car p2) 800) (cadr p2)))
(setq P8 (list (+ (car p0) 100) (- (cadr p0) 100)))
(setq P9 (list (+ (car p3) 100) (+ (cadr p3) 100)))
(setq P10 (list (- (car p0) 100) (cadr p0)))
(setq P11 (list (car p1) (+ (cadr p1) (- (/ L2 2) 187.5))))
(setq P12 (list (+ (car p2) (- (/ L1 2) 187.5)) (cadr p2)))
(setq P13 (list (+ (car p2) 1200) (- (cadr p2) 400)))
(setq P14 (list (- (car p13) 560) (- (cadr p13) 700)))
(setq P15 (list (- (car p13) 400) (- (cadr p13) 1200)))
(setq P16 (list (- (car p13) 1050) (- (cadr p13) 100)))
(setq P17 (list (+ (car p1) (/ L1 3)) (cadr p1)))
(setq P18 (list (car p2) (- (cadr p2) 700)))
)
((= ART 3)
(setq P1 (list (+ (car p0) L1) (cadr p0)))
(setq P2 (list (car p1) (+ (cadr p1) L2)))
(setq P3 (list (- (car p2) (- L1 800)) (cadr p2)))
(setq P4 (list (- (car p1) 800) (cadr p1)))
(setq P5 (list (car p1) (+ (cadr p1) 800)))
(setq P6 (list (car p2) (- (cadr p2) 800)))
(setq P7 (list (+ (car p2) 800) (cadr p2)))
(setq P8 (list (+ (car p0) 100) (- (cadr p0) 100)))
(setq P9 (list (+ (car p7) 100) (+ (cadr p7) 100)))
(setq P10 (list (+ (car p0) (- (/ L1 3) 187.5)) (cadr p0)))
(setq P11 (list (car p1) (+ (cadr p1) (- (/ L2 2) 187.5))))
(setq P12 (list (- (car p2) (+ (/ L1 2) 187.5)) (cadr p2)))
(setq P13 (list (- (car p2) 1650) (- (cadr p2) 2400)))
(setq P14 (list (+ (car p13) 900) (+ (cadr p13) 900)))
(setq P15 (list (+ (car p13) 800) (+ (cadr p13) 220)))
(setq P16 (list (+ (car p13) 1500) (+ (cadr p13) 1600)))
(setq P17 (list (- (car p1) (/ L1 3)) (cadr p1)))
(setq P18 (list (car p2) (- (cadr p2) 700)))
)
)
)
(defun geometrie()
;-----------------------------------------------------------------------;
; >>>>>> Bl”cke einfgen <<<<<< ;
;-----------------------------------------------------------------------;
(command "_layer" "_m" "L-2" "_c" "2" "" "")
(command "_insert" (strcat lw "/acadsst/layout/w90650l8") P1 "" "" "")
(setq auswahl-satz (ssget "_L"))
(command "_insert" (strcat lw "/acadsst/layout/w90650l8") P2 "" "" "180")
(ssadd (entlast) auswahl-satz)
(command "_line" p5 p6 "")
(ssadd (entlast) auswahl-satz)
(command "_line" p3 p2 "")
(ssadd (entlast) auswahl-satz)
(command "_line" p0 p4 "")
(ssadd (entlast) auswahl-satz)
;-----------------------------------------------------------------------;
; >>>>>> Pfeile + Maschinen setzen <<<<<< ;
;-----------------------------------------------------------------------;
(command "_layer" "_m" "Z-1" "_c" "1" "" "")
(cond
((= ART 1)
(command "_insert" (strcat lw "/acadsst/zier2d/pf0_l") p10 "" "" "180")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/pf0_v") p11 "" "" "-90")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/pf0_v") p12 "" "" "180")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/maus") p14 "" "" "-90")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/vario14") p13 "" "" "180")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/buegel") p17 "" "" "90")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/buegel") p18 "" "" "180")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/pfeil") p15 "" "" "165")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/pfeil") p16 "" "" "15")
(ssadd (entlast) auswahl-satz)
)
((= ART 2)
(command "_insert" (strcat lw "/acadsst/zier2d/pf0_v") p10 "" "" "")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/pf0_v") p11 "" "" "90")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/pf0_l") p12 "" "" "")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/maus") p14 "" "" "-90")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/vario14") p13 "" "" "180")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/buegel") p17 "" "" "-90")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/buegel") p18 "" "" "")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/pfeil") p15 "" "" "195")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/pfeil") p16 "" "" "-15")
(ssadd (entlast) auswahl-satz)
)
((= ART 3)
(command "_insert" (strcat lw "/acadsst/zier2d/pf0_v") p10 "" "" "")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/pf0_v") p11 "" "" "90")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/pf0_l") p12 "" "" "")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/maus") p14 "" "" "90")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/dobli-fw") p13 "" "" "90")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/buegelr") p17 "" "" "-90")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/buegelr") p18 "" "" "")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/pfeil") p15 "" "" "-15")
(ssadd (entlast) auswahl-satz)
(command "_insert" (strcat lw "/acadsst/zier2d/pfeil") p16 "" "" "195")
(ssadd (entlast) auswahl-satz)
)
)
(If (> K0 1)
(command "_array" auswahl-satz "" "_r" "1" K0 (itoa L1))
)
)
;-------------------------------------------------------------------------;
; >>>>>> Programm <<<<<< ;
;-------------------------------------------------------------------------;
(defun c:b_typ8 (/ L1 L2 L3 KO ART P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 P14 P15 P16 P17 P18)
(setvar "limcheck" 0)
(prompt "**** Bügelplatz TYP 8 ****")
(if (null m_L1) (setq m_L1 "2300" )) ; Breite
(if (null m_L2) (setq m_L2 "2500" )) ; Tiefe
(if (null m_K0) (setq m_K0 "1" )) ; Anzahl der Plätze
(if (null m_ART) (setq m_ART "ART_1" )) ; Art
(setq auswahl-satz nil)
(Dbox)
(prompt "")
(datain)
(punkte)
(geometrie)
)
;-------------------------------------------------------------------------;
; >>>>>> Ende <<<<<< ;
;-------------------------------------------------------------------------;