Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten
Autor
Nachricht
Beppo
Newbie
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
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.

Confused Wo soll denn dann der Unterschied sein, der die funktionierende Datei zur anderen
unterscheidet?
 
guido65
Newbie
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
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)
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten

Tags: dxf, erzeugen, datei, textdatei, programm, einlesen

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge [suche] Tuturials winsock & daten senden 983 09.06.2011, 13:19
Keine neuen Beiträge [Video] *.dll & *.ocx Installer 2608 06.03.2008, 21:19
Keine neuen Beiträge ListView speichern & laden 1331 05.08.2008, 13:32
Keine neuen Beiträge Registry & Co Fragen 1203 03.05.2007, 10:57
Keine neuen Beiträge Listbox speichern & laden 2266 22.03.2007, 21:25
 


[ Time: 0.0876s ][ Queries: 91 (0.0434s) ][ GZIP on - Debug on ]