Closed GoogleCodeExporter closed 9 years ago
The answer is to use the cross product of the vectors from start->centre and
end->centre. If the start, centre and end are in the same line then there can
be no
way to determine the arc's axis. i.e. the arc could be at any angle rotated
around
this line. In this case we can only assume the arc's axis is aligned with the Z
axis.
To avoid this, we need to generate arc movements that are less than 180
degrees.
Only this way can we obtain the arc's axis based on the three points held in the
GCode. The GCode guide for EMC2 makes this same suggestion. i.e. that a
circle is
broken up into at least 4 smaller arcs. (less than 180 degree movements)
Original comment by David.Ni...@gmail.com
on 5 Apr 2010 at 10:54
David,
I don't agree with these changes.
For my machine ( from the manual ):
"The axis of the circle or helix must be parallel to the X, Y, Z-axis of the
machine
coordinate system. The axis is selected with G17 ( Z axis ), G18 ( Y axis ) or
G19 (
X axis )."
It goes on to say, later, that if the Z is different from the starting Z, then
this
is a helical arc.
I create helical arcs when you have a tag on a profile operation, which is on
an arc
span.
This was working OK, for G17 ( Z-axis ) arc moves.
Currently, I assume that "up" is the z-axis. We need to change this to be
affected by
G18 and G19.
Original comment by danhe...@gmail.com
on 6 Apr 2010 at 9:11
Dan,
you're quite right. I have reverted the change to NCCode.cpp. I have also changed
the GCode generation for Contour operations so that, if the XZ or YZ planes have
rotation, the arc segments are stroked into lines so that the rotated arcs can
be
followed. If the XZ and YZ planes do not have rotation, a proper arc movement
is
produced. I know that the proper arc movements are preferable so that the
machine's
GCode interpreter can interpolate many more coordinates based on the machine's
resolution.
My goal was to be able to probe a PCB's tilt and have the generated GCode follow
that tilt accurately. This is due to the very small depths of cut for
machining PCBs.
Ta
David Nicholls
Original comment by David.Ni...@gmail.com
on 6 Apr 2010 at 10:47
Original issue reported on code.google.com by
David.Ni...@gmail.com
on 5 Apr 2010 at 6:51Attachments: