Daniel Rogge
2012-11-07 22:47:01 UTC
Trying to mill a 1" diameter hole with a 1/2" diameter endmill using G42 radius offset compensation:
%
G40 G49 G54 G80 G90
G10 L1 P1 R.25
T1 M6
G43 H1
M3 S750
G0 X0 Y-.25 Z0
G1 Z-.1 F10
G41 X0 Y.5 D1
G3 J-.5
G40 G1 X0 Y0
M5
%
Error message says "Arc move in concave corner cannot be reached by the tool without gouging"
Move is in fact valid (lead in move is greater than the cutter radius, entry and exit moves adhere to crc rules). The error message occurs a couple times in the code, but some digging isolates this particular instance in convert_arc_comp2 defined in interp_convert.cc:
if TOOL_INSIDE_ARC(side, turn) {
// tool is inside the arc
dist_from_center = arc_radius - tool_radius;
toward_nominal = cy + tool_radius;
double l = toward_nominal / dist_from_center;
CHKS((l > 1.0 || l < -1.0), _("Arc move in concave corner cannot be reached by the tool without gouging"));
cy is not current_y as it is elsewhere in the code:
cy = arc_radius * sin(beta - M_PI_2l);
Reading the code didn't get me very far - there's not much of a hint of the original intent of the calculation of beta, why cy differs here in the code than in other places or the rational behind the ratio check (-1 < l < 1). I'm hoping that the developer who wrote convert_arc_comp2 is listening to this list and can cast some light on these calculations.
Thanks!
Daniel Rogge
%
G40 G49 G54 G80 G90
G10 L1 P1 R.25
T1 M6
G43 H1
M3 S750
G0 X0 Y-.25 Z0
G1 Z-.1 F10
G41 X0 Y.5 D1
G3 J-.5
G40 G1 X0 Y0
M5
%
Error message says "Arc move in concave corner cannot be reached by the tool without gouging"
Move is in fact valid (lead in move is greater than the cutter radius, entry and exit moves adhere to crc rules). The error message occurs a couple times in the code, but some digging isolates this particular instance in convert_arc_comp2 defined in interp_convert.cc:
if TOOL_INSIDE_ARC(side, turn) {
// tool is inside the arc
dist_from_center = arc_radius - tool_radius;
toward_nominal = cy + tool_radius;
double l = toward_nominal / dist_from_center;
CHKS((l > 1.0 || l < -1.0), _("Arc move in concave corner cannot be reached by the tool without gouging"));
cy is not current_y as it is elsewhere in the code:
cy = arc_radius * sin(beta - M_PI_2l);
Reading the code didn't get me very far - there's not much of a hint of the original intent of the calculation of beta, why cy differs here in the code than in other places or the rational behind the ratio check (-1 < l < 1). I'm hoping that the developer who wrote convert_arc_comp2 is listening to this list and can cast some light on these calculations.
Thanks!
Daniel Rogge