vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
String (oder Byte-Array) viele millionen mal um 1 vergrößern 
Autor: Majuz
Datum: 24.06.09 14:27

Hallo zusammen,

nachdem ich es jetzt geschafft habe einen String direkt auf die Sektoren einer SD-Karte zu schreiben (siehe weiter unten im Forum) geht es nun daran diesen String zu erzeugen. Dieser String sind die Anweisungen an meine Selbstbau-CNC-Fräse. Diese wird mit Schrittmotoren angesteuert und bekommt quasi jeden Schritt mitgeteilt. Dazu habe ich ein Programm geschrieben, das aus einer HPGL-Datei die Schrittfolge für meine Fräse erzeugt (also Linien und Kreise "rastert"). Um dann letztendlich den String zu erzeugen habe ich im Programm folgende Sub geschrieben:
Sub fahren2(x As Integer, y As Integer, z As Integer)
  DoEvents
  If x = 1 And y = 0 And z = 0 Then
    datenstring = datenstring & "A"
  ElseIf x = -1 And y = 0 And z = 0 Then
    datenstring = datenstring & "B"
  ElseIf x = 0 And y = 1 And z = 0 Then
    datenstring = datenstring & "C"
  ElseIf x = 0 And y = -1 And z = 0 Then
    datenstring = datenstring & "D"
  ElseIf x = 1 And y = 1 And z = 0 Then
    datenstring = datenstring & "E"
  ElseIf x = 1 And y = -1 And z = 0 Then
    datenstring = datenstring & "F"
  ElseIf x = -1 And y = 1 And z = 0 Then
    datenstring = datenstring & "G"
  ElseIf x = -1 And y = -1 And z = 0 Then
    datenstring = datenstring & "H"
  ElseIf x = 0 And y = 0 And z = 1 Then
    datenstring = datenstring & "I"
  ElseIf x = 0 And y = 0 And z = -1 Then
    datenstring = datenstring & "J"
  Else
    MsgBox "Fehler beim erzeugen des Datenstrings. Daten nicht verwendbar!"
  End If
End Sub
Dies dauert aber viiiieeeellll zu lang. Nach 15min hab ich bei einer kleinen Testzeichnung abgebrochen. Ich hab dann testweise mal mitzählen lassen, wie viele male diese Sub aufgerufen wird. Waren über 7.000.000 mal. Bei einer richtigen Zeichnung kann das dann in die hunderte Millionen gehn (meine Fräse macht 2,4µm pro Schritt und hat einen Arbeitsbereich von 120*180mm). Ich hab auch mal den gesamten Inhalt der Sub auskommentiert und dann laufen lassen, dann lief das Programm etwa 2-3 Sekunden. Ich kann mir vorstellen, dass die Lösung von mir genauso ressourcenfressend ist wie ein "ReDim Preserve". Das Problem ist halt, dass ich nicht weiß, wie viele Schritte es letztendlich sind. Ich könnte höchstens alles einmal vorberechnen lassen und die gesamtzahl ermitteln, dann ein array einmal vergrößern und dann füllen. Ist aber keine "schöne" Lösung.

Wenn es ein Byte-Array ist könnte ich es am Ende dann so wie hier in einen String umwandeln. Ich könnte diesen String dann auch noch Lauflängenkodieren. Dann würde der String bei vielen Linien in X-und Y-Richtung deutlich kürzer. Bei vielen Splines und schrägen Linien würde das aber kaum was bringen. Außerdem muss man immer vom schlimmsten Fall ausgehen. Dann funktionieren die andern auch

Ich hab auch schon überlegt die "rasterung" vom Microcontroller der Fräse machen zu lassen, aber dieser muss die Motoren mit 1kHz ansteuern und gleichzeitig noch die Daten von der SD-Karte holen und ein LCD ansteuern usw. Dann kann der nicht auch noch die Rasterung übernehmen. Sonst müsste ich zwei µC einsetzen. Dann müsste ich aber wieder eine komplett neue Steuerungsplatine entwerfen.

Nun hoffe ich auf eure Ideen.

Vielen Dank im Voraus!

Gruß
Marius
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
String (oder Byte-Array) viele millionen mal um 1 vergrößern1.123Majuz24.06.09 14:27
Re: String (oder Byte-Array) viele millionen mal um 1 vergrö...639Dirk24.06.09 15:06
Re: String (oder Byte-Array) viele millionen mal um 1 vergrö...601Majuz24.06.09 17:58
Re: String (oder Byte-Array) viele millionen mal um 1 vergrö...675Ne kölsche Jung24.06.09 19:34
Re: String (oder Byte-Array) viele millionen mal um 1 vergrö...638Dirk25.06.09 08:15
Re: String (oder Byte-Array) viele millionen mal um 1 vergrö...573Majuz25.06.09 11:23
Re: String (oder Byte-Array) viele millionen mal um 1 vergrö...606Zardoz25.06.09 19:36
Re: String (oder Byte-Array) viele millionen mal um 1 vergrö...593Majuz25.06.09 21:05
Re: String (oder Byte-Array) viele millionen mal um 1 vergrö...661Zardoz24.06.09 20:10
Re: String (oder Byte-Array) viele millionen mal um 1 vergrö...628icetea12324.06.09 20:34

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel