QGIS-PlugIn AnotherDXF2Shape V0.9 24.09.17 1. Aufgabe Das PlugIn dient zum Import von DXF-Dateien mit optionaler Abspeicherung im Shape-Format 2. Installation Das PlugIn kann als offizielles QGIS-PlugIn direkt über das Offizielle QGIS- Erweiterungsrepositorium bezogen werden. Eine Installation unter QGIS erfolgt per Erweiterungen Erweiterungen verwalten und installieren Another DXF Importer / DXF2Shape Converter Nach erfolgter Installation stehen die Funktionen unter Vektor DXF Import/Konvertierung bereit. Mindestvoraussetzung ist die QGIS-Version 2.8(Wien).
3. Bedienung 3.1. Importieren/Konvertieren 1. 2. 10. 3. 4. 5. 6. 7. 8. 9. 11. Unter (1.) erfolgt die Auswahl der zu importierenden/konvertierenden DXF-Dateien. Ab Version V0.4 können mehrere Dateien gleichzeitig importiert werden (Stapelimport). Unter (2.) kann eine Konvertierung der DXF nach Shape initialisiert werden. Bei Aktivierung der Option wird ein Zielverzeichnis abgefragt, in welchem die entstehenden Shape-Dateien gespeichert werden sollen:
Hinweis: Unabhängig von dieser Option erfolgt grundsätzlich eine Konvertierung nach Shape. Ist diese aber deaktiviert erfolgt die Generierung der Shapes ohne Nutzereingriff in einem temporären Verzeichnis. Wird das Kontrollkästchen (3.) aktiviert, werden Blöcke und Signaturen als separate Shapes (Layer) erzeugt (sh. auch 4.1. Geometriedatenübernahme). Unter Punkt (4.) kann festgelegt werden, ob im QGIS-Ebenenbaum für jeden DXF-Layer eine eigene Gruppe erzeugt werden soll. Die Texte einer DXF-Datei werden durch labeling eines Punktlayers generiert. Dabei wird Textinhalt und Darstellung aus der DXF gelesen, und über verschiedene Datenfelder die Beschriftung generiert. Unter (5.) kann zusätzlich festgelegt werden, ob der direkt am Text verwendete Formatierungscode umgesetzt und in der Anzeige ausgeblendet wird. In einer DXF-Datei können für die TEXT und die MTEXT-Struktur verschiedene Formatierungen vorgenommen werden. Ohne Umwandlung dieser Formatierungscodes wird der Text codiert angezeigt: z.b. MTEXT: TEXT: {\farial b0 i0 c0 p34;ein Text} %%u1106 Bei Aktivierung der Option (5.) wird der Formatierungscode ausgeblendet und folgende Parameter umgesetzt: Textaufhängung (ab GDAL 2.1) Unterstreichung Fettdruck Kursivschrift Schriftart Die außerhalb des Formatierungscodes vereinbarte Schriftgröße und der Textwinkel werden immer umgesetzt. Beispiele: MTEXT {\fverdana b0 i1 c0 p34;ein Text} EinText MTEXT \farial b1 i0 c0 p34;\lunterstrichen unterstrichen TEXT %%u1106 1106
Hinweis(Einschränkung: Eine im Text definierte (Teil-)unterstreichnung wird auf den gesamten Text angewandt. Die Größendarstellung eines Textes weicht zwischen verschiedenen Systemen (AutoCAD/QGIS) ab. Unter (6.) kann hier ein Faktor angegeben werden mit welchem die Textgröße in QGIS angepasst werden kann. Unter Punkt (7.) erfolgt die Angabe mit welchem Zeichensatz die Texte der DXF codiert sind. Hinweis: Wird hier ein falscher Zeichensatz angegeben, werden auch die Layernamen aus der DXF u.u. nicht korrekt gelesen. Dies kann dazu führen, dass die Layer nicht dargestellt werden (falsche Filterbedingung). Für alle Elemente der DXF wird mit Hilfe von OGR versucht, die Farbinformation aus der DXF zu ermitteln. Dies gelingt vor allem bei Blockinformationen nicht immer korrekt. Aus diesem Grund kann unter Punkt (8.) für jeden Geometrietyp individuell festgelegt werden, ob die Farbinformation aus der DXF angewendet werden soll. Anderenfalls wird eine interne Kategorisierung (Zufallsfarben) umgesetzt. Punkt (10.) aktiviert die Transformationsoptionen(Georeferenzierung). Punkt (11.) setzt die Einstellungen auf Standard zurück. Punkt (9.) startet den eigentlichen Importvorgang.
Als erster Schritt muss (bei entsprechender Voreinstellung) zunächst das Koordinatenreferenzsystem (KBS) der DXF-Datei ausgewählt werden Danach startet die eigentliche Konvertierung und Präsentation Die entstandenen (Shape-)Layer werden entsprechend der Vorgabe (4.) entweder nach DXF-Layern kategorisiert oder in einzelnen Gruppen aufgespalten. Variante 1) Gruppierung nach Layer Für jeden DXF-Layer wird eine Gruppe erzeugt, in welche dann für jede Geometrieart ein eigene Shape-Verknüpfung erzeugt wird. Dabei wird die jeweilige Shapedatei nach dem DXF-Layer gefiltert:
Variante 2) Keine Gruppierung Für jeden Geometrietyp (jedes Shape) wird ein Eintrag erzeugt, in welche dann nach Layer kategorisiert wird: Speichern der Einstellungen Die beim DXF-Import erzeugten Gruppen und Einstellungen können als Layerdefinitionsdatei gespeichert/geladen werden: Klick mit rechter Maustaste :
Rechte Maustaste Beispiel: AutoCAD und QGIS (Another DXF Importer)
3.2. Georeferenzierung Ab Programmversion V0.9 besteht die Möglichkeit der Transformation der DXF-Daten. 3.2.1. Parameter Mittels X- und Y-Offset kann eine einfache Verschiebung der DXF erreicht werden. Dies ist y.b. sinnvoll, wenn im CAD/System die originalen Koordinaten gekürzt wurden. 3.2.2. World-Files für CAD-Datasets Ein World-File (.wld) ist eine Textdatei mit Passpunkten, die eine Koordinatentransformation beschreiben. Mithilfe einer World-File können die Eigenschaften einer CAD-Zeichnung um Georeferenzierungsinformationen erweitert werden. Die Informationen werden als Koordinatenwerte gespeichert, die einen oder mehrere Versatzvektoren, sogenannte Links, definieren. Die Daten bestehen aus zwei oder vier Paar Koordinaten, die in zwei Zeilen organisiert sind. Jede Zeile definiert einen Versatz-Link mithilfe der folgenden Syntax: <From x,y> <space> <To x,y>. Das erste Paar an Koordinaten in jeder Zeile entspricht den Quellkoordinaten, die auch als "von"-koordinaten bezeichnet werden. Diese Werte stellen die XY-Position eines beliebigen bekannten Passpunkts in der CAD-Zeichnung dar. Das zweite Paar an Koordinaten in jeder Zeile entspricht den Zielkoordinaten, die auch als "bis"-koordinaten bezeichnet werden. Diese Werte stellen eine neue Position in geographischem Raum dar, in der Regel ein Bezugspunkt in einem anderen Feature-Layer. Quelle: arcgis.com
Wurde die Koordinatentransformation aktiviert und findet das PlugIn eine entsprechende WLD-Datei wird diese automatisch eingebunden und die DXF-Datei beim Import entsprechend transformiert. 3.2.3. Transformation über 1-4 identische Punkte Ähnlich wie beim CAD-Datenset erfolgt hier eine Transformation über identische Punkte. Die Anzahl der Parameter für die Transformation ist abhängig von der Anzahl der vorgegebenen Punkte. Hinweis: Eine Ausgabe der Restklaffungen bei Überbestimmung erfolgt aktuell nicht. 3.3. Über das Programm Neben allgemeinen Informationen zum Programm sind hier auch die Links zu Homepage, Forum, Dokumentation und Code-Repository verfügbar.
4. Einschränkungen 4.1. Geometriedatenübernahme Im Gegensatz zum Standardimport sollte mit diesem PlugIn eine vollständige Darstellung aller Entities erreicht werden. Dies ist allerdings nur das Ergebnis eigener Tests. Es kann nicht garantiert werden, dass dies für alle DXF-Versionen/Varianten gilt. Allerdings sollte dieses PlugIn immer eine vollständigere Darstellung als der Standardimport liefern. Hinweis: Wichtig ist die Option (3.) Geometiecollection. Ist diese Option aktiviert, dann wird versucht, Geometieblöcke (z.b. Signaturen und Schraffuren) als zusammenhängende Objekte zu erzeugen. An dieser Stelle treten jedoch prinzipielle technische Einschränkungen des Shape-Formates zu Tage. Besteht z.b eine Signatur/Symbol aus einem Polygon (z.b. gefüllter Kreis) und einer Linie, dann kann dieses Symbol auf Grund der unterschiedlichen Geometrietypen nicht generiert werden. Im Zweifelsfall sollte die Option nicht gewählt werden. 4.2. Darstellungsübernahme Das PlugIn versucht Darstellungsattribute aus der DXF zu lesen. Dies gelingt nicht immer korrekt. Im Gegensatz zum Standardimport werden allerdings vor allem die Texte (Beschriftungen) mit allen Attributen (vor allem Textwinkel) sauber übernommen. 5. Ausblick Mit der QGIS Version 2.18.2 (Dezember 2016) wurde eine neue DXF- Standard-Schnittstelle implementiert. Es ist somit abzusehen, dass dieses PlugIn mit Version 2.18.2 überflüssig wird.