여러객체를 한번에 90도로 로테이트해주는 리습을
아래와 같이 짜봤는데 잘 안되네요.
뭐가 문제일까요,,,
도와주십시오!
(defun c:r4 ()
(prompt “ROTATE: 90˚”)
(setq ss (ssget))
(if ss (setq ename (ssname ss 0)))
(setq elist (entget ename)))
(setq pnt (cdr(assoc 10 elist))))
(command “rotate” ename pnt “90”)
)
공유
오 감사합니다. 방법만 알려주셔서 더 감사드려요! 열심히 공부하겠습니다 ^^
저렇게 하시면.. 첫번째 선택된 것만 90도로 해주는게 아니고..
90도 더 회전 하는거죠…
엄밀히 따지면… 90도로 하는것과 90도를 더 하는것과는 다릅니다.
0 -> 90 으로는 같을 수 있으나…
10 -> 100 으로 되겠죠?
(defun c:r4 ()
(prompt “ROTATE: 90˚”)
(setq ss (ssget)) ;객체들 선택(여러객체)
(if ss
(progn
(setq ename (ssname ss 0));)괄호 삭제;첫번째 객체만 이름 가져옴.
(setq elist (entget ename)););괄호 갯수 이상함.
(setq pnt (cdr(assoc 10 elist))););
(command “rotate” ename pnt “90”)
);progn
);if
)
괄호가 뭔가 이상하네요..
command : vlisp 에서 디버깅 공부하세요…
수정사항이 많은거 같습니다..
1. repeat
2. sslength
함수를 추가 삽입해야 합니다..
3. dxf 코드(40번으로 기억함, 도움말 참고) 로 수정하셔야.. 원하시는 결과치 나옵니다.
– 라디안 값이니.. 디그리 값을 라디안으로 바꾸는 함수가 구글링해보시면 (dtr 함수가 많죠..)
만들어 드릴수 있으나.. 공부하시기 위해.. .. 방법만 말씀드립니다…