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: 

AutoCAD Map 3D 2021: Allgemeine Fragen zu DXF-Dateien

7 ANTWORTEN 7
GELÖST
Antworten
Nachricht 1 von 8
kai.behncke
238 Aufrufe, 7 Antworten

AutoCAD Map 3D 2021: Allgemeine Fragen zu DXF-Dateien

Liebe Community,

als Geoinformartiker arbeite ich mich gerade in die Erstellung und Nutzung von DXF-Dateien ein.
Über verschiedene GIS-Tools bzw. GI-Bibliotheken gelingt es nun auch diese Dateien sauber zu erstellen.

Dennoch gibt es hier zwei/drei Fragen:

Offensichtlich ist es ja so, dass im Header-Bereich des DXF-Files Deklarationen zur Visualisierung in AutoCAD Map 3D gesetzt werden.
Anscheinend ist es ja auch möglich bei der Umwandlung von Geodaten (z.B. Daten in Oracle, PostGIS etc.)
eine DXF-Header-Datei anzugeben, welche diese Visualisierungs-Regeln in das DXF-File übernimmt?

DIe OGR-Bibliothek (eine Vektordatenbibliothek) nutzt hierfür standardmässig eine header.dxf-Datei, jedoch sind hier in einem Beispielfalle Punkte zunächst immer "unsichtbar".
Öffne ich diese in AutoCAD Map 3D 2021, dann muss ich für eine Visualisierung erst Symbolart und Größe manuell bestimmen.
Ich hätte es jedoch gerne so, dass ich die Datei in AutoCAD öffne und "sofort" etwas sehen kann.

Kann mir jemand sagen, wie ich eine vorgefertige header.xdf-Datei so anpassen kann, dass
Punktobjekte standardmäiig z.B. blau sind und z.B. eine Größe von 20 px (als Beispiel) aufweisen? Gibt es vielleicht sogar entsprechende header.dxf-Beispieldateien?


Die noch wichtigere Frage:
Aus einer Oracle-Datenbank exportiere ich Kanalschächte als DXF, die zudem Attribute aufweisen (z.B. Höhe über Normal-Null, Tiefe).
Diese Attribute möchte ich zwingend (!) in AutoCAD darstellen.
Kann DXF so etwas?

Ist es bei einer DXF-Datei also möglich, wie z.B. bei einem Shapefile, an einer geometrischen Position verschiedene Eigenschaften unterschiedlicher Spalten
als Text darzustellen? Weiß jemand, welche Schritte hier zu beachten sind?

 

Und noch eine Frage: Aus unerfindlichen Gründen sind DXF-Dateien, die ich erstelle, immer schreibgeschützt (?). Wie kann ich das verhindern oder ändern?

 

 

Vielen Dank für die Hilfe, Kai

Beschriftungen (1)
7 ANTWORTEN 7
Nachricht 2 von 8
cadffm
als Antwort auf: kai.behncke

Vorab: Ich bin kein DXF-Vollprofi und habe von Geo/Civil und eben auch MAP3D keinen Plan 😁

 

Im Header werden sicher nur die allgemeinen DWG/DXF Einstellungen gespeichert werden, nichts MAP3Dspezifisches, ansonsten wüßten andere Programme nichts mit der Information anzufangen.

 

Die Darstellung des einfachen PUNKT Objektes (POINT) wird über die Systemvariable/Einstellung PDMODE und PDSIZE gesteuert,

diese ZeichnungsVariablen stehen im Header.

 

 

>>"DIe OGR-Bibliothek (eine Vektordatenbibliothek) nutzt hierfür standardmässig eine header.dxf-Datei, "

Wäre gut wenn du die header (und für mich noch die trailer Datei) teilen würdest, so können auch User wie ich helfen, welche nicht genau deinen Fall (Programm&Anwendungen) kennen.

 

>>"Ich hätte es jedoch gerne so, dass ich die Datei in AutoCAD öffne und "sofort" etwas sehen kann."

Falls es sich um mein Beispiel des POINT Objektes geht, dann findest du die genannten Variablen in dem Header.

 

>>"dass Punktobjekte standardmäiig z.B. blau sind"

Dafür müßtest du die Farbe jedes einzelnen Punktobjektes ändern,

oder die Farbe des Layers wenn dort nur die Punkte draufliegen und Farbe VonLayer haben.

(ohne Beispieldatei kann man das schlecht und nur allgemeingültig beantworten)

 

 

>>"und z.B. eine Größe von 20 px (als Beispiel) aufweisen?"

WENN es DXF-Punkte sind, dann tippe im MAP3D ein: PDSIZE<enter>[F1],

Gibt es vielleicht sogar entsprechende header.dxf-Beispieldateien?

 

Ändere es und benenne die Datei um in Header_PDMODE35_PDSIZE20 zum Beispiel,

