Hey,
ich denk ich habs gelöst. Ich hab eine neues Pause "Script" geschrieben welches ich in der FW auf meine Pause
Taste gelegt habe.
Das sieht folgendermaßen aus:
ui.cpp:
#if UI_HAS_KEYS == 1
if(action & UI_ACTION_TOPMENU) // Go to start menu
{
menuLevel = 0;
}
action &= 8191; // strip out higher level flags
if(action >= 2000 && action < 3000)
{
setStatusP(Com::translatedF(UI_TEXT_STRING_ACTION_ID));
}
else
switch(action)
{
case UI_ACTION_PAUSE_SCRIPT_BUTTON:
GCode::executeFString(PSTR("M401")); \Aktuelle Position speichern
GCode::executeFString(PSTR("G1 Z-1")); \Z auf -1 ziehen für Sicherheitsabstand
GCode::executeFString(PSTR("G1 X0 Y0")); \Tisch auf 0 Fahren
GCode::executeFString(PSTR("M5")); \Spindel aus
GCode::executeFString(PSTR("G4 S5")); \5 Sekunden warten
GCode::executeFString(PSTR("G1 Z0")); \Z auf 0 Fahren, Jetzt ist alles auf Null falls ein Problem mit der Com oder so gibt kann man das Gravieren /Fräsen einfach neu starten und kann nochmal neu Anfangen mit dem selben Material
GCode::executeFString(PSTR("M226 P66 S0")); \Pausieren bis auf zurück gedrückt wird
GCode::executeFString(PSTR("G1 Z-1")); \Auf Sicherheitsabstand fahren
GCode::executeFString(PSTR("M402 X")); \Gespeicherte Position anfahren
GCode::executeFString(PSTR("M402 Y")); \Gespeicherte Position anfahren
GCode::executeFString(PSTR("G4 S5")); \5 Sekunden warten fals er eine falsche Position anfährt kann man noch abbrechen
GCode::executeFString(PSTR("M4")); \Spindel einschalten
GCode::executeFString(PSTR("M402 Z")); \Z Wieder auf die richtige Höhe fahren
break; \Starten
ui.h:
#define UI_ACTION_PAUSE_SCRIPT_BUTTON 1802
UI_KEYS_INIT_BUTTON_LOW(66); // Zurück
UI_KEYS_INIT_BUTTON_LOW(57); // Pause
UI_KEYS_BUTTON_LOW(66,UI_ACTION_TOPMENU); // Zurück
UI_KEYS_BUTTON_LOW(57,UI_ACTION_PAUSE_SCRIPT_BUTTON); // Pause
Mal gucken, ich denke das das gut klappt. Haben das gestern zick mal getestet, hat super funktioniert.
Auch wärend pause die Maschine ausschalten und komplett neu starten war kein Problem.
Als verbesserungsvorschlag für Repetier:
Die Pause funktion so wie die 1-5 Scripte als Script einbinden das ausgeführt wird. Dann kann man
das schön für sich selber einstellen und wenn es nicht passt, anpassen.
Also quasi die Pause der FW startet dieses Skript so wie jetzt auch.
Viele Grüße
Stefan