Forum: PC-Programmierung Python DXF Plotten


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 Iglu199 (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Hi,

ich würde gerne mit Python eine DXF Datei plotten, also anzeigen in 
einem Fenster,
diese DXF datei erzeuge ich selbst schon im Python nur habe ich bis 
jetzt nichts gefunden mit dem
es mir möglich ist einfach eine solche Datei anzuzeigen, hätte gedacht 
dazu würde es etwas geben.
Würde mich freuen wenn jemand einen Tipp hat ob es sowas gibt sonst muss 
ich sowas selbst schreiben der
Aufwand ist ja nciht gerade klein.

MFG

von Bert3 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
mehr Details?

einfach ein Fenster(willst du mit der Maus agieren können?)
oder nur ein Bild generieren
in 2D, 3D?
wie komplex sind deine DXFs - ein paar Linien oder der Airbus A380 
Aufbau?

von Lars K. (mrlaush)


Bewertung
-2 lesenswert
nicht lesenswert
Hi,

QCAD reicht dir nicht zum angucken?
https://qcad.org/de/

von Iglu199 (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Bert3 schrieb:
> mehr Details?
>
> einfach ein Fenster(willst du mit der Maus agieren können?)
> oder nur ein Bild generieren
> in 2D, 3D?
> wie komplex sind deine DXFs - ein paar Linien oder der Airbus A380
> Aufbau?

An sich ganz einfach, das Programm was die DXF Datei erzeug soll direkt 
diese anzeige, interaktion ist nicht notwendig deswegen ja plotten ganz 
simpel 2D Linien. Der Bildausschnitt lässt sich ja einfauch ausrechnen 
also Skalierung wäre nicht das problem.
Es ist dafür gedacht das die Änderung die man bei der Eingabe macht 
direkt als 2D Bild sieht und erkennen kann wie das DXF File manipuliert 
wird.
Soll die bedienung deutlich vereinfachen


Lars K. schrieb:
> QCAD reicht dir nicht zum angucken?
> https://qcad.org/de/

Anschauen ist nicht das problem DXF viewer gibt es ja genug
deswegen habe ich ja so gefragt wie ich gefragt hatte.
Danke

MFG

von Yalu X. (yalu) (Moderator)


Bewertung
0 lesenswert
nicht lesenswert
Iglu199 schrieb:
> Lars K. schrieb:
>> QCAD reicht dir nicht zum angucken?
>> https://qcad.org/de/
>
> Anschauen ist nicht das problem DXF viewer gibt es ja genug
> deswegen habe ich ja so gefragt wie ich gefragt hatte.

So ganz habe ich dein Problem auch nicht verstanden.

Du willst

Iglu199 schrieb:
> eine DXF Datei plotten, also anzeigen in einem Fenster

Genau das tut doch QCAD (neben vielen anderen Dingen).

Iglu199 schrieb:
> diese DXF datei erzeuge ich selbst schon im Python

Wäre es nicht einfacher, die Daten vor oder während der DXF-Generierung
in das Fenster zu plotten? Damit würde die Dekodierung der DXF-Datei
entfallen.

Falls du, aus welchen Gründen auch immer, dennoch DXF-Dateien mit einem
Python-Programm einlesen willst, hilft dir evtl. dieses hier weiter:

  https://bitbucket.org/mozman/ezdxf

Ich habe aber selber keine Erfahrung damit, so dass ich keine Empfehlung
aussprechen kann.

von Iglu199 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Yalu X. schrieb:
> Genau das tut doch QCAD (neben vielen anderen Dingen).

Die Gründe sind ja eindeutig, es soll in Echtzeit aktualisiert werden, 
wenn man eine Änderung vornimmt. Damit man ein direktes Feedback hat wie 
das fertige DXF File aussieht.
ezdxf ist auch nur ein Editor für DXF Dateien zum Eigleichen anzeigen 
gibt es dort nichts.
Mir scheint es, da es dort wahrscheinlich einfach nichts gibt.

von georg (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Iglu199 schrieb:
> Die Gründe sind ja eindeutig, es soll in Echtzeit aktualisiert werden

Das kann eine eigene Plottroutine genausowenig wie irgendein anderes 
Programm, praktisch müsste nach jeder Änderung die Anzeige gelöscht und 
die ganze Datei neu geplottet werden.

Georg

von georg (Gast)


Bewertung
0 lesenswert
nicht lesenswert
DXF zu interpretieren kommt mir ziemlich unsinnig vor, wenn man die 
Daten hat, die als DXF ausgegeben wurden (Zeichnung -> DXF -> wieder 
einlesen -> aus DXF Zeichnung erstellen).

Das ist so wie wenn man einen Text hat, den als PDF ausgibt, und darauf 
eine OCR-System loslässt um den Text wiederzugewinnen, den man ja 
eigentlich schon längst hat.

Georg

von Iglu199 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Das macht schon sinn, wenn man das Format von DFX kennt. Denn um das was 
im Programm intern berechnet wird, um die DXF Datei zu erzeugen, lässt 
sich nicht so ohne weiters durch einen weiteren großen Rechenaufwand 
wieder in was Sinnvolles umwandeln das man dann direkt Plotten könnte. 
Zu dem ist das vorteilhaft die DXF zu interpretieren, dann kann man 
sichergehen, das die Datei selbst Sinvoll ist.
Aber wie es mir scheint weiß keiner von euch wie das geht bzw. gibt es 
dort in Python noch nichts.
Die Antwort ist mir lieber, als das ständige kommentieren, wieso was 
gemacht wird, das interessiert den Fragesteller überhaupt nicht, zudem 
müsste man dann immer zu viel erklären, um eine einfache Frage zu 
beantworten. Die Frage war ja Sinn gemäß "kann man DXF Dateien mit 
Python direkt Plotten zb. in einem Fenster" keine komplizierte Frage da 
braucht man auch keine großen Zusatzinfos, so wie ich das jetzt sehe ist 
die einfache Antwort "Nein", ich verstehe ja das ihr jemand helfen wollt 
in dem man Tipps gibt wie man es anders machen könnte aber wäre die 
Antwort auf die Frage im ersten Moment wichtiger danach kann man immer 
noch nach einer Anderen Lösung Suchen.
Danke für die ganze Infos zu dem Thema, dann werde ich da mal selber was 
schreiben

von Günter Lenz (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
georg schrieb:
>DXF zu interpretieren kommt mir ziemlich unsinnig vor, wenn man die
>Daten hat, die als DXF ausgegeben wurden (Zeichnung -> DXF -> wieder
>einlesen -> aus DXF Zeichnung erstellen).

Ich ich habe das so verstanden, er will mit Python
einen DXF-Viewer programmieren, das Programm soll also
eine vorhandene DXF-Datei auf den Bildschirm zaubern.
Dazu muß man wissen wie eine DXF-Datei aufgebaut ist
und wissen wie man mit Python Grafik programmiert,
also Punkte setzen, Linien ziehen usw. Würde mich
auch Interessieren.

 Iglu199 schrieb:
>ich würde gerne mit Python eine DXF Datei plotten, also anzeigen in
>einem Fenster,

von georg (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Günter Lenz schrieb:
> das Programm soll also
> eine vorhandene DXF-Datei auf den Bildschirm zaubern

Schon klar, nur hat er die DXF-Datei ja selbst erzeugt.

Georg

von Günter Lenz (Gast)


Bewertung
0 lesenswert
nicht lesenswert
georg schrieb:
>Schon klar, nur hat er die DXF-Datei ja selbst erzeugt.

Man kann ja auch eine Datei erzeugen ohne das auf
dem Bildschirm irgendwas zu sehen ist. Ich kenne
das DXF-Format zwar nicht, aber ich habe daß schon
mal mit WAV gemacht, also Python hat eine WAV-Datei
geschrieben, die ich anschließend mit einen anderen
Programm abgespielt habe.

von W. M. (thematsche)


Bewertung
0 lesenswert
nicht lesenswert

von Planlos (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Starte einen (mehr oder weniger) beliebigen DXF-Viewer auf deiner Datei, 
nimm Python dafür, um dem Programm "F5", "Ctrl-R" oder eben die passende 
"Reload"-Tastenkombination unterzuschieben, wenn sich das DXF-Dateidatum 
ändert.

von Iglu199 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Planlos schrieb:
> Starte einen (mehr oder weniger) beliebigen DXF-Viewer auf deiner Datei,
> nimm Python dafür, um dem Programm "F5", "Ctrl-R" oder eben die passende
> "Reload"-Tastenkombination unterzuschieben, wenn sich das DXF-Dateidatum
> ändert.

Ja das ist gerade auch einer der lösungsansätze, der ist nicht optimal 
aber würde notfalls auch ok sein, bin gerade auch am evaluieren welcher 
Viewer sich am besten verhält und steuern lässt
Danke für die Ideen

MFG

von Tek (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hier gibt es ein CAD in Python geschrieben:
https://sourceforge.net/projects/pythoncad/

Ohne in den Quelltext geschaut zu haben:
Vielleicht bekommt man den Teil zum anzeigen der dxf Datei mit 
vertretbarem Aufwand extrahiert.

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.