CAD&BIM

반응형

rotate 할때 각도가 아닌 %로 회전하기

 

rotate명령은 기준점을 중심으로 객체를 회전합니다.

 

 

선택한 객체를 기준점을 중심으로 절대 각도로 회전할 수 있습니다.

다음과 같은 프롬프트가 표시됩니다.

객체 선택객체 선택 방법을 사용하고, 작업을 마치면 Enter 키를 누릅니다.기준점 지정점을 지정합니다.회전 각도 지정각도를 입력하거나, 점을 지정하거나, c 또는 r을 입력합니다.

  • 회전 각도. 객체가 기준점을 중심으로 어느 정도 거리를 두고 회전하는지 결정합니다. 회전축은 지정한 기준점을 통과하면서 현재 UCS의 Z 축에 평행합니다.
  • 복사. 회전하기 위해 선택된 객체의 사본을 작성합니다.
  • 참조. 지정된 각도부터 새 절대 각도까지 객체를 회전합니다. 뷰포트 객체를 회전하면 뷰포트의 경계는 도면 영역의 모서리에 평행하게 유지됩니다.

 

그런데 최근 작업할때

기울기가 2% 선을 그리고 싶은데 수평선을 그리고 2%회전 시키고 싶었습니다.

그래서 lisp로 작성해봤어요.

 

rs.lsp
0.00MB

 

객체 선택:
base point: 선택
Rotate Slop(%) <0.0000%> 기울기 %로 입력

 

(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)
)
반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band