2013-01-14 6 views
5

나는 GLScene 프로젝트를 가지고 있습니다. SceneViewer에서 자유 형식으로 일부 stl 파일을 가져옵니다. 사용자는이 객체와 상호 작용할 수 있습니다 (마우스로 이동 및 회전).Delphi GLScene 내보내기 장면 stl로

는 지금은이 모든 Scene하나 STL 파일을 수출, 그래서 위치와 자유형 피처의 회전 ("병합")이 수출 후 Scene처럼해야한다.

이 스레드에서 동일한 문제 (Export "Scene" to STL File)가 발견되었지만 깨진 stl 파일이 생성되었습니다 (meshlab로 열어 보았습니다).

솔루션을 만들기위한 아이디어가 있기를 바랍니다. 누군가 다른 3D 파일 형식에 대한 해결책을 알고 있다면 너무 좋을 것입니다.

+0

아무에게도이 문제가 발생하지 않으십니까? – user1116033

답변

0

나는 발견했다

대답에있는 링크 :-) 솔루션, 거의 맞다하지만 나는 다른 방법으로 헤더 정보 (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