stl格式

stl格式

STL (STereoLithography, 立體光刻)是由3D Systems軟體公司創立、原本用於立體光刻計算機輔助設計軟體檔案格式。它有一些事後諸葛的字頭語如“標準三角語言(Standard Triangle Language)”、“標準曲面細分語言(Standard Tessellation Language)”、“立體光刻語言(STereolithography Language)”和“(立體光刻曲面細分語言)”。許多套裝軟體支持這種格式,它被廣泛用於快速成型3D列印計算機輔助製造(CAM)。STL檔案僅描述三維物體的表面幾何形狀,沒有顏色材質貼圖或其它常見三維模型的屬性。STL格式有文字和二進碼兩種型式。二進碼型式因較簡潔而較常見。

STL檔描述原始非結構化三角格線由表面單位法線和由右手定則排序的頂點用三維三角形笛卡兒座標系。STL座標必須是正數,沒有尺度信息,且計量單位為任意的

基本介紹

  • 中文名:stl格式
  • stl檔案:有兩種
  • 性質:用三角格線來表現3D CAD模型
  • 用途:表示三角形格線的一種檔案格式
STL格式簡介,歷史,二進碼 STL,二進碼STL的顏色,其它使用領域,小面法線,STL的檔案格式,ASCII格式,二進制格式,STL檔案特點,CAD造型方法,

STL格式簡介

STL只能用來表示封閉的面或者體。stl檔案有兩種:一種是ASCII明碼格式,另一種是二進制格式。

歷史

立體光刻機是能用一系列切片來構建任何體積形狀的3D列印機。這些機器需要一系列用凝固材料填充在封閉的2D輪廓中,最後再與各層熔合在一起。對這樣的機器而言,自然的檔案格式是一系列對應不同Z值的封閉的多邊形。然而,因為改變層的厚度可能會得到更快(雖然不太精確)的構建,若能以可在必要水平切片封閉多面體來定義模型,會更好。
STL檔案格式看似能用多邊形來定義多面體,但在實用上它只被用過三角形。這表示ASCII協定的語法是多餘的。
要能正確組成3D體,STL檔表示的表面必須是封閉同相連的,且每個邊都正好是二個三角形的一部分,且沒有交叉。 由於STL語法對此屬性不嚴緊,應用程式能忽視其封閉性。
作為切片的該軟體的封閉性僅事項只要三角形需要它以確保所得到的二維的多邊形是封閉的。對切片三角形後須確保所得到的2D多邊形是封關閉的軟體而言,封閉性才會重要。這類軟體有時會移動接近的頂點到同一位置,來清理小的差異。結果是不可預測的,但它往往足夠。

二進碼 STL

由於文字STL檔會非常大,因此有二進碼版的STL。二進碼STL檔有個80字元標頭(內容通常都被忽略但絕不可用"solid"來開始!這樣會使不少軟體認為這是文字STL檔)。接著是一個4位元組無號整數,它表示這檔案中的三角形數。再來是描述每個三角形的信息。之後就結束。
每個三角形以12個32位浮點數來描述:3個描述法線,接著三頂點的X/Y/Z座標─正如文字STL一樣。之後是一個2位元組無號整數(unsigned short),它代表“屬性字元數”─在標準格式中它該是0,因為多數軟體不明白其它事項。
雖然檔案內沒有說明,浮點數以little-endianIEEE 754表示。
UINT8[80] – HeaderUINT32 – Number of trianglesforeach triangleREAL32[3] – Normal vectorREAL32[3] – Vertex 1REAL32[3] – Vertex 2REAL32[3] – Vertex 3UINT16 – Attribute byte countend

二進碼STL的顏色

二進碼STL至少有兩種非標準方式來加上顏色信息:
  • VisCAM和SolidView軟體用每個三角形後的2個“屬性字元數”存放15比特RGB色碼:
  • 比特 0到 4是藍的強度(0~31)。
  • 比特 5到 9是綠的強度(0~31)。
  • 比特10到14是紅的強度(0~31)。
  • 比特15是1表顏色有效;0表無效(同正常的STL檔)。
