Reverse Engineering (RapidForm)
실습 일정 및 프로그램 얻어낸 공간 위치 데이터를 RapidForm (Analysis software) 을 이용하여 3D 객체 생성 후 제출 시간 : 4/11 ( 수요일 ) 오후 6: 30, 오후 9:00 장소 : 기계공학과 2 층 컴퓨터실 RapidForm (Analysis software) INUS 에서 만든 3D Reverse Modeler Homepage : Point height datum 를 이용하여 3D 객체 생성 WorkBench 를 통해, 다양한 기능 제공
4/11 실습 전체 실습 과정 Convert data to height information (FreeScan) Get intensity data from object (IES-300M) Convert data to height information (FreeScan) Get intensity data from object (IES-300M) Convert data to height information (FreeScan) Get intensity data from object (IES-300M) 1.2 Convert data to height information (FreeScan) 1.1 Get intensity data from object (IES-300M) 4/4 실습 2. Merge Shells (RapidForm) 3. Export to STL file (RapidForm) Make triangular patches (RapidForm) Make triangular patches (RapidForm) Make triangular patches (RapidForm) 1.3 Make triangular patches (RapidForm) View 1 View 2 View 3 View 4 4/11 실습 : 4/4 일에 얻어낸 pts 파일을 RapidForm software 를 이용하여 면 데이터로 바꾼 후 여섯 개의 면 데이터를 이어 붙여 하나의 3D 객체를 만들어 낸다. 1. Generate Several Shells
3D Scanner Measuring Process 그림 1 : 실제 측정물 그림 2 그림 3
1. Make Triangular Patches (RapidForm) – (1) Make Triangular Patches 앞 과정을 통해서 우리는 물체의 3 차원 정보를 얻었다. 이 정보는 CCD 의 Pixel 들에 대응하는 점 (Point) Data 이다. 아래의 두 가지 이유로 앞 과정에서 얻은 3 차원 Point Data 를 3 차원 면 Data 로 표현하여야 한다. 우리가 원하는 3 차원 정보는 면 (Surface), 혹은 부피 (Volume) 정보이다. Point Data 만으로는 Data 의 효용성 등을 확인할 수 없어 Filtering 등의 Data 재가공 이 힘들다. 각 Shell 의 점 Data 들을 가공하여 3 차원 면 중에서 생성이 용이하고, 여러 근 사곡면 ( 베지어, NURBS) 들의 기본이 되는 삼각형 Patch 로 된 면을 생성한다. RapidForm 3D Reverse Modeler 점의 면으로의 변환, 면의 통합, 폐곡면의 입체로의 변환, 면의 두께주기 등의 여러 기능을 제공한다.
1. New 로 새로운 파일 생성 File 은 하나의 Project 를 의미한다. File 에서 여러 개의 shell 들을 불러올 수 있다. File 은 RapidForm 에서 사용하는 file 형태인 mdl 형태이다. 위는 프로그램의 초기 실행화면이다. 화면의 왼쪽에 Project/Layer 창이, 화면의 위쪽에 WorkBench 창이 있다. Main 화면에서 x, y, z 주축이 보 인다. Axis Project Workbench
2. Import 로 FreeScan 에서 저장한 ‘ pts ’ file 형태의 Data 불러오기. 여러 Shell 들을 한 File 에서 읽어올 수 있다. 읽어 들인 각각의 pts file 은 프로젝트의 하나의 Shell 형태로 삽입. 의 왼쪽 Project 창을 보면, Import 한 객체가 Shell 로 삽입되었음을 확인할 수 있다. 의 Viewer 부분에서 6 개의 Shell 이 겹쳐진 것을 확인할 수 있다. 그림 2 그림 1 : Shell 삽입 삽입된 Shell 들
그림 1 : Noise Data 제거 전 삽입된 Shell 들 중 하나의 Shell 선택 Mouse 오른쪽 버튼을 이용하면 점이나 모서 리, 면을 쉽게 선택할 수 있다. 회전이나 크기 변환 등도 가능하다. 여기에서는 점 (Vertex) 를 선택하여 제거한다. 그림 2 : Noise Data 제거 후 Polygon Workbench Noise Data 3. Noise Data 제거 이 단계에서는 눈에 띄는 불필요한 점을 제거 정밀한 Noise 제거는 Program 의 Filtering 을 통하여 가능 Polygon Workbench 에서 작업
4. 각각의 Shell 을 삼각형 Patch 의 합으로 만든다. 에서 Option 을 설정하고 OK 버튼을 누르면 삼각형 Patch 가 생성된다. 은 삼각형 Patch 를 이용해 면 Data 를 만든 후, 면의 Normal Vector 의 방향을 설정하는 부분이다. 면이 보일 경우 Yes, 면이 보이지 않거나 왜곡된 경우 No 를 선택 Triangulate 과정은 Scan Workbench 에서 작업 그림 1 : Triangulate Menu 선택 그림 2 : Triangulate Option 설정 면이 보이므로 현재 Normal Vector 의 방향이 맞다. 그림 3 : 면의 Normal Vector 설정 Option 설정 창 메뉴 선택
2. Merge Shells (RapidForm) Merge Shells 1 단계에서 우리는 삼각형 Patch 로 이루어진 면을 생성하였다. 본 3D Scanner 에서 사용한 RapidForm 은 기능 한정판으로 NURBS 곡면 등 을 지원하지 않지만, RapidForm 에서는 위의 삼각형 Patch 로 이루어진 면을 이용하여 부드러운 곡면의 생성이 가능하다. 면 (Surface) 의 생성이 목적이라면, 이 단계에서 작업이 완료된다. 하지만 면이 아닌 입체 (Volume) 의 생성이 목적인 경우에는 1 단계에서 생성 한 면 Data 들을 여러 개 모아 통합하여 하나의 닫힌 곡면을 만들고, 이를 다 시 입체로 만들어야 한다. 면을 통합하여 더 큰 면을 만들거나, 닫힌 곡면의 생성을 목적으로 면을 통합 하는 경우를 여기에서는 Merge Shells 단계로 표현하였다. ‘ Merge Shells ’ 단계는 다음의 세부 단계를 거친다. 먼저 두 개의 면에서 각각 공통된 3 개의 Reference Point 를 찾아 면을 대강 겹친다. 여러 개의 공통점들을 찾아서 면을 정밀하게 겹친다. 겹친 면을 통합한다. 통합 시에 꼬인 면들을 제거 혹은 수정한다. 필요한 여러 가지 Filtering 을 통해 면을 일반화한다.
1. 3 개의 Reference Point 를 지정하여 면을 대강 겹친다. Scanworkbench 에서 작업 과 같이 메뉴를 선택하면 원하는 점을 선택할 수 있다. 선택한 점은 와 같이 Viewer 창에 나타나고, 왼쪽 Project 창에도 나타난다. 1.1 Reference Point 의 선택. 메뉴 선택 화면에 Ref. Point 표시 Project 창에 Ref. Point 표시 그림 1 그림 2 : Ref. Point 의 선택
1.2 Shell 의 겹침 Ref. Point 의 지정이 끝났다면, 와 같이 메뉴를 선택한다. 겹칠 Shell 을 지정하라는 메시지가 아래 메시지 창에 표시된다. Shell 선택은 메뉴, Project 창, 화면의 클릭을 통해서 가능하다. 겹칠 두 개의 Shell 을 선택한다. Shell 선택을 완료하면, Ref. Point 를 선택하라는 메시지가 표시된다. 1.1 의 단계에서 왼쪽의 Project 창에서 표시된 Ref. Point 들을 선택해 주면 된다. 중요한 것은, 일치되어야 할 두 점을 한 쌍으로 세 쌍을 순서대로 클릭해 주어야 한다는 것이 다. 앞에서 겹칠 Shell 을 선택할 때, 먼저 선택된 Shell 의 점을 먼저 선택하여야 한다. 메뉴 선택 그림 1 그림 2 : 겹쳐진 Shell
2. 여러 개의 공통점들을 지정하여 겹쳐진 2 개의 Shell 을 더 정밀하게 겹친다. Scanworkbench 에서 ‘ 겹치다 ’ 는 2 개의 Shell 의 Data 는 각각 독립인 채, 화면 상으 로만 겹쳐진 상태를 의미한다. ‘ 통합 ’ 은 Shell 의 Data 가 하나로 통합된 형태를 말 한다. 과 같이 선택한 후, 와 같이 마우스로 원하는 수 만큼의 공통점 (Optimization Point) 들을 선택한다. 이 때는 1.2 단계와 같이 선택할 필요 없이, 2 개의 Shell 에 해당되는 점들을 한 쌍으로 화면에서 클릭해 주면 된다. 공통점의 선택이 끝나면, 마우스 오른쪽 버튼을 눌러 Done 을 선택한다. Done 을 선택하면, 그림 3 과 같이 결과가 만족할 만한지를 평가해 준다. 평가결과가 좋지 않을 경우는 2. 의 정밀하게 겹치는 단계를 다시 수행한다. 그림 1 그림 2 그림 3 메뉴 선택 빨간색, 파란색 점들이 공통점을 나타낸다. 색깔은 점이 속한 Shell 을 구분한다. Optimization 결과평가
3. 겹쳐진 2 개의 Shell 을 하나의 Shell 로 통합한다. ‘ 겹치는 과정 ’ 과 다른 점은, Merge 전에는 겹쳐진 부분의 Data 가 2 개의 Shell 에 모 두 존재하고 관리되었지만, Merge 후에는 그 공통부분의 Data 가 통합되어 관리 된다. 면의 통합이 목적이라면 이 단계가 완성 단계이다. 입체 즉, 부피의 생성이 목적이라면, 1, 2, 3 의 과정을 Shell 들에 반복하여 적용하 여 모든 Shell 들을 통합하는 과정이 필요하다. 는 모든 Shell 의 통합과정 이 완료된 상태이다. Scanworkbench 에서 작업 그림 1 그림 2 : 모든 Shell 의 통합 완료상태 메뉴 선택 하나의 Shell
4. 통합 시에 생성된 꼬인 면 혹은 불필요한 면들을 제거 혹은 수정한다. Show boundary 를 통해, boundary 가 겹치거나 꼬인 부분 또는 다른 면들과 떨어 진 부분을 확인하여 제거한다. 겹치거나 꼬인 Data 가 제거되지 않은 경우, 구멍 채우기나 Noise 제거 등의 재가공 이 어려워진다. 따라서 이 과정은 주의를 기울여야 한다. 면의 Normal Vector 방향이 반대 방향인 면이 존재할 수 있다. 반대쪽에서도 다시 면을 살펴보아, Normal Vector 가 틀린 면은 Normal Vector 의 방향을 바꾸어 준다. 그림 1 그림 2 : 꼬이거나 불필요한 Data 의 제거 메뉴 선택 입체에 붉은 색으로 표시된 부분이 Boundary 이다. 꼬인 면, 불필요한 면들을 확인할 수 있다. 꼬인 면 선택
5. 필요한 여러 가지 Filtering 을 통해 면을 일반화한다. 구멍 채우기는 입체 생성시 중요한 작업이다. Filtering 이라고 표현하기에는 무리가 있지만, 후 작업 중 의 하나이므로 이 단계에 포함시켰다. 구멍 채우기는 Fill holes of the shell 을 과 같이 선택하여 수행된다. Boundary 가 매끄럽고, 간 격이 촘촘할 경우에만 구멍이 채워지므로, 구멍이 잘 채워지지 않는 경우 4 단계를 반복하는 것이 좋 다. 꼬인 부분 등의 제거 후에도 구멍이 채워지지 않으면, 와 같이 수작업으로 Add Face 메뉴를 통해 면을 생성한다. 수작업 시 삼각형의 Patch 로 면을 생성하게 점의 지정순서가 시계방향인가, 반시계방향인가에 따라 Normal vector 가 바뀌게 되므로 유의하자. Data 의 개수가 적거나, 많은 경우 Filtering 을 통해 Data 의 개수를 조절할 수 있다. Smooth 메뉴를 통해 전체적으로 부드러운 형상이 생성가능하며, 면 Noise 도 제거 가능하다. Polygonworkbench 에서 작업 그림 1 : 구멍 채우기 그림 2 : 수작업으로 구멍 채우기 여러 구멍들 메뉴 선택
Example of ‘ Merge Shells’ 그림 1 : 하나의 입체를 6 번 (60 도 씩 ) 나누어 회전시키며 촬영한 결과이다. 그림 2 : 4 개의 Shell 을 통합한 후, 5 번째 Shell 을 겹치는 과정이다. 그림 3 : ‘ Merge Shells ’ 단계 완료 후
Exporting to STL Files 지금까지는 RapidForm 에서 지원하는 ‘ mdl ’ 형태의 file 로 작업하였다. ‘ mdl ’ 형태는 다른 CAD 나 CAM Program 에서 일반적으로 지원하지 않는다. 따라서 일반적으로 사용되는 ‘ stl ’ 형태의 파일로 Export 가 필 요하다. 컴퓨터실에 비치된 3D Printer 에서도 ‘ stl ’ 형태의 파일을 지원한다. RapidForm 에서 쉽게 STL File 로 변환할 수 있다. 사용자의 설정에 따라 속이 꽉찬 부피나 면에서 어느정도의 두께를 가지는 입체 등으로 표현할 수 있다. 3. Export to STL Files (RapidForm)
작업이 끝난 입체를 stl file 형태로 Export 한다. Binary 형태와, 아스키 형태의 stl file 로 Export 가 가능하다. ‘ stl ’ 형태는 3D Printer 등에서 출력이 가능하고, 타 CAD/CAM 프로그램에서 도 이용 가능하다.
Example of ‘Export to STL files’ 그림 1 : 속이 꽉 찬 부피 그림 1 : 일정한 두께의 속이 빈 입체