;------------------------------------------------------------------------; ; Bügelplätze zeichnen - TYP 6 - ; ; -----------------------------------------------------------------------; ; 29.09.93 / 13.6.98 ; ;------------------------------------------------------------------------; (defun Dbox (/ Dat) (setq Dat (load_dialog (strcat lw "/acadsst/module/b_typ6.dcl"))) (if (not (new_dialog "b_typ6" 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(btyp06_1)") ) (if (= m_ART "ART_2") ; Nr 2 (slide_image 0 0 breite hoehe "arbplz(btyp06_2)") ) (if (= m_ART "ART_3") ; Nr 3 (slide_image 0 0 breite hoehe "arbplz(btyp06_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") ; Anzahl Plätze m_ART (get_tile "ART") ; Art m_L2 (get_tile "L2") ; Streckenabstand ) ) (defun datain() (setq L1 (atoi m_L1)) ; Streckenabstand (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 <<<<<< ; ;----------------------------------------------------------------------; (while (or (< L1 2800) (> L1 5000)) (initget (+ 1 2 4)) (setq L1 (getreal "\nBreite eingeben [2800-5000]: ")) ) (while (or (< L2 700) (> L2 1200)) (initget (+ 1 2 4)) (setq L2 (getint "\nStreckenabstand eingeben [700-1200]: ")) ) ) (defun punkte() ;-----------------------------------------------------------------------; ; >>>>>> Konstruktionspunkte definieren <<<<<< ; ;-----------------------------------------------------------------------; (cond ((= ART 1) (setq P1 (list (+ (car p0) 425) (cadr p0))) (setq P2 (list (+ (car p1) L2) (+ (cadr p1) L2))) (setq P3 (list (+ (car p0) L1) (cadr p2))) (setq P4 (list (+ (car p1) 400) (+ (cadr p1) 400))) (setq P5 (list (- (car p2) 400) (- (cadr p2) 400))) (setq P6 (list (+ (car p2) 425) (cadr p2))) (setq P7 (list (+ (car p0) 800) (cadr p0))) (setq P8 (list (+ (car p0) L1) (cadr p0))) (setq P9 (list (- (car p0) 300) (- (cadr p0) 300))) (setq P10 (list (+ (car p3) 300) (+ (cadr p3) 2500))) (setq P11 (list (+ (car p1) (- (/ L2 2) 187.5)) (+ (cadr p1) (- (/ L2 2) 187.5)))) (setq P12 (list (- (car p3) 200) (cadr p3))) (setq P13 (list (+ (car p0) (/ L1 2)) (cadr p0))) (setq P14 (list (+ (car p2) 650) (cadr p2))) (setq P15 (list (+ (car p2) 900) (+ (cadr p2) 2000))) (setq P16 (list (- (car p15) 560) (- (cadr p15) 700))) (setq P17 (list (+ (car p2) 300) (+ (cadr p2) 100))) (setq P18 (list (+ (car p2) 550) (+ (cadr p2) 850))) ) ((= ART 2) (setq P1 (list (+ (car p0) (- L1 425)) (cadr p0))) (setq P2 (list (- (car p1) L2) (+ (cadr p1) L2))) (setq P3 (list (car p0) (+ (cadr p0) L2))) (setq P4 (list (- (car p1) 400) (+ (cadr p1) 400))) (setq P5 (list (+ (car p2) 400) (- (cadr p2) 400))) (setq P6 (list (- (car p2) 425) (cadr p2))) (setq P7 (list (+ (car p0) (- L1 800)) (cadr p0))) (setq P8 (list (+ (car p0) L1) (cadr p0))) (setq P9 (list (- (car p0) 300) (- (cadr p0) 300))) (setq P10 (list (+ (car p8) 300) (+ (cadr p8) (+ L2 2500)))) (setq P11 (list (- (car p1) (- (/ L2 2) 187.5)) (+ (cadr p1) (- (/ L2 2) 187.5)))) (setq P12 (list (+ (car p3) 400) (cadr p3))) (setq P13 (list (+ (car p0) (/ L1 2)) (cadr p0))) (setq P14 (list (- (car p2) 300) (cadr p2))) (setq P15 (list (- (car p2) 900) (+ (cadr p2) 2000))) (setq P16 (list (- (car p15) 560) (- (cadr p15) 700))) (setq P17 (list (- (car p2) 1500) (+ (cadr p2) 100))) (setq P18 (list (- (car p2) 1250) (+ (cadr p2) 850))) ) ((= ART 3) (setq P1 (list (+ (car p0) 425) (cadr p0))) (setq P2 (list (+ (car p1) L2) (+ (cadr p1) L2))) (setq P3 (list (+ (car p0) L1) (cadr p2))) (setq P4 (list (+ (car p1) 400) (+ (cadr p1) 400))) (setq P5 (list (- (car p2) 400) (- (cadr p2) 400))) (setq P6 (list (+ (car p2) 425) (cadr p2))) (setq P7 (list (+ (car p0) 800) (cadr p0))) (setq P8 (list (+ (car p0) L1) (cadr p0))) (setq P9 (list (- (car p0) 300) (- (cadr p0) 300))) (setq P10 (list (+ (car p3) 300) (+ (cadr p3) 2500))) (setq P11 (list (+ (car p1) (- (/ L2 2) 187.5)) (+ (cadr p1) (- (/ L2 2) 187.5)))) (setq P12 (list (- (car p3) 400) (cadr p3))) (setq P13 (list (+ (car p0) (/ L1 2)) (cadr p0))) (setq P14 (list (+ (car p2) 300) (cadr p2))) (setq P15 (list (+ (car p2) 300) (+ (cadr p2) 400))) (setq P16 (list (+ (car p15) 1000) (+ (cadr p15) 750))) (setq P17 (list (+ (car p2) 500) (+ (cadr p2) 100))) (setq P18 (list (+ (car p2) 1300) (+ (cadr p2) 850))) ) ) ) (defun geometrie() ;-----------------------------------------------------------------------; ; >>>>>> Bl”cke einfgen <<<<<< ; ;-----------------------------------------------------------------------; (command "_layer" "_m" "L-2" "_c" "2" "" "") (cond ((= ART 1) (command "_insert" (strcat lw "/acadsst/layout/w45650l4") P1 "" "" "") (setq auswahl-satz (ssget "_L")) (command "_insert" (strcat lw "/acadsst/layout/s45650l4") P2 "" "" "180") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/layout/endp") P3 "" "" "") (ssadd (entlast) auswahl-satz) (command "_line" p4 p5 "") (ssadd (entlast) auswahl-satz) (command "_line" p6 p3 "") (ssadd (entlast) auswahl-satz) (command "_line" p7 p8 "") (ssadd (entlast) auswahl-satz) ) ((= ART 2) (command "_insert" (strcat lw "/acadsst/layout/w45650r4") P1 "" "" "180") (setq auswahl-satz (ssget "_L")) (command "_insert" (strcat lw "/acadsst/layout/s45650r4") P2 "" "" "") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/layout/endp") P3 "" "" "") (ssadd (entlast) auswahl-satz) (command "_line" p4 p5 "") (ssadd (entlast) auswahl-satz) (command "_line" p6 p3 "") (ssadd (entlast) auswahl-satz) (command "_line" p0 p7 "") (ssadd (entlast) auswahl-satz) ) ((= ART 3) (command "_insert" (strcat lw "/acadsst/layout/w45650l4") P1 "" "" "") (setq auswahl-satz (ssget "_L")) (command "_insert" (strcat lw "/acadsst/layout/s45650l4") P2 "" "" "180") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/layout/endp") P3 "" "" "") (ssadd (entlast) auswahl-satz) (command "_line" p4 p5 "") (ssadd (entlast) auswahl-satz) (command "_line" p6 p3 "") (ssadd (entlast) auswahl-satz) (command "_line" p7 p8 "") (ssadd (entlast) auswahl-satz) ) ) ;-----------------------------------------------------------------------; ; >>>>>> Pfeile + Maschinen setzen <<<<<< ; ;-----------------------------------------------------------------------; (command "_layer" "_m" "Z-1" "_c" "1" "" "") (cond ((= ART 1) (command "_insert" (strcat lw "/acadsst/zier2d/pf0_v") p11 "" "" "45") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/pf0_l") p12 "" "" "180") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/pf0_l") p13 "" "" "180") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/maus") p16 "" "" "-90") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/vario14") p15 "" "" "180") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/buegelr") p14 "" "" "-90") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/pfeil") p17 "" "" "90") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/pfeil") p18 "" "" "-60") (ssadd (entlast) auswahl-satz) ) ((= ART 2) (command "_insert" (strcat lw "/acadsst/zier2d/pf0_v") p11 "" "" "135") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/pf0_l") p12 "" "" "") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/pf0_l") p13 "" "" "") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/maus") p16 "" "" "-90") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/vario14") p15 "" "" "180") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/buegel") p14 "" "" "90") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/pfeil") p17 "" "" "90") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/pfeil") p18 "" "" "-60") (ssadd (entlast) auswahl-satz) ) ((= ART 3) (command "_insert" (strcat lw "/acadsst/zier2d/pf0_v") p11 "" "" "45") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/pf0_l") p12 "" "" "180") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/pf0_l") p13 "" "" "180") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/maus") p16 "" "" "90") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/dobli-fw") p15 "" "" "90") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/buegelr") p14 "" "" "-90") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/pfeil") p17 "" "" "30") (ssadd (entlast) auswahl-satz) (command "_insert" (strcat lw "/acadsst/zier2d/pfeil") p18 "" "" "-90") (ssadd (entlast) auswahl-satz) ) ) (If (> K0 1) (command "_array" auswahl-satz "" "_r" "1" m_K0 (itoa L1)) ) ) ;-------------------------------------------------------------------------; ; >>>>>> Programm <<<<<< ; ;-------------------------------------------------------------------------; (defun c:b_typ6 (/ 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 6 ****") (if (null m_L1) (setq m_L1 "2800" )) ; Breite (if (null m_L2) (setq m_L2 "800" )) ; Streckenabstand (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 <<<<<< ; ;-------------------------------------------------------------------------;