2013-01-14 13 views
5

Ho un progetto GLScene. Nel file SceneViewer importare alcuni file stl come freeform. L'utente può interagire con questi oggetti (spostarli e ruotarli con il mouse).Delphi scena di esportazione GLScene come stl

Ora devo esportare questo file STL intero Scene a uno , quindi la posizione e la rotazione delle forme libere dovrebbe essere come nel Scene dopo questa esportazione ("merge").

Ho trovato questo thread per lo stesso problema: Export "Scene" to STL File ma questo crea un file stl danneggiato (provato aperto con meshlab).

Spero ci sia qualche idea per creare una soluzione. Se qualcuno conosce una soluzione per un altro formato di file 3d, sarà anche bello.

+0

Nessuno, chi ha qualche idea per questo problema? – user1116033

risposta

0

ho trovato la soluzione :-)

il link nella risposta è quasi giusto, ma devo calcolare le informazioni di intestazione (conte di faceletts) in un altro modo. ora uso un ciclo e calcola l'intestazione prima di scrivere tutto questo. A volte la soluzione è così vicina.

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