Delphi GLScene导出场景为stl

时间:2013-01-14 12:40:53

标签: delphi stl export scene glscene

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

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

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

我希望有一些创意解决方案的想法。 如果有人知道另一种3d文件格式的解决方案,它也会很棒。

1 个答案:

答案 0 :(得分:1)

我找到了解决方案:-)

答案中的链接几乎是正确的, 但我必须以另一种方式计算标题信息(faceletts的数量)。 现在我使用一个循环来计算标题,然后再编写所有内容。 有时解决方案如此接近。

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