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