scale에서 확대 또는 축소할때 기준점을 중심으로 각 object의
거리(위치)와 크기가 변화하는데 거리(위치)는 변하지 않고 크기만
변화시키려면 어떻게 해야 합니까.
아시는 분은 답변 좀…
scale에서 거리(위치)는 변하지 않고 크기만 변화시키려면
공유
비밀번호를 잊으셨나요? 비밀번호를 재설정하려면 이메일 주소를 입력해주세요.
해당 질문을 신고하는 이유를 간단히 입력해주세요.
해당 답변을 신고하는 이유를 간단히 입력해주세요.
해당 유저를 신고하는 이유를 간단히 입력해주세요.
간단한 방법은 스케일하고자 하는 대상을 블럭으로 잡고
그 블럭을 인서트할때 x,y축의 비율을 틀리게 하면 됩니다.
그리고 다시 폭파시키고…
일단 해보세요
제가 만든 리습인데요…
이 리습은 원에 대해서만 가능합니다.
사용자의 필요에 따라서 고쳐서 쓰시면 다른것도 가능하리라 봅니다.
여러개의 원에 대해서 반지름 값을 입력하면 반지름값을 통일한후, 스케일을 줄수도 있고,
반지름 값을 입력하지 않으면 현재 반지름에 스케일을 주게 됨니다.
당연히 기준점은 각각의 중심점이 됩니다.
님께서 필요로 하시는 것인지 모르겠군요…
;====크기가 다른 원(반지름 통일한후 or, 그 반지름 그대로) 스케일 주기======
(defun c:cs (/ e1 ra sc nb n e2 e3 er e4 e5 ef)
(setq e1 (ssget ‘((0 . “circle”))));객체선택.
(setq ra (getreal “n>>반지름값 입력:”));반지름값 입력.
(setq sc (getreal “n>>스케일 입력:”));scale 입력.
(setq nb (sslength e1))
(setq n 0)
(if ra
(progn;반지름을 통일한후, 스케일 조정.
(repeat nb
(setq e2 (entget (ssname e1 n)))
(setq e3 (assoc 40 e2));반지름값 추출.
(setq e4 (* sc ra))
(setq e5 (cons 40 e4))
(setq ef (subst e5 e3 e2))
(entmod ef)
(setq n (1+ n))
(princ)
);repeat
);progn
(progn;현상태의 반지름에 스케일 조정.
(repeat nb
(setq e2 (entget (ssname e1 n)))
(setq e3 (assoc 40 e2));반지름값 추출.
(setq er (cdr e3))
(setq e4 (* sc er))
(setq e5 (cons 40 e4))
(setq ef (subst e5 e3 e2))
(entmod ef)
(setq n (1+ n))
(princ)
);repeat
);progn
);if
);end of command
수고하세요
오~ 마이갓~!! 이렇게 멋지게 만들어 주셔서 감사합니다 ^ㅇ^~~