So I believe I've narrowed down the issue with this to this particular line in the plasmac.comp where axis_x_finish is set (see below).
When thc is enabled (but not active during a cut), it should use this block of code to determine the cut_offset and in turn compare that to skip_ihs_distance:
Code:
else if((axis_x_finish || axis_y_finish) && first_cut_finished){
cut_offset = sqrt(pow(axis_x_finish - axis_x_position, 2) + pow(axis_y_finish - axis_y_position, 2));
axis_x_finish = 0;
axis_y_finish = 0;
}
However, axis_x_finish and axis_y_finish are always set to 0 if auto_volts is enabled based on my testing. The causes the cut_offset calculation to be incorrect.
Here is the line which I believe is incorrect, as it is the only place that axis_x(y)_finish is set.
Code:
if(thc_enabled && ((!use_auto_volts || (use_auto_volts && target_volts)) || !torch_enable)){
axis_x_finish = axis_x_position;
axis_y_finish = axis_y_position;
}else{
axis_x_finish = 0;
axis_y_finish = 0;
}
Watching halmeter while cutting I can see that target_volts is always 0. This causes the ((!use_auto_volts || (use_auto_volts && target_volts)) to always be false when auto volts are enabled, and the OR comparison to !torch_enabled is always going to be false when we are cutting anyway. In turn, this causes axis_x_finish to always be 0 which breaks the IHS skip logic later on. This is verified by ENABLING THC, but DISABLING TORCH which causes the above else if statement to be true and axis_x/y_finish is correctly set. I mentioned that IHS skip functions properly if I do a dry run but not while the torch is on.
What is target_volts supposed to be set at? Should the statement be ((use_auto_volts || (!use_auto_volts && target_volts))?
I haven't dug into this any deeper after realizing that disabling auto volts causes IHS skip to function properly again. This should get me by for now...