Materialise Magics軟體用開頭的80位標頭表示模型整體顏色。若有使用顏色,標頭某處會是文字字元串"COLOR="接著4位元組RGBA(透明度),值域為0–255。這是整個模型的顏色,每個小面可以另外指定。這軟體還可以指定更詳細的表面特性,即物質(計算機圖形)。在"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檔案格式簡單且容易輸出。因此,許多計算機輔助設計(CAD)系統能輸出STL檔案格式。雖然輸出簡單產生,一些聯結性信息卻被丟棄!例如:A和B在CAD系統是相異、但座標恰好相同的兩點。STL只輸出點的座標,因此點A和B在STL就有同的表示。還存在其他的問題。
許多計算機輔助製造(CAM)系統必須是三角形化的模型。STL檔案格式不是存儲器和計算上最有效轉換數據的方法,但STL常被CAM系統用於輸入三角化的幾何。這格式隨手可得,所以CAM系統用它。為了使用數據,CAM系統可能要重建連線性。重建會導致誤差。
STL也能在CAD、CAM和計算環境(如:Mathematica)間交換數據。

小面法線

文字(ASCII)和二進碼版的STL,小面法線必項是指向模型外部的單位向量。若設為(0,0,0),多數軟體會自動以三角形三頂點的順序根據右手定則計算法線。一些STL讀取器(如:Art of Illusion的STL外掛)會檢查小面的法線與它們用右手定則算出來的相符。若不同,會警告用戶。有的軟體會完算用自己根據右手定則算的。雖然可以不使用右手定則來計算法線的情況罕見,為了完全兼容,檔案都應提供小面法線及正確指定頂點順序。一個出名的例外是SolidWorks,它用法線當濃淡處理

STL的檔案格式

ASCII格式

ASCII碼格式的STL檔案逐行給出三角面片的幾何信息,每一行以1個或2個關鍵字開頭。
在STL檔案中的三角面片的信息單元 facet 是一個帶矢量方向的三角面片,STL三維模型就是由一系列這樣的三角面片構成。
整個STL檔案的首行給出了檔案路徑及檔案名稱。
在一個 STL檔案中,每一個facet由7 行數據組成,
facet normal 是三角面片指向實體外部的法矢量坐標,
outer loop 說明隨後的3行數據分別是三角面片的3個頂點坐標,3頂點沿指向實體外部的法矢量方向逆時針排列。
ASCII格式的STL 檔案結構如下:
明碼://字元段意義solidfilenamestl//檔案路徑及檔案名稱facetnormalxyz//三角面片法向量的3個分量值outerloopvertexxyz//三角面片第一個頂點坐標vertexxyz//三角面片第二個頂點坐標vertexxyz//三角面片第三個頂點坐標endloopendfacet//完成一個三角面片定義......//其他facetendsolidfilenamestl//整個STL檔案定義結束

二進制格式

二進制STL檔案用固定的位元組數來給出三角面片的幾何信息。
檔案起始的80個位元組是檔案頭,用於存貯檔案名稱;
緊接著用 4 個位元組的整數來描述模型的三角面片個數,
後面逐個給出每個三角面片的幾何信息。每個三角面片占用固定的50個位元組,依次是:
3個4位元組浮點數(角面片的法矢量)
3個4位元組浮點數(1個頂點的坐標)
3個4位元組浮點數(2個頂點的坐標)
3個4位元組浮點數(3個頂點的坐標)個
三角面片的最後2個位元組用來描述三角面片的屬性信息。
一個完整二進制STL檔案的大小為三角形面片數乘以 50再加上84個位元組。
二進制:
UINT8//Header//檔案頭UINT32//Numberoftriangles//三角面片數量//foreachtriangle(每個三角面片中)REAL32[3]//Normalvector//法線矢量REAL32[3]//Vertex1//頂點1坐標REAL32[3]//Vertex2//頂點2坐標REAL32[3]//Vertex3//頂點3坐標UINT16//Attributebytecountend//檔案屬性統計

STL檔案特點

stl檔案格式簡單,只能描述三維物體的幾何信息,不支持顏色材質等信息,是計算機圖形學處理CG,數字幾何處理如CAD, 數字幾何工業套用, 如三維印表機支持的最常見檔案格式。
表面的三角剖分之後造成3D模型呈現多面體狀。輸出STL檔案的參數選用會影響到成型質量的良莠。所以如果STL檔案屬於粗糙的或是呈現多面體狀,您將會在模型上看到真實的反應。
在CAD軟體包中,當您輸出STL檔案時,您可能會看到的參數設定名稱,如弦高(chord height)、誤差(deviation)、角度公差(angle tolerance)、或是某些相似的名稱。建議儲存值為0.01或是0.02。

CAD造型方法

對於剛接觸3d列印的朋友 提供點幫助!
Alibre
File(檔案) -> Export(輸出)-> Save As(另外儲存為,選擇.STL)-> 輸入檔案名稱-> Save(保存)
AutoCAD
輸出模型必須為三維實體,且XYZ坐標都為正值。在命令行輸入命令“Faceters” -> 設定FACETRES為1 到10 之間的一個值 (1為低精度,10為高精度) -> 然後在命令行輸入命令“STLOUT” -> 選擇實體 -> 選擇“Y”,輸出二進制檔案 -> 選擇檔案名稱
CADKey
從Export(輸出)中選擇Stereolithography(立體光刻)
I-DEAS
File(檔案)-> Export(輸出)-> Rapid Prototype File(快速成形檔案)-> 選擇輸出的模型 ->Select Prototype Device(選擇原型設備)> SLA500.dat -> 設定absolute facet deviation(面片精度) 為 0.000395 -> 選擇Binary(二進制)
Inventor
Save Copy As(另外儲存復件為) -> 選擇STL類型 -> 選擇Options(選項),設定為High(高)
IronCAD
右鍵單擊要輸出的模型 -> Part Properties(零件屬性)> Rendering(渲染) -> 設定 Facet Surface Smoothing(三角面片平滑)為 150 -> File(檔案)> Export(輸出)-> 選擇 .STL
Mechanical Desktop
使用AMSTLOUT命令輸出STL檔案。
下面的命令行選項影響STL檔案的質量,應設定為適當的值,以輸出需要的檔案。
1. Angular Tolerance(角度差)―― 設定相鄰面片間的最大角度差值,默認15度,減小可以提高STL檔案的精度。
2. Aspect Ratio(形狀比例)―― 該參數控制三角面片的高/寬比。1標誌三角面片的高度不超過寬度。默認值為0,忽略。
3. Surface Tolerance(表面精度)―― 控制三角面片的邊與實際模型的最大誤差。設定為0.0000 ,將忽略該參數。
4. Vertex Spacing(頂點間距)―― 控制三角面片邊的長度。默認值為0.0000, 忽略。
ProE
1.  File(檔案)-> Export(輸出)-> Model(模型)
2.  或者選擇File(檔案)-> Save a Copy(另外儲存一個復件) -> 選擇 .STL
3. 設定弦高為0。然後該值會被系統自動設定為可接受的最小值。
4. 設定Angle Control(角度控制)為 1
ProE Wildfire
1. File(檔案)-> Save a Copy(另外儲存一個復件)-> Model(模型)-> 選擇檔案類型為STL (*.stl)
2. 設定弦高為0。然後該值會被系統自動設定為可接受的最小值。
3. 設定Angle Control(角度控制)為 1
Rhino
File(檔案)-> Save As(另外儲存為 .STL)
SolidDesigner (Version 8.x)
File(檔案)-> Save(保存) -> 選擇檔案類型為STL
SolidDesigner (not sure of version)
File(檔案)-> External(外部)-> Save STL (保存STL)-> 選擇Binary(二進制)模式 ->選擇零件-> 輸入0.001mm作為Max Deviation Distance(最大誤差)
SolidEdge
1. File(檔案)-> Save As(另外儲存為) -> 選擇檔案類型為STL
2. Options(選項)
設定 Conversion Tolerance(轉換誤差)為 0.001in 或 0.0254mm
設定Surface Plane Angle(平面角度)為 45.00
SolidWorks
1. File(檔案)-> Save As(另外儲存為) -> 選擇檔案類型為STL
2. Options(選項)-> Resolution(品質)-> Fine(良好) -> OK(確定)
Think3
File(檔案)-> Save As(另外儲存為) -> 選擇檔案類型為STL
Unigraphics
1. File(檔案)> Export(輸出)> Rapid Prototyping(快速原型) -> 設定類型為 Binary (二進制)
2. 設定Triangle Tolerance(三角誤差)為 0.0025
設定Adjacency Tolerance(鄰接誤差)為 0.12
設定Auto Normal Gen(自動法向生成)為 On(開啟)
設定Normal Display(法向顯示)為 Off(關閉)
設定Triangle Display(三角顯示)為On(開啟)

相關詞條

熱門詞條

聯絡我們