Pause beim Fräsen/Gravieren
Hallo Forum,
es tut mir leider das ich auf Deutsch schreibe aber ich glaube ich bekomme das Problem in englisch nicht beschrieben.
Es geht um folgendes:
Wir benutzen eine Repetier Firmware mit Repetier Host als Fräse/Graviermaschine was auch alles erstaunlich gut funktioniert.
Wir haben nur ein Problem mit der Pause funktion welche wir gerne ändern würden bzw. müssen um Sie benutzen zu können.
Folgendes macht Sie aktuell:
Nach dem Druck auf den Pause Knopf (egal ob bei der Maschine oder im Repetier Host) bleibt hält die Gravur an und die Spindel
wird nicht abgeschalten. Das müssen wir manuell machen.
Jetzt kommt das eigentliche problem. Wenn wir wieder auf start drücken resettet der Repetier Host den Fräser auf irgendwelche
Koordinaten fährt den Z-Kopf runter und Zieht ihn einmal quer druchs Material auf die Richtige position und wir können die Gravur bzw. das Gefräste wegschmeissen da der Fräser einmal quer druchgezogen wurde (mal rein davon abgesehen ob das der Fräser überlebt hat
und ob es einen Schrittverlust gab).
So nun die Frage. Kann man das ändern? Mein Wunsch wäre:
Man drückt auf Pause: Z-Fährt auf 0 oder -1 oder so, Spindel schaltet ab.
Man startet wieder: Spindel schaltet ein, Maschine wartet die Zeit X ab, Fährt X/Y auf die richtige position, Fährt Z- Achse
Das wäre eine Super sache wenn wir wüssten wie wir das ändern. So ist es leider nicht zu gebrauchen und richtet nur schaden an.
Eventell wäre es auch top hier 2 Skripte implementieren zu können. "Vor Pause" und "Nach Pause". Nach Pause gibt es wohl
ich habe aber keine Ahnung wie sich das auswirkt. Auch finde ich dazu nichts und "Vor Pause" gibt es wohl leider nicht.
Ich würde ich sehr über euere Unterstützung freuen.
Viele Grüße
Stefan
es tut mir leider das ich auf Deutsch schreibe aber ich glaube ich bekomme das Problem in englisch nicht beschrieben.
Es geht um folgendes:
Wir benutzen eine Repetier Firmware mit Repetier Host als Fräse/Graviermaschine was auch alles erstaunlich gut funktioniert.
Wir haben nur ein Problem mit der Pause funktion welche wir gerne ändern würden bzw. müssen um Sie benutzen zu können.
Folgendes macht Sie aktuell:
Nach dem Druck auf den Pause Knopf (egal ob bei der Maschine oder im Repetier Host) bleibt hält die Gravur an und die Spindel
wird nicht abgeschalten. Das müssen wir manuell machen.
Jetzt kommt das eigentliche problem. Wenn wir wieder auf start drücken resettet der Repetier Host den Fräser auf irgendwelche
Koordinaten fährt den Z-Kopf runter und Zieht ihn einmal quer druchs Material auf die Richtige position und wir können die Gravur bzw. das Gefräste wegschmeissen da der Fräser einmal quer druchgezogen wurde (mal rein davon abgesehen ob das der Fräser überlebt hat
und ob es einen Schrittverlust gab).
So nun die Frage. Kann man das ändern? Mein Wunsch wäre:
Man drückt auf Pause: Z-Fährt auf 0 oder -1 oder so, Spindel schaltet ab.
Man startet wieder: Spindel schaltet ein, Maschine wartet die Zeit X ab, Fährt X/Y auf die richtige position, Fährt Z- Achse
Das wäre eine Super sache wenn wir wüssten wie wir das ändern. So ist es leider nicht zu gebrauchen und richtet nur schaden an.
Eventell wäre es auch top hier 2 Skripte implementieren zu können. "Vor Pause" und "Nach Pause". Nach Pause gibt es wohl
ich habe aber keine Ahnung wie sich das auswirkt. Auch finde ich dazu nichts und "Vor Pause" gibt es wohl leider nicht.
Ich würde ich sehr über euere Unterstützung freuen.
Viele Grüße
Stefan
Comments
Der erste Fall lässt sich warscheinlich hiermit abfangen:
case UI_ACTION_PAUSE:
GCode::executeFString(PSTR("G92 Z-1"));
GCode::executeFString(PSTR("M5"));
Com::printFLN(PSTR("RequestPause:"));
break;
Damit müsste er vor der Pause Z auf -1 fahren und die Spindel abschalten. Oder muss da so aussehen:
case UI_ACTION_PAUSE:
Com::printFLN(PSTR("RequestPause:"));
GCode::executeFString(PSTR("G92 Z-1"));
GCode::executeFString(PSTR("M5"));
break;
Zwecks dem Reset der Position nach der Pause? Jetzt ist nur noch die Frage wie ich das "danach" abfangen kann.
Viele Grüße
Stefan
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
da ist was im argen im Maschinensetup.
G1 Z-1 fährt definitiv runter (ins material ) und nicht nach oben (vom material weg).
Z scheint falschrum zu laufen und drum passiert das auch mit der original Pause...
Grüsse,
Robert
Z arbeitet Invertiert. Z -1 fährt nach oben und Z 1 nach unten. Das war bei der originalsteuerung der Maschine genauso.
Das hängt bei uns mit dem CAM Programm zusammen was (ich müsste jetzt lügen, schau ich aber nochmal)
das nur in die richtung kann. Also Materialoberseite ist 0 und wenn ich einen Millimeter abtragen möchte fahr ich auf Z 1.
Ich werd das nochmal prüfen. Nicht das ich soviel hin und her invertiert habe das gar nicht mehr invertiert ist
Das wäre aber tatsächlich eine erklärung mit der Pause funktion. Wobei ich folgendes beobachtet habe:
Man drückt pause, Maschine hört auf. Man drückt auf weiter: Maschine fährt den Z- Kopf auf die richtige höhe der Gravur, bzw. des Fräsens uns zieht ihn dann einmal quer durchs material (reihenfolge z,y,x) (immer auf der richtigen höhe) und startet dann
wieder mit dem Gravieren/Fräsen auf der richtigen höhe. Das Haupt Problem ist einfach nur
das die Z-Achse als 1. bewegt wird und dann der rest. Wäre es anders herum wäre das kein Problem.
Die aktuelle Pause "funktion" läuft allerdings super und so wie sie soll. Ausserdem kann man es von
der Maschien aus wieder starten.
viele Grüße
stefan
Für mich siehts aus wie 2*falsch=richtig
Meine persönliche Meinung wäre aber ZAchse sowie Cam Program richtigrum zu konfigurieren (Sicherheitsabstand ist
im default normalerweise positiv zumindest bei CAMBAM , ESTLCAM und PCBGCODE die ich im Einsatz habe).
Grüsse Robert