Add Chiron an Laser Stuff. Currently not in a good working condition, so be careful!

This commit is contained in:
Knutwurst
2021-01-18 15:22:14 +01:00
parent 451526bf15
commit 3f6663dca4

View File

@@ -1823,6 +1823,304 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
HARDWARE_SERIAL_ENTER();
}
break;
/*
* The following section is completely untested and
* does not work at this time. I's only used to help
* me adding the leveling features for the Anycubic
* Chiron printer.
*/
#if ENABLED(KNUTWURST_CHRIRON)
#ifdef AUTO_BED_LEVELING_BILINEAR
case 29: //A29 bed grid read
{
unsigned char temp_x=0,temp_y=0;
if(CodeSeen('X'))temp_x=CodeValue();
if(CodeSeen('Y'))temp_y=CodeValue();
float Zvalue=bed_level_grid[temp_x][temp_y];
Zvalue=Zvalue*100;
HARDWARE_SERIAL_PROTOCOLPGM("A29V ");
HARDWARE_SERIAL_PROTOCOL(Zvalue);
HARDWARE_SERIAL_ENTER();
}
break;
case 30://a30 auto leveling
{
if((planner.movesplanned())||(card.sdprinting))
{
HARDWARE_SERIAL_PROTOCOLPGM("J24");// forbid auto leveling
HARDWARE_SERIAL_ENTER();
}
if(CodeSeen('S') )
{
Manual_Leveling=0x55;
enqueue_and_echo_commands_P(PSTR("G28\nG29"));
}
}
break;
case 31: //a31 zoffset set get or save
{
if(Manual_Leveling==0xaa)break;
if(CodeSeen('S'))
{
float value=constrain(CodeValue(),-1.0,1.0);
NEW_zprobe_zoffset+=value;
for (uint8_t x = 0; x < ABL_GRID_POINTS_X; x++)
{
for (uint8_t y = 0; y < ABL_GRID_POINTS_Y; y++)
bed_level_grid[x][y] += value;
}
HARDWARE_SERIAL_PROTOCOLPGM("A31V ");
HARDWARE_SERIAL_PROTOCOL(NEW_zprobe_zoffset);
HARDWARE_SERIAL_ENTER();
}
if(CodeSeen('G')) {HARDWARE_SERIAL_PROTOCOLPGM("A31V ");HARDWARE_SERIAL_PROTOCOL(NEW_zprobe_zoffset); HARDWARE_SERIAL_ENTER(); }
if(CodeSeen('D')) SaveAutoBedGridData();
}
HARDWARE_SERIAL_ENTER();
break;
#endif
case 32: //a32 clean leveling beep flag
// {
// PointTestFlag=0;
// }
#ifdef AUTO_BED_LEVELING_BILINEAR
case 34: //a34 bed grid write
{
uint8_t x_array=0,y_array=0,result=0;
if(Manual_Leveling==0xaa) break;
if(CodeSeen('X')) x_array=constrain(CodeValue(),0,ABL_GRID_POINTS_X);
if(CodeSeen('Y')) y_array=constrain(CodeValue(),0,ABL_GRID_POINTS_Y);
if(CodeSeen('V')) {float i=constrain(CodeValue()/100,-10,10); bed_level_grid[x_array][y_array] = i;}
if(CodeSeen('S')) SaveAutoBedGridData();
if(CodeSeen('C')) ReadAutoBedGridData(); // if click return(didn't choose save),needs restore bed grid data.
}
break;
case 35:{ //RESET AUTOBED DATE //M1000
float temp;
if(code_seen('S')) temp=code_value_float();
else temp=-3.5;
for (uint8_t x = 0; x < ABL_GRID_POINTS_X; x++)
{
for (uint8_t y = 0; y < ABL_GRID_POINTS_Y; y++)
bed_level_grid[x][y] =temp;
};
bilinear_grid_spacing[0]=int((RIGHT_PROBE_BED_POSITION-LEFT_PROBE_BED_POSITION)/(ABL_GRID_POINTS_X-1));
bilinear_grid_spacing[1]=int((BACK_PROBE_BED_POSITION-FRONT_PROBE_BED_POSITION)/(ABL_GRID_POINTS_Y-1));
bilinear_start[0]=LEFT_PROBE_BED_POSITION;
bilinear_start[1]=FRONT_PROBE_BED_POSITION;
zprobe_zoffset = Z_PROBE_OFFSET_FROM_EXTRUDER;
NEW_zprobe_zoffset=Z_PROBE_OFFSET_FROM_EXTRUDER;
Manual_Leveling=0xaa;
SaveWay2Leveling();
SaveAutoBedGridData();
SERIAL_ECHOPGM("Done, Manual Leveling was actived!");
HARDWARE_SERIAL_ENTER();
}
break;
case 36:// a36 M1001
{
if((planner.movesplanned())||(card.sdprinting)) //forbit auto leveling when the printer is moving
{
HARDWARE_SERIAL_PROTOCOLPGM("J24");// forbid auto leveling
HARDWARE_SERIAL_ENTER();
HARDWARE_SERIAL_PROTOCOLLN("J24");
break;
}
do_blocking_move_to_z(50.0,30);
if(Manual_Leveling!=0x55)
{
for (uint8_t x = 0; x < ABL_GRID_POINTS_X; x++)
{
for (uint8_t y = 0; y < ABL_GRID_POINTS_Y; y++)
bed_level_grid[x][y] =-0.1;
};
bilinear_grid_spacing[0]=int((RIGHT_PROBE_BED_POSITION-LEFT_PROBE_BED_POSITION)/(ABL_GRID_POINTS_X-1));
bilinear_grid_spacing[1]=int((BACK_PROBE_BED_POSITION-FRONT_PROBE_BED_POSITION)/(ABL_GRID_POINTS_Y-1));
bilinear_start[0]=LEFT_PROBE_BED_POSITION;
bilinear_start[1]=FRONT_PROBE_BED_POSITION;
zprobe_zoffset = Z_PROBE_OFFSET_FROM_EXTRUDER;
NEW_zprobe_zoffset=Z_PROBE_OFFSET_FROM_EXTRUDER;
Manual_Leveling=0x55;
SaveWay2Leveling();
SaveAutoBedGridData();
SERIAL_ECHOPGM("Done, Auto Leveling was actived!");
HARDWARE_SERIAL_ENTER();
}
HARDWARE_SERIAL_PROTOCOLPGM("J26");//start auto leveling
HARDWARE_SERIAL_ENTER();
HARDWARE_SERIAL_PROTOCOLLN("J26");
}
break;
#endif
#endif
#if ENABLED(KNUTWURST_MEGA_P_LASER)
case 34:// Continuous printing ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ,Ҫ<><D2AA>һЩ׼<D0A9><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>½<EFBFBD>
{
en_continue = 1 ;}
break;
case 35:// Continuous printing ʧ<><CAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ
{
en_continue = 0 ;}
break;
case 36://A36 λͼ <20><><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8>ͼ
if(CodeSeen('S'))
{
int coorvalue;
coorvalue=CodeValueInt();
if(coorvalue!=0)
Laser_printer_st.pic_vector = 1; //<2F><>ʸ<EFBFBD><CAB8>ͼ
else
Laser_printer_st.pic_vector = 0;//<2F><>λͼ
}
case 37:
if(CodeSeen('S'))//X<><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
int coorvalue;
coorvalue=CodeValueInt();
if(coorvalue == 0)
Laser_printer_st.pic_x_mirror = 0;
else if(coorvalue == 1)
Laser_printer_st.pic_x_mirror = 1; //x<><78><EFBFBD><EFBFBD>
}
break;
case 38:
if(CodeSeen('S'))//A38 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
{
int coorvalue;
coorvalue=CodeValueInt();
Laser_printer_st.pic_laser_time = coorvalue;
}
break;
case 39:
if(CodeSeen('S'))//A39
{
float coorvalue;
coorvalue=CodeValue();
Laser_printer_st.laser_height = coorvalue;
HARDWARE_SERIAL_PROTOCOL("laser_height = ") ;
HARDWARE_SERIAL_PROTOCOLLN(Laser_printer_st.laser_height) ;
}
break;
case 40:
if(CodeSeen('S'))//A40
{
float coorvalue;
coorvalue=CodeValue();
Laser_printer_st.pic_pixel_distance = coorvalue;
}
break;
case 41:
if(CodeSeen('S'))//
{
float coorvalue;
coorvalue=CodeValue();
Laser_printer_st.x_offset = coorvalue;
}
break;
case 42:
if(CodeSeen('S'))//
{
float coorvalue;
coorvalue=CodeValue();
Laser_printer_st.y_offset = coorvalue;
}
break;
case 43:
if(CodeSeen('S'))//y
{
int coorvalue;
coorvalue=CodeValueInt();
if(coorvalue == 0)
Laser_printer_st.pic_y_mirror = 0;
else if(coorvalue == 1)
Laser_printer_st.pic_y_mirror = 1; //
}
break;
case 44:
send_laser_param();//
break;
case 49:// A49
{
laser_on_off = 0;
WRITE(HEATER_0_PIN, 0);
}
break;
case 50:// A50
{
if( laser_on_off == 0)
laser_on_off = 1;
else
{ laser_on_off = 0;
WRITE(HEATER_0_PIN, 0);
}
}
break;
case 51:// A51<35>Զ<EFBFBD><D4B6><EFBFBD>ƽ
{
if(CodeSeen('H'))//<2F><>һ<EFBFBD><D2BB>
{
enqueue_and_echo_commands_P(PSTR("G1 Z5 F500"));
enqueue_and_echo_commands_P(PSTR("G1 X30 Y30 F5000"));
enqueue_and_echo_commands_P(PSTR("G1 Z0.15 F300"));
}
else if(CodeSeen('I'))//<2F>ڶ<EFBFBD><DAB6><EFBFBD>
{
enqueue_and_echo_commands_P(PSTR("G1 Z5 F500"));
enqueue_and_echo_commands_P(PSTR("G1 X190 Y30 F5000"));
enqueue_and_echo_commands_P(PSTR("G1 Z0.15 F300"));
}
else if(CodeSeen('J'))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
enqueue_and_echo_commands_P(PSTR("G1 Z5 F500"));
enqueue_and_echo_commands_P(PSTR("G1 X190 Y190 F5000"));
enqueue_and_echo_commands_P(PSTR("G1 Z0.15 F300"));
}
else if(CodeSeen('K'))//<2F><><EFBFBD>IJ<EFBFBD>
{
enqueue_and_echo_commands_P(PSTR("G1 Z5 F500"));
enqueue_and_echo_commands_P(PSTR("G1 X30 Y190 F5000"));
enqueue_and_echo_commands_P(PSTR("G1 Z0.15 F300"));
}
else if(CodeSeen('L'))//<2F><><EFBFBD>IJ<EFBFBD>
{
enqueue_and_echo_commands_P(PSTR("G1 X100 Y100 Z50 F5000")); //<2F>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
}
}
break;
#endif
default:
break;
}
@@ -1831,9 +2129,7 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
TFTbuflen += 1;
}
serial3_count = 0; //clear buffer
}
else
{
} else {
if(serial3_char == ';') TFTcomment_mode = true;
if(!TFTcomment_mode) TFTcmdbuffer[TFTbufindw][serial3_count++] = serial3_char;
}