Delphi GLScene导出场景为stl

use*_*033 6 delphi stl export glscene scene

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

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

我发现这个线程有同样的问题:将"场景"导出到STL文件,但这会创建一个损坏的stl文件(尝试使用meshlab打开).

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

use*_*033 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
Run Code Online (Sandbox Code Playgroud)