我要算出旋转角度后的圆弧的半径值,意思就算用原来圆弧的长度,画出圆弧的长度不变,但是角度变小
的新的圆弧,现在好像算出来是错误的,请高手知道一下,谢谢啦
(defun c:dhy()
(setq XJD (getreal "\n旋转角度: ")) (setq en (entsel)) (setq en1 (entget (car en))) (setq ang1 (cdr (assoc 50 en1))) (setq ang2 (cdr (assoc 51 en1))) (setq rad (cdr (assoc 40 en1))) (setq cen (cdr (assoc 10 en1))) (setq len (* rad (abs (- ang2 ang1)))) ;;圆弧长度 (if (> ang1 ang2) (setq an (+ (- (* pi 2) ang1) ang2)) (setq an (- ang2 ang1)))
(setq ann (* 180.0 (/ an PI))) ;;圆弧角度
(setq xann (- ann xjd)) ;;;新圆弧角度 (setq xHUDU (/ xann (/ 180 PI))) ;;新圆弧弧度 (setq xRRR (/ len xHUDU)) ;;新圆弧R
(prompt (strcat "圆弧长度为" (rtos len)"mm")) (prompt (strcat " , 圆弧角度为" (rtos ann)"mm")) (prompt (strcat " , 圆弧半径为" (rtos rad)"mm"))
(prompt (strcat " , 新圆弧半径为" (rtos xRRR)"mm"))
(PRINC) ) |