falls das umbenennen in den Workflow einzupassen ist.

Auch die DXF-Version würde bei mir als Information im Dateinamen enthalten sein,

aber da ich hier im fremden Revier wildere - egal.

 

 


Aus einer Oracle-Datenbank exportiere ich Kanalschächte als DXF, die zudem Attribute aufweisen (z.B. Höhe über Normal-Null, Tiefe).
Diese Attribute möchte ich zwingend (!) in AutoCAD darstellen. Kann DXF so etwas?

Was, "sowas" ?

Du kannst in der DXF Geometrie darstellen, inkl. Texte, auch komplexe Objekte (BLOCK/Blockreferenzen)

welche mehrere Objekte in einem Objekt vereinen. Auch wenn mir nicht ganz klar ist was du da gefragt hast,

so bin ich sicher: Ja, "DXF kann das".

Milliarden DWG Dateien existieren, die könnten wie auch wie die Milliarden DXF Dateien welche ohnehin schon existieren, als DXF gespeichert werden.

 

>>"Ist es bei einer DXF-Datei also möglich, wie z.B. bei einem Shapefile, an einer geometrischen Position "

"geometrische Position", da wird es schon komplizierter, aber ja.

 

Du arbeitest doch mit MAP3D oder habe ich das falsch interpretiert? und MAP3D arbeitet doch native mit DWG und du kannst zum Test auch einfach mal als DXF speichern,

"Funktioniert das", dann weißt du das es geht.

 

>"als Text darzustellen"

Du kannst Textinformationen speicher, die Frage ist eher wie du die Information (Text an PositionXY mit dem Textwert <keine Ahnung > in die Datei bekommst.

 

>>"Und noch eine Frage: Aus unerfindlichen Gründen sind DXF-Dateien, die ich erstelle,"

>>"immer schreibgeschützt (?). Wie kann ich das verhindern oder ändern?"

Dafür müßte man wohl wissen WIE udn WO du diese erstellst.

 

Neben WIE und WO wäre meine erste Frage: DXF erstellen, Rechner neu starten = Ist die DXF noch immer "Schreibgeschützt"?

Dann wurde der Datei das Attribut "Schreibgeschützt" gegeben.

Falls nicht, dann war einfach noch ein Dateizugriff von deinem Programm darauf (welches Perogramm, wie wurde erstellt..)

 

- Sebastian -
Nachricht 3 von 8
kai.behncke
als Antwort auf: cadffm

Hi Sebastian, so langsam sehe ich klarer. Vielen Dank für Deine Antwort.

Um das Problem besser zu verdeutlichen.


Meine Daten liegen in einer Oracle-DB.
Mittels folgendem Befehl (OGR-Bibliothek) erstelle ich eine DXF-Datei:

 

1) Versuche in Bezug auf eine Symbolisierung, direkte Darstellung in AutoCAD:

ogr2ogr --config GDAL_DATA "X:\OSGeo4W64\share\gdal" -f "DXF" X:\OSGeo4W64\new_file11.dxf OCI:ccc/ccc@("DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = host )(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME =ccc))):WW_MANHOLE" -nlt POINT -a_srs EPSG:25832 -clipsrc 408148 5794500 408400 5794700 -mapFieldType Integer64=String

 

 

 

ogr2ogr --config GDAL_DATA "X:\OSGeo4W64\share\gdal" -sql "SELECT geom,'LABEL(f:Arial,t:'||FID||' '||BOTTOM_ELEVATION')' AS OGR_STYLE from ww_manhole" -f "DXF" X:\OSGeo4W64\new_file11.dxf OCI:secret1/secret2@("DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST =secret_host )(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME =secret3))):WW_MANHOLE" -nlt POINT -a_srs EPSG:25832 -clipsrc 408148 5794500 408400 5794700 -mapFieldType Integer64=String

 

 

Bei der Erstellung wird von dem ogr2ogr-Tool auf die header.dxf und die trailer.dxf zugegriffen (im Anhang).
Öffne ich dann die Datei "new_file11.dxf" (ebenfalls im Anhang) in AutoCAD Map 3D, so muss ich erst über die Befehle PDMODE und PDSIZE gehen,
um die Punktobjekte sehen zu können.

Ich frage mich, wie ich die Ausgangsheader-Datei (header.dxf) verändern muss, dass SOFORT nach Öffnen der Datei in AutoCAD etwas symbolisiert wird?

Denn: Von verschiedenen Vermessungsbüros kriegen wir hier DXF-Dateien, die ich öffne und sofort (ohne Befehlsumwege) sehe ich dann Punkte, Linien etc.
Genau dieses "Ich sehe sofort alles" ist das, was ich versuche zu realisieren.


2) Versuche in Bezug auf eine Attributdarstellung:

Das Ziel ist es die Daten nicht nur zu symbolisieren, sondern auch Attribute darzustellen.

Einen Teilerfolg habe ich mit folgendem Befehl erreicht:

 

ogr2ogr --config GDAL_DATA "X:\OSGeo4W64\share\gdal" -sql "SELECT geom,'LABEL(f:Arial,t:'||FID||')' AS OGR_STYLE from ww_manhole" -f "DXF" X:\OSGeo4W64\new_file14.dxf OCI:geheim1/geheim2@("DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = host )(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME =geheim3))):WW_MANHOLE" -nlt POINT -a_srs EPSG:25832 -clipsrc 408148 5794500 408400 5794700 -mapFieldType Integer64=String

 

Ich definiere also in dem Befehl ein Labeling.

Öffne ich dann die Datei (new_file14.dxf) und zoome auf die Punkte (Labels) dann kann ich die Beschriftungen in AutoCAD sofort sehen, ohne dass ich einen weiteren Befehl eingeben muss.
Das ist schon sehr sehr gut!


Jedoch ist es bei new_file14.dxf nicht möglich mittels PDMODE und PDSIZE die Punktstandorte zu visualisieren (?).

 

Was ich versuche hinzubekommen:

1) + 2) in EINER Datei, also möglichst ein Öffnen der DXF-Datei und eine sofortige Visualisierung der Punktstandorte mittels vordefinierter Farben und Symbole sowie
eine Beschriftungsdarstellung (Label).

 

Im Grunde ist es (glaube ich) knapp davor, aber der entscheidende Schritt will noch nicht so richtig.

Nachricht 4 von 8
cadffm
als Antwort auf: kai.behncke

EDIT: Danke für die Dateien. Übrigens sind deine Punkte ja sichtbar, weil PDMODE=0 und damit angezeigt (wäre bei Wert 1 nicht der Fall)

 

>>"Ich frage mich, wie ich die Ausgangsheader-Datei (header.dxf) verändern muss"

Das klingt so als hättest du es überhaupt nicht versucht!?

Also: Sicherungskopien anlegen, Datei mit Notepad/Editor.exe öffnen,

PDMODE und PDSIZE suchen und den Wert ändern, Datei speichern, fertig.

 

Eine ASCII DXF enthält Zeilen im Wechsel -> Gruppencode Wert Gruppencode Wert Gruppencode Wert..usw.

Im Headerbereich der Variablen sieht es dann so aus:

9<- Gruppencode (hier für den nachfolgenden Variable-Namen)
$PDMODE <- Wert (hier: Variable-Namen PDMODE, welchem noch ein $ davorgestellt wird)
70<- Gruppencode
0 <- Wert (hier Wert 0, siehe [F1] PDMODE)
9<- und von vorne ...für die nächste Variable
$PDSIZE
40
0.0

 

>>"Genau dieses "Ich sehe sofort alles" ist das, was ich versuche zu realisieren."

Dazu muss man nur die Variablen einstellen. Beim normalen arbeiten würde man also PDSIZE/PDMODE eintippen und die Datei speichern,

bei deinem "Sonderweg" der Dateierstellung musst du es ebenso in der Datei speichern, in dem Fall die Anpassung in der "header.dxf" Datei

 

>>"Öffne ich dann die Datei (new_file14.dxf) und zoome auf die Punkte (Labels) dann kann ich die Beschriftungen"

>>"in AutoCAD sofort sehen, ohne dass ich einen weiteren Befehl eingeben muss. Das ist schon sehr sehr gut!"

Es muß ja auch mal was auf anhieb funktionieren 👍


>>"Jedoch ist es bei new_file14.dxf nicht möglich mittels PDMODE und PDSIZE die Punktstandorte zu visualisieren (?)."

In der Datei sind ja auch nur 137 "MTEXT" Objekte enthalten, keine PUNKT Objekte.

 

 

>>"1) + 2) in EINER Datei, also möglichst ein Öffnen der DXF-Datei und eine sofortige Visualisierung der Punktstandorte mittels vordefinierter Farben und Symbole sowie
eine Beschriftungsdarstellung (Label)."

Wenn du "1.)" kannst und auch "2.)", dann spricht ja nichts dagegen, jetzt ist die Frage: Wo ist das Problem, was hält sich ab?

 

Ich kann da leider nur bedingt helfen da ich deine Workflow überhaupt nicht kenne, mein Wissen fängt erst ab den DXF-Daten an.

 

Übrigens, was machst du im Anschluss mit den Daten?

Ein Punkt, ohne informationen, und ein MTEXT, ohne "wirklichen" Bezug zum Punkt, vom selben Einfügepunkt (hässlich) mal abgesehen,

das ist doch kein wünschenswertes Ergebnis *für was auch immer*.

 

Du importierst/konvertierst diese doch sicher mit MAP im Anschluß?

