I wrote a message about this some time ago, but its contents are still
essentially accurate:
    http://mid.gmane.org/20081022160842.ga6...@unpythonic.net

When converting complex curves like nurbs into gcode, the relevant
behavior of the motion planner is this:

| Make sure moves are "long enough"
| ---------------------------------
| Principally because of the rule that "the machine will never move at
| such a speed that it cannot come to a complete stop at the end of the
| current movement", there is a minimum movement length that will allow
| the machine to keep up a requested feed rate with a given acceleration
| setting.
| 
| The acceleration and deceleration phase each use half the inifile
| MAX_ACCELERATION.  In a blend that is an exact reversal, this causes the
| total axis acceleration to equal the inifile MAX_ACCELERATION.  In other
| cases, the actual machine acceleration is somewhat less than the inifile
| acceleration
| 
| To keep up feed rate, the move must be longer than the distance it takes
| to accelerate from 0 to the desired feed rate and then stop again.
| Using A as 1/2 the inifile MAX_ACCELERATION and F as the feed rate
| *in units per second*, the acceleration time is
|     ta =  F/A
| and the acceleration distance is
|     da = (1/2) * F * ta
| the deceleration time and distance are the same, making the critical
| distance
|     d = da + dd = 2*da = F^2 / A.
| 
| For example, for a feed rate of 1 inch per second and an acceleration of
| 10 inch/sec^2, the critical distance is 1^2 / 10 = .1 inch.  For a feed
| rate of .5 inch per second, the critical distance is .5^2 / 10 = .025
| inch.

If your curves lie in a plane, consider approximating them with arcs
instead of with straight segments.  This can give a better approximation
with a smaller number of segments, making the typical segment longer.
    http://emergent.unpy.net/01171767993
        - a blog entry of mine on biarcs
    http://emergent.unpy.net/files/papers/V1Nos1to4_22.pdf
        - the paper I got the math from (fig1 and associated formulae)
          I chose "r=1" to give more-equal arcs, rather than following
          their method for choosing optimal r

Jeff

------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to