반응형
이번에는 간단한 stl을 직접 만들어봅시다. 아래와 같은 정육면체를 만들어볼겁니다.
먼저 점들을 정의합시다. 아래와 같은 이름으로 정의할겁니다.
8개의 점을 정의한 코드는 매트랩 코드는 아래와 같습니다.
a1=[1 0 0];
a2=[1 1 0];
a3=[0 1 0];
a4=[0 0 0];
a5=[1 0 1];
a6=[1 1 1];
a7=[0 1 1];
a8=[0 0 1];
이 점들을 이용하여 vertices를 만듭시다. 위에서 부터 3개씩 연결하여 하나의 face를 만들 것입니다. 알아보기 쉽도록 아래와 같이 쓰겠습니다.
mystl.vertices=[
%아랫면
a1;a2;a3;
a1;a3;a4;
%윗면
a5;a6;a7;
a5;a7;a8
%앞면
a1;a2;a5;
a5;a2;a6;
%뒷면
a4;a3;a7;
a4;a7;a8;
%좌측면
a1;a5;a4;
a5;a4;a8;
%우측면
a2;a3;a6;
a6;a3;a7;
];
face를 정의합시다. 각 행에는 3개의 값이 들어갑니다. 이 값은 위에서 정의한 mystl.vertices의 행을 의미합니다.
mystl.faces=[1 2 3;
4 5 6;
7 8 9;
10 11 12;
13 14 15;
16 17 18;
19 20 21;
22 23 24;
25 26 27;
28 29 30;
31 32 33;
34 35 36;
];
patch함수를 이용하여 3차원 그래프를 그려봅시다.
patch('Faces',mystl.faces,...
'Vertices',mystl.vertices,...
'FaceColor',[0.2 0.5 0.7]);
view(-45,45);
그래프를 그린 결과는 아래와 같습니다.
stl을 저장합시다. stlwrite라는 함수를 다운받아 사용합니다.
stlwrite('mystl.stl',mystl,'mode','ascii')
반응형
'MATLAB 코딩 > STL파일 다루기' 카테고리의 다른 글
[Matlab으로 STL파일 다루기] 9. 평면으로 STL 자른 단면 만들기 (2) 두 점과 평면의 교점을 구하는 함수 (0) | 2019.12.06 |
---|---|
[Matlab으로 STL파일 다루기] 8. 평면으로 STL 자른 단면 만들기 (1) 예제 설명 (0) | 2019.12.06 |
[Matlab으로 STL파일 다루기] 6. STL 의 구조 (0) | 2019.11.04 |
[Matlab으로 STL파일 다루기] 5. Remesh (refine mesh) , 화면분할 그래프 (2) | 2018.11.21 |
[Matlab으로 STL파일 다루기] 4. View 변경 (0) | 2018.11.17 |
댓글