ไฟล์ STL คืออะไร?
STL ย่อมาจาก stereolithrography เป็นรูปแบบไฟล์ที่ใช้แทนกันได้ซึ่งแสดงถึงรูปทรงเรขาคณิตพื้นผิว 3 มิติ รูปแบบไฟล์พบการใช้งานในหลายสาขา เช่น การสร้างต้นแบบอย่างรวดเร็ว การพิมพ์ 3 มิติ และการผลิตโดยใช้คอมพิวเตอร์ช่วย มันแสดงถึงพื้นผิวเป็นชุดของสามเหลี่ยมขนาดเล็กที่เรียกว่าด้าน ซึ่งแต่ละด้านอธิบายโดยทิศทางตั้งฉากและจุดสามจุดแทนจุดยอดของสามเหลี่ยม แอปพลิเคชันจะใช้ข้อมูลผลลัพธ์เพื่อกำหนดส่วนตัดขวางของรูปร่าง 3 มิติที่จะสร้างขึ้นโดย fabber ไม่มีข้อมูลในรูปแบบไฟล์ STL สำหรับการแสดงสี พื้นผิว หรือแอตทริบิวต์โมเดล CAD ทั่วไปอื่นๆ
ประวัติย่อ
การพัฒนารูปแบบไฟล์ STL มีอายุย้อนไปถึงปี 1987 ได้รับการพัฒนาโดย 3D Systems สำหรับใช้ในเครื่องพิมพ์ 3D เชิงพาณิชย์ มีการเสนอรูปแบบไฟล์ STL เวอร์ชันแก้ไขหรือที่เรียกว่า STL 2.0 ในปี 2552 พร้อมอัปเดตรูปแบบไฟล์
ข้อมูลจำเพาะของรูปแบบไฟล์
ไฟล์ STL แสดงรูปทรงเรขาคณิตพื้นผิวโดยใช้แง่มุม ด้านกำหนดพื้นผิวของวัตถุ 3 มิติและระบุเฉพาะโดยหน่วยปกติ ซึ่งเป็นเส้นตั้งฉากกับสามเหลี่ยมที่มีความยาว 1.0 และจุดยอดสามจุด มีตัวเลขทั้งหมด 12 ตัวที่เก็บไว้สำหรับแต่ละด้านเป็นค่าปกติ และแต่ละจุดยอดจะถูกระบุด้วยพิกัดสามพิกัด ไฟล์ StL ไม่มีข้อมูลสเกลใดๆ พิกัดอยู่ในหน่วยโดยพลการ
ข้อกำหนดของรูปแบบไฟล์ STL สามารถตรวจสอบได้จากสองด้านต่อไปนี้
การปฐมนิเทศแง่มุม
การวางแนวของด้านถูกกำหนดโดยทิศทางของหน่วยปกติและลำดับที่แสดงจุดยอด การวางแนวของ facets มี 2 ลักษณะ ดังนี้
- ทิศทางของปกติคือออกด้านนอก
- จุดยอดจะแสดงตามลำดับทวนเข็มนาฬิกาจากภายนอก ตามกฎมือขวา
จุดสุดยอดสู่กฎจุดสุดยอด
ตามกฎนี้ รูปสามเหลี่ยมแต่ละรูปมีจุดยอดสองจุดร่วมกับสามเหลี่ยมที่อยู่ติดกันแต่ละรูป ดังนั้น จุดยอดของสามเหลี่ยมหนึ่งไม่สามารถอยู่ด้านข้างของสามเหลี่ยมอีกอันได้
รูปแบบไฟล์
STL พร้อมใช้งานใน ASCII เช่นเดียวกับการแสดงไบนารีสำหรับรูปแบบไฟล์ขนาดกะทัดรัด
รูปแบบ STL ASCII
รูปแบบไฟล์ STL รุ่น ASCII เขียนด้วย ASCII ธรรมดา อย่างไรก็ตาม เนื่องจากไฟล์มีขนาดใหญ่ รูปแบบไฟล์จึงไม่ถูกเลือกให้เป็นรูปแบบที่ต้องการสำหรับการใช้งาน ไวยากรณ์ของไฟล์ ASCII STL เป็นดังนี้:
solid name
facet normal ni nj nk
outer loop
vertex v1x v1y v1z
vertex v2x v2y v2z
vertex v3x v3y v3z
endloop
endfacet
endsolid name
คำที่มีตัวหนาแสดงถึงคำหลักที่ควรเป็นตัวพิมพ์เล็กเสมอ สัญลักษณ์ตัวเอียงคือตัวแปรที่จะถูกแทนที่ด้วยค่าที่ผู้ใช้กำหนด ข้อมูลตัวเลขในบรรทัด facet normal และ vertex เป็นทศนิยมเดี่ยวที่มีความแม่นยำ เช่น 1.23456E+789 พิกัด facet normal อาจมีเครื่องหมายลบนำหน้า พิกัด จุดสุดยอด อาจไม่
รูปแบบไบนารี STL
รูปแบบไบนารีใช้การแทนค่าจำนวนเต็ม IEEE และทศนิยม รูปแบบไฟล์แสดงดังต่อไปนี้:
ฟิลด์ | ข้อมูล |
---|---|
ส่วนหัว | 80 อักขระ |
จำนวนสามเหลี่ยม | 4 ไบต์ little endian unsigned integer |
ข้อมูลสำหรับแต่ละสามเหลี่ยม | 12 ตัวเลขทศนิยม 32 บิต |
มุมมองที่ละเอียดยิ่งขึ้นของรูปแบบไฟล์แสดงไว้ด้านล่าง
UINT8[80] – Header
UINT32 – Number of triangles
foreach triangle
REAL32[3] – Normal vector
REAL32[3] – Vertex 1
REAL32[3] – Vertex 2
REAL32[3] – Vertex 3
UINT16 – Attribute byte count
end