>
> > To me, this is bad because the blend tolerance (P0.5) is effectively
> > applied twice. In the example above, line N2 is eliminated entirely,
> which
> > means the path is already up to 0.5mm from ideal when it is passed to the
> > trajectory planner. Now, TP applies a blend with tolerance, leading to
> > another 0.5mm deviation, for a total of 1mm possible deviation.
>
> I don't think this is correct.  The endpoints of the NCD path are
> exactly the same as some of the original endpoints, and blending
> happens at endpoints.  So you will tend to have NCD path diversion
> (along the path where points have been removed) or blend diversion
> (at endpoints), but not both.  It seems like you might get SOME
> effect from both at the same time (but I'm not coming up with a
> picture of a good corner case in my head).
>
In your image,
>
> https://www.dropbox.com/s/bpg2xvxa30yrpzl/following%20error.png
>
> I don't know what the actual diversion tolerance is, but it appears
> the NCD diversion (from horizontal, due to the path aiming at the
> second corner) and the blend diversion (inside the newly-formed
> corner) don't add at all.  The diversion throughout the blend
> appears to be less than the diversion we had earlier due to only the
> NCD.
>

Since I wrote the original question, I've been able to understand NCD much
better, so some of what I said originally no longer applies. The example I
showed wasn't terribly good, but since then I've been able to find a better
one here:

https://www.dropbox.com/s/ixt2yuv6lvw0blp/naive_cam_quirk.png

Here's a snippet of G code that produces that path (uncomment the
appropriate G64 line).

G90 G20
G64 P0.1 Q0.0
(G64 P0.1 Q0.1)
G0 X0 Y0 Z0
G1 X2
G1 Y.1
G1 Y.2
G1 Y.3
G1 Y1
G0 X0
Y0
M2

Qualitatively, it seems like most of the time, your assertion is correct,
and the difference is slight. This particular case shows the effect more
dramatically. Incidentally, this also shows another liability with large
NCD tolerances. The move from X0.0 to X2.0 becomes a move from X0.0 to
(X2.0,Y0.1), which means that entire motion is shifted, and the toolpath is
no longer parallel to the X axis. Setting G64 P0.1 means the user would
expect larger blends, but they may not be expect this big deviation along
the whole line. It's possible that they fully understand the implications
of NCD, but if they don't, then this behavior will be a real
head-scratcher.


> (This is hard to talk about, without pointing at the picture - I
> hope my writing is clear enough)
>
> This may be moot; I am hoping you can just remove the NCD with your
> new planner.
>

Unfortunately, the new TP still has the restriction that you have to touch
each segment at least once. A small NCD tolerance is still useful to
combine stupidly short segments, in particular ones that would be skipped
over in a single cycle of the trajectory planner.

A quick theoretical example: If we want to follow a path at 60 IPM (1 IPS),
with a servo rate of 1kHz, then a segment that is shorter than 0.001" could
be skipped entirely during a single cycle update. Therefore, an NCD
tolerance of roughly 0.001" would eliminate these very short segments,
letting the TP maintain the desired speed.

Given this benefit, I don't think we can totally eliminate it. However,
since the tolerance can be much smaller than the blend tolerance and still
work well, it seems to me like another argument to decouple them.

-Rob
------------------------------------------------------------------------------
Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works. 
Faster operations. Version large binaries.  Built-in WAN optimization and the
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to