앞글에서 설명하려다 글이 너무 길어 질것같아서 추가로 이론적인 내용을 적어 봅니다.
Curve난 Surface의 연속성에 대해 설명해 보겠습니다.
만일 왼쪽에서 접근하는 Curve와 오른쪽에서 접근하는 Curve의 끝이 만난다면 두개의 Curve는 "C0 연속성을 가진다" 라고 표현합니다. CATIA에서는 Point 연속성이라고 하기도 합니다.
만난다는 정의에 대해서도 생각해 봐야 할 문제입니다. 우리가 머리속에서 상상할때는 왼쪽에서 접근하는 Curve ( 통칭 A Curve라고 합시다. ) 와 오른쪽에서 접근하는 Curve (통칭 B Curve라고 합시다. ) 가 서로의 끝점에서 만단다는것은 얼마든지 상상할 수 있습니다.
수학적으로도
1차원방정식등은 쉽게 만나게 할 수 있습니다. 하지만. 다차원방적으로 갈때 수학적으로 만나게 하려면 좀더 복잡한 계산을 거쳐야 합니다.
특히 컴퓨터로 연산을 할때는 (컴퓨터 메모리 자체가 명확한 값을 가지지 못하고 일정 소숫점이하를 넘어서면 숫자가 잘리게 되죠) 근사치로 판단할 수 밖에 없습니다.
CATIA V5내에서 A Curve와 B Curve가 끝점에서 서로 만난다는 것은 A Curve의 끝점과 B Curve의 끝점간의 Position 공차가 0.001mm 내에 있으면 "만났다" 라고 판단합니다.
추가로 만일 A Curve가 B Curve가 C0 연속성을 만족하고 A Curve의 끝점에서의 순간 접선과 B Curve의 끝점에서의 순간접선의 방정식이 일치하면 한 직선에 있다는 뜻이죠. 이 조건을 만족한는 상태를 "C1 연속성을 가진다" 라고 표현합니다.
이 역시 방정식이 똑같지 않더라도 만나는 접선간의 각도가 0.5도 이하이거나 및 179.5도 이상일 경우 CATIA가 만족했다고 판단합니다. 이를 통상 "Tangent 조건을 만족한다" 또는 "Tangent 연속성을 만족한다" 라고 합니다.
조금더 나아가서 A Curve와 B Curve가 C0조건과 C1조건만족할 때 만나는 양쪽점에서 각각의 순간 곡률 반경이 있습니다. 직선일 경우 순간 곡률반경은 무한대가 될 것입니다.
예를 들면 A Curve는 반지름이 100mm인 원호가 접근해 오구요. B Curve은 직선이고 C0조건과C1조건을 만족한다면 만나는 점에서 A,B Curve의 끝점에서의 곡률반경은 얼마인가요?
물론 100mm 와 무한대 이지요. 이를 곡률로 표시할 수 있습니다. 곡률은 곡률반경에 역수를 취한 것입니다. A curve측은 1/100 B Curve측은 0이 될것입니다.
여기서 만나는 점에서의 A Curve측의 순간곡률과 B Curve측의 순간 곡률값이 같다면 이를 우리는 "C2조건을 만족한다"라고 합니다. 통상적으로 "Curvature 조건을 만족한다" 라고 하기도 하지요.
더나아가 A Curve와 B Curve가 C0 C1 C2 조건을 모두 만족하고 있을때 A Curve의 곡률의 변화량과 B Curve의 곡률의 변화량이 일치할 때 이 조건을 C3조건을 만족한다라고 합니다.
곡률의 순간적 미분값이 같다는것을 의미합니다.
아래 그림에서 보는것은 C2조건을 만족한것을 Porcupine Curvature Analysis ( 빗살문니처럼 생긴것이 고슴도치 가시처럼 보인다고해서 붙인 이름입니다. 우리말로 고슴도치 분석법(?) 이라고 해석하면 되려나 ? ) 로 분석해보면 각 점에서의 곡률를 선으로 듬성듬성 표시했습니다.
아래쪽에 보이는 호가 진짜 Curve이고 위에 보이는 초록색선이 곡률을 이은 것입니다.
첫번째는 특정 R값과 다른 R값이 Tangent 조건이된는 Sketch를 분석한것입니다.
이를 아래쪽은 Smooth Curve에서 Curvature 조건을 만족하도록 변경을 한것입니다.
중간부분에 이어지긴 했는데 Curvature의 연속성이 2군데에서서 만족하지 목한 것이 보일 것입니다.
이처럼 Curve와 Curve가 만나는 조건을 C0 C1 C2 C3 조건으로 분류하듯이 Surface와 Surface의 관계록 확대해보면 (Surface와 Surface는 서로 만나는 경계 edge의 이쪽끝에서 저쪽끝까지 연속적으로 모두 만족해야 합니다. ( 예를들어 이것도 A,B Surface라 칭하겠습니다. A Surface의 만나는 Edge와 B Surface의 만나는 Edge 가 모두 가상의 0.001mm Tube 안에 들어와야 합니다. 이때 조건을 Point 연속성이라 합니다. ( 단면을 기준으로 칭하는 명칭이니 Point 란 용어에 헷갈리지 마세요) )
Surface는 C0 C1 C2 C3 대신 G0 G1 G2 G3라는 명칭을 사용합니다. CATIA의 기능 ( FreeStyle 워크벤치에서 특히 ) 을 사용하시다 보면 위와 같은 코드 명칭을 적어놓은 곳들이 있습니다.
여기서 0.001mm 를 시스템이 인정하는 공차값로써 identical Tolerance라고 하기도 합니다.
이 identical Tolerance가 CAD System 마다 다르므로 이종CAD의 Surface가 포함된 DATA를 주고 받으면 Error가 발생하기도 합니다. (옛날 CATIA V4시절에는 Model Dimension이라는 Setting값이 있었는데 Default로 사용하면 0.1 (mm) 였습니다. 지금으로 치면 격세지감이지요.)
참고로 UG는 0.01(mm)로 알고 있는데 맞는지 확신은 못하겠네요.
다른 CAD는 반드시 mm를 기본단위계로 사용하지 않는답니다. DATA를 시작할 때 단위계를 DATA에 부여합니다. 부여된 단위계에 따라 0.1 값이 mm 가 될수도 inch가 될수도 있습니다.
적다보니 Operation 기능은 설명하지 않고 이론적인 내용만 잔뜩 적어버렸네요..
조금만 더 설명드리조
Join Healing 툴바에 들어있는 마지막기능은 Disassemble기능 입니다.
이 기능은 여러개의 Edge로 이루어진 Curve나 여러개의 face로 이루어진 Surface를 깨뜨립니다.
전체 GSD 기능중에 이 기능만 유일하게 History를 유지하지 못합니다. ( Generative가 Generative답지않은 기능입니다.) 단위 Face나 Edge단위로 분리 또는 Domain 단위로 분리합니다.
=========================
See You Next Article
=========================
찰떡 같은 설명 감사합니다^^
답글삭제C0/C1/C2/C3 에서 이런 내용들이 있다니 공부하셨을 작성자님 대단하시네요.
답글삭제