STL两种格式:文本格式与二进制格式 |
您所在的位置:网站首页 › 如何编辑stl文件 › STL两种格式:文本格式与二进制格式 |
STL格式
一个StL(Stereolithography,光固化立体造型术的缩写)文件是 3 维表面几何的三角形表示。表面被细分或逻辑分解为一系列小三角形(面)。每个面由一个垂直方向(法线向量)和代表三角形顶点(角)的三个点描述。切片算法使用这些数据来确定制造商要构建的 3 维形状的横截面。 ASCII格式StL 文件由一系列(方)面数据组成。每个面由单位法线(垂直于三角形且长度为 1.0 的线)和三个顶点(角)唯一标识。法线和每个顶点分别由三个坐标指定,因此每个面总共存储了 12 个数字。如图1所示。 二进制STL文件用固定的字节数来给出三角面片的几何信息。文件起始的80个字节是文件头,用于存贮零件名;紧接着用 4 个字节的整数来描述模型的三角面片个数,后面逐个给出每一个三角面片的几何信息。每一个三角面片占用固定的50个字节,依次是3个4字节浮点数(角面片的法矢量)3个4字节浮点数(1个顶点的坐标)3个4字节浮点数(2个顶点的坐标)3个4字节浮点数(3个顶点的坐标)个三角面片的最后2个字节用来描述三角面片的属性信息。一个完整二进制STL文件的大小为三角形面片数乘以 50再加上84个字节,总共134个字节。 这里是引用“STL文件在医学软件开发中的应用” FACET法线向量的求取
1.代码1 #! /usr/bin/env python 3 with open(“stlbinaryfile.stl”, “rb”) as fichier : #! /usr/bin/env python3 with open(“stlbinaryfile.stl”, “rb”) as fichier : head=fichier. read(80) nbtriangles=fichier.read(4) print(nbtriangles) head=fichier.read (80) nbtriangles=fichier. read (4) print(nbtriangles) 2.代码2 import stl with open (‘kiki.stl’, ‘rb’) as f: import stl with open(‘kiki.stl’, ‘rb’) as f : kiki = stl.read_binary_file(f) print(kiki.facets[0]. normal, kiki.facets[0].vertices) print(kiki.name) kiki = stl.read_binary_file(f) print(kiki.facets[0]. normal, kiki.facets[0].vertices) print(kiki.name) 3.代码3 import numpy from stl import mesh your_mesh = mesh.Mesh.from_file(‘cube.stl’) print(‘法线’, your_mesh.normals) print(‘点’, your_mesh.points) print(‘v0表示三角面第一个点’, your_mesh.v0) print(‘x表示所有点的x坐标’, your_mesh.x) 4.实例 import vtkplotlib as vpl from stl.mesh import Mesh path = “your path here.stl” mesh = Mesh.from_file(path) vpl.mesh_plot(mesh) vpl.show() #If you want the brick to be blue you can replace the mesh_plot with vpl.mesh_plot(mesh, color=“blue”) 这里是引用"python读取stl文件三维坐标,在Python中从STL文件渲染2D图像" 结论STL格式在建模过程中的应用比较有潜力,研究这种格式的模型文件读取具有重要意义。PYTHON在编程之前需要安装STL库(pip install stl) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |