That makes a lot of sense, and I think parallels what we've been thinking. Given the case you've made, I'm wondering if we even need an INI option, since it's pretty clear that a blend between a rapid move and a feed move is a "bad thing".
-Rob On Thu, Feb 13, 2014 at 1:14 PM, David Bagby <[email protected]>wrote: > Hi Robert, > > If you try to do blending between feed and rapid moves, I think it needs > to be an option and that it's important that the option be turned off by > default. > > FYI, my reasoning: > Today, LCNC is a G code driven CNC implementation. > C code is inherently a modal language and G0 & G1 are different movement > movement modes. > I've personally never seen a machine that allows a transition between > modes (G0 and G1) while the machine is moving (though I suppose such an > animal may exist somewhere). I believe this is rare because the modes > are enforced by gcode's word/block structure and that structure > disallows G1 and G0 within the same block. > > To refresh my memory, I grabbed my copy of Smid (2nd edition) and found > this (page 50): > > "The purpose of preparatory commands is to select from two or more modes > of operation. If the rapid motion command G00 is selected, it is a > specific command relating to a tool motion. As it is impossible to have > a rapid motion and a cutting motion /active at the same time, /it is > impossible to have a G00 and G01 active simultaneously. Such a > combination creates a /conflict /in a block. IF conflicting G codes are > used in the same block, the /latter /G code will be used. > > N74 G01 G00 X3.5 Y6.125 F20.0 > > In the example, the two commands G01 and G00 are in conflict. As G00 is > the latter one in the block, it will become effective. The feedrate is > ignored in this block. > > N74 G00 G01 X3.5 Y6.125 F20.0 > > This is the exact opposite of the previous example. Here, the G00 is in > the front, therefore the G01 will take precedence and the motion will > take place as a cutting motion at the specified feedrate of 20.0 in/min." > > Smid's text says this is the case for Fanuc controlled machines. > This implies to me that trajectory planning and blending are something > that happens between moves while within the G01 mode, but not something > that can happen between moves that are in different modes (G01 vs G00). > > I also don't see blending as relevant within the G00 mode of operation. > This makes sense when we consider that there are a couple of other > things that make the motion modes different (due to the mature of the > machine motor hardware). > > G1 is commonly thought of as "feed move" and rapid as "as fast as > possible". > There are also other differences in that G1 is "follow the specified > path from A to B at the given feed rate" (I.e. this is a trajectory > controlled movement in that both path and feed are coordinated). > > In contrast, a rapid G0 move is "go from A to B by spinning up the > motors as fast as they will go and end up at B". > The _only _thing guaranteed for a rapid move is that the machine will > end up at B. > > An important difference is that this does not say that the straight line > from A to B will be followed. At least some (maybe most?) machine > manuals (a Haas mini-mill and VF-1 are examples I know of) explicitly > point out that the rapid path from A to B is NOT guaranteed... the path > could be a non-circular curved arc (depends on motor speeds and > acceleration settings etc), or a spiral that swirls in to point B etc. > > On heavy industrial machines this effect may not be obvious to the naked > eye (for example X and Y axes will probably be close in speed and accel, > so an XY G0 move will probably be close to a straight line), but on > other machines (for example a little shapeoko that I use for bench top > software testing) this is really apparent. > On the Shapeoko, X,Y and Z are significantly different wrt to max speed > and accel (X and Y are belt driven & Z is a screw). > Issue a rapid command and the shapeoko will go as fast as it can for a > rapid move - but not in a straight line. > In fact, a 3D plot of the total "rapid path transversed" would have to > include the shaking motion during the time needed for the entire machine > frame to stop vibrating after it arrives at B. :-D > > I was taught that to think of G0 (rapid) moves as "as fast as possible" > but "not planned or controlled wrt trajectory or speed". > With that in mind, the benefit of a trajectory planner attempting to > blend "trajectory controlled G1" and "non-trajectory controlled G0" > moves is a bit of a mystery to me. So far, I only see this as of some > possible use if I postulate a machine controlled by a language other > than G code. > (and we don't yet have a replaceable control language module in LCNC). > > Thus, my opinion is: > G01<->G00 blending has to be an option (if you include it at all) and it > has to default to Off (i.e. NO G1/G0 blending). > > Dave > > On 2/13/2014 6:43 AM, Robert Ellenberg wrote: > > I can add an INI setting fairly easily, and default to not allowing > blends > > between rapids and feed moves. > > > > > ------------------------------------------------------------------------------ > Android apps run on BlackBerry 10 > Introducing the new BlackBerry 10.2.1 Runtime for Android apps. > Now with support for Jelly Bean, Bluetooth, Mapview and more. > Get your Android app in front of a whole new audience. Start now. > > http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk > _______________________________________________ > Emc-developers mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/emc-developers > ------------------------------------------------------------------------------ Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk _______________________________________________ Emc-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-developers
