| |  | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: StreamWrite in einer Funktion? (849 mal gelesen)
|
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation

 Beiträge: 2622 Registriert: 12.07.2004
|
erstellt am: 27. Nov. 2008 14:25 <-- editieren / zitieren --> Unities abgeben:         
Guten Tag zusammen! Ich wollte mal wissen, ob ich das da aus VB6 ins VB.net übersetzten kann: Code:
Public Function MakeDXFCircle(EntityType As String, StartX, StartY, R) Print #1, 0 Print #1, EntityType Print #1, 8 Print #1, "default" Print #1, 6 Print #1, "CONTINUOUS" Print #1, 10 Print #1, StartX Print #1, 20 Print #1, StartY Print #1, 40 Print #1, R End Function
Was ich mir vorgestellt habe, wie es aussehen könnte; was aber nicht funktioniert: Code:
Private Function MakeDXFCircle(ByVal EntityType As String, ByVal StartX As Double, ByVal StartY As Double, ByVal R As Double) sw.WriteLine("0") sw.WriteLine(EntityType) sw.WriteLine("8") sw.WriteLine("default") sw.WriteLine("6") sw.WriteLine("CONTINUOUS") sw.WriteLine("10") sw.WriteLine(StartX) sw.WriteLine("20") sw.WriteLine(StartY) sw.WriteLine("40") sw.WriteLine(R) End Function
Wie kann ich in VB.net diese Funktion zum laufen bringen? Was dabei herauskommen sollte, ist, wenn ich ein DXF erstellen möchte, kann ich für die Linie, Kreis, Bogen, etc. nur noch eine Funktion dafür aufrufen und fertig. Vielen Dank im Voraus! G. ------------------ http://www.worldcommunitygrid.org Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation

 Beiträge: 2622 Registriert: 12.07.2004 SolidWorks_2o22 SP5.o Win10_x64, Quadro_P2ooo. VisualStudio_2o22_Pro. FEM: Forge_NxT_HPC, ANSYS_WB. 3D-Printer: Ultimaker_2, Tinker_Gnome.
|
erstellt am: 28. Nov. 2008 07:54 <-- editieren / zitieren --> Unities abgeben:         
Ok... wir habens herausgefunden: (Danke HenryV!  ) Code:
Private Function DXFWriteLine(ByVal StartX As Double, ByVal StartY As Double, ByVal EndX As Double, ByVal EndY As Double) Dim DXFString As String DXFString = "0" & vbNewLine DXFString += "LINE" & vbNewLine DXFString += "8" & vbNewLine DXFString += "default" & vbNewLine DXFString += "6" & vbNewLine DXFString += "CONTINUOUS" & vbNewLine DXFString += "10" & vbNewLine DXFString += CStr(StartX) & vbNewLine DXFString += "20" & vbNewLine DXFString += CStr(StartY) & vbNewLine DXFString += "11" & vbNewLine DXFString += CStr(EndX) & vbNewLine DXFString += "21" & vbNewLine DXFString += CStr(EndY) Return DXFString End Function
welche dann so aufgerufen werden kann: Code: sw.WriteLine(DXFWriteLine(StartX, StartY, EndX, EndY))
Vielleicht hilft das ja irgendjemandem da draussen! 
------------------ http://www.worldcommunitygrid.org Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Moderator Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600
|
erstellt am: 28. Nov. 2008 07:55 <-- editieren / zitieren --> Unities abgeben:          Nur für G. Dawg
Guten Morgen Gilbert, ansicht sieht dein Code gut aus. Die frage ist nur was sich in deiner sw Variable versteckt, aber ich gehe mal von einer StreamWriter Instanz aus, welche du mit einem FileStream erstellt hast. War etwas unklar, schaue hier! ------------------ Mfg Daniel www.MySldWorks.de - SolidWorks Api Snippets Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Moderator Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600
|
erstellt am: 28. Nov. 2008 07:58 <-- editieren / zitieren --> Unities abgeben:          Nur für G. Dawg
... und nochmal Hallo, ich bin der Meinung das es auch anders gehen sollte, sogar muss! Der Befehl StreamWriter.WriteLine schreibt schließlich immer eine Zeile in deine Textdatei! Was ging den nicht, bzw. was für eine Fehlermeldung hast du bekommen? ------------------ Mfg Daniel www.MySldWorks.de - SolidWorks Api Snippets Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation

 Beiträge: 2622 Registriert: 12.07.2004
|
erstellt am: 28. Nov. 2008 07:58 <-- editieren / zitieren --> Unities abgeben:         
Sorry! Hier ist der Anfang der Sub: Code: Friend Sub WriteDXF_F( _ ByVal FILE_NAME As String, ByVal StartX As Double, ByVal StartY As Double, _ ByVal EndX As Double, ByVal EndY As Double, ByVal S_Dicke As Double) Using sw As StreamWriter = New StreamWriter(FILE_NAME) 'DXF Header sw.WriteLine(DXFHeader()) ' Line #1 sw.WriteLine(DXFWriteLine(EndX, EndY, StartX, StartY)) ' Und hier kommt noch der Rest hin... sw.Close() End Using End Sub
------------------ http://www.worldcommunitygrid.org Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Moderator Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600
|
erstellt am: 28. Nov. 2008 08:01 <-- editieren / zitieren --> Unities abgeben:          Nur für G. Dawg
dann ist der Fehler klar! du musst deine StreamWriter Instanz als Parameter in die DXFWriteLine Methode übergeben. Zum Beispiel so: Code: Private Function DXFWriteLine(ByVal sw As StreamWriter, ByVal StartX As Double, ByVal StartY As Double, ByVal EndX As Double, ByVal EndY As Double)
------------------ Mfg Daniel www.MySldWorks.de - SolidWorks Api Snippets Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation

 Beiträge: 2622 Registriert: 12.07.2004
|
erstellt am: 28. Nov. 2008 08:02 <-- editieren / zitieren --> Unities abgeben:         
Es hiess, dass "sw" nicht definiert war. Und da ich in der selben Class bin, nur in einer Privat Function, kann ich auch nichts vererben. Was ich noch kurz sagen möchte, ist, dass ich erst gerade angefangen habe, mit den Classes und so. Ich bin mich langsam aber sicher auf .net von VB6 am umstellen. Das nur so nebenbei!  ------------------ http://www.worldcommunitygrid.org Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation

 Beiträge: 2622 Registriert: 12.07.2004 SolidWorks_2o22 SP5.o Win10_x64, Quadro_P2ooo. VisualStudio_2o22_Pro. FEM: Forge_NxT_HPC, ANSYS_WB. 3D-Printer: Ultimaker_2, Tinker_Gnome.
|
erstellt am: 28. Nov. 2008 08:06 <-- editieren / zitieren --> Unities abgeben:         
|
tbd Moderator Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600
|
erstellt am: 28. Nov. 2008 08:14 <-- editieren / zitieren --> Unities abgeben:          Nur für G. Dawg
Einen Nachteil gibt es nicht! Ist halt von hintern durch die Nase! Aber so müsste es auch gehen:
Code: Friend Sub WriteDXF_F( _ ByVal FILE_NAME As String, ByVal StartX As Double, _ ByVal StartY As Double, ByVal EndX As Double, _ ByVal EndY As Double, ByVal S_Dicke As Double) Try Using sw As System.IO.StreamWriter = _ New System.IO.StreamWriter(FILE_NAME) 'DXF Header sw.WriteLine(DXFHeader()) ' Line #1 DXFWriteLine(sw, EndX, EndY, StartX, StartY) ' Und hier kommt noch der Rest hin... sw.Close() End Using Catch ex As Exception Debug.Assert(False) Trace.WriteLine("Fehler: Wo: " & _ ex.StackTrace & " Was: " & ex.Message) End Try End Sub Private Sub DXFWriteLine( _ ByVal sw As System.IO.StreamWriter, _ ByVal StartX As Double, ByVal StartY As Double, _ ByVal EndX As Double, ByVal EndY As Double) Try sw.WriteLine("0") sw.WriteLine("LINE") sw.WriteLine("8") sw.WriteLine("default") sw.WriteLine("6") sw.WriteLine("CONTINUOUS") sw.WriteLine("10") sw.WriteLine(CStr(StartX)) sw.WriteLine("20") sw.WriteLine(CStr(StartY)) sw.WriteLine("11") sw.WriteLine(CStr(EndX)) sw.WriteLine("21") sw.WriteLine(CStr(EndY)) Catch ex As Exception Debug.Assert(False) Trace.WriteLine("Fehler: Wo: " & _ ex.StackTrace & " Was: " & ex.Message) End Try End Sub
------------------ Mfg Daniel www.MySldWorks.de - SolidWorks Api Snippets Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation

 Beiträge: 2622 Registriert: 12.07.2004
|
erstellt am: 28. Nov. 2008 08:41 <-- editieren / zitieren --> Unities abgeben:         
Hm! Sieht sehr schön aus! Zitat: Ist halt von hintern durch die Nase!
 Ja, das ist es auf jeden Fall!!!  Ich werde mal versuchen diese Sub einzubauen! Doch auch hier, denke ich, dass ich für jede Datei (rund 7 Stück) ich diese Sub jedesmal neu aufbauen muss. Es sind ja nicht immer die gleichen Linien und Bogen. Desshalb habe ich mir nur die einzelnen Elemente als Funktion erstellt, welche ich dann einfach zusammenstecken kann. Darum von hinten durch die Nase! 
------------------ http://www.worldcommunitygrid.org Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Moderator Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600
|
erstellt am: 28. Nov. 2008 08:45 <-- editieren / zitieren --> Unities abgeben:          Nur für G. Dawg
Viele Wege führen bekanntlich nach Rom! Der Code ist ja immer abhängigt von: - der eigentlichen Aufgabe - dem persönlichem Geschmack - dem aktuellem Wissenstand Wenn ich mir alte Funktionen von anschaue schlage ich beide Hände über den Kopf, aber es funktioniert und das ist die Hauptsache! Viel Spaß noch in .Net, du wirst es auf jeden Fall nicht bereuhen umzusteigen! ------------------ Mfg Daniel www.MySldWorks.de - SolidWorks Api Snippets Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation

 Beiträge: 2622 Registriert: 12.07.2004
|
erstellt am: 28. Nov. 2008 08:56 <-- editieren / zitieren --> Unities abgeben:         
Ich werde mir aber Deine Funktion trotzdem genau anschauen!! Das sieht wirklich sehr schön und sauber aus! Ich versuche eigentlich gleich von Anfang an auch so zu arbeiten, aber eben, mein Wissenstand steht mir da noch etwas im Wege  Vielen, vielen Dank für Deine Beiträge!! Ich bin Dir für jede Hilfe, Idee, Anregung etc. sehr dankbar! ------------------ http://www.worldcommunitygrid.org Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |