Hallo Leute!
Mein Problem ist folgendes:
Ich möchte einen Umwandler schreiben, der mir eine 3d Zeichnung in ein anderes Format umwandelt/ausgibt.
Wie dieses Format auszusehen hat, weis ich aber dazu brauche ich von jeder Fläche des Solids 3 Punkte und diese noch im Urzeigersinn.
In der Zeichnung sind beliebig viele Solids unterschiedlichster Art (Pyramiden, Quader, Säulen...) aber keine mit gekrümmten Flächen (Kugel, Torsus ...)
Bis jetzt habe ich das ganze ziemlich umständlich gelöst, indem ich jeden Solid auf einen eigenen Layer lege und alle sperre. Nacheinander entperre ich einen nach dem anderen Layer und mach sendcommand("_explode all ") damit der Solid gesprengt wird (die Aktion .explode gibts ja leider nur bei Regionen und nicht beim Solid). Dann durchlaufe ich in einer Schleife alle gefundenen Regionen, spreng eine, speicher die Koordinaten der Anfangs und Endpunkte der entstandenen Linien ,lösche alle doppelt auftauchenden Koordinaten, und mach dann mit der nächsten Region weiter. Sind alle Regionen abgearbeitet, kommt der nächste Solid/Layer dran.
Problem dabei: dauert ewig (3 Würfel in 30 Sekunden) und wenn die Koordinaten nicht zufällig im Urzeigersinn kommen, war alles um sonst.
Wie bekomme ich direkt vom Solid jeder seiner Flächen die Eckkoordinaten (ich muss aber wissen welche der Koordinaten zu der gleichen Fläche gehören)?
z.B. dass Autocad ausgibt: Solid1, Fläche1, x1 y1 z1, x2 y2 z2...
Solid1 Fläche2 x1 y1 z1, x2 y2 z2...
...
Solid2, Fläche1, x1 y1 z1, x2 y2 z2...
usw.
Wie bekomme ich die von Autocad ausgegebenen Koordinaten in die richtige Reihenfolge (Uhrzeigersinn).
Oder, für meine umständliche Lösung, wie sortiere ich meine Koordinaten in den Uhrzeigersinn?
------------------
Mfg Andreas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP