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?
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?
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.
Leon schrieb: "nachträglich … eine Linie ... verändern" Wie umfangreich sollen die Änderungen aussehen?
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
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.
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.
> 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.
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.
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.
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.
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).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.