Forum: PC-Programmierung DXF Datei einlesen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Leon (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen,

für eine spezielle Anforderung soll eine AutoCAD DXF Datei eingelesen 
und entsprechend soll auch die gezeichneten Linien, Kurven oder 
Rechtecke in C# manipuliert und anschließend wieder in eine DXF Datei 
gespeichert werden.

Zum Einlesen einer DXF Datei verwende ich folgenden C# Code:
https://www.codeproject.com/Articles/156522/DXF-Import-NET-Read-and-View-AutoCAD-Format-Files

Leider ist es mir bisher nicht gelungen, in dem C# Programm nachträglich 
zum Beispiel eine Linie zu verändern. Kennt sich hier jemand mit dem 
Quellcode aus?

von HyperMario (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Leon schrieb:
> für eine spezielle Anforderung soll eine AutoCAD DXF Datei eingelesen
> und entsprechend soll auch die gezeichneten Linien, Kurven oder
> Rechtecke in C# manipuliert und anschließend wieder in eine DXF Datei
> gespeichert werden.

Wäre es nicht einfacher die DXF Datei mit einem freien CAD Programm zu 
bearbeiten?

von Leon (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Mit eine C# Anwendung soll eine Berechnung durchgeführt werden.

von Leon (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Quasi eine Art Simulation.

von Leon (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gibt es eine Freeware Möglichkeit dwg Dateien von AutoCAD in C# 
einzulesen?

von pegel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich kann kein C#. Aber wenn es keine Lizenz Probleme gibt, würde ich mir 
den Quelltext von LibreCAD ansehen.

Die Funktionen dxfreader.cpp und dxfwriter.cpp sind doch recht 
überschaubar.

von stnv (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Leon schrieb:
"nachträglich … eine Linie ... verändern"


Wie umfangreich sollen die Änderungen aussehen?

von physiker (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Mann kann es auch umdrehen und ein plugin für ein CAD schreiben, z.B. 
qcad:
https://qcad.org/en/tutorial-creating-a-qcad-plugin

von STK500-Besitzer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Leon schrieb:
> Leider ist es mir bisher nicht gelungen, in dem C# Programm nachträglich
> zum Beispiel eine Linie zu verändern. Kennt sich hier jemand mit dem
> Quellcode aus?

Das nicht, aber wuerdest du dein bisheriges Produkt hier reinstellen, 
k;nnte man die Hilfestellung geben. So klingt das mehr nach "Erledigt 
mal jemand meine Aufgabe f[r mich?!"

Es ist eine Textdatei. Man kann sie also mit einem Editor freier Wahl 
aendern und draus lernen.

von NichtWichtig (Gast)


Bewertung
1 lesenswert
nicht lesenswert
DXF ist doch reiner Text,
der läßt sich doch 1a mit jeder Programmiersprache parsen.

Linien sind bestimmte Objekte die man nur rauspuhlen muß.

Hab sowas vor Jahren in C++ gemacht um aus CNC Maschinen zu füttern.

von oszi40 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> sowas vor Jahren in C++ gemacht

Wenns wichtig wäre, hätte er sich schon gemeldet. Allerdings geht bei 
späterer DWG-Konvertierung auch einiges wieder verloren.

Leon schrieb:
> in C# manipuliert und anschließend wieder in eine DXF Datei
> gespeichert werden.

Sollte eigentlich kein Kunststück sein. Ein Viereck zeichnen, Editor 
anwerfen, ansehen und dann bearbeiten nach den Regeln Deiner Kunst. Die 
hohe Schule kommt dann später wenn die Grundlagen funktionieren.

von Leon (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Ja es handelt sich um eine Textdatei. Allerdings verstehe ich nicht wie 
zum Beispiel eine Linie oder Kreis in so einem Textfile abgelegt wird. 
Es kommt auch darauf an mit welcher Version das DXF File generiert wird. 
Das erste Ziel wäre, wie kann ich zum Beispiel eine Linie von so einem 
DXF File grafisch in C# ausgeben.

von HyperMario (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Leon schrieb:
> Ja es handelt sich um eine Textdatei. Allerdings verstehe ich nicht wie
> zum Beispiel eine Linie oder Kreis in so einem Textfile abgelegt wird.

Gar nicht, Sie wird mathematisch beschrieben. Linien haben Anfangs- und 
Endkoordinaten, Kreise Radien und Zentrumsposition.

Vom Prinzip her ist das alles super simpel. DXF ist aber ein extrem 
mächtiger Standard der über Jahrzehnte gewachsen ist. Da gibt es so 
viele Möglichkeiten dass man sich als Rookie nur auf das wesentliche 
konzentrieren kann.

von NichtWichtig (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Auch die grafische Darstellung ist keine große Sache.
Schritt 1 wäre das Erstellen einer simplen Software die Striche auf den 
Bildschirm zeichnen kann.

Schritt 2 das Einlesen des DXF, die Linien raus suchen und

Schritt 3: an die Grafikengine übergeben.


Ich hatte damals ein Konverter-Tool gebaut um die DXF-Objekte so zu 
ordnen das ein Fräser sie im Werkstück abfahren kann, also von DXF in 
das Format konvertieren was PCDreh einlesen konnte.

Anfang und Ende jeder Linie mit den anderen vegleichen und an ihrer 
Verbindungspunkte verketten, daher C++ mit Objekten.
Wobei da auch andere geometrische Dinge vor kamen.

Zu Analyse des Konverters und der DXF Files gabs dann noch ein 
Windows-Tool womit man die DXF Objekte sichtbar machen konnte.

von Clemens L. (c_l)


Bewertung
0 lesenswert
nicht lesenswert
Leon schrieb:
> Allerdings verstehe ich nicht wie zum Beispiel eine Linie oder Kreis in
> so einem Textfile abgelegt wird.

http://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf

> Es kommt auch darauf an mit welcher Version das DXF File generiert wird.

Nein, das ist rückwärtskompatibel (die meisten Einträge kannst du 
ignorieren).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.