336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

  오늘은 카티아 기초 9번째 포스팅입니다. 이번에는 스케치에서 다루지 못했던 스플라인을 이용한 곡선 그리기 입니다.


  우선 어떤 형상을 그려볼지 간단히 다음 그림 보시겠습니다. 스플라인으로 위, 아래가 그려지고 양쪽에는 원호가 부드럽게 이어지는 형상입니다. 부드럽게 이어진다는 것은 접선 방향으로 선이 연결된다는 것입니다. 


  그럼 이런 요상한 곡선 그림을 이제부터 그려보도록 하겠습니다.


  우선 스케치를 그릴 수 있도록 면을 잡고 스케치에 들어갑니다.


  스케치 안의 도구중에 '프로파일' -> '스플라인' 이 있습니다. 이 아이콘을 클릭합니다.


  혹시 곡선을 정의하는 것 중에 Bezier Curver (베지어 커브) 는 들어보셨나요? 베지어 커브보다는 좀 어려운듯 한데 Catmull-Rom spline 이라는 것도 있습니다. 수학적이긴 한데 어찌 됬건 카티아에서 사용하는 스플라인은 Catmull-Rom spline 과 비슷하게 내가 찍은 점을 부드럽게 지나가는 곡선을 그려줍니다. 반대로 포토샵에서 보았던 펜툴 기능은 베지어 커브와 비슷하게 접선을 정해주는 방법이라고 보시면 됩니다.


  다음과 같이 스플라인 아이콘이 활성화된 상태에서 한점을 찍습니다.


  두번째 점 찍습니다. 아직까진 직선이네요.

  

  세번째 점 찍습니다. 그러면 아래와 같이 세점을 부드럽게 잇는 곡선을 보실 수 있습니다. 여기서 계속 점을 찍으면 계속 곡선이 생기구요. 원하는 점까지 찍은 이후에는 ESC 를 눌러서 빠져 나오면 됩니다.

  

  세점만 찍고 ESC 눌러서 빠져나오겠습니다. 점이 많을 수록 자유도가 높아지므로 그릴 수 있는 형상이 복잡해 지지만 저렇게 세점만 찍으면 원호 같은 형태로 그려집니다.


  아래쪽에 한개 더 그렸습니다.


  양쪽 끝은 원호를 그리고 지금 그린 위아래 커브와 부드럽게 이어지는 형상을 그릴려고 합니다.

  아래와 같이 '프로파일' -> '원' 을 클릭합니다.


  왼쪽 언저리 아무데나 원의 중심점을 찍고 적당한 크기로 원을 그립니다.


  오른쪽도 마찬가지로 원을 그립니다. 한가지 팁을 드리자면 이전에 설명을 한번도 안한 것 같은데 같은 기능을 반복적으로 사용할 경우에는 원하는 기능의 아이콘을 더블클릭하면 ESC를 누르기 전까지 반복적으로 사용가능합니다. 아래와 같이 원을 반복적으로 그리는 것처럼 할때 유용합니다.


  x축 위에 두 원의 중심이 오도록 '일치' 제약조건을 주었습니다. 실은 이것은 원을 그릴 때 x축과 스냅해서 처음부터 그리는 것이 빠릅니다. 제약조건 설명을 위함입니다.


  그리고 중심으로부터 거리도 아래와 같이 제약조건을 줍니다.

  

  양쪽다 500 씩 떨어진 거리에 원을 그렸습니다.

  

  원에 지름 제약 조건도 줘볼까요? 아래와 같이 순서대로 원을 클릭하고 제약조건 클릭해서 치수를 표시해 줍니다.


  원의 크기는 150, 100으로 제약조건을 주었습니다. 구속이 완료된 초록색 선으로 변경되었네요.


  이번에는 '대화상자에 정의된 제약조건' 중에서 사용해 보지 않았던 '접점' 조건에 대해서 알아보겠습니다. 접선은 원호 위에 부드럽게 이어지는 선을 표현해줄 때 사용하죠? 우선 점을 찍고 드래그 해서 원 바깥으로 밀어 두었습니다. 접선의 조건이 원 위에서는 두가지 경우가 생길 수 있기 때문에 카티아가 애매모호하게 판단할 경우가 있어 아래와 같이 이동을 해두었습니다.

  

  원을 먼저 클릭하고 ctrl 누르고 곡선을 클릭하고 마지막으로 대화상자에 정의된 제약조건을 클릭합니다.


  다음과 같이 제약조건 정의 창이 뜨면 여기서 접점을 누릅니다. 누르는 순간 아래 그림처럼 아직 구속 조건이 완료되지 않은 곡선이 이동하면서 접점이 생기고 접점을 표시해 주는 표시가 생성됩니다.


  네 군데 모두 접점 기능으로 제약조건을 걸었습니다.


  자르기 (trim) 기능으로 원하는 선만 남길수 있도록 합니다. trim 기능은 예전에 한번 살펴보았는데 복습이네요.


  자르기는 내가 남기고자 하는 부분만 살리는 것이기 때문에 아래와 같이 원호가 될 바깥 부분을 클릭합니다.


  그리고 아래쪽 선분에서 가운데 남을 부분을 클릭합니다.


  그러면 아래와 같이 왼쪽 아래 부분이 부드럽게 이어지는 형상이 완성되네요.

  

  네 지점 모두 자르기로 잘라서 아래와 같이 형상을 만들었습니다. 원호을 만드는 자르기 기능은 잘 안될 수도 있습니다. 클릭하는 위치에 따라서 없어져야 할 반대쪽 원호를 만들기도 하고, 90도 또는 180도 근처에서 자동으로 잘리기도 합니다. 그래도 걱정하지 마시고 잘려 있더라도 자르기 기능에서는 원호의 길이를 늘릴 수도 있으니 연습을 해보셔야 합니다. 


  아직 곡선의 위치가 정의가 되어 있지 않네요. 아래와 같이 제약조건을 클릭해서 곡선을 이루는 점들의 위치에 제약조건을 걸어주면 됩니다.


  아래는 1번 점의 위치에 제약 조건을 걸어주었습니다. 곡선이 원호에서 짤려있더라도 원호를 이루는 기본 조건인 세점의 표시는 아래처럼 보입니다. 아직 구속 조건이 완료가 되지 않은 상태에서는 이 점들을 드래그해서 이동해 보시면 형상이 어떻게 변하는지 확인하 실 수 있습니다. 하지만 점이 곡선당 세개 밖에 없어서 원호와 부드럽게 이어져야 한다는 제약조건 때문에 일정 범위 이상 움직이면 더 이상 곡선의 형태가 변형되지는 않을 것입니다. 곡선을 구성하는 점을 늘리려면 곡선을 더블클릭해보세요. 이부분은 이번 포스팅에서는 생략하도록 할게요.


  아래는 점을 잡고 드래그 해서 이동해 보는 모습 중에 한 장면입니다.


  점들까지 제약조건을 모두 주면 아래와 같이 변형 불가능한 곡선이 완성됩니다. 

  아주 요상한 형태의 곡선을 만들었는데, 곡선이라는 것의 정의는 아직도 저한테는 어려운 부분입니다. 위와 똑같은 복사본의 형상을 오토캐드 2차원으로 그리라고 한다면 그릴 수 있을런지 의문이네요. 원호일 경우에는 반지름과 원의 중심점을 알려주면 된다고 하지만, 만약 여러개의 점으로 이루어진 스플라인이 그려져 있다면 오토캐드에서 똑같이 그려지는지 갑자기 저도 궁금하네요. 만약 Bezier 커브나 Catmull-Rom 스플라인과 같이 이론적으로 똑같은 곡선 공식을 사용한다면 같은 형상이 그려지겠지만요. 아직 저도 잘 모르겠습니다.


  그럼 2차원에서 곡선을 그리는 포스팅을 마치도록 하겠습니다.

  개발자 분들 많은 연습해보시고 화이팅하세요!

Posted by smileast