The next decision is about the  code to change.
I would be glad to read your opinions.

My suggestion - the easy way - is to keep the code for nurbs calculations.
Only change the wording to nubs_plane with coordinates nurbs_X and nurbs_Y
to be clear this is still a 2d nurbs (and not machine axes).
And then to map the calculation to the active plane.

For CANON_PLANE_XY
nurbs_X -> X
nurbs_Y -> Y

For CANON_PLANE_YZ
nurbs_X -> Y
nurbs_Y -> Z

For CANON_PLANE_XZ
nurbs_X -> X
nurbs_Y -> Z

This results for example in file gcodemodule.cc function NURBS_FEED:

now:
                STRAIGHT_FEED(line_number, P1.nurbs_X, P1.nurbs_Y, _pos_z, 
_pos_a, _pos_b, _pos_c, _pos_u, _pos_v, _pos_w); //original

new:
                if(plane==CANON_PLANE_XY)
                        {
                        STRAIGHT_FEED(line_number, P1.nurbs_X, P1.nurbs_Y, 
_pos_z, _pos_a, _pos_b, _pos_c, _pos_u, _pos_v, _pos_w); //unchanged
                        }
                if(plane==CANON_PLANE_YZ)
                        {
                        STRAIGHT_FEED(line_number, P1.nurbs_X, _pos_y, 
P1.nurbs_Y, _pos_a, _pos_b, _pos_c, _pos_u, _pos_v, _pos_w); //
                        }
                if(plane==CANON_PLANE_XZ)
                        {
                        STRAIGHT_FEED(line_number, _pos_x, P1.nurbs_X, 
P1.nurbs_Y, _pos_a, _pos_b, _pos_c, _pos_u, _pos_v, _pos_w); //
                        }

In file emccanon.cc each nurbs segment uses the function biarc,
which results in two calls to ARC_FEED, which is aware of the active plane.

Joachim


_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to