STL (Stereolithography) 三角网格三维模型文件解析器
支持 ASCII 文本格式和 Binary 二进制格式的 STL 文件读取, 自动检测文件格式并将数据转换为统一的 Surface 数组。 具体的 ASCII / Binary 解析逻辑分别在 StlAsciiReader 与 StlBinaryReader 这两个 Partial Module 中实现。
STL (Stereolithography) 三角网格三维模型文件解析器
支持 ASCII 文本格式和 Binary 二进制格式的 STL 文件读取, 自动检测文件格式并将数据转换为统一的 Surface 数组。 具体的 ASCII / Binary 解析逻辑分别在 StlAsciiReader 与 StlBinaryReader 这两个 Partial Module 中实现。
01 Syntax
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| ParseAsciiSTL | 1 | 解析 ASCII 格式的 STL 文件 ASCII STL 格式: solid <name> facet normal ni nj nk outer loop vertex v1x v1y v1z vertex v2x v2y v2z vertex v3x v3y v3z endlo… |
| ParseNormalFromFacet | 1 | 从 "facet normal nx ny nz" 行解析法向量 |
| ParseVertex | 1 | 从 "vertex x y z" 行解析顶点坐标 |
| ParseBinarySTL | 1 | 解析 Binary 格式的 STL 文件 Binary STL 格式: - 80 字节文件头(通常为注释或程序名) - 4 字节 UInt32:三角面总数 - 每个三角面 50 字节: - 12 字节(3×Float32):法向量 (ni, nj, nk) - 12 字节(3×Float32):顶点1 (x1, y1, z1)… |
| ParseSTL | 2 | 从 Stream 自动检测格式并解析 STL 模型 |
| IsAsciiSTL | 1 | 判断文件头是否为 ASCII STL 格式(以 "solid" 开头) |
03 Members
StreamReader)解析 ASCII 格式的 STL 文件
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>
| Name | Type | Description |
|---|---|---|
reader | StreamReader | - |
String)从 "facet normal nx ny nz" 行解析法向量
String)从 "vertex x y z" 行解析顶点坐标
BinaryReader)解析 Binary 格式的 STL 文件
Binary STL 格式:
每个三角面 50 字节:
| Name | Type | Description |
|---|---|---|
reader | BinaryReader | - |
String)从文件路径自动检测格式并解析 STL 模型
| Name | Type | Description |
|---|---|---|
filePath$ | String | .stl 文件路径 |
解析后的 SceneModel
Stream)从 Stream 自动检测格式并解析 STL 模型
| Name | Type | Description |
|---|---|---|
stream | Stream | 包含 STL 数据的流 |
解析后的 SceneModel
Byte())判断文件头是否为 ASCII STL 格式(以 "solid" 开头)