(DEFUN C:gmk_rt ( / ;===============VARIABLEN=================== aws ; auswahlsatz laws ; laenge auswahlsatz zaehler ; lfd nummer pfeilhoehe obj ele anfp ; linie endp mittelpkt ; kreisbogen radius anfwinkel endwinkel x ; radius - pfeilhoehe hs ; halbe sehne alpha ; oeffnungswinkel der sehne deltaw ; endwinkel-anfangswinkel des kreisbogens anz pkt_auf_bogen riwi ) (DEFUN gmk_pi_checker (bogmas / ergebnis) (WHILE (< bogmas 0) (SETQ bogmas (+ bogmas pi pi))) (WHILE (>= bogmas (* 2 pi)) (SETQ bogmas (- bogmas pi pi))) (SETQ ergebnis bogmas) ) ; ende gmk_pi_checker (DEFUN bogen_zerlegen() (SETQ mittelpkt (CDR(ASSOC 10 ele)) radius (CDR(ASSOC 40 ele)) anfwinkel (CDR(ASSOC 50 ele)) endwinkel (CDR(ASSOC 51 ele)) x (- radius pfeilhoehe) hs (SQRT (- (* radius radius) (* x x))) ; halbe sehne alpha (* (ATAN (/ hs x)) 2) deltaw (gmk_pi_checker (- endwinkel anfwinkel)) anz (FIX (/ deltaw alpha)) ) ; ende SETQ (IF (< anz 1) (SETQ anz (+ anz 1))) (SETQ anz (+ anz 1)) (SETQ alpha (/ deltaw anz)) (SETQ anfp (POLAR mittelpkt anfwinkel radius)) (SETQ anfwinkel (+ anfwinkel alpha)) (SETQ endp (POLAR mittelpkt anfwinkel radius)) (REPEAT anz (SETQ endp (POLAR mittelpkt anfwinkel radius)) (COMMAND "_line" (TRANS anfp 0 1 ) (TRANS endp 0 1 ) "") (SETQ anfp endp) (SETQ anfwinkel (+ anfwinkel alpha)) ) (COMMAND "_erase" obj "") ) ;================================hauptprogramm===================================== (SETQ aws (SSGET)) ; auswahlsatz bilden (SETQ laws (SSLENGTH aws)) ; anzahl elemente im auswahlsatzte (SETQ zaehler 0) ; lfdnr initialisieren (SETQ pfeilhoehe 0.02) (WHILE (< zaehler laws) (SETQ obj (SSNAME aws zaehler)) (SETQ ele (ENTGET obj)) (IF (= (CDR(ASSOC 0 ele)) "ARC") (BOGEN_ZERLEGEN)) (SETQ zaehler (+ zaehler 1)) ) ; ende WHILE ) ; ende DEFUN