stl文件格式特点_常见文件格式

stl文件格式特点_常见文件格式一、介绍STL文件格式(stereolithography,光固化立体造型术的缩写)是由3DSYSTEMS公司于1988年制定的一个接口协议,是一种为快速原型制造技术服务的三维图形文件格式。S

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、介绍

STL文件格式(stereolithography,光固化立体造型术的缩写)是由3D SYSTEMS 公司于1988 年制定的一个接口协议,是一种为快速原型制造技术服务的三维图形文件格式。STL 文件由多个三角形面片的定义组成,每个三角形面片的定义包括三角形各个定点的三维坐标及三角形面片的法矢量。本文介绍如何通过C语言读取STL格式文件。

二、STL格式

在快速成型和分层制造领域,STL文件被广泛应用于实体的表述。其原理是
将复杂的表面用有限个三角面片来拟合。其实和缝足球差不多,只不过足球
多用五边形和六边形。由于STL文件和具体的CAD系统无关,也就是说几乎所
有CAD系统都提供将各自特定格式的实体表示转换成STL文件的功能,所以非
常好用。
STL文件具有两种格式ASCII格式和二进制格式,但二进制格式文件的长度
较前者小得多,一般为其1/6。现介绍如下:
ASCII格式:
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>
二进制格式:
结构为:84个字节(byte)组成的题头,其中前80个字节用于表示有关文
件、作者姓名和注释的信息,最后4个字节用于表示小三角形面面片的数目。
对于每一个小三角形面片,有48个字节用于表示其法向量的X,Y和Z的分量
以及三角形每个顶点的X,Y,Z的坐标,其中每个坐标用4个字节表示。最后
有2个不用的字节。
STL文件的二进制码输出形式是用IEEE整数和浮点数来表示的。结构如下:
<Binary STL file>::=<Binary STL file header>{Facet storage}…
<Binary STL file header>::=<80 bytes of solid name. Filled by
SPACE character><4-byte-integer of
facet number>
<Facet storage>::=<Normal Vector><Vetex1><Vetex2><Vetex3>
<Normal Vector>::=<4-byte-float of x><4-byte-float of y>
<4-byte-float of z>
<Vetex>::=<4-byte-float of x coordinate>
<4-byte-float of y coordinate>
<4-byte-float of z coordinate>
有了这些格式的描述,就可以用一段程序方便地将这些数据读出来并进行
处理了。

三、示例代码

 1 #include <fstream>
 2 #include <iostream>
 3  using namespace std;
 4  
 5  int main()
 6  {
 7   int i,ns,ntr;
 8   float data;
 9   ifstream infile;
10   infile.open("C:\\E.STL",ios::binary);
11   ntr = 100;   //Segy文件总道数
12  
13   infile.seekg(84,ios::beg);    //跳过84字节的卷头
14   for(i=0;i<ntr;i++){
15    
16     infile.read((char*)&data,sizeof(float));
17   
18     cout<<data<<"\n";
19   
20   }
21   infile.close();
22   return 0;
23  }

 

四、总结

通过解析STL格式文件,我们可以开发接口读取STL文件导入模型到PDMS,或者从PDMS中输出STL格式文件到其他软件。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/168217.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • sigaction函数的使用

    sigaction函数的使用sigaction函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作)。他是POSIX的信号接口,而signal()是标准C的信号接口(如果程序必须在非POSIX系统上运行,那么就应该使用这个接口)给信号signum设置新的信号处理函数act,同时保留该信号原有的信号处理函数oldactintsigaction(intsigno,conststruct

  • android 骨骼动画教程,使用DragonBones开发FLASH骨骼动画入门教程

    android 骨骼动画教程,使用DragonBones开发FLASH骨骼动画入门教程转载自:http://dragonbones.github.io/getting_started_cn.htmlDragonBones快速入门指南DragonBones快速入门指南采用知识共享协议3.0版本。目录DragonBones是什么?DragonBones是一套开源的2D骨骼动画框架和工具,它包含了基于FlashPro的骨骼动画编辑面板DragonBonesDesignPanel及骨骼…

  • java定时器scheduled_spring定时任务注解

    java定时器scheduled_spring定时任务注解(本文仅供参考)使用spring@Scheduled注解执行定时任务:步骤:1.xmlns添加:http://www.springframework.org/schema/taskhttp://www.springframework.org/schema/task/spring-task-3.1.xsdxmlns:task=”http://www.sprin…

  • c语言定时器实验程序,C语言定时器实验.doc[通俗易懂]

    c语言定时器实验程序,C语言定时器实验.doc[通俗易懂]C语言定时器实验实验三C语言定时器实验一、实验目的1.进一步熟悉DSP的中断机制2.在掌握中断服务程序编写的基础上进一步熟悉定时器的运用3.进一步掌握如何编写DSP中断服务子程序二、实验设备1.具有USB接口的PC机一台2.USB仿真器一台3.ARM/DSP/FPGA实验箱一台三、实验原理本实验是在我们基本上掌握DSP中断机制的基础上,进一步学习如何在DSP内部实现定时器的正确操作以及定时器中…

  • ziw文件用什么打开_手机更改文件打开方式

    ziw文件用什么打开_手机更改文件打开方式我们将.ziw类型的文件重命名为.zip类型,然后解压即可(就是比较麻烦,亲测有效)

    2022年10月12日
  • Hadoop 生态系统的构成(Hadoop 生态系统组件释义)

    Hadoop 生态系统的构成(Hadoop 生态系统组件释义)现在先让我们了解一下Hadoop生态系统的构成,主要认识Hadoop生态系统都包括那些子项目,每个项目都有什么特点,每个项目都能解决哪一类问题,能回答这三个问题就可以了(本段属于热身…重在理解Hadoop生态系统组成,现状,发展,将来)。HDFS:HDFS(HadoopDistributedFileSystem,Hadoop分布式文件系统)是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号