Community
AutoCAD Produktfamilie - Deutsch
Das Forum für alle Fragen zu AutoCAD, LT, Architecture, Electrical, Map 3D, Mechanical, MEP, Plant 3D, Raster Design, Web App, sowie Autodesk Civil 3D und Advance Steel.
abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 

DXF-Dateien 3D - Schnittstelle - Polylinien

9 ANTWORTEN 9
Antworten
Nachricht 1 von 10
tkornicki
712 Aufrufe, 9 Antworten

DXF-Dateien 3D - Schnittstelle - Polylinien

Wir sind dabei, für ein von uns entwickeltes Programm eine Routine zum Einlesen von DXF-Dateien zu implementieren. Dabei haben wir einige Probleme.

 

Grundsätzlich können wir schon 3D-DXF-Dateien einlesen, wenn alle Objekte in Form von geschlossenen Polylinien vorliegen. Wir haben auch versucht, unsere Routine zu erweitern, so dass auch normale Linien eingelesen werden können. Dabei haben wir aber das Problem, dass es schwierig ist, diese Linien immer richtig zu kombinieren, damit sich geschlossene Polylinien daraus ergeben. Intern werden in unserem Programm alle Objekte als 3D-Quader repräsentiert. Wir können mit Linien also nur etwas anfangen, wenn man jeweils vier oder mehr Linien zu einer ebenen Fläche kombinieren kann.

 

Wir haben auch das Problem gehabt, dass 3D-Objekte in AutoCAD oft als 3DSOLID abgespeichert werden. Der Befehl 3DSOLID ist nicht dokumentiert und kann von uns daher auch nicht verarbeitet werden. Wir haben festgestellt, dass man in AutoCAD erreichen kann, dass 3DSOLID nicht verwendet wird, indem man die Datei im Format "AutoCAD R12/LT2 DXF" abspeichert. Dann werden die Objekte nicht als 3DSOLID abgespeichert, sondern als einzelne Linien. Das ist, wie bereits gesagt, auch mit Problemen verbunden. Deswegen meine erste Frage: Kann man AutoCAD so einstellen, dass die 3D-Modelle nicht als 3DSOLID abgespeichert werden, sondern als Polylinien bzw. Polyfaces?

 

Damit verbunden wäre auch meine zweite Frage, ob es in AutoCAD grundsätzlich eine effiziente Möglichkeit gibt, 3D-Objekte in Polylinien umzuwandeln. Wir haben festgestellt, dass man grundsätzlich jedes Objekt in Polylinien umwandeln kann, aber die Methode, die wir gefunden haben, ist mit großem Aufwand verbunden. Die Vorgangsweise, die wir gefunden haben:

 

1. Erstellen der 3D-Objekte durch Zeichnen der Grundfläche und Anwenden des Befehls "Extrusion".

2. Auflösen der einzelnen Seiten in Linien durch mehrmaliges Anwenden des Befehls "Ursprung".

3. Nachzeichnen der einzelnen Seiten als 3D-Polylinien (sehr mühsam!).

 

Das führt zwar zum gewünschten Ergebnis (wir können diese Dateien in unserem Programm einlesen), aber es ist einfach mit einem zu großen Aufwand verbunden, um in der Praxis wirklich eingesetzt werden zu können.

 

Was sollten wir unseren Benutzern empfehlen, wie sie die Dateien für unser Programm aufbereiten sollten?

 

Besten Dank.

9 ANTWORTEN 9
Nachricht 2 von 10
Alfred.NESWADBA
als Antwort auf: tkornicki

Hi,

 

gleich vorweg, verzeihe die kurzen Antworten, die vielleicht dadurch unhöflich wirken. Aber kurze Antworten sind effizienter, kurze Antworten hier können u.U. durch die Kürze unangenehm erscheinen. Aber so bin ich nicht und unhöflich meine ich dies keinesfalls.

 

>> Wir haben auch versucht, unsere Routine zu erweitern, so dass auch normale Linien eingelesen

>> werden können. Dabei haben wir aber das Problem, dass es schwierig ist, diese Linien immer

>> richtig zu kombinieren, damit sich geschlossene Polylinien daraus ergeben

Ich weiß, dass diese Antwort vielleicht nicht nett ist, versucht diese aber zu verstehen:

Linien in AutoCAD sind 3D-Objekte, können also unterschiedliche Z-Werte für Start- und Endpunkt haben.

Wenn Ihr davon ausgeht, dass immer nur von 2D-Objekten extrudiert wird, dann entspricht das dem Stand AutoCAD Version 9 (aus dem Jahre 1987)

 

