我有一个 GLScene
项目。在 SceneViewer
中,我导入一些自由格式的 STL 文件。
用户可以与该对象交互(用鼠标移动和旋转它们)。
现在我必须将整个场景
导出到一个STL文件,因此自由形式的位置和旋转应该像导出(“合并”)后的场景
。
我发现这个线程关于同样的问题:Export "Scene" to STL File但这会创建一个损坏的 STL 文件(尝试使用 meshlab 打开)。
我希望有一些创建解决方案的想法。 如果有人知道另一种 3d 文件格式的解决方案,那就太好了。
最佳答案
我找到了解决方案:-)
答案中的链接几乎是正确的, 但我必须以其他方式计算 header 信息(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
关于Delphi GLScene 将场景导出为 STL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14318593/