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

Comments

  • Hallo Nochmal,
    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
  • 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
  • Hi 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
  • Gut gesehen. Beim fräßen sollte man ja nach oben gehen um aus dem Material zu kommen.
    G92 Z-1 war auch nicht so gut da du damit das koordinatensystem änderst und nicht mehr zurück kommst zu den alten Koordinaten. In der Korrektur hast du es ja schon weggelassen, was wohl auch geholfen hat.
  • Hallo 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
  • Ok, wenns tut wie es soll.
    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


Sign In or Register to comment.