|
|
|
@ -96,6 +96,8 @@ float autotemp_factor=0.1;
|
|
|
|
|
bool autotemp_enabled=false;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
unsigned char g_uc_extruder_last_move[3] = {0,0,0};
|
|
|
|
|
|
|
|
|
|
//===========================================================================
|
|
|
|
|
//=================semi-private variables, used in inline functions =====
|
|
|
|
|
//===========================================================================
|
|
|
|
@ -662,11 +664,34 @@ block->steps_y = labs((target[X_AXIS]-position[X_AXIS]) - (target[Y_AXIS]-positi
|
|
|
|
|
{
|
|
|
|
|
if (DISABLE_INACTIVE_EXTRUDER) //enable only selected extruder
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if(g_uc_extruder_last_move[0] > 0) g_uc_extruder_last_move[0]--;
|
|
|
|
|
if(g_uc_extruder_last_move[1] > 0) g_uc_extruder_last_move[1]--;
|
|
|
|
|
if(g_uc_extruder_last_move[2] > 0) g_uc_extruder_last_move[2]--;
|
|
|
|
|
|
|
|
|
|
switch(extruder)
|
|
|
|
|
{
|
|
|
|
|
case 0: enable_e0(); disable_e1(); disable_e2(); break;
|
|
|
|
|
case 1: disable_e0(); enable_e1(); disable_e2(); break;
|
|
|
|
|
case 2: disable_e0(); disable_e1(); enable_e2(); break;
|
|
|
|
|
case 0:
|
|
|
|
|
enable_e0();
|
|
|
|
|
g_uc_extruder_last_move[0] = BLOCK_BUFFER_SIZE*2;
|
|
|
|
|
|
|
|
|
|
if(g_uc_extruder_last_move[1] == 0) disable_e1();
|
|
|
|
|
if(g_uc_extruder_last_move[2] == 0) disable_e2();
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
enable_e1();
|
|
|
|
|
g_uc_extruder_last_move[1] = BLOCK_BUFFER_SIZE*2;
|
|
|
|
|
|
|
|
|
|
if(g_uc_extruder_last_move[0] == 0) disable_e0();
|
|
|
|
|
if(g_uc_extruder_last_move[2] == 0) disable_e2();
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
enable_e2();
|
|
|
|
|
g_uc_extruder_last_move[2] = BLOCK_BUFFER_SIZE*2;
|
|
|
|
|
|
|
|
|
|
if(g_uc_extruder_last_move[0] == 0) disable_e0();
|
|
|
|
|
if(g_uc_extruder_last_move[1] == 0) disable_e1();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else //enable all
|
|
|
|
|