|
|
@ -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
|
|
|
|