3D打印格式STL

STL格式及其转换

  近期接触了3D打印的一些东西,也制作了一个vrml转stl的插件,对该领域多了一些认识。

  目前尚没有打印机直接支持stl、obj等格式,在打印之前需使用厂家提供的软件将stl等格式转换为G-CODE(G指令),也就是切片过程。打印过程中也有许多细节问题:

    如选择切片方向、

    打印对象底部分无法与打印平台粘牢导致打印过程失败、

    模型顶弧等位置处理不够精细、

    开始打印的棱边角处容易出现小刺导致对象被打印头挂到脱离平台、

    底面平板打印时热胀冷缩导致底面自动脱离平台等。

  总体来讲比较方便打印的对象比较有限,打印机功能细节上还需要进一步完善才能有较好的体验。

STL只能用来表示封闭的面或者体,stl文件有两种:一种是ASCII明码格式,另一种是二进制格式。

一、ASCII格式

ASCII码格式的STL文件逐行给出三角面片的几何信息,每一行以1个或2个关键字开头。

在STL文件中的三角面片的信息单元 facet 是一个带矢量方向的三角面片,STL三维模型就是由一系列这样的三角面片构成。

整个STL文件的首行给出了文件路径及文件名。

在一个 STL文件中,每一个facet由7 行数据组成,

facet normal 是三角面片指向实体外部的法矢量坐标,

outer loop 说明随后的3行数据分别是三角面片的3个顶点坐标,3顶点沿指向实体外部的法矢量方向逆时针排列

  ASCII格式的STL 文件结构如下:
 1 明码://字符段意义
 2 solid filenamestl//文件路径及文件名
 3 facetnormalxyz//三角面片法向量的3个分量值
 4 outerloop
 5 vertexxyz//三角面片第一个顶点坐标
 6 vertexxyz//三角面片第二个顶点坐标
 7 vertexxyz//三角面片第三个顶点坐标
 8 endloop
 9 endfacet//完成一个三角面片定义
10  
11 ......//其他facet
12  
13 endsolid filenamestl//整个STL文件定义结束
14  


二、二进制格式

二进制STL文件用固定的字节数来给出三角面片的几何信息。

文件起始的80个字节是文件头,用于存贮文件名;

紧接着用 4 个字节的整数来描述模型的三角面片个数,

后面逐个给出每个三角面片的几何信息。每个三角面片占用固定的50个字节,依次是:

3个4字节浮点数(角面片的法矢量)

3个4字节浮点数(1个顶点的坐标)

3个4字节浮点数(2个顶点的坐标)

3个4字节浮点数(3个顶点的坐标)个

三角面片的最后2个字节用来描述三角面片的属性信息。

一个完整二进制STL文件的大小为三角形面片数乘以 50再加上84个字节。

  二进制:
1 UINT8//Header//文件头
2 UINT32//Numberoftriangles//三角面片数量 3 //foreachtriangle(每个三角面片中) 4 REAL32[3]//Normalvector//法线矢量 5 REAL32[3]//Vertex1//顶点1坐标 6 REAL32[3]//Vertex2//顶点2坐标 7 REAL32[3]//Vertex3//顶点3坐标 8 UINT16//Attributebytecountend//文件属性统计
 
 
 
 
 

转载于:https://www.cnblogs.com/ice-arrow/p/11052843.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值