제가 구현하고 싶은 기능은
객체를 회전하는데 각도가 아니라 slop 10%입력하여
회전하고 싶습니다.
slop 10% 는 수평거리 100에 수직거리 10
slop 값은 사용자 입력받아서 할 생각입니다.
아래 코딩 뭔가 잘못되었는지 잘 안되네요.
(defun c:RS ( / osm ss bp ang sl tmp)
(defun dtr (a) (* pi (/ a 180.0)))
(defun rtd (a) (* 180.0 (/ a pi))) ;(defun rtd (a) (/ (* a 180.0) pi))
(defun tan (a) (/ (sin a) (cos a)))
; (command “undo” “group”)
(setvar “cmdecho” 0)
(setq osm (getvar “osmode”))
(prompt “nRotate slop(%)”)
(setq ss (ssget)
bp (getpoint “nbase point: “)
tmp 0.0
)
(setq sl (getreal (strcat “nRotate Slop(%) <” (rtos tmp) “%>”)))
(setq ang (atan ( sl 100.0)))
(setq ang (rtd ang))
(setq ang (if ang ang tmp))
(if (/= 0 ang)
(progn
(setvar “osmode” 0)
(command “rotate” ss “” bp ang)
; (setq tmp ang)
(setvar “osmode” osm)
)
)
(command “redraw”)
(setvar “cmdecho” 1)
; (command “undo” “end”)
(princ)
)
우선 보이는것
(setq ang (atan ( sl 100.0))) => (setq ang (atan ( / sl 100.0))) or (setq ang (atan sl 100.0))
감사합니다.