Hallo zusammen,
Ich habe einen Maschinencode für eine 3 Achsen Portalmaschine der anbestimmten Stellen Variabel angepasst werden muss, die Werte werden Mathematisch berechnet, sprich dazu oder abgezogen um ein Verschiebung der Verfahr Wege zu realisieren.
Eine klein GUI mit MsgBox zur Überprüfung hab ich erstellt aber komme jetzt nicht weiter wie ich die Menge von Daten verarbeiten soll.
Zum Test wird nur die Zeile 22 und der Wert X zum Test rangenommen, test.txt ist ganz unten angehägt.
Die Anforderung ist nur bestimmte Koordinaten anzupassen, für X die Zeilenvon 22 bis 84, Z 22-152 und Y nur 21 der Rest muss so bleiben.
Das Schwierige ist wie der Code geschrieben wird z.B. Zeile 22 "G01 X195.138Z14.428"(ohne "), die Werte in Rot sind nie dieselben was mich vermuten lässt dasich Zeile für Zeile auslesen und ändern muss.
Das nächste ist das die File keine txt Endung hat sondern nc aber ich wäreschon glücklich ein txt File zu generieren oder anzupassen.
Hier einmal mein recht simpler Code der GUi und der Ausgabe
#include <ButtonConstants.au3>
#include <WinAPIFiles.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#include <Array.au3>
#Region ### START Koda GUI section ### Form=c:\users\amill\downloads\koda_1.7.3.0\templates\nc.kxf
$Form1_1 = GUICreate("Form1", 894, 533, 192, 124)
$Graphic1 = GUICtrlCreateGraphic(80, 8, 446, 406)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0x000000, 0x3366FF)
GUICtrlSetGraphic(-1, $GUI_GR_RECT, 8, 8, 433, 393)
$WertY1 = GUICtrlCreateInput("0", 544, 264, 121, 21)
$WertX1 = GUICtrlCreateInput("0", 544, 312, 121, 21)
$Label1 = GUICtrlCreateLabel("Mass in Y -", 544, 240, 56, 17, $SS_CENTER)
$Label2 = GUICtrlCreateLabel("Mass in X -", 544, 288, 56, 17, $SS_CENTER)
$WertZ1 = GUICtrlCreateInput("0", 544, 360, 121, 21)
$Label3 = GUICtrlCreateLabel("Mass in Z -", 544, 336, 56, 17, $SS_CENTER)
$Label4 = GUICtrlCreateLabel("X undY 0", 88, 416, 96, 25, $SS_CENTER)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Label5 = GUICtrlCreateLabel("Grundmass in mm X100 Y 100 Z10", 96, 440, 204, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Erstellen = GUICtrlCreateButton("Erstellen", 544, 440, 123, 25)
$Beenden = GUICtrlCreateButton("Beenden", 544, 472, 123, 25)
$WertY2 = GUICtrlCreateInput("0", 688, 264, 121, 21)
$WertX2 = GUICtrlCreateInput("0", 688, 312, 121, 21)
$Label7 = GUICtrlCreateLabel("Mass in Y +", 688, 240, 59, 17, $SS_CENTER)
$Label8 = GUICtrlCreateLabel("Mass in X +", 688, 288, 59, 17, $SS_CENTER)
$WertZ2 = GUICtrlCreateInput("0", 688, 360, 121, 21)
$Label9 = GUICtrlCreateLabel("Mass in Z +", 688, 336, 59, 17, $SS_CENTER)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Form1_1
Case $Label1
Case $Label2
Case $Label3
Case $Label7
Case $Label8
Case $Label9
Case $Beenden
Exit
Case $Erstellen
$WertX3 = GUICtrlRead($WertX1)
$WertY3 = GUICtrlRead($Werty1)
$WertZ3 = GUICtrlRead($WertZ1)
$WertX4 = GUICtrlRead($WertX2)
$WertY4 = GUICtrlRead($Werty2)
$WertZ4 = GUICtrlRead($WertZ2)
;Datei einlesen
$file=FileOpen("C:\Users\amill\Desktop\test.txt",0)
;Zeile und einrückung bestimmen
$deinezeile = 22
$ab_zeichen = 6
;Daten zusammen fassen
$string = StringMid(FileReadLine($file, $deinezeile), $ab_zeichen)
;Berechnung
$ergebnis = ($string - $Wertx3 + $WertX4)
;Fertige Zeile die geschrieben werden soll
$string2="G01 X"&$ergebnis&" Z14.428"
Msgbox(0, "Ergebnis", $ergebnis)
FileWrite("C:\Users\amill\Desktop\test.txt",$string2&@CR)
EndSwitch
WEnd
Alles anzeigen
Ich verlang jetzt kein Komplettlösung (aber freuen würde ich mich dennoch darüber ) wohl verlagen schon übelkling
, hoffe auf eine Unterstützung meines Problems da ich schon seit Tagen daran hänge und keine Idee finde
, dazu kommt das ich jetzt kein Profi bin aber dennoch versuch zu Lernen was mir schwerfällt mit dem Alltagsstress.
Mfg
Alex
Hier Noch mein Test.txt mit den NC Code.
test.txt