본문 바로가기
MATLAB 코딩/STL파일 다루기

[Matlab으로 STL파일 다루기] 7. 간단한 STL 직접 만들어보기

by bigpicture 2019. 11. 6.
반응형

이번에는 간단한 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')
반응형

댓글