如何创建包含多个实体的二进制STL文件?
问题描述:
在ASCII STL文件中包含多个实体已被很好地描述。如何创建包含多个实体的二进制STL文件?
solid name1
facet normal N.x N.y N.z
outer loop
vertex V1.x V1.y V1.z
vertex V2.x V2.y V2.z
vertex V3.x V3.y V3.z
endloop
endfacet
facet …
…
endfacet
…
endsolid name1
solid name2
…
endsolid name2
…
但是,二进制STL文件描述的格式没有提及任何关于包含多个实体对象的内容。
80 Bytes string Header
4 Bytes uint32 Facets count
| 4 Bytes float N.x
| 4 Bytes float N.y
| 4 Bytes float N.z
| 4 Bytes float V1.x
| 4 Bytes float V1.y
| 4 Bytes float V1.z
facet1| 4 Bytes float V2.x
| 4 Bytes float V2.y
| 4 Bytes float V2.z
| 4 Bytes float V3.x
| 4 Bytes float V3.y
| 4 Bytes float V3.z
| 2 Bytes uint16 Attrib
facet2| …
facet3| …
…
答
在二进制格式中,每个方面都有一个属性(attrib
)。 attrib
相同的方面将被视为同一固体的一部分。
无论如何,STL中固体的含义是什么?它不是三角形吗?而你如何安排他们取决于你。所以把它们排列成固体。 –
如果您的二进制STL文件被其他应用程序读取,则可能不是这种情况。我的目的是生成一个STL文件,其中包含多个实体对象作为模型的不同边界,并将其导入到ANSYS Fluent/ICEM CFD软件中。 – Mimi
在这里,“坚实”只是一个部分。 – Mimi