@ -96,6 +96,8 @@ float autotemp_factor=0.1;
bool autotemp_enabled = false ;
bool autotemp_enabled = false ;
# endif
# endif
unsigned char g_uc_extruder_last_move [ 3 ] = { 0 , 0 , 0 } ;
//===========================================================================
//===========================================================================
//=================semi-private variables, used in inline functions =====
//=================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 ( 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 )
switch ( extruder )
{
{
case 0 : enable_e0 ( ) ; disable_e1 ( ) ; disable_e2 ( ) ; break ;
case 0 :
case 1 : disable_e0 ( ) ; enable_e1 ( ) ; disable_e2 ( ) ; break ;
enable_e0 ( ) ;
case 2 : disable_e0 ( ) ; disable_e1 ( ) ; enable_e2 ( ) ; break ;
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
else //enable all