[ParaView] 3D 폴리곤 상의 매끄럽게 연결된 면만 추출
0. 소개
이번에는 ParaView를 사용하여 다음과 같이 다각형에서 매끄럽게 연결된 영역만 추출한다는 것을 해보겠습니다.
1. 필터 파이프라인
ParaView
[Filter] -> [Alphabetical]
에서 다음 순서로 다각형을 필터링합니다.2. GenerateSurfaceNormals로 다각형의 표면 분할
GenerateSurfaceNormals
는 VTK의 vtkPolyDataNormals이라는 필터와 동일한 기능을 가지고 있습니다.이 필터는 기본적으로 폴리곤의 노드/요소에 법선 벡터를 정의한다는 것입니다만, 내장 플래그를 ON 하는 것으로 여러가지 할 수 있습니다.
내장 플래그는 다음과 같습니다.
내장 플래그
기능
Splitting
Feature Angle
에서 설정한 각도(인접하는 요소들 사이의 이루는 각도)로 연결된 영역과 그렇지 않은 영역을 구별하여 분할한다.Consistency
법선의 방향을 정돈한다. 아베코베에 법선이 정의되어 있을 때 등에 이용할 수 있다.
Filp Normals
모든 법선의 방향을 반전시킵니다.
Non-Manifold Traversal
Non-ManifoldEdges (3 개 이상의 요소의 가장자리가 겹칠 때 가능한 선분)를 처리 대상에 포함합니다.
Compute Cell Normals
요소의 법선 벡터를 찾습니다.
Piece Invariant
사용하는 프로세서의 수에 관계없이 동일한 결과를 얻는다.
이번에는 위의 플래그는 디폴트 +
Conpute Cell Normals
를 ON 으로 하고 Feature Angle
를 설정한 후 [Apply]
를 선택합니다.3. Connectivity로 분할된 각 면에 ID를 부여
Connectivity
는 VTK의 vtkConnectivityFilter이라는 필터와 동일한 기능을 가지고 있습니다.이 필터는 중복 노드가 있는 점을 경계로 하여 영역을 구별하여 [요구조사], 영역마다 노드/요소 단위로
RegionId
(정수)를 흔들어줍니다.4. Threshold에서 특정 ID가 있는 다각형만 추출
Threshold
는 VTK의 vtkThreshold이라는 필터와 동일한 기능을 가지고 있습니다.이 필터를 사용하면 설정된 범위의 수치가 있는 노드/요소만 추출할 수 있습니다. 이번에는 모델의
K
면을 추출해 보겠습니다.먼저 뷰어 상단의
[Select Cells On (s)]
를 선택합니다.그런 다음 모델에서 추출하려는 부분의 일부를 드래그하면 아래 그림과 같이 요소를 선택할 수 있으므로,
그 상태에서
[Find data matching various criteria from the current source (v)]
를 선택합니다.그러면
Connectivity
에서 부여한 RegionId
를 알 수 있습니다.이 값을
Threshold
의 [Minimum]
와 [Maximum]
에 입력하고 [Apply]
를 선택하면 다음과 같이 K
의 면만 추출할 수 있습니다.5. 다른 다각형에서도 시도
곡률이 큰 면이 많은 모델에서도 제대로 특정 면을 추출할 수 있습니다.
6. 결론
3D 폴리곤상의 매끄럽게 연결된 면만을 추출한다는 처리를 ParaView만으로 해 보았습니다.
ParaView의 필터는 기본적으로 VTK로 구현되어 있으므로 VTK 라이브러리를 사용하여 C++나 Python 등에서도 같은 처리를 기술할 수 있습니다.
또, 이번 일련의 작업은 ParaView상에서
[Tools] -> [Start Trace / Stop Trace]
를 이용하면, Python 스크립트로 할 수 있으므로, Python에서 같은 일을 하고 싶은 분은 그쪽을 이용해 주세요.그 중 이번 방법으로 만든 부분표면 데이터와 이전 기사 에서 소개한 솔버간의 연계에 관해서도 쓸 수 있다고 생각합니다.
참고문헌
Reference
이 문제에 관하여([ParaView] 3D 폴리곤 상의 매끄럽게 연결된 면만 추출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/torisan_piyopiyo/items/fc18aaa0596bd202b9f7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)