STL文件在医学软件开发中的应用

本文由Markdown语法编辑器编辑完成。

1. 什么是STL文件?

STL(Stereolithography,光固化立体造型术的缩写)文件格式,是由3D SYSTEMS公司于1998年制定的一个接口协议,是一种为快速原型制造技术服务的三维图形文件格式。STL文件由多个三角形面片的定义组成,每个三角形面片的定义包括三角形各个顶点的三维坐标及三角形面片的法矢量构成。

STL已经成为了图像处理领域的默认工业标准,广泛地应用到了工业设计,3D建模,3D打印等领域中。

在知乎中有一个关于STL的问题是,“3D打印如何建模?”
https://www.zhihu.com/question/22023856/answer/35852397
有一个高票回答,将3D打印如何建模的问题,归结为是“如何获得STL文件?”。答主列举了很多方法,但是不同的用途有不同的方法。

(1)CAD设计(参数化建模)
主要针对需要参数化建模设计的机械零件一类的应用。这时可以使用的软件有:
UG
Solidworks
Pro-E
Catia
OpenScad

(2)CG建模
3D Max
Maya
Rhino
Blender
Zbrush

2. 基于VTK进行STL文件的读取、显示和保存

STL存储数据一般有两种方式,二进制格式或ASCII格式。

二进制格式:
二进制STL文件用固定的字节数来给出三角面片的几何信息。文件起始的80个字节是文件头,用于存贮零件名;紧接着用 4 个字节的整数来描述模型的三角面片个数,后面逐个给出每个三角面片的几何信息。每个三角面片占用固定的50个字节,依次是3个4字节浮点数(角面片的法矢量)3个4字节浮点数(1个顶点的坐标)3个4字节浮点数(2个顶点的坐标)3个4字节浮点数(3个顶点的坐标)个三角面片的最后2个字节用来描述三角面片的属性信息。一个完整二进制STL文件的大小为三角形面片数乘以 50再加上84个字节,总共134个字节。

二进制存储格式——

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


ASCII格式:
ASCII码格式的STL文件逐行给出三角面片的几何信息,每一行以1个或2个关键字开头。在STL文件中的三角面片的信息单元facet是一个带矢量方向的三角面片,STL三维模型就是由一系列这样的三角面片构成。整个STL文件的首行给出了文件路径及文件名。在一个 STL文件中,每一个facet由7 行数据组成,facet normal 是三角面片指向实体外部的法矢量坐标,outer loop说明随后的3行数据分别是三角面片的3个顶点坐标,3顶点沿指向实体外部的法矢量方向逆时针排列。

ASCII存储格式——

solid ascii
facet normal ni nj nk
outer loop
vertex v1x v1y v1z
vertex v2x v2y v2z
vertex v3x v3y v3z
endloop
endfacet
endsolid name

以下是用ParaView软件读取一个STL文件后,显示出来的STL模型图。
这里写图片描述

以下是用Notepad++打开给STL ASCII的文件后,看到的里面的数据存储样式的截图。
这里写图片描述


VTK是专注于可视化的开源工具包,针对STL文件也提供了读取和保存的类,分别为vtkSTLReader和vtkSTLWriter的类。
以下是基于vtk的类读取某一个STL文件并显示的示例代码。

3. STL在医学软件开发中的应用实例

参考链接:
1. 知乎——3D打印如何建模
https://www.zhihu.com/question/22023856/answer/35852397
2. 常见三维文件格式之STL
http://blog.csdn.net/a117653909/article/details/6637084

未完待续……

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

inter_peng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值