Ich dachte eignetlich das man sich in MAP dann den Aufwand nahezu sparen kann  - aber da bin ich raus.

Als User des einfacher AutoCADs würde ich zumindest einen Block mit Attribut benutzen,

so ist "Punktsymbol" und der Text wenigstens zusammenhängen und auch auslesbar).

 

Ich würde mal sagen: Schlag dein SQL- (oder OGR)Buch auf, digital oder Papier sollte keinen Unterschied machen

und kreiere dir EINE select Anweisung für beide Informationen, das sollte der DXF writer hinbekommen.

(das habe ich jetzt nicht nachgelesen, obwohl die Informationen aus der Hilfe und des www wirklich gut sind - aber es ist ja nicht meine Aufgabe oder gar Problem 🙂 )

- Sebastian -
Nachricht 5 von 8
kai.behncke
als Antwort auf: cadffm

Bei der Bearbeitung der Original-Gdal-ogr header.dxf hatte ich schlichtweg "Tomaten auf den Augen" und hatte bei der Notepad-Suche etwas falsch eingestellt:

 

Mittels:

 

$PDMODE
70
2
9
$PDSIZE
40
4
9

 

klappt es wunderbar. Danke 🙂

 

"In der Datei sind ja auch nur 137 "MTEXT" Objekte enthalten, keine PUNKT Objekte."

Allright...das ist Neuland für mich. Ich bin da zu sehr GI-Objektmässig rangegangen (da gibt es diese Unterschiede nicht).

 

"Wo ist das Problem, was hält Dich ab?"

Da muss ich in der Tat noch einmal intensiver schauen, ob der OGR-Workflow so etwas ermöglicht.

Gut zu wissen ist jedoch schon einmal, dass es "theoretisch" gehen müsste.

 

"Ein Punkt, ohne informationen, und ein MTEXT, ohne "wirklichen" Bezug zum Punkt, vom selben Einfügepunkt (hässlich) mal abgesehen,

das ist doch kein wünschenswertes Ergebnis *für was auch immer*.

 

Als User des einfacher AutoCADs würde ich zumindest einen Block mit Attribut benutzen,

so ist "Punktsymbol" und der Text wenigstens zusammenhängen und auch auslesbar)."

 

Absolut! Das brauche ich auf jeden Fall. Ohne konkrete Verbindung wäre das DXF nahezu wertlos. Dieses Modell kannte ich in AutoCAD Map noch garnicht (bin da absoluter Neuling). Also das bedeutet, es gibt DXF-Dateien die "Blöcke mit Attributen" beinhalten und somit eine Verbindung zwischen Punkt und Mtext realisieren?

 

"

Ich würde mal sagen: Schlag dein SQL- (oder OGR)Buch auf, digital oder Papier sollte keinen Unterschied machen

und kreiere dir EINE select Anweisung für beide Informationen, das sollte der DXF writer hinbekommen."

 

Ja, da bleibe ich am Ball. Ich berichte hier, wenn ich eine Lösung habe.

 

 

Nachricht 6 von 8
cadffm
als Antwort auf: kai.behncke

Dein MAP3D sollte da ganz andere Werkzeuge bereithalten als dumme Blöcke in AutoCAD,

aber da bin ich raus 😉 - Nur als Hinweis damit du nicht einen ACAD-Weg gehst du evtl.  mit MAP3D ganz anders angehen solltest.

 

>>"Also das bedeutet, es gibt DXF-Dateien "

DXF und DWG macht einen Unterschied bei den Möglichkeiten der Erstellung, aber der Inhalt (eingelesen im CAD Programm) ist praktisch identisch - das ist ja Sinn an so einem Datenaustausch(format) per DXF.

 

Thema: AutoCAD Blöcke mit Attributen

 

 

 

 

- Sebastian -
Nachricht 7 von 8
Alfred.NESWADBA
als Antwort auf: kai.behncke

Hi,

 

ich darf die Frage einwerfen, wozu mit GDAL GIS-Daten konvertiert werden zu dem (in diesem Fall) sehr ungünstigen DXF Format, wenn Map3D doch direkt auf die meisten GIS-Datenquellen direkt hingreifen kann?

 

... oder habe ich im Thread irgendwas überlesen?

- alfred -

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

Hi Alfred,

 

der Grund ist, dass ursprünglich aus einer bestehenden WebGIS-Anwendung cmd-Dateien auf dem Server gestartet werden sollten, welche die Umwandlung eines Ausschnittes in DXF vornehmen. Ich musste jedoch leider einsehen, dass dieser Weg nicht praktikabel ist.

 

Ich löse es nun mittels QGIS 3.22 und Projekt -> Import/Export -> Projekt als DXF speichern.

 

Diese Daten können dann auch wunderbar in AutoCAD geöffnet werden und weisen sofort die richtige Symbolisierung auf.

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