Delphi GLScene экспортирует сцену как stl

У меня есть GLScene проект. в SceneViewer Я импортирую некоторые stl файлы в произвольной форме. Пользователь может взаимодействовать с этими объектами (перемещать и вращать их с помощью мыши).

Теперь я должен экспортировать все это Scene в один файл STL, поэтому положение и поворот произвольных форм должны быть такими же, как в Scene после этого экспорта ("слияние").

Я нашел эту тему о той же проблеме: экспортировать "сцену" в файл STL, но это создает поврежденный файл stl (попытался открыть с помощью meshlab).

Я надеюсь, что есть идея для создания решения. Если кто-то знает решение для другого формата 3d-файла, оно тоже будет отличным.

1 ответ

Решение

Я нашел решение:-)

ссылка в ответе почти правильная, но мне нужно рассчитать информацию заголовка (количество фасеток) другим способом. Теперь я использую цикл вычислить заголовок, прежде чем писать, вот и все. Иногда решение так близко.

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
Другие вопросы по тегам