Z lift on pause press on LCD

If i am using printer as plotter and i hit pause it will draw a line (will not move head up before it moves in horizonat plane).It will draw same line on resume.There is option :

#define PAUSE_START_COMMANDS ""
#define PAUSE_END_COMMANDS ""

And if i  add there command to lift the head it will lift it but after it moves to origin.What i should do to make it to do that before it moves?

Comments

  • Heere is the pause implementation in dev version which I hope you are using as it is the only one we make fixes for.

    void SDCard::pausePrint(bool intern) {
    if (!sdactive)
    return;
    sdmode = 2; // finish running line
    Printer::setMenuMode(MENU_MODE_PAUSED, true);
    #if !defined(DISABLE_PRINTMODE_ON_PAUSE) || DISABLE_PRINTMODE_ON_PAUSE == 1
    Printer::setPrinting(false);
    #if NEW_COMMUNICATION
    GCodeSource::removeSource(&sdSource);
    if (EVENT_SD_PAUSE_START(intern)) {
    if (intern) {
    Commands::waitUntilEndOfAllBuffers();
    // sdmode = 0; // why ?
    Printer::MemoryPosition();
    Printer::moveToReal(IGNORE_COORDINATE, IGNORE_COORDINATE,
    IGNORE_COORDINATE,
    Printer::memoryE - RETRACT_ON_PAUSE,
    Printer::maxFeedrate[E_AXIS] / 2);
    Printer::moveToParkPosition();
    Printer::lastCmdPos[X_AXIS] = Printer::currentPosition[X_AXIS];
    Printer::lastCmdPos[Y_AXIS] = Printer::currentPosition[Y_AXIS];
    Printer::lastCmdPos[Z_AXIS] = Printer::currentPosition[Z_AXIS];
    GCode::executeFString(PSTR(PAUSE_START_COMMANDS));
    }
    }
    EVENT_SD_PAUSE_END(intern);
    }

    void SDCard::continuePrint(bool intern) {
    if (!sd.sdactive)
    return;
    if (EVENT_SD_CONTINUE_START(intern)) {
    if (intern) {
    GCode::executeFString(PSTR(PAUSE_END_COMMANDS));
    Printer::GoToMemoryPosition(true, true, false, false,
    Printer::maxFeedrate[X_AXIS]);
    Printer::GoToMemoryPosition(false, false, true, false,
    Printer::maxFeedrate[Z_AXIS] / 2.0f);
    Printer::GoToMemoryPosition(false, false, false, true,
    Printer::maxFeedrate[E_AXIS] / 2.0f);
    }
    }
    EVENT_SD_CONTINUE_END(intern);
    #if NEW_COMMUNICATION
    GCodeSource::registerSource(&sdSource);
    Printer::setPrinting(true);
    Printer::setMenuMode(MENU_MODE_PAUSED, false);
    sdmode = 1;
    }

    You see we
    - store position
    - retract extruder
    - move to park position
    - Then execute your gcode from configuration

    When continuing we
    - run your end command
    - go to memorized position
    - continue printing

    All assuming you are using sd print.
    So it will move to the side and if you have a rise command it will raise after park position is reached which I assume is your 0,0. You can instruct also to rise z with park position. 

    If you need to rise first to prevent drawing on paper you can modify
    moveToParkPosition
    to rise first and then move to park position. Or set XY park position to IGNORE_COORDINATE which has value 999999 then you do not have the move from going to park position.
  • Thank you for fast reply.This is the code i use....And i am not software guy.Can you please do modification so it can work as i need it?I simply need it to lift on Z for 1mm and then do all as it is doing.On resume i need it to go where i t was before pause and thats it.
  • As I said set in eeprom
    parkx and parky to 999999 and park raise z to 1. No changes needed in that case.
  • i dont have in my files parkx and parky....nither park raise z :(
  • edited April 7
    @Repetier : This feature is already implemented in CNC MODE , also in actual Master branch


    #define CNC_SAFE_Z 150 // Safe Z height so tool is outside object, used for pause

    @Mikelangelo : which Firmware version do you use ?

  • I see CNC_SAFE_Z is come configs but is no where used:-(

    I talk about dev version (aka 1.0.4 at the moment)

    It defines park position
    #define PARK_POSITION_X 0
    #define PARK_POSITION_Y 10
    #define PARK_POSITION_Z_RAISE 10

    and also has them in eeprom as
      writeFloat(EPR_PARK_X, PSTR("Park position X [mm]"));
      writeFloat(EPR_PARK_Y, PSTR("Park position Y [mm]"));
      writeFloat(EPR_PARK_Z, PSTR("Park position Z raise [mm]"));



  • Repetier said:
    I see CNC_SAFE_Z is come configs but is no where used:-(
    OOPS...
    thought we implemented that last year.May be it just got lost.
    Have to dig in harddisk as i switched over to V2
  •  FIRMWARE_NAME:Repetier_0.92.9 this is what i have.As i said once....i tried to make new firmware and it couldnt compile.So i need help for this firmware version i have.It works absolutely perfect on my machine.
  • Sorry but I can't say much about that version. I have fixed and added so much since then that I do not know the state and won't fix it as well. As I said 1.0.4 is where fixes go. 

    If you send compile error I might help getting it to compile or even fix it if it is caused by a bug.
  • I will try once again to make new firmware.Its ok if you dont want to fix it.I understand.All i have is working perfect so its all just fine.
  • edited April 8
    I made it.I made multiple single extruder and mixed extruder frimware....1.0.3.I managed to find all what was needed to make it to work.I have noticed that in mixed mode, control for individual extruder control is gone and there is no mixing ratio feature available in this firmware version.Also all temperature issues i had are gone now.So all works properly.Can you make some fix so in mixed mode i can set steps per mm for each extruder and have mixed ratio option too?
  • And there is one more thing :( ....filament runout sensor definition.....in this latest firmware thats simply disabled (it looks like) .....I have two filament sensors and i defined them in config file but in both printer files function for that i did is missing.So how should i set filament runout sensors to work.Each of them are on X+ and Y+.
  • Each extruder in mixed mode has it's own steps per mm in eeprom. You can also define the first x virtual extruders to use 100% of one filament only so no mixing occurs. Why do you think it is gone? Did not remove it.

    Also we still have out of filament sensors. If you uploaded config files which you modified manually you will of course loose the manual changes. You always need to change it with config tool. Config tool uses the settings in the comment at the end to create new configs.
Sign In or Register to comment.