Hallo alle zusammen!
In unserem Betrieb haben wir ein selbst gestricktes Programm welches für verschiedene
Körper Abwicklungen im DXF-Format ausgibt. Die DXF-Dateien können von einem
Zeichenprogramm (ProFirst) geöffnet und bearbeitet werden und letztendlich in der
Werkstatt vom Plasmaschneider automatisch zugeschnitten werden.
Da das Programm mit Visual Basic 6.0 geschrieben wurde und wir der Zeit nicht ganz
hinterher sein wollen, habe ich begonnen dass Programm in Visual Basic 2010 neu zu schreiben.
Momentan als Versuch mit der Express-Version.
Die DXF-Dateien werden relativ simpel generiert: Der Anfang der Datei liegt in einer Text-Datei und wird
vom Programm eingelesen und in die zu erstellende Datei kopiert. Dann folgen Linien, Kreise etc. gemäß der
Abwicklung und zum Schluss wird das DXF-Ende wieder aus einer Datei gelesen und kopiert.
Das Problem: Die erstellte DXF lässt sich mit dem Zeichenprogramm fehlerfrei öffnen und kann bearbeitet werden.
NACH dem speichern, lässt sie sich auch in das Zuschnittsprogramm für den Plasmaschneider einlesen.
Allerdings erst nach dem speichern. Wenn (wie in den meisten Fällen) die Datei unverändert bleiben kann,
muss ich sie trotzdem zuerst öffnen und neu speichern.
Das kuriose und weshalb ich gar keine Logik dahinter entdecken kann:
Wenn mein Programm eine DXF generiert und ich diese mit dem Zeichenprogramm neu abspeichere mit anderem Namen und
aus der neu abgespeicherten Datei den kompletten Inhalt kopiere und in die ursprüngliche Datei kopiere, kann ich die
Datei dennoch nicht für die Werkstatt einlesen (mit dem Zeichenprogramm lässt sie sich aber noch öffnen).
Die Dateien haben dann exakt den gleichen Inhalt und trotzdem geht die ursprüngliche Datei nicht und DXF-Dateien sind
doch nur Text-Dateien .... ???!!!
Kann sich jemand vorstellen was das sein könnten? Ideeen?
Und mittlerweile noch das:
Jetzt habe ich mir ein kleines Programm gestrickt, das mir zwei Dateien Zeile für
Zeile vergleicht und wenn Unterschiede auftreten auflistet. Und siehe da,
zwischen funktionierender Datei aus meinem VB6-Programm und der nicht funktionierenden
Datei aus meinem VB 2010-Programm gibt es keinerlei Unterschied.
Confused Wo soll denn dann der Unterschied sein, der die funktionierende Datei zur anderen
unterscheidet?
Vielen Dank schonmal,
Gruß Beppo
DXF-Anfang einlesen:
DXF-Linie:
DXF-Ende:
In unserem Betrieb haben wir ein selbst gestricktes Programm welches für verschiedene
Körper Abwicklungen im DXF-Format ausgibt. Die DXF-Dateien können von einem
Zeichenprogramm (ProFirst) geöffnet und bearbeitet werden und letztendlich in der
Werkstatt vom Plasmaschneider automatisch zugeschnitten werden.
Da das Programm mit Visual Basic 6.0 geschrieben wurde und wir der Zeit nicht ganz
hinterher sein wollen, habe ich begonnen dass Programm in Visual Basic 2010 neu zu schreiben.
Momentan als Versuch mit der Express-Version.
Die DXF-Dateien werden relativ simpel generiert: Der Anfang der Datei liegt in einer Text-Datei und wird
vom Programm eingelesen und in die zu erstellende Datei kopiert. Dann folgen Linien, Kreise etc. gemäß der
Abwicklung und zum Schluss wird das DXF-Ende wieder aus einer Datei gelesen und kopiert.
Das Problem: Die erstellte DXF lässt sich mit dem Zeichenprogramm fehlerfrei öffnen und kann bearbeitet werden.
NACH dem speichern, lässt sie sich auch in das Zuschnittsprogramm für den Plasmaschneider einlesen.
Allerdings erst nach dem speichern. Wenn (wie in den meisten Fällen) die Datei unverändert bleiben kann,
muss ich sie trotzdem zuerst öffnen und neu speichern.
Das kuriose und weshalb ich gar keine Logik dahinter entdecken kann:
Wenn mein Programm eine DXF generiert und ich diese mit dem Zeichenprogramm neu abspeichere mit anderem Namen und
aus der neu abgespeicherten Datei den kompletten Inhalt kopiere und in die ursprüngliche Datei kopiere, kann ich die
Datei dennoch nicht für die Werkstatt einlesen (mit dem Zeichenprogramm lässt sie sich aber noch öffnen).
Die Dateien haben dann exakt den gleichen Inhalt und trotzdem geht die ursprüngliche Datei nicht und DXF-Dateien sind
doch nur Text-Dateien .... ???!!!
Kann sich jemand vorstellen was das sein könnten? Ideeen?
Und mittlerweile noch das:
Jetzt habe ich mir ein kleines Programm gestrickt, das mir zwei Dateien Zeile für
Zeile vergleicht und wenn Unterschiede auftreten auflistet. Und siehe da,
zwischen funktionierender Datei aus meinem VB6-Programm und der nicht funktionierenden
Datei aus meinem VB 2010-Programm gibt es keinerlei Unterschied.
Confused Wo soll denn dann der Unterschied sein, der die funktionierende Datei zur anderen
unterscheidet?
Vielen Dank schonmal,
Gruß Beppo
DXF-Anfang einlesen:
Quellcode
- Public Sub dxfanfang(ByVal dateiname As String)
- 'dxf-anfang aus datei laden
- Dim dxfanfang As String
- dxfanfang = My.Computer.FileSystem.ReadAllText(Hauptmenü.txtdxf.Text & "dxf-anfang.txt")
- 'dxf-anfang schreiben
- My.Computer.FileSystem.WriteAllText(Hauptmenü.txtdateien.Text & dateiname & ".dxf", dxfanfang & vbCrLf, False)
- End Sub
DXF-Linie:
Quellcode
- Dim file As System.IO.StreamWriter
- file = My.Computer.FileSystem.OpenTextFileWriter(Hauptmenü.txtdateien.Text & dateiname & ".dxf", True)
- file.WriteLine(" 0")
- file.WriteLine("LINE")
- file.WriteLine(" 5")
- file.WriteLine(n) 'nummer
- file.WriteLine("100")
- file.WriteLine("AcDbEntity")
- file.WriteLine(" 8")
- file.WriteLine("0")
- file.WriteLine("100")
- file.WriteLine("AcDbLine")
- file.WriteLine(" 62")
- file.WriteLine("93")
- file.WriteLine(" 6")
- file.WriteLine("CONTINUOUS")
- file.WriteLine(" 10")
- file.WriteLine(Replace(x1, ",", ".")) 'x-koordinate start
- file.WriteLine(" 20")
- file.WriteLine(Replace(y1, ",", ".")) 'y-koordinate start
- file.WriteLine(" 11")
- file.WriteLine(Replace(x2, ",", ".")) 'x-koordinate ziel
- file.WriteLine(" 21")
- file.WriteLine(Replace(y2, ",", ".")) 'y-koordinate ziel
- file.Close()
DXF-Ende:
Quellcode
- Public Sub dxfende(ByVal dateiname As String)
- 'dxf-ende aus datei laden
- Dim dxfende As String
- dxfende = My.Computer.FileSystem.ReadAllText(Hauptmenü.txtdxf.Text & "dxf-ende.txt")
- 'dxf-ende schreiben
- My.Computer.FileSystem.WriteAllText(Hauptmenü.txtdateien.Text & dateiname & ".dxf", dxfende, True)
- End Sub
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Beppo“ ()