>> die Datei im Format "AutoCAD R12/LT2 DXF" abspeichert. Dann werden die Objekte nicht als 3DSOLID abgespeichert,

Weil AutoCAD Versison 12 die heutige BREP-Technologie noch nicht unterstützt, aber auch hier: eine Kugel als 3D-Solid exportiert wird auch nicht zu einem 2D-Linienzug. Selbst wenn, dann könntet Ihr eine Kugel nicht von einem Zylinder unterscheiden.

 

>> Kann man AutoCAD so einstellen, dass die 3D-Modelle nicht als 3DSOLID abgespeichert werden

Nicht falsch verstehen, DXF speichert, was der User gezeichnet hat. Ich wäre sehr sauer, wenn ich ein 3D-Solid zeichne, die Datei als DXF speichere, das DXF später wieder öffne und das Element ist nicht mehr das, was ich gespeichert habe!

DXF ist kein Export-Format, es ist ein normales Speicherformat, nur halt weitestgehend lesbar (und wird deswegen im CAD-Bereich gerne für Datenaustausch verwendet.

 

Lasst mal wissen, was Ihr eigentlich bauen wollt.

Denn alles aus dem DXF zu unterstützen ist schon ein relativ hartes Unterfangen und deutet auf mehrere Mannmonate oder Mannjahre Entwicklung hin. Vielleicht denkt man statt dessen nach, einfach ein CAD-System als Kern zu verwenden, das schon DXF lesen kann.

 

- alfred -

------------------------------------------------------------------------------------
Alfred NESWADBA
Ingenieur Studio HOLLAUS ... www.hollaus.at ... blog.hollaus.at ... CDay 2024
------------------------------------------------------------------------------------
(not an Autodesk consultant)
Nachricht 3 von 10
tkornicki
als Antwort auf: Alfred.NESWADBA

Hallo Alfred,

 

du hast Recht, dass es mit großem Aufwand verbunden wäre, alles zu unterstützten, was mit DXF möglich ist.

 

Wir haben uns bis jetzt auf folgendes beschränkt:

1. 3D-Objekte müssen als geschlossene Polylinien bzw. Polyfaces modelliert sein.

2. Grund- und Deckfläche von prismatischen Objekten müssen parallel zu XY-, YZ- oder ZX-Ebene und bis auf eine Koordinate deckungsgleich sein.

 

Man kann in unserem Programm also zum Beispiel eine DXF-Datei einlesen, die mehrere prismatische Objekte als Polylinien bzw. Polyfaces enthält, wie etwa Prismen mit sechseckiger Grundfläche. Man kann auch Zylinder einlesen, wenn die Grundfläche als Polygon modelliert ist.

 

Kugeln können wir nicht einlesen - du hast völlig Recht, dass man das mit den Anforderungen, die wir derzeit stellen, gar nicht modellieren kann.

 

Grundsätzlich geht es uns vor allem darum, Objekte einzulesen, die in Gebäuden vorkommen könnten. Wichtig wären zum Beispiel Rohre, Dächer, Fenster oder auch sehr dünne Elemente wie etwa Heizmatten.

Nachricht 4 von 10
Alfred.NESWADBA
als Antwort auf: tkornicki

Hi,

 

Zwei Stellen aus Deinem Text:

>> Objekten müssen parallel zu XY-, YZ- oder ZX-Ebene und bis auf eine Koordinate deckungsgleich sein.

>> Wichtig wären zum Beispiel Rohre, Dächer,

Das geht nicht, solange Dächer keine Flachdächer sind, oder?

 

>> Grundsätzlich geht es uns vor allem darum, Objekte einzulesen, die in Gebäuden vorkommen könnten

>> Wir haben uns bis jetzt auf folgendes beschränkt:

Es ist verständlich, die Anforderungen zu reduzieren, um damit Entwicklungskosten zu reduzieren. Aber Ihr habt das Problem (so sehe ich das nach Unkenntnis dessen, was Ihr machen wollt), dass Ihr da am Markt vorbeientwickelt. Die Welt da draußen wird nicht die gesamte CAD-Abteilung mit Mitteln konstruieren lassen, die aus dem vorigen Jahrtausend sind, nur damit in Eurem System die Daten einlesbar sind (und verlieren dadurch eine Menge Effizienz).

Wenn Ihr Architekturpläne einlesen wollt, dann kommen noch ganz andere Sachen auf Euch zu, nämlich nicht nur 3D-Solids, sondern auch AEC-Objekte wie Wand/Tuer/Fenster u.v.m. ==> das ist noch eine ganze Stufe mehr als 3D-Solids.

 

Mein Ansatz wäre hier einer von:

  • ein fertiges CAD-System und Euer Programm arbeitet da drin (dann habt Ihr Zugriff bis hin zu jeder 3D-Fläche, dann auch bei Kugeln, über die BREP-API)
  • auf bestehende API's zurückgreifen, das kann AutoCAD OEM sein, das kann auch >>>OpenDesign<<< sein
  • sich vielleicht mit anderen Schnittstellen auseinandersetzen, die von AutoCAD geschrieben werden können und leichter programmierbar sind (das könnte, wenn es nur um Architektur geht, vielleicht IFC sein, wird von AutoCAD Architecture und Revit unterstützt).
  • viele Mannjahre Entwicklung in DXF hineinstecken, in dem Wissen, dass in DXF nicht alles lesbar ist, weil auch hier ein Teil binär hineinkodiert ist.

 

Harte Worte, ich weiß 😉

 

- alfred -

------------------------------------------------------------------------------------
Alfred NESWADBA
Ingenieur Studio HOLLAUS ... www.hollaus.at ... blog.hollaus.at ... CDay 2024
------------------------------------------------------------------------------------
(not an Autodesk consultant)
Nachricht 5 von 10
tkornicki
als Antwort auf: Alfred.NESWADBA

Hallo Alfred,

 

leider hast du uns keine Antworten auf unsere konkreten Fragen gegeben.

 

"ein fertiges CAD-System und Euer Programm arbeitet da drin (dann habt Ihr Zugriff bis hin zu jeder 3D-Fläche, dann auch bei Kugeln, über die BREP-API)"

 

Was meinst du damit? Unser Programm ist ein eigenständiges Programm, das in erster Linie zur Berechnung diverser physikalischer Eigenschaften dient. Wir bieten die CAD-Schnittstelle nur an, um unseren Kunden das Leben leichter zu machen. Autodesk sollte sich freuen, dass wir diese Schnittstelle den Benutzern zur Verfügung stellen möchten.

Nachricht 6 von 10
Alfred.NESWADBA
als Antwort auf: tkornicki

Hi,

 

>> leider hast du uns keine Antworten auf unsere konkreten Fragen gegeben.

Wow, nun denn:

Die "konkreten" Fragen, die ich erkennen kann (also mit Fragezeichen endend)

 

>> Deswegen meine erste Frage: Kann man AutoCAD so einstellen, dass die 3D-Modelle nicht als

>> 3DSOLID abgespeichert werden, sondern als Polylinien bzw. Polyfaces?

Nein.

 

>> ob es in AutoCAD grundsätzlich eine effiziente Möglichkeit gibt, 3D-Objekte in Polylinien umzuwandeln. 

Nein,

Nicht mal in der Theorie, weil Kugeln nicht in Polylinien umwandelbar sind.

 

>> Was sollten wir unseren Benutzern empfehlen, wie sie die Dateien für unser

>> Programm aufbereiten sollten?

Zeichnen wie vor 30 Jahren, Polylinien, Extrudieren, der Rest funktioniert ja nicht.

 

Konkret genug?

 

- alfred -

------------------------------------------------------------------------------------
Alfred NESWADBA
Ingenieur Studio HOLLAUS ... www.hollaus.at ... blog.hollaus.at ... CDay 2024
------------------------------------------------------------------------------------
(not an Autodesk consultant)
Nachricht 7 von 10
Alfred.NESWADBA
als Antwort auf: tkornicki

Hi,

 

>> "ein fertiges CAD-System und Euer Programm arbeitet da drin (dann habt Ihr Zugriff bis

>> hin zu jeder 3D-Fläche, dann auch bei Kugeln, über die BREP-API)"

