So now the behavior is that the program feeds up to the R plane, and then if it's in G98 and the original Z is higher than R it will rapid up to the old Z? Sounds good to me.
Will you please update the gcode docs to match the new behavior? Thhankss for this fix! Andy Pugh <git-...@git.linuxcnc.org> wrote: >Make the behaviour of G85 more as-expected > >Signed-off-by: Andy Pugh <a...@bodgesoc.org> > > >http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=0a2f75e > >--- > src/emc/rs274ngc/interp_cycles.cc | 16 +++++++++------- > src/emc/rs274ngc/rs274ngc_interp.hh | 2 +- > 2 files changed, 10 insertions(+), 8 deletions(-) > >diff --git a/src/emc/rs274ngc/interp_cycles.cc >b/src/emc/rs274ngc/interp_cycles.cc >index bd53b08..121b6d4 100644 >--- a/src/emc/rs274ngc/interp_cycles.cc >+++ b/src/emc/rs274ngc/interp_cycles.cc >@@ -320,11 +320,13 @@ int Interp::convert_cycle_g85(block_pointer >block, > CANON_PLANE plane, //!< selected plane > double x, //!< x-value where cycle is executed > double y, //!< y-value where cycle is executed >+ double r, // retract plane > double clear_z, //!< z-value of clearance plane > double bottom_z) //!< value of z at bottom of cycle > { > cycle_feed(block, plane, x, y, bottom_z); >- cycle_feed(block, plane, x, y, clear_z); >+ cycle_feed(block, plane, x, y, r); >+ cycle_traverse(block, plane, x, y, clear_z); > > return INTERP_OK; > } >@@ -909,7 +911,7 @@ int Interp::convert_cycle_xy(int motion, //!< a >g-code between G_81 and G_89, a > settings->spindle_turning, > settings->speed_feed_mode)) break; > case G_85: >- CYCLE_MACRO(convert_cycle_g85(block, CANON_PLANE_XY, aa, bb, >clear_cc, cc)) >+ CYCLE_MACRO(convert_cycle_g85(block, CANON_PLANE_XY, aa, bb, r, >clear_cc, cc)) > break; > case G_86: > CHKS(((settings->motion_mode != G_86) && (block->p_number == -1.0)), >@@ -1079,7 +1081,7 @@ int Interp::convert_cycle_uv(int motion, //!< a >g-code between G_81 and G_89, a > settings->spindle_turning, > settings->speed_feed_mode)) break; > case G_85: >- CYCLE_MACRO(convert_cycle_g85(block, CANON_PLANE_UV, aa, bb, >clear_cc, cc)) >+ CYCLE_MACRO(convert_cycle_g85(block, CANON_PLANE_UV, aa, bb, r, >clear_cc, cc)) > break; > case G_86: > CHKS(((settings->motion_mode != G_86) && (block->p_number == -1.0)), >@@ -1295,7 +1297,7 @@ int Interp::convert_cycle_yz(int motion, //!< a >g-code between G_81 and G_89, a > settings->spindle_turning, > settings->speed_feed_mode)) break; > case G_85: >- CYCLE_MACRO(convert_cycle_g85(block, CANON_PLANE_YZ, aa, bb, >clear_cc, cc)) >+ CYCLE_MACRO(convert_cycle_g85(block, CANON_PLANE_YZ, aa, bb, r, >clear_cc, cc)) > break; > case G_86: > CHKS(((settings->motion_mode != G_86) && (block->p_number == -1.0)), >@@ -1463,7 +1465,7 @@ int Interp::convert_cycle_vw(int motion, //!< a >g-code between G_81 and G_89, a > settings->spindle_turning, > settings->speed_feed_mode)) break; > case G_85: >- CYCLE_MACRO(convert_cycle_g85(block, CANON_PLANE_VW, aa, bb, >clear_cc, cc)) >+ CYCLE_MACRO(convert_cycle_g85(block, CANON_PLANE_VW, aa, bb, r, >clear_cc, cc)) > break; > case G_86: > CHKS(((settings->motion_mode != G_86) && (block->p_number == -1.0)), >@@ -1688,7 +1690,7 @@ int Interp::convert_cycle_zx(int motion, //!< a >g-code between G_81 and G_89, a > settings->spindle_turning, > settings->speed_feed_mode)) break; > case G_85: >- CYCLE_MACRO(convert_cycle_g85(block, CANON_PLANE_XZ, aa, bb, >clear_cc, cc)) >+ CYCLE_MACRO(convert_cycle_g85(block, CANON_PLANE_XZ, aa, bb, r, >clear_cc, cc)) > break; > case G_86: > CHKS(((settings->motion_mode != G_86) && (block->p_number == -1.0)), >@@ -1855,7 +1857,7 @@ int Interp::convert_cycle_wu(int motion, //!< a >g-code between G_81 and G_89, a > settings->spindle_turning, > settings->speed_feed_mode)) break; > case G_85: >- CYCLE_MACRO(convert_cycle_g85(block, CANON_PLANE_UW, aa, bb, >clear_cc, cc)) >+ CYCLE_MACRO(convert_cycle_g85(block, CANON_PLANE_UW, aa, bb, r, >clear_cc, cc)) > break; > case G_86: > CHKS(((settings->motion_mode != G_86) && (block->p_number == -1.0)), >diff --git a/src/emc/rs274ngc/rs274ngc_interp.hh >b/src/emc/rs274ngc/rs274ngc_interp.hh >index afcad66..ad4d436 100644 >--- a/src/emc/rs274ngc/rs274ngc_interp.hh >+++ b/src/emc/rs274ngc/rs274ngc_interp.hh >@@ -230,7 +230,7 @@ public: > CANON_DIRECTION direction, > CANON_SPEED_FEED_MODE mode); >int convert_cycle_g85(block_pointer block, CANON_PLANE plane, double x, >double y, >- double clear_z, double bottom_z); >+ double r, double clear_z, double >bottom_z); >int convert_cycle_g86(block_pointer block, CANON_PLANE plane, double x, >double y, > double clear_z, double bottom_z, double dwell, > CANON_DIRECTION direction); > >------------------------------------------------------------------------------ >Android is increasing in popularity, but the open development platform >that >developers love is also attractive to malware creators. Download this >white >paper to learn more about secure code signing practices that can help >keep >Android apps secure. >http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk >_____________________________________________ >Emc-commit mailing list >emc-com...@lists.sourceforge.net >https://lists.sourceforge.net/lists/listinfo/emc-commit -- Sebastian Kuzminsky ------------------------------------------------------------------------------ Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers