AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

GLScene Export

Ein Thema von janiz · begonnen am 17. Jan 2013 · letzter Beitrag vom 30. Jan 2013
Antwort Antwort
janiz

Registriert seit: 17. Jan 2013
4 Beiträge
 
#1

GLScene Export

  Alt 17. Jan 2013, 16:36
Hallo Forumsteilnehmer,

ich habe ein Problem, für welches ich einfach keine Loesung finde.

Meine Applikation enthält einen GLScene mit mehrenen Freeforms. Diese werden bei Bedarf mit STL Dateien bestückt (geladen).
Der Benutzer kann nun die Formen mit der Maus bezüglich ihrer Rotation und ihrer Position manipulieren.
Nun soll es moeglich sein die so positionierten Freeforms in eine Datei zu exportieren.
Ich weiss, dass ich einzelne Freeforms beispielsweise mittels Freeform.Savetofile('xxx.stl') wiederum speichern kann.
Dies soll aber nicht das Ziel sein. Ziel soll es sein, eine Datei zu erzeugen (z.B. STL oder ähnliches) welches die Formen selbst und deren
Positionierung enthält. Also eine Art "merge" der Formen, ohne dass die Information über deren relative Position und Drehung verloren geht.
Ich habe hier: http://glscene.general.free-usenet.e...e_T25486686_S1
Einen Link gefunden, welcher offenbar genau meine Problematik beschreibt. Ein Versuch die dort beschriebene Loesung zu verwenden, fuehrt zwar zu einer Datei, aber diese kann ich nicht oeffen (z.B. mit Meshlab).

Vielleicht gibt es auch einen ganz anderen Ansatz, den ich nicht kenne.

Lieben Dank im Voraus für Ideen.
Ich hoffe das Thema passt überhaupt hier herein.

PS: meine "oe" Taste an der Tastatur funktioniert gerade nicht, daher immer mit "oe".

Geändert von janiz (17. Jan 2013 um 16:43 Uhr)
  Mit Zitat antworten Zitat
Unx

Registriert seit: 24. Aug 2010
30 Beiträge
 
#2

AW: GLScene Export

  Alt 17. Jan 2013, 17:19
Schau dir mal die STL Datei mit einem Editor an (falls ASCII Datei)
STL ist ein simples Format http://en.wikipedia.org/wiki/STL_(file_format)
evtl. findest ja den Fehler.
  Mit Zitat antworten Zitat
janiz

Registriert seit: 17. Jan 2013
4 Beiträge
 
#3

AW: GLScene Export

  Alt 17. Jan 2013, 17:22
Hallo,

danke, das habe ich bereits gemacht (hätte ich auch erwähnen können).
Nun, die Datei ist im Binärformat und sieht (ich bin aber kein Experte) eigentlich ok aus (Hexeditor).

Danke und Grüße
  Mit Zitat antworten Zitat
janiz

Registriert seit: 17. Jan 2013
4 Beiträge
 
#4

AW: GLScene Export

  Alt 30. Jan 2013, 20:11
Ich freue mich sehr darüber, dass ich eine Lösung gefunden habe.

Im prinzip hatte der Beitrag im Link der Frage recht.
Es waren nur noch wenige Modifikationen notwendig.
Insbesondere beim Header (Anzahl der Dreiecke für die binäre Datei).
Hier der Code, falls mal jemand ein ähnliches Problem zu lösen hat.

Code:
var j : integer;
   i : Integer;
   header : TSTLHeader;
   dataFace : TSTLFace;
   list : TAffineVectorList;
   

const
   cHeaderTag = 'GLScene STL export';
begin

FillChar(header.dummy[0], SizeOf(header.dummy), 0);
Move(cHeaderTag, header.dummy[0], Length(cHeaderTag));
//calculate header count
 for j := 0 to objects.Count - 1 do
 begin
      list:=TGLFREeform(objects[j]).MeshObjects.ExtractTriangles;
      header.nbFaces:= header.nbFaces + list.Count div 3;
 end;

       aStream.Write(header, SizeOf(header));

 for j := 0 to objects.Count - 1 do
 begin
      list:=TGLFREeform(objects[j]).MeshObjects.ExtractTriangles;


   try

      i:=0; while i<list.Count do begin
         dataFace.normal:=CalcPlaneNormal(list[i], list[i+1], list[i+2]);

        dataFace.v1:=VectorTransform(list[i],TGLFREeform(objects[j]).AbsoluteMatrix);
        dataFace.v2:=VectorTransform(list[i+1],TGLFREeform(objects[j]).AbsoluteMatrix);
        dataFace.v3:=VectorTransform(list[i+2],TGLFREeform(objects[j]).AbsoluteMatrix);

         aStream.Write(dataFace, SizeOf(dataFace));
         Inc(i, 3);

      end;

   finally
      list.Free;
   end;

 end;
Danke an alle die diesen Beitrag gelesen haben und ihn vielleicht interessant finden.
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz