Hi Jarosław,
I believe we discussed it before ...
Note: I have since become wiser too, and would today use a
different approach:
_Mark
--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/082638e8-d2ef-4081-9f9d-513095ca740bn%40googlegroups.com.
> I know somehow safe Z - is it available in macros in Gcode driver ?
No. But such extra variables could be easily added to the
GcodeDriver (e.g.
here).
Note: it would be a Safe Z Zone, not just a single Safe
Z, because with dual nozzle machines the Safe Z Zone is in the middle
of the raw Z axis range.
> I would need to add some FIFO and delay to collect move commands sent by OpenPnp - right now the gcode moves are processes immediately
Definitely. If by "delay" you mean a grace period, that exactly
what we have done for Duet. Except for manual jogging, here
is always an M400 command that closes a motion sequence, so either
the grace period timeout or the M400 should execute the queued
motion.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/31a31257-25fb-4a4c-afc0-0f4e85e7c086n%40googlegroups.com.
> I made some simplification of the general case - I assign half of XY travel distance for each blending. While this is not the most optimal strategy in general case, it still should cover 99.9% of real cases.
That would be counter-productive. With your method, longer X/Y
distances result in flatter curves, i.e. the corner is slower
instead of faster. Short moves are going too high in Z.
I would do it as follows (numbered for easy referencing):
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/f0cee828-886a-4024-8a94-bece66e91f42n%40googlegroups.com.
> I guess you assume the same dynamic over Z and XY -
otherwise there would be ovals, not circles
No, I assume nothing! The dynamics of Z is just taken as it is and blended in time with the dynamics of X/Y, again as it is!
Your motion planner would have to be able to conduct the 7
segment planning of Z independently from the 7 segment
planning of X/Y. Two independent time axes!
There can be different durations of jerk segment,
acceleration segment etc. so this will by no means form a "circle"
or "ellipse". In fact, this would not even be the case if the
segments did coincide in time. Remember, a circular shape
is created by sin(t)
and cos(t) while
our displacement is a piece-wise 2nd or even a
3rd order polynomial of t.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/77408859-d2f3-413a-b5e0-b68ff045ec89n%40googlegroups.com.
> that is why I was surprised that you mentioned circles
I said "round corners" and "true arc", not meant to imply true circularity 😉
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/08b69024-ee76-4da2-8c90-767761a48ffdn%40googlegroups.com.