Ist es möglich, 3D-DXF mit OGR zu erstellen?


8

Weiß jemand, ob es möglich ist, mit OGR einen 3D-DXF zu erstellen? Ich möchte den Konturlinien einen Z-Wert zuweisen und sie dann für einige CAD-Arbeiten nach dxf exportieren.

PS. Ich weiß, dass FME dies kann, möchte jedoch versuchen, eine kostenlose Lösung zu finden, und dies nach Möglichkeit in QGIS.


Autocad map3d macht das einfach.
— Brad Nesom

2
Ja, aber die Autocad-Karte ist nicht wirklich kostenlos
— Nathan W

Antworten:


9

Einfacher als ich dachte (danke an BenjaminGolder für den Tipp):

ogr2ogr -f "DXF" Contours.dxf Contours.TAB -zfield Height

Contours.TAB ist die eingegebene MapInfo-Registerkarte.


1
Soweit ich das beurteilen kann, funktioniert dies für Konturlinien, jedoch nicht für echte 3D-Linien, die für jeden Punkt eine (x, y, z) -Koordinate und nicht für jeden Punkt der Linie einen z-Wert haben
— johanvdw

Ich habe dies in FWTools (2.4.7) ohne Glück versucht. Hat jemand Glück gehabt? Ich bin nicht sicher, ob mir etwas in meiner GDAL fehlt?
— Ryan Garnett

3

Der Vollständigkeit halber.

Ich glaube, dies sollte ein Kommentar zur Antwort von Regan sein. Aber da ich nicht genug Ruf habe, lasse ich es als Antwort.

Der DXF-Writer unterstützt 2,5D-Ebenen und sollte bei einer Zeileneingabe einen 3D-Linienstring auf dxf ausgeben.

Bei der Eingabe von POLYGONS müssen Sie vorsichtiger sein, da der Treiber standardmäßig einen dxf HATCH mit einer Polylinie generiert . Und gemäß Formatspezifikation unterstützt diese Linie keine Z-Koordinaten, nur X, Y.

Wenn Sie Polygone eingeben, kann ogr dxf mit 3D-Linestrings exportieren, die diese Polygone darstellen. Dazu müssen Sie die Konfigurationsoption DXF_WRITE_HATCH auf NO setzen.

//Bash
export DXF_WRITE_HATCH=NO
ogr2ogr -f "DXF" Contours.dxf Contours.TAB

//Windows
set NEWVAR=SOMETHING
ogr2ogr -f "DXF" Contours.dxf Contours.TAB

Soweit mir bekannt ist, wird dies nirgendwo dokumentiert oder erklärt, es wurde in Revision 24991 hinzugefügt


1

Ich habe es nie versucht, aber es sollte möglich sein. Der Quellcode für den DXF-Treiber schreibt Z-Werte in dxf, wenn die Geometrie 2,5 D beträgt. Dies entspricht (gemäß der Quelle für den Shapefile-Reader ), wenn die Eingabeform Z-Werte aufweist.


Das klingt gut. Nächste Frage: Wie erstellen Sie ein Shapefile mit Z-Werten? Angenommen, ich habe eine Spalte mit dem Namen "Höhe". Gibt es eine einfache Möglichkeit, dies als Z-Wert festzulegen?
— Nathan W

Vorausgesetzt, das Shapefile ist Z-fähig, können Sie mit ArcGIS einen Codeblock im Feldrechner verwenden. Ich weiß nicht, wie du es in Qgis machen würdest.
— Regan Sarwas

1
In der ogr2ogr-Dokumentation scheint es, dass Sie mit dem -zfieldArgument ein 3D-Shapefile erstellen und dann einen Feldnamen angeben können , der z-Werte enthält. gdal.org/ogr2ogr.html
— BenjaminGolder

@BenjaminGolder Das hört sich gut an. Ich werde es versuchen.
— Nathan W

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.