wikipedia puts a somewhat different spin on nurbs. see the "use" section of the article, first paragraph.
--- On Fri, 4/20/12, Viesturs Lācis <viesturs.la...@gmail.com> wrote: > From: Viesturs Lācis <viesturs.la...@gmail.com> > Subject: Re: [Emc-users] Trajectory planning and other topics from a > EMC(LinuxCNC) newbie (TheNewbie) > To: emc-users@lists.sourceforge.net > Date: Friday, April 20, 2012, 3:37 AM > 2012/4/20 Erik Christiansen <dva...@internode.on.net>: > > > > Curve fitting to an arbitrary bunch of points is an > approximate art, > > AIUI, with tolerance calculation at all points probably > taking a bit of > > time. Admittedly, I don't know whether nurbs make that > faster/slower or > > easier/harder to achieve algorithmically. But it does > look "non-trivial". > > > > As discussed previously, converting small lines to arcs is > not a > solution, because of different issues, associated with arcs, > that are > not in xy, xz or yz planes, see Chris Radek's messages in > "nonplanar > arcs" thread. > Nurbs do not have all those negative aspects. They even > provide > additional benefit - they can describe splines and other > nasty > geometry, that is difficult to express even with arcs. And > it seems > that LinuxCNC already is 3D Nurbs capable, so it is not xy, > xz or yz > plane dependable. The only trick is the math to convert from > series of > points to Nurbs. > > > But isn't the LinuxCNC dictum "Must be able to come to > a dead stop > > within the current line segment" unnecessary and > unhelpful when > > following a piecewise linear approximation of a smooth > curve? If a curve > > of ten thousand linear segments were instead one > continuous nurb (or > > whatever), then LinuxCNC would not be expected to stop > in a thousandth > > of an inch at any irrelevant point along the > single-segment curve, IIUC. > > (That's in fact where the much-desired speed > improvement would come from.) > > Well, if there are many small lines that create a smooth > arc, then the > "Must be able to come to a dead stop within the current line > segment" > approach sucks. But what to do, if the radius of "smooth > arc" suddenly > decreases or even ends with a sharp corner? Like the > butterfly shape > in that paper I posted link to. > Simply removing "Must be able to come to a dead stop within > the > current line segment" will be disastrous, so some changes > are needed > anyway. I have no idea, what does it take to expand the > "lookahead" > "distance" to several lines or even more. > > > If it is impossible to increase LinuxCNC's look-ahead, > to allow it to > > see that it need not radically decelerate, then why not > put the > > look-ahead in the gcode? Gcode allows Feedrate setting > amongst the > > "axes" terms in a G1. Would it not be possible to add a > Gwhiz gcode to > > turn off the stopping-within-a-segment hesitancy, and > set a nice fast > > initial Feedrate along with the G1. A lower Feedrate > setting would then > > be inserted prior to any sharp corner or the end of the > curve. > > This means that some preprocessor would need to be created. > And as You > mentioned, the filter would need to know, how fast machine > can > decelerate, so that it knows, where exactly to put the new > feedrate > value. > > 2012/4/20 andy pugh <bodge...@gmail.com>: > > > > It is relatively straightforward to convert a series of > points to a 3D > > polynomial (a least-squares curve fit will do it) > > > > However, that returns a polynomial, which isn't an arc > or a line. > > Based on the looks of those Nurbs splines, I _think_ that it > is some > kind of polynomial that describes it... > I downloaded the Rhino 4.0 demo version. It has a function > to convert > a mesh of points into a Nurbs surface. I guess that this > means - they > can be converted, but I just have no idea how, because I do > not really > understand that Nurbs math. I tried to draw some splines in > Rhino, but > it did not really help me understand them better. > > Viesturs > > ------------------------------------------------------------------------------ > For Developers, A Lot Can Happen In A Second. > Boundary is the first to Know...and Tell You. > Monitor Your Applications in Ultra-Fine Resolution. Try it > FREE! > http://p.sf.net/sfu/Boundary-d2dvs2 > _______________________________________________ > Emc-users mailing list > Emc-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/emc-users > ------------------------------------------------------------------------------ For Developers, A Lot Can Happen In A Second. Boundary is the first to Know...and Tell You. Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! http://p.sf.net/sfu/Boundary-d2dvs2 _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users