6

我有一个GLScene项目。在SceneViewer我将一些 stl 文件导入为自由格式。用户可以与这些对象进行交互(用鼠标移动和旋转它们)。

现在我必须将整个导出Scene到一个stl 文件中,因此自由形式的位置和旋转应该与Scene导出(“合并”)之后的一样。

我发现这个线程关于同样的问题:Export "Scene" to STL File但这会创建一个损坏的 stl 文件(尝试使用 meshlab 打开)。

我希望有一些想法来创建解决方案。如果有人知道另一种 3d 文件格式的解决方案,那也太好了。

4

1 回答 1

1

我找到了解决方案:-)

答案中的链接几乎是正确的,但我必须以其他方式计算标题信息(小面数)。现在我使用一个循环来计算标题,然后再写这一切。有时解决方案是如此接近。

var j :integer ; 
var i:integer; 
var header: TSTLHeader; 
var dataFace: TSTLFace; 
var list: TaffineVectorlist; 

//objects  = list of steFreeform objects
//astream  = created stream 
for  j := 0 to objects.count - 1 do 
begin
  list := TGLFREEForm(objects[j].MeshObjects.ExtractTriangles; 
  header.nbfaces :0 header.nbFaces + list.count div 3 ; 
end; 
aStream.write(header.SizeOf(header)); 
//rest see above link in the question
于 2013-01-30T19:05:06.847 回答