2010/8/19 Chris Radek <ch...@timeguy.com>:
>
> Let me try to explain an example.  I really think the disconnect
> between how I as a programmer think about it and how a user thinks
> about it is our different understanding of what a "corner" is.  I
> tried to explain this in my last message.
>
> Say you are cutting inside a bunch of square pockets.  If you use a
> reasonable tool size for it the offset path is some smaller squares.
> If you use a larger tool diameter, the offset path gets smaller.  At
> some point, as you keep enlarging the tool, when the diameter of the
> tool is larger than the side of the square, the offset path disappears
> (it becomes a square with NEGATIVE side length).  At this point EMC
> will give you an error because it can't make the tool follow inside
> that path anymore.
>
> Note EMC doesn't know these pockets are squares.  But when it
> calculates these endpoints generated by finding where the tool fits
> inside the corner, and sees that they are connected by degenerate
> lines, it errors.  (EMC considers two corners at a time because you
> need to know two endpoints to make a compensated move.  These corners
> are defined by the three nearby moves.  This is the extent of its
> knowledge of your programmed motions as it moves along.)
>
> I understand you want it to keep going in some cases of degenerate
> paths, and I do too.  But without knowing things it can't know (like
> conceptually what the part looks like) it can't keep going without
> guessing.  In your program that cuts a hundred square pockets, what
> does it mean to keep going if the tool doesn't fit in them?

I think that I understand the explanation of programmer's point of
view very well.
So I have a question - how difficult is it to achieve following behavior:
skip those lines of code in concave corner, which are smaller than
tool, and continue, if there is any other G0 or G1/G2/G3 code to be
executed.
In Your example all the square pockets would be skipped and outside
contour would be cut. In my example I would get, what I want.

My idea, how to achieve this, is :

2010/8/19 Chris Radek <ch...@timeguy.com>:
>
> You are right - EMC does have handling for concave corners.  When two
> moves come together to form a concave corner, EMC calculates where the
> tool is tangent to both original moves and puts the offset corner
> there.

If
1) tool is in situation, where it is a tangent to 2 lines - one, that
has just been executed and the other - one that has not yet be done

and

2) that "second tangent" line is not the next line in the queue

then
skip all the remaining G1/G2/G3 lines so that the line, which is
tangent of the tool and which is not yet executed, is next in the
queue and execution of the code is resumed from there.

How hard is that from programmer's point of view?

This would solve my problem that code consists of very small straight
moves. I know that using some other CAM programm would solve the cause
of the issue rather than trying to workaround the consequences like I
am trying now...

I understand that there might be other commands beside G1/G2/G3 and
other special cases...

Viesturs

------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to