Delphi GLScene将场景导出为stl

Delphi GLScene将场景导出为stl,delphi,stl,export,scene,glscene,Delphi,Stl,Export,Scene,Glscene,我有一个GLScene项目。在SceneViewer中,我将一些stl文件作为自由格式导入。 用户可以与这些对象交互(使用鼠标移动和旋转它们) 现在,我必须将整个场景导出到一个stl文件中,因此自由形式的位置和旋转应该与导出后的场景中类似(“合并”) 我发现这个线程也有同样的问题:但这会创建一个损坏的stl文件(尝试用meshlab打开) 我希望有一些想法来创建一个解决方案。 如果有人知道另一种3d文件格式的解决方案,它也会很棒 我找到了解决办法:-) 答案中的链接几乎是正确的, 但我必须以另一

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

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

我发现这个线程也有同样的问题:但这会创建一个损坏的stl文件(尝试用meshlab打开)

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

我找到了解决办法:-)

答案中的链接几乎是正确的, 但我必须以另一种方式计算标题信息(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

没人,谁知道这个问题?