The StL Format(StL 格式)

The StL Format(StL 格式)

Fabber 的标准数据格式

背景

​ 一个StL(StereoLithography)文件是 3 维表面几何的三角形表示。表面被细分或逻辑分解为一系列小三角形(面)。每个面由一个垂直方向(法线向量)和代表三角形顶点(角)的三个点描述。切片算法使用这些数据来确定制造商要构建的 3 维形状的横截面。

Format Specifications(格式规格)

​ StL 文件由一系列(方)面数据组成。每个面由单位法线(垂直于三角形且长度为 1.0 的线)和三个顶点(角)唯一标识。法线和每个顶点分别由三个坐标指定,因此每个面总共存储了 12 个数字。

Facet orientation(面方向)。定义了 3 维对象的表面。因此,每个面都是对象内部和外部之间边界的一部分。面的方向(哪条路“out”,哪条路“in”)以两种必须一致的方式冗余指定。首先,法线方向是向外的;其次,当从外面看对象时,顶点是按逆时针顺序列出的(右手法则),这些规则是在图1中示出。
在这里插入图片描述

小平面的方向由单位法线的方向和顶点的列出顺序决定。

Vertex-to-vertex rule(顶点到顶点规则)。每个三角形必须与其相邻的每个三角形共享两个顶点。换句话说,一个三角形的顶点不能位于另一个三角形的边上。如图 2 所示。
在这里插入图片描述

顶点到顶点规则。左图显示违反规则。正确的配置显示在右侧。

​ 表示的对象必须位于全正八分圆中。换句话说,所有顶点坐标必须是正定(非负和非零)数。StL 文件不包含任何比例信息;坐标是任意单位。

​ 官方的 3D Systems StL 规范文档指出,有一项规定包含“建筑参数的特殊属性”(special attributes for building parameters),但没有给出包含这些属性的格式。此外,该文件还指定了“三角形边的最小长度”(minimum length of triangle side)和“三角形的最大尺寸”(maximum triangle size)的数据,但这些数字的含义令人怀疑。(但这些数字的含义还有待揣摩)

​ 建议按 z 值升序对三角形进行排序,但不是必需的,以优化切片程序的性能。

​ 通常,StL 文件以扩展名“StL”保存,不区分大小写。切片程序可能需要此扩展名,也可能允许指定不同的扩展名。

​ StL 标准包括两种数据格式,ASCII 和二进制。这些将在下面单独描述。

StL ASCII Format(stl ASCII格式)

​ ASCII 格式主要用于测试新的 CAD 界面。其文件的大尺寸使其不适合一般用途。

​ ASCII StL 文件的语法如下:
在这里插入图片描述

​ 粗体表示关键字;些必须以小写形式出现。请注意,“facet normal”和“outer loop”中有一个空格,而任何以“end”开头的关键字中都没有空格。缩进必须有空格;不允许使用标签。符号“{…}+”表示大括号中的内容可以重复一次或多次。斜体符号是将被用户指定的值替换的变量。facet normalvertex中的数值数据是单精度浮点数,例如,1.23456E+789。一个facet normal坐标可能有一个前导减号;vertex坐标可能不是。

StL Binary Format(stl二进制格式)

​ 二进制格式使用 IEEE 整数和浮点数字表示。

​ 二进制 StL 文件的语法如下:
在这里插入图片描述

​ 符号“{…}+”表示大括号中的内容可以重复一次或多次。正式规范中没有记录属性语法。指定属性字节计数应设置为零。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值