|
| Autor |
Nachricht |
Beppo Newbie

Anmeldedatum: 10.08.2011 Beiträge: 3
|
DXF-File erzeugen
Verfasst am: 10.08.2011, 08:34 |
|
|
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?
Vielen Dank schonmal,
Gruß Beppo
DXF-Anfang einlesen:
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:
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:
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 |
|
| |
|
 |
Beppo Newbie

Anmeldedatum: 10.08.2011 Beiträge: 3
|
Verfasst am: 10.08.2011, 14:22 |
|
|
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.
Wo soll denn dann der Unterschied sein, der die funktionierende Datei zur anderen
unterscheidet? |
|
| |
|
 |
guido65 Newbie

Anmeldedatum: 09.05.2011 Beiträge: 10 Wohnort: Belgien
|
Verfasst am: 10.08.2011, 15:45 |
|
|
Hallo,
kann es vielleicht sein dass die Datei-Eigenschaften unterschiedlich sind?
Gruss |
|
| |
|
 |
Beppo Newbie

Anmeldedatum: 10.08.2011 Beiträge: 3
|
Verfasst am: 11.08.2011, 06:45 |
|
|
hallo guido65,
danke für die schnelle antwort. hatte die frage noch in einem anderen forum gepostet
und konnte das problem jetzt lösen. es lag an der formatierung der textdatei, die für
meine zwecke expliziet im ASCII-code ausgegeben werden musste.
| Code: | | file = My.Computer.FileSystem.OpenTextFileWriter(Hauptmenü.txtdateien.Text & dateiname & ".dxf", True, System.Text.Encoding.ASCII) |
|
|
| |
|
 |
|
|