>> Was meinst du damit?

Euer Programm hat bei DXF keine Chance, die Geometrie vollständig abzuleiten, da es die Struktur der 3D-Geometrie nicht erkennen kann und es keine API gibt, die außerhalb von CAD-Systemen läuft und 3D-Volumenkörper für Euch erkennbar macht.

Daher die Alternative: Ihr baut einen Teil Eurer Applikation so, dass Ihr das DXF im AutoCAD öffnet, damit auf die BREP-API `Zugriff habt und dann leitet Ihr die Volumenkörper so ab, wie Ihr diese braucht. Mit dem Ergebnis kann dann der andere Teil Eures Programms weiterarbeiten.

 

>> Unser Programm ist ein eigenständiges Programm, das in erster Linie zur

>> Berechnung diverser physikalischer Eigenschaften dient. Wir bieten die CAD-Schnittstelle nur an,

>> um unseren Kunden das Leben leichter zu machen. Autodesk sollte sich freuen, dass wir diese

>> Schnittstelle den Benutzern zur Verfügung stellen möchten.

Autodesk muss nicht glücklich mit Eurer App sein, Eure Kunden sollten mit Eurem Programm glücklich werden.

Und ich habe versucht, zu erklären, wieso mit dem eingeschlagenen Weg Eure Kunden nicht glücklich werden können. Wenn Ihr Architekten in deren künstlerischen Freiheit einschränkt (keine Schrägen und im 3D-Raum liegende Rundungen zu verwenden, dabei haben wir bis jetzt noch nicht von Nurbs etc gesprochen), die Konstrukteure dazu bringen wollt, mit Mitteln und Werkzeugen zu arbeiten, welche die Arbeit um einen Faktor > 100 verlangsamen, dann halte ich die eingeschlagene Richtung für "am Kundeninteresse vorbei entwickelt".

 

- alfred -

------------------------------------------------------------------------------------
Alfred NESWADBA
Ingenieur Studio HOLLAUS ... www.hollaus.at ... blog.hollaus.at ... CDay 2024
------------------------------------------------------------------------------------
(not an Autodesk consultant)
Nachricht 8 von 10
m_latz
als Antwort auf: Alfred.NESWADBA

Ich müßt ja nicht über DXF einlesen. Denkt mal über IGES nach. Diese Schnittstelle hat auch fast jedes CAD-System und die Definition ist komplett offengelegt.

 

Da müßtest Ihr allerdings, wie bei DXF auch Leseroutinen schreiben.

 

Aber vielleicht würde auch DWF oder FBX zum Einlesen gehen. Da gibt es seitens Autodesk Toolkits zum Lesen/Schreiben der Formate.

Ist allerdings außerhalb von Autodesk nicht weit verbreitet.

 

Gruß

 

Markus

Nachricht 9 von 10
Sofia.Xanthopoulou
als Antwort auf: m_latz

Hallo Leute,

 

dann werde ich mich auch mal dazu äußern, denn ich hatte gerade so etwas ähnliches. Nur mal vorweg gesagt... Ich habe höchsten Respekt davor was Alfred sagt. Mit der Erfahrung kann ich nicht mithalten, deshalb würde ich immer darauf vertrauen, dass das was er sagt immer Hand und Fuss hat Smiley (zwinkernd)

 

Der Kundendatensatz, den ich neulich in den Händen hatte, beinhaltete Splines. Ziel war es einfach nur geschlossene 2D-Polylinien zu bekommen. 

Nachdem die Splines zu Polylinien konvertiert wurden, habe ich 3D Polylinien bekommen. Und jetzt kommt vielleicht der für dich interessante Teil. Die 3D Objekte habe ich dann versucht mit "_flatten",  "_overkill", "_flatshot"und "_solprof" loszuwerden. (Hier übrigens auch ein Beitrag dazu). Da meine Originaldaten schon nicht ganz sauber waren, hat mich das nicht überzeugt - meine Polylinien hatten hunderte von Scheitelpunkten. Auch mit _viewbase und _exportlayout war ich nicht ganz zufrieden.

 

Das beste Ergebnis habe ich erzielt, indem ich eine PDF-Datei rausgeschrieben und diese wieder eingelesen hab - AutoCAD PDF (General Dokumentation). Plump, aber es hat funktioniert.

 

Vielleicht ist das ja für dich. 

 

Ich würde mich sehr freuen, wenn ich hierzu ein Feedback von dir bekommen würde.

 

Vielen Dank

 

LG

 

 

-----------------------------
Zur Erinnerung: Vergesst nicht für hilfreiche Posts Kudos zu vergeben und den Post, der das Problem gelöst hat, als Lösung zu markieren.

Nachricht 10 von 10
Sofia.Xanthopoulou
als Antwort auf: tkornicki

Hallo @tkornicki,

 

ich wollte mal nachfragen, ob du dich hierzu nochmals äußern möchtest. Es wäre super, wenn du allen Lesern deine Erfahrungen mitteilen könntest. Welchen Weg hat du eingeschlagen? Konnten dir unsere Vorschläge dabei helfen, oder hast du eine andere Lösung gefunden? 

Wenn keiner unserer Posts eine akzeptable Lösung für dich dargestellt hat, kannst du gerne deine Lösung posten und diese als solche kenntlich machen (grüner Knopf).

 

Dein Beitrag ist sehr interessant und ich würde mich freuen, wenn wir allen Leser einen möglichen Lösungsweg anbieten könnten.

 

Vielen Dank

 

LG

 

Sie finden nicht, was Sie suchen? Fragen Sie die Community oder teilen Sie Ihr Wissen mit anderen.

In Foren veröffentlichen  

Autodesk Design & Make Report