GSD의 Operation 툴바의 기능은 Wireframe이나 Surface를 새롭게 생성하는 게 아니라 기존에 생성된 Wireframe이나 Surface 를 자르기 붙이기 등 모든 편집기능을 수행하는 작업 도구 입니다.
여기에는 형상복제의 기능들도 같이 들어 있습니다.
이 역시 부모/자식 관계를 가지고 동작합니다.
그리고 사용자들이 주로 혼동하기 쉬운데 편집기능은 논리적인 부분만 맞으면 1차원요소든 2차원요소든 목적물로서 다 사용이 가능합니다.
예를 들어 SPLIT 기능은 Wireframe을 자를수도 Surface를 자를 수도 있고 결과물은 Split이라는 요소로 나타난다는 말입니다.
자 그럼 각각의 기능들에 대해 구체적 설명에 들어가겠습니다.
제일 먼저 Operation 내에 Join_Healing 툴바 입니다.
여기에는 1차원요소들이나 2차원요소들을 붙이고 원래형상대로 합치고 하는
기능들이 들어 있습니다만.좀 복합적이라 개별기능별로 설명드려야 할것 같네요.
Join 기능입니다.
Join 기능은 2차원요소는 2차원요소끼리 1차원요소는 1차원요소끼리 합치는 기능을 제공합니다. 그렇다고 한꺼번에 선택하면 각각 알아서 만들어 주진 않습니다.
처음선택한 요소가 1차원요소이면 1차원요소들만 2차원요소이면 2차원요소들만 선택됩니다.
Join 기능을 실행하면 기본적으로 Check connexity 옵션이 자동으로 켜져 있습니다.
이건 연결하려는 요소들이 서로 붙어 있는지를 확인 하는 옵션입니다.
예를 들어 다음과 같은 그림이 있습니다.
Line.1 과 Line.2를 Join 하려면 할 수 있을 까요 우리눈에 띄게 공간상에 떨어져 있습니다.
Check connexity 를 켜두면 Error가 발생합니다. 연결이 되어 있지 않으니까요
하지만 Check connexity 를 꺼두면 아무런 제약없이 Join됩니다.
결과물은 한개의 Join 요소가 됩니다. 이 Join요소는 논리적으로 1개의 요소가 됩니다.
우리는 이런 요소를 Multi Domain 요소라고 부릅니다. 한개의 요소에 2개의 Domain이 존재하는 것입니다. 때로는 3개의 Domain이나 4개의 Domain으로 나누어진 요소가 만들어 지기도 합니다.
제가 CATIA를 공부하면서 왜? 이런 철학으로 만들었을까를 고민을 했는데 이 방식에 대한 이해를 하기 까지 5년 정도 걸렸습니다. ( Template과 Programming을 공부하면서 이해를 하게 된것이죠.) 설명해 달라고 해도 한마디로 설명을 못해드립니다. 이건 본인이 느껴야 하는 부분입니다.
check manifold는 요소들이 겹쳐져 있는지를 검사하는 옵션이고 Check tangency는 만나는 부분의 요소들끼리 접하는지를 체크하는옵션입니다.
나머지 것들은 또다른 이론적 지식을 요구하므로 이만 SKIP합니다.
Healing은 여러개의 2차원요소들을 연결할 때 아주미세한 틈을 메우거나 Tangent 조건을 유지하면서 Join 해주는 기능입니다. 단 틈을 메우거나 Tangent 각도를 유치하기위하여 Surface의 수학적 방정식이 약간 변형됩니다.
Healing은 2차원요소만 목적물로 사용하기 때문에 Curve에는 사용할 수 없습니다.
Continuity 옵션을 Point로선택 하면 GAP만 매꾸어주고 tangent로 설정하면 Tangent 조건까지 맞추어 줍니다. Merging distance는 실제 떨어져 있는 양을 사용자가 지정합니다. Merging distance보다 큰 GAP은 사용자가 일부러 벌려놓았다는 의미를 가지므로 Merge하지 않습니다.
Tangent angle도 사용자가 지정한 값도다 크면 일부러 꺽어 놓았다르는 의미를 내포하므로 작동하지 않습니다.
Distance object와 Tangent object는 사용자가 변경을 가능하지만 0.001mm 이하가 되지 않으면 CATIA system이 두요소가 붙어있다고 인정하지 않으며 0.5도 이하가 아니면 tangent하지 않다고 여겨버리므로 그대로 두세요.
Curve Smooth 기능은 1차원요소의 틈 Tangent조건 Curvature 조건들을 바꿔주는 기능을 합니다. HEALING은 주로 다수의 Surface간에 적용이 되지만 Curve Smooth는 1개의 Curve의 성질을 바꾸어 줍니다.
Curve Smooth는 기존의 Curve의 Vertex부위의 연결성을 변경합니다
목표치는 연결,tagent,Curvature연속성을 목표로 합니다.
이론은 나중에 설명하겠습니다.
Untrim 기능은 원형 Surface를 복구시켜주는 기능을 담당합니다. 이에대한 내용은 약간의 수학적 이론 설명을 필요로 합니다.
원래 3차원 공간에서 Curve는 어떤 인수 u의 수학적 함수 형식으로 나타납니다.
예를 들어 x = f(u) , y = g(u) , z = h(u) 의 함수형태로 나타납니다.
여기서 특정 u 값을 넣으면 점이 되고 이 u 값을 0부터 1 까지를 연속적으로 값을 넣으면
생성되는 Point를을 연결 하면 자유공간상의 Curve가 됩니다.
이걸 곡면으로 확장하려면 인자가 하나더 있어야 겠죠. 추가적인 인자를 v라고 합시다.
이제 x = f(u,v) , y = g(u,v) , z = h(u,v) 로 표현됩니다. 여기서도 각각의 u 값과 v값을 고정하면 Point로 나타납니다.
이걸 u값을 0 에서 1 까지 v값도 0 에서 1까지 연속적으로 넣어서 Point들을 연결하면 2차원 곡면이 됩니다. CAD에서 자유곡면 Surface를 이렇게 표현하지요.
이걸 그림으로 표현하면 2가지 형태로 로 표현됩니다.
우측그림은 V값이 1일 때 u인자 값을 변경하더라고 방정식의 값이 변경하지 않는 경우에 해당합니다.
사실 기본적으로는 원통형 , 원뿔형 ,평면, 구형, 도넛형 등은 기본방정식을 일반적으로 알고있고 그 방정식을 CAD상에 그래픽으로 표현하면 됩니다. 이러한 Surface를 Canonical Surface라고도 합니다.
하지만 자유곡면 Surface는 최소한 CATIA에서는 상기방식으로 Surface를 형성합니다.
여기에 들어가는 함수의 인자 u 나 v의 차수가 높아지면 해당곡면의 차수가 높아지고 비교적 울퉁불퉁한 자유도가 높아집니다만 미관적인 입장에서의 컨트롤이 힘들어 지죠.
CATIA V4시절에는 상기와 같이 생긴 Surface만이 Surface라고 칭했습니다.
아래와 같이 면에 Curve를 프로젝트 시킨후 그 Surface로 자르게 된 나머지를 V4에서는 Face라고 불렀습니다. ( 우측의 원형으로 잘린 형태를 말합니다.)
사실 CATIA V4에서는 모델링의 최종 DATA가 Face가 아니고 Surface인 경우는 거의 없었습니다. ( 방정식의 원형 Surface가 실제 제품의 외곽면중 일부를 전부 덮는경우가 거의 드물다는 말이죠 어디서든 잘려서 필요한 부분만 사용하게 되죠)
하지만 CATIA V5에서는 그 명칭의 개념을 변경하여 잘린놈도 Surface 안잘린 놈도 Surface입니다. Face란 용어는 다른 의미를 가지고 있습니다. 이전 글에서도 설명드렸듯이 Surface가 가지고 있는 내부요소를 의미합니다.
만일 연속된 Surface 3개를 Join 기능으로 붙였다고 가정하면
이 전체가 한개의 Surface가 되고 붙인 1개씩의 원본 Surface는 Surface의 segment단위가 되면서 각Segment에 해당하는 면이 Face가 됩니다. 각segment 단위는 각각 별도의 방정식을 가진 요소가 됩니다. ( 필자가 점선으로 표현해 놓은 것은 u 나 v값이 0.5값을 가지는 선을 표현해 놓은 것입니다. )
그리고 이 방정식의 원형 Surface에서는 u값이 나 V값이 일정한 Curve를 생성할 수 있습니다.
이 Curve를 isoparametric Curve라고 하며 (하기그림에서 빨간선 ) 제가 이전글에서 설명을 빼 먹었죠 Isoparametric Curve를 만드는 기능의 ICON이 있었습니다. .
Untrim 기능은 Multi segment 단위의 요소에서는 작용하지 않습니다.
단일 Segment 단위의 Surface에서 이 Original Surface의 최소 크기를 생성해 줍니다.
(단 CATIA V4에서 잘려진 조각을 untrim 하면 원래크기의 Original Surface를 만들어줍니다.)
=======================
See You Next Article
=======================
항상 도움 많이 받고 있습니다^^
답글삭제질문이 있습니다. JOIN 기능중에서 Check manifold 기능이 요소들이 겹쳐져 있는지 알려주는 기능이라고 알려주셨는데, 에러메시지를 보고 요소들이 겹쳐져 있는 manifold 로 인한 문제인지, connexityd인지 구분이 안되는거 같습니다. 이건 데이터를 상세히 보고 작업자가 판단해야 되는건가요?
답글삭제Check manifold를 켜고 실행 안 켜고 실행하면 겹친 부분이 어디인지 확인 가능할 텐데요.
삭제