STL(파일 형식)

STL (file format)
STL
The differences between CAD and STL Models.svg
토러스(두 개의 동심원 빨간색 원으로 표시됨)와 동일한 모양의 STL 근사(삼각형 평면으로 구성됨)의 CAD 표현
파일 이름 확장자
.stl
인터넷 미디어 유형
  • model/stl[1][2]
  • model/x.stl-ascii
  • model/x.stl-binary
개발자3D 시스템
초기 릴리즈1987
포맷의 종류입체 리소그래피

STL3D [3][4][5]Systems에서 만든 입체 평판 CAD 소프트웨어에 고유한 파일 형식입니다.STL에는 "Standard Triangle Language" 및 "Standard Teselation Language"[6]와 같은 몇 가지 백로니언이 있습니다.이 파일 형식은 다른 많은 소프트웨어 패키지에서 지원됩니다. 즉, 신속한 프로토타이핑, 3D 프린팅 및 컴퓨터 지원 [7]제조에 널리 사용됩니다.STL 파일은 색상, 텍스처 또는 기타 일반적인 CAD 모델 속성을 나타내지 않고 3차원 객체의 표면 형상만 설명합니다.STL 형식은 ASCII 표현과 이진 표현을 모두 지정합니다.이진 파일이 더 작기 [8]때문에 더 일반적입니다.

STL 파일은 3차원 데카르트 좌표계[9]사용하여 삼각형의 단위 법선 및 정점(오른쪽[2] 규칙에 따라 정렬됨)에 의해 구조화되지 않은 원시 삼각형 표면을 기술한다.원래 사양에서는 모든 STL 좌표가 양수여야 했지만, 이 제한은 더 이상 적용되지 않고 오늘날 STL 파일에서 음의 좌표가 일반적으로 발생하고 있습니다.STL 파일에는 스케일 정보가 포함되어 있지 않으며 [10]단위는 임의입니다.

ASCII STL

ASCII STL 파일은 다음 행으로 시작합니다.

단단한 name 

어디에name는 옵션 문자열입니다(단,namesolid 뒤에 공백이 있어야 합니다.)행의 나머지 부분은 무시되며 메타데이터(파일 이름, 작성자, 수정 날짜 등)[11]를 저장하는 데 사용될 수 있습니다.파일은 다음과 [12]같이 표시되는 임의의 수의 삼각형으로 계속됩니다.

면 정규 ni nj nk     외측 루프         꼭지점 v1x v1y v1z         꼭지점 v2x v2y v2z         꼭지점 v3x v3y v3z     엔드루프 끝부분 

각각 어디에n또는v부동소수점수입니다.sign-mantissa-e-sign-exponent포맷, 예:2.648000e-002파일은 다음과 같이 끝납니다.

endsolid name 
스페리콘의 ASCII STL의 예

포맷의 구조는 다른 가능성이 존재함을 시사한다(예: 둘 이상의 패싯).loop또는 3개 이상의 정점이 있는 루프).그러나 실제로는 모든 면은 단순한 삼각형입니다.

공백(스페이스, 탭, 줄 바꿈)은 숫자 또는 단어 내를 제외한 파일 내 모든 위치에서 사용할 수 있습니다.사이의 간격facet그리고.normal사이outer그리고.loop필수 [8]항목입니다.

바이너리 STL

ASCII STL 파일은 매우 클 수 있기 때문에 STL의 바이너리 버전이 존재합니다.바이너리 STL 파일에는 80자의 헤더가 있습니다(일반적으로 무시됩니다만, 선두는 절대로 하지 말아 주세요).solid일부 소프트웨어는 이것이 ASCII STL 파일이라고 생각할 수 있기 때문입니다).헤더 뒤에 파일 내의 삼각형 패싯 수를 나타내는4 바이트의 리틀엔디안 부호 없는 정수가 표시됩니다.다음은 각 삼각형을 차례로 설명하는 데이터입니다.파일은 마지막 삼각형 뒤에 끝납니다.

각 삼각형은 STL의 ASCII 버전과 마찬가지로 32비트 부동소수점 숫자 3개와 각 정점의 X/Y/Z 좌표 3개로 설명됩니다.표준 형식에서는 "속성 바이트 수"인 2바이트("짧은") 부호 없는 정수 뒤에 오는 경우 대부분의 소프트웨어는 다른 [8]어떤 것도 인식하지 못하기 때문에 이 값은 0이 됩니다.

부동소수점 번호는 IEEE 부동소수점 번호로 나타나며 문서에는 명시되어 있지 않지만 리틀엔디언으로 간주됩니다.

UINT8 [80] – 헤더 - 80 바이트 UINT32 – 삼각형 수 - 4 바이트
포어치 삼각형 - 50바이트 : REAL32[3] – 노멀 벡터 - 12바이트 REAL32[3] – 정점 1 - 12바이트 REAL32[3] – 정점 3 - 12바이트 UINT16 – 속성 바이트 수 - 2바이트 종료

이진 STL의 색상

색상 정보를 추가하기 위한 이진 STL 형식에는 다음 두 가지 이상의 비표준 변형이 있습니다.

  • VisCAM 및 SolidView 소프트웨어 패키지에서는 각 삼각형의 끝에 2개의 "속성 바이트 수" 바이트를 사용하여 15비트 RGB 색상을 저장합니다.
    • 비트 0 ~ 4는 파란색의 강도 수준(0 ~31)입니다.
    • 비트 5~9는 녹색(0~31)의 강도 수준입니다.
    • 비트 10~14는 빨간색(0~31)의 강도 수준입니다.
    • bit 15는 색상이 유효한 경우 1이고 색상이 유효하지 않은 경우 0입니다(일반 STL 파일과 마찬가지로).
  • Materialise Magics 소프트웨어는 파일 상단에 있는 80바이트 헤더를 사용하여 전체 부품의 전체 색상을 나타냅니다.색상을 사용하는 경우 헤더의 어딘가에 ASCII 문자열이 있어야 합니다.COLOR=이어서 빨강, 초록, 파랑 및 알파 채널(투과성)을 나타내는4 바이트가 표시됩니다.이것은 각 패싯에서 재정의되지 않는 한 전체 객체의 색상입니다.또한 Magics는 재료 설명, 즉 보다 상세한 표면 특성을 인식합니다.직후에COLOR=RGBA사양은 다른 ASCII 문자열이어야 합니다.,MATERIAL=그 다음에 3가지 색상(3×4바이트)이 나옵니다.첫 번째는 확산 반사 색상, 두 번째는 스펙큘러 하이라이트 색상, 세 번째는 주변 조명입니다.재료 설정은 색상보다 선호됩니다.패싯별 색상은 다음과 같이2개의 '아트리뷰트 바이트 수' 바이트로 표시됩니다.
    • 비트 0 ~ 4는 빨강(0 ~31)의 강도 레벨입니다.
    • 비트 5~9는 녹색(0~31)의 강도 수준입니다.
    • 비트 10~14는 파란색의 강도 수준(0~31)입니다.
    • 비트 15는 이 패싯에 고유의 색상이 있는 경우 0, 오브젝트 단위 색상을 사용하는 경우 1입니다.

이들 2바이트 내의 빨간색/녹색/파란색 순서는 이 두 가지 접근법에서는 반대입니다.따라서 이들 형식은 쉽게 호환될 수 있었지만 색상의 순서가 뒤바뀌는 것은 일반 STL 파일 리더에서는 자동으로 구별할 수 없다는 것을 의미합니다.또한 면당 알파 값이 없기 때문에 면을 선택적으로 투명하게 할 수 있는 방법도 없습니다. 현재의 급속 프로토타이핑 기계에서는 이것이 중요하지 않습니다.

이진 STL 단위

STL 표준에는 좌표 단위가 지정되어 있지 않습니다.한 가지 아이디어는 ASCII 문자열을 추가하는 것입니다.UNITS=xx머리글의 어딘가에서,xx는 이 파일을 쓸 때 사용되는 단위를 나타내는2 바이트입니다.사용 가능한 옵션은 다음과 같습니다.

UNITS헤더 힌트
ASCII 16진수 묘사
mm 6D 6D 밀리미터
cm 63 6D 센티미터
m 20 6D 미터. 첫 번째 바이트는 공백 문자입니다. , ASCII 입니다.
ft 66 74 소수점 피트
in 69 6E 십진수 인치
ly 6C 79 광년

면의 법선

STL의 ASCII 버전과 바이너리 버전 모두에서 패싯 노멀은 솔리드 [13]객체에서 바깥쪽을 가리키는 단위 벡터여야 합니다.대부분의 소프트웨어에서 이 값은 (0,0,0)으로 설정될 수 있으며 소프트웨어는 "오른쪽 규칙"을 사용하여 삼각 정점의 순서에 따라 자동으로 법선을 계산합니다. 즉, 정점은 외부에서 반클럭 방식으로 나열됩니다.일부 STL 로더(예: Art of Illusion용 STL 플러그인)는 파일의 노멀이 오른쪽 규칙을 사용하여 계산한 노멀과 일치하는지 확인하고 그렇지 않을 경우 사용자에게 경고합니다.다른 소프트웨어에서는 패싯의 통상은 완전히 무시하고 오른쪽 규칙만 사용할 수 있습니다.오른쪽 규칙을 사용하여 계산할 수 없는 노멀을 지정하는 경우는 드물지만, 완전히 휴대하기 위해서는 파일 하나가 패싯 노멀을 제공하고 정점의 순서를 적절하게 지정해야 합니다.주목할 만한 예외는 SolidWorks입니다.SolidWorks는 쉐이딩 효과에 노멀을 사용합니다.

3D 프린팅에 사용

위키피디아 로고

3D 프린터는 한 번에 한 층씩 (SLA, SLS, SHS, DMLS, EBM, DLP) 또는 인쇄(3DP, MJM, FDM, FFF, PJP,[14] MJS)하여 객체를 만듭니다.이를 위해서는 일련의 닫힌 2D 등고선(수평 레이어)이 필요하며, 레이어가 함께 융합될 때 고화된 재료로 채워집니다.이러한 기계의 자연스러운 파일 형식은 다른 Z 값에 대응하는 일련의 닫힌 폴리곤(레이어 또는 슬라이스)입니다.그러나 레이어 두께를 변화시켜 보다 빠르고 정밀도가 낮은 빌드를 만들 수 있기 때문에 모델을 필요한 수평 레벨에서 슬라이스할 수 있는 닫힌 다면체로 정의하는 것이 더 쉬웠습니다.잘못된 패싯 노멀은 파일을 슬라이스 및 채우는 방법에 영향을 줄 수 있습니다.다른 Z 값의 슬라이스를 선택하여 잘못된 패싯을 놓치거나 파일을 CAD 프로그램으로 반환하여 수정한 다음 STL 파일을 재생성해야 합니다.

STL 파일 형식은 폴리곤 패싯을 가진 다면체를 정의할 수 있는 것처럼 보이지만 실제로는 삼각형에만 사용됩니다. 즉, ASCII 프로토콜의 구문 대부분이 불필요한 것입니다.

3D 볼륨을 올바르게 형성하려면 STL 파일로 표시되는 표면이 닫혀 있어야 합니다(구멍 또는 역벡터 정규 분포 없음). 모든 가장자리가 정확히 두 개의 삼각형에 속하며 자가 교차하지 않아야 합니다.STL 구문은 이 속성을 적용하지 않기 때문에 보이드가 중요하지 않은 어플리케이션에서는 무시할 수 있습니다.누락된 표면은 삼각형을 슬라이스하는 소프트웨어가 결과 2D 폴리곤을 닫는 데 필요한 경우에만 중요합니다.때때로 이러한 소프트웨어는 서로 가까운 정점을 일치하도록 이동시킴으로써 작은 불일치를 해소하기 위해 작성될 수 있습니다.결과를 예측할 수 없으며 다른 프로그램을 사용하여 수리해야 할 수 있습니다.벡터 3D 프린터에는 깨끗한 STL 파일이 필요합니다.불량 데이터 파일을 인쇄하면 데이터가 채워지지 않거나 인쇄가 정지될 수 있습니다.

다른 필드에서 사용

MediaWiki 3D 확장으로 표시된 유타 찻주전자STL 모델

STL 파일 형식은 단순하고 출력하기 쉽습니다.따라서 많은 컴퓨터 지원 설계 시스템이 STL 파일 형식을 출력할 수 있다.출력은 간단하지만 공유 정점의 ID가 손실되기 때문에 메시 연결 정보는 폐기됩니다.

많은 컴퓨터 지원 제조 시스템은 삼각형 모델을 필요로 한다.STL 형식은 이 데이터를 전송하기 위한 가장 메모리 및 계산적으로 효율적인 방법은 아니지만, 종종 삼각 지오메트리를 CAM 시스템으로 Import하기 위해 STL이 사용됩니다.이 형식은 일반적으로 사용할 수 있기 때문에 CAM 시스템이 사용합니다.데이터를 사용하려면 CAM 시스템이 연결을 재구성해야 할 수 있습니다.STL 파일은 유닛의 물리 치수를 저장하지 않기 때문에 CAM 시스템이 요구합니다.일반적인 유닛은mm그리고.inch.

STL은 CAD/CAM 시스템과 Mathematica와 같은 계산 환경 간의 데이터 교환에도 사용할 수 있습니다.

곡면의 표현

삼각형을 사용하여 곡면을 완벽하게 나타낼 수는 없습니다.이를 보완하기 위해 사용자는 부정확성을 줄이기 위해 대용량의 STL 파일을 저장하는 경우가 많습니다.그러나 많은 3D 설계 소프트웨어와 관련된 기본 형식은 수학적인 표면을 사용하여 작은 파일에 손실 없이 디테일을 보존합니다.예를 들어, Rhino 3D[15] [16] BlenderNURBS를 구현하여 실제 곡면을 만들고 각각의 기본 파일 형식으로 저장하지만 모델을 STL 형식으로 내보낼 때는 삼각형 메시를 생성해야 합니다.

역사

STL은 [17]1987년 Albert Consulting Group for 3D Systems에 의해 발명되었습니다.이 포맷은 3D 시스템즈의 첫 번째 상용 3D 프린터용으로 개발되었습니다.처음 발매된 이후, 형식은 22년 [18]동안 비교적 변하지 않았다.

2009년에는 STL 2.0이라는 이름의 포맷 업데이트가 제안되었습니다.는 적층 제조 파일 [18][19]형식으로 발전했습니다.

2022년 현재 WikiCommons에 존재하는 가장 오래된 STL 파일은 Got5k.stl, 2018-01-10입니다.[20]

「 」를 참조해 주세요.

  • 3D 파일 제조의 표준인 3D 제조 형식(3MF)
  • 색상, 여러 재료 및 별자리를 지원하는 표준 AMF(Additive Manufacturing File Format)
  • 대체 파일 형식인 PLY(파일 형식)
  • 복셀
  • Wavefront .obj 파일, 확장자가 .obj인 3D 지오메트리 정의 파일 형식
  • X3D, 3D 컴퓨터 그래픽스용 로열티 없는 ISO 표준

레퍼런스

  1. ^ Noordvyk, Allan (2018-03-06). "model/stl". iana.org. IANA. Retrieved 2022-05-30.
  2. ^ a b "STL (STereoLithography) File Format Family". Library of Congress. Retrieved 2022-05-30.
  3. ^ StereoLithography Interface Specification, 3D Systems, Inc., July 1988
  4. ^ StereoLithography Interface Specification, 3D Systems, Inc., October 1989
  5. ^ SLC File Specification, 3D Systems, Inc., 1994
  6. ^ Grimm, Todd (2004). "3. The Rapid Prototyping Process". User's Guide to Rapid Prototyping. Society of Manufacturing Engineers. p. 55. ISBN 0-87263-697-6. Even though the STL file is widely used, few agree on the definition of the acronym STL. Suggestions include standard triangle language, stereolithography language, and stereolithography tessellation language. Chuck Hull, the inventor of stereolithography and 3D Systems’ founder, reports that the file extension and acronym stand for stereolithography.
  7. ^ Chua, C. K.; Leong, K. F.; Lim, C. S. (2003), "Chapter 6, Rapid Prototyping Formats", Rapid Prototyping: Principles and Applications (2nd ed.), World Scientific Publishing Co., p. 237, ISBN 981-238-117-1, The STL (STeroLithography) file, as the de facto standard, has been used in many, if not all, rapid prototyping systems.
  8. ^ a b c Burns, Marshall (1993). "6.5". Automated Fabrication: Improving Productivity in Manufacturing. Prentice Hall PTR. ISBN 9780131194625. OCLC 634954895.
  9. ^ Burkardt, John (2014-07-10). "STLA Files - ASCII stereolithography files". Retrieved 2022-05-30.
  10. ^ "StL 형식:표준 데이터 포맷 Fabbers".fabbers.com— 3D프린팅에 역사적 자원이다.2022-05-30 Retrieved.개체 대표된 건축관 octant에 있어야 합니다.다른 말로, 모든 향점 좌표(그리고 nonzero 0또는 0보다 큰.)숫자positive-definite해야 한다.그 StL 파일, 좌표를 임의 내에 계신 규모 정보를 포함하지 않다.자동 제작에서 Reprinted.
  11. ^ Bourke, Paul (October 1999). "STL format".
  12. ^ "STL (STereoLithography) File Format, ASCII". Library of Congress. Retrieved 2022-05-30.
  13. ^ Peddie, Jon (2013). The History of Visual Magic in Computers: How Beautiful Images are Made in CAD, 3D, VR and AR. London, England: Springer. pp. 54–57. ISBN 9781447149323. OCLC 849634980.
  14. ^ Barnatt, Christopher (2013). 3D Printing: The Next Industrial Revolution. Nottingham, England: ExplainingTheFuture.com. pp. 26–71. ISBN 9781484181768. OCLC 854672031.
  15. ^ "What are NURBS?". www.rhino3d.com. Retrieved 2021-06-25.
  16. ^ "Structure — Blender Manual". docs.blender.org. Retrieved 2021-06-25.
  17. ^ "STL File Format for 3D Printing - Explained in Simple Terms". All3DP. 2016-11-17. Retrieved 2017-05-05.
  18. ^ a b "STL 2.0 May Replace Old, Limited File Format". RapidToday. Retrieved 2017-05-05.
  19. ^ Hiller, Jonathan D.; Lipson, Hod (2009). STL 2.0: A Proposal for a Universal Multi-Material Additive Manufacturing File Format (PDF). Solid Freeform Fabrication Symposium (SFF'09). Austin, Texas, USA: Cornell University. Archived from the original (PDF) on 2020-06-11. Retrieved 2017-05-05.
  20. ^ 질문에서, 커먼스의 최대 화이트 서버.

외부 링크