본문 바로가기
STL/numpy stl 모듈

파이썬에서 stl 파일 다루는 패키지 소개(numpy-stl)

by 만다린망고 2021. 10. 22.
반응형

STL 파일은 삼각 매쉬형태로 된 3차원 파일입니다. 

 

파이썬에서 STL 파일을 다룰 때는 stl 패키지를 사용합니다. stl 패키지는 numyp 에 의존합니다. array를 사용한다는 말입니다. 아래와 같이 설치합니다. 

 

pip install numpy-stl

stl 패키지 안에는 아래와 같은 다섯개의 모듈이 있습니다. 

stl.Mesh
stl.main
stl.base
stl.mesh
stl.stl

stl 파일을 다룰 때는 mesh 모듈을 사용하며 아래와 같이 불러서 사용합니다. 

import numpy as np
from stl import mesh

cat.stl 이라는 파일을 갖고 있다고 합시다. stl을 불러오는 방법은 아래와 같습니다. 

ctl = mesh.Mesh.from_file('cat.stl')

이제 사용할 수 있는 메소드들을 알아봅시다. dir(ctl)이라고 입력합니다. 또는 dir(mesh.Mesh)라고 입력해도 됩니다. 결과 중 메소드만 추리면 아래와 같습니다. 

['areas', 'attr', 'check', 'data', 'debug', 'dtype', 'error', 'exception', 'from_file', 'from_files', 'from_multi_file', 'get', 'get_header', 'get_mass_properties', 'get_mass_properties_with_density', 'get_unit_normals', 'info', 'is_closed', 'items', 'keys', 'load', 'log', 'logger', 'max_', 'min_', 'name', 'normals', 'points', 'remove_duplicate_polygons', 'remove_empty_areas', 'rotate', 'rotate_using_matrix', 'rotation_matrix', 'save', 'speedups', 'transform', 'translate', 'units', 'update_areas', 'update_max', 'update_min', 'update_normals', 'update_units', 'v0', 'v1', 'v2', 'values', 'vectors', 'warning', 'x', 'y', 'z']. 

중요한 메소드만 설명을 달겠습니다. 

areas : 면적
data : 데이터 확인
from_file : 파일에서 가져오기
max_ : 최댓값
min_ : 최솟값
normals : 노멀벡터
points : 한 face를 형성하는 점들이 각 행을 이룸. 
translate : 병진운동
transform : 병진+회전
vectors : points에서 각 점이 리스트로 구분되어있음

반응형

댓글