안녕하세요
두번째 질문인데..
기초적인 것들만 여쭤보게 되내요…
다시 거두절미해서 본론으로 들어가자면!
– ex)
50*50*50 정사각형 박스에 30Ø, L:100mm인 원통이 있습니다
정사각형 박스 정중앙에 원통을 관통시키듯 이동 시키고 싶습니다.
2D에서 평면도(2D 객체)로 작업을 할때에는 너무도 기초적인 것들이지만..
3D(3D 객체)에서 하려니 기준점도 지멋대로고 정면도에서 선을그리려 해도
2D 평면도에 그려지는 것 처럼 그려지고.. 돌아버리겠내요..ㅠ
뭔가 손쉽게 작업할수 있을듯 한데.. 제 부족한 캐드실력때문에
이렇게 또 한번 고캐드 고수분들께 도움을 요청합니다..!
다시 정리하자면
1. 정사각형박스에 원통을 정중앙으로 위치시킨다.
2. 뷰에서 정면도로 설정한 다음 선, 원 따위를 그릴때 평면도로 그려지는 문제.
(혹.. 2D로 그린 객체를 일으켜 세울수도 있나요? 90도)
두서없이 적어 죄송합니다..!
공유
좌표에 osnap이 좌표가 끝점과 중앙에 밖에 잡히지 나습니다. 2차원에서 박스에 대각선 선을 그려놓고 중앙 미들포인트에서 원을 그리면됩니다, 3차원에서는 항상 기준선을 가지고 다녀야 합니다.
=작업내용=
명령: vpoint
현재 뷰 방향: VIEWDIR=0.0000,0.0000,1.0000
관측점 지정 또는 [회전(R)] <나침판과 삼각대 표시>: -1,-1,1
모형 재생성 중.
명령: pl
PLINE
시작점 지정:
현재의 선 폭은 0.0000임
다음점 지정 또는 [호(A)/반폭(H)/길이(L)/명령 취소(U)/폭(W)]: 50
다음점 지정 또는 [호(A)/닫기(C)/반폭(H)/길이(L)/명령 취소(U)/폭(W)]: 50
다음점 지정 또는 [호(A)/닫기(C)/반폭(H)/길이(L)/명령 취소(U)/폭(W)]: 50
다음점 지정 또는 [호(A)/닫기(C)/반폭(H)/길이(L)/명령 취소(U)/폭(W)]: c
명령: extrude
현재 와이어프레임 밀도: ISOLINES=4
돌출할 객체 선택: 1개를 찾음
돌출할 객체 선택:
돌출의 높이 지정 또는 [방향(D)/경로(P)/테이퍼 각도(T)]: 50
명령: z
ZOOM
윈도우 구석을 지정, 축척 비율 (nX 또는 nXP)을 입력, 또는
[전체(A)/중심(C)/동적(D)/범위(E)/이전(P)/축척(S)/윈도우(W)/객체(O)] <실시간>: w
첫 번째 구석을 지정: 반대 구석 지정:
명령: l
LINE 첫 번째 점 지정: mid
<-
다음 점 지정 또는 [명령 취소(U)]: mid
<-
다음 점 지정 또는 [명령 취소(U)]:
명령: c
CIRCLE 원에 대한 중심점 지정 또는 [3점(3P)/2점(2P)/Ttr – 접선 접선 반지름(T)]:
원의 반지름 지정 또는 [지름(D)]: d
원의 지름를 지정함: 30
명령: extrude
현재 와이어프레임 밀도: ISOLINES=4
돌출할 객체 선택: 1개를 찾음
돌출할 객체 선택:
돌출의 높이 지정 또는 [방향(D)/경로(P)/테이퍼 각도(T)] <-50.0000>: 100
명령: m
MOVE
객체 선택: 반대 구석 지정: 2개를 찾음
객체 선택:
기준점 지정 또는 [변위(D)] <변위>: 두 번째 점 지정 또는 <첫 번째 점을 변위로 사용>: @0,0,25
명령: *취소*

2. 뷰에서 정면도로 설정한 다음 선, 원 따위를 그릴때 평면도로 그려지는 문제.
==> 정면도는 이차원상태입니다. 그러니깐 당연히 평면도로 그려지죠.
그것은 문제가 아닙니다. 지극히 정상입니다.
질문자체가 문제이군요.
(혹.. 2D로 그린 객체를 일으켜 세울수도 있나요? 90도)
==> 이차원에서 안되고 삼차원으로 바꿔서 z축을 변경하면 rotate 세울수 있습니다.
3drotate도 있지만. ucs개념을 모르시면 힘듭니다.
더 헷깔리고
(defun c:test( / _Midpt _Bound-cp s1 s2)
(vl-load-com)
(defun _Midpt (p1 p2) (mapcar ‘(lambda (x) (* x 0.5)) (mapcar ‘+ p1 p2)))
(defun _Bound-cp (ob / minp maxp)
(vlax-method-applicable-p ob ‘getboundingbox)
(vla-getboundingbox ob ‘minp ‘maxp)
(apply ‘_Midpt (mapcar ‘vlax-safearray->list (list minp maxp)))
)
(and
(setq s1 (entsel “n움직일 객체 선택:”))
(setq s2 (entsel “n센터를 참조할 객체 선택:”))
(
(lambda (lst / cp)
(setq cp (mapcar ‘vlax-3d-point (mapcar ‘_Bound-cp lst)))
(vla-move (car lst) (car cp) (cadr cp))
)
(mapcar ‘vlax-ename->vla-object (mapcar ‘car (list s1 s2)))
)
)
(princ)
)
리습으로 간단히?? ^^
아 댓글확인과 감사하다는 말씀 드린다는게 너무너무 늦어졌습니다..
죄송하고 다시한번 알려주신 모든 분들께 너무 감사드립니다.