Delphi GLScene 将场景导出为 STL

标签 delphi stl export scene glscene

我有一个 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/

相关文章:

ios - 将大量数据从核心数据导出到json

java - 将多个项目导出为一个 Eclipse 插件 JAR

dependencies - 为具有依赖项的共享库安装 EXPORT 问题

Delphi:覆盖基本方法的代码完成

c++ - std::vector 或 boost::vector 线程安全吗?

c++ - 使用 VS2013 x64 为 libmimetic(模拟)库构建 exbin 示例时出现 C2784 错误

c++ - 映射和运算符重载 C++

delphi - 如何在TEdit中屏蔽密码?

delphi - 你们的 Delphi 应用程序提供哪些类型的 API?

delphi - 如何将线程的起始地址与模块名称匹配?