G41 and G42 Input path error

More
28 Aug 2017 11:35 #98081 by emcPT
Replied by emcPT on topic G41 and G42 Input path error
Well, I had issues also with this, and I understand that this is not a error, but I also understand that the "desired" toolpath is a full circle before the retract movement.
If you program a bit more of the circle after the full circle, then you will have the problem solved.
For me, it should not be considered a bug.

Please Log in or Create an account to join the conversation.

More
28 Aug 2017 12:48 #98085 by RobotMatic
Since 1992 I have programmed CNC machines, A programmer should only worry about the path he wants to generate, and not be solving situations that the CNC is working on. Fanuc, Fagor, Siemens, have no problem, since 2008 I am reporting this very big mistake. A CNC should not miss traces of the path one wants to generate with or without G41-G42. Your comment is incorrect, I'm sorry. Thank you !!!!

Please Log in or Create an account to join the conversation.

More
28 Aug 2017 15:49 - 28 Aug 2017 15:57 #98092 by Todd Zuercher
I spent a little time pouring over some Fanuc manuals, on the subject, and I think I see the difference in how Linuxcnc and Fanuc is handling the initiation of the G41/42 offsets. Linuxcnc is handling any corners created between the lead-in move and the following cut moves, the same as any corners that come after initialization of cutter compensation. So the starting point of the cut is offset by the tool radius from both the tool path and the lead-in move. Fanuc is treating that starting point differently, only applying the offset perpendicular to the cutting vector at the starting point.

The programmers of Linuxcnc were trying to prevent over-cutting when starting at an inside corner, and it does just that. But it is causing an undercut in the situation you are describing. If you programed a cut, starting at an inside corner, the Fanuc control would over-cut the starting move. (As far as I can see they both behave the same at the end of cutter comp and both would over cut there.)

I could not tell you how hard it may be to change this behavior. But I am pretty sure it was the intended behavior by whomever programmed it, so it's technically probably not a bug. The harder trick will be convincing the developers that the behavior should be changed.

The simplest work around is to either always program an over lap greater than your tool radius or make sure your lead-in move is tangential to your cut.
So your above inside circle cut would be something like this.
G0G90X0Y0Z20S1200M3F600
T1M6
Z0
/G1X50
G3G41D1X50I25J0
G3I-50J0
G1G40X0
M30
Last edit: 28 Aug 2017 15:57 by Todd Zuercher.

Please Log in or Create an account to join the conversation.

More
29 Aug 2017 01:16 #98119 by RobotMatic
Thank you very much for reading and writing in this post. I am raising this situation for a long time (years !!). The developers do not think this is a problem, but for example, try to create a postprocessor for any cam system that can solve the entry to the path with G41-G42 in the way that Linuxcnc poses :( it's impossible !!!! ). Fanuc and others have solved this complexity in a very simple way. For adjustments works with pressure is very important. Keep trying, for me is a big mistake as it should work, Linuxcnc should take as an example other controls like Fanuc, Fagor, etc, thank you very much !!

Please Log in or Create an account to join the conversation.

More
31 Aug 2017 02:14 #98251 by RobotMatic
In order to be able to visualize the erroneous way in which linuxcnc generates an input path, I leave a basic example of parametric programming so that it can be understood how complex and unnecessary it can be to perform auxiliary input motions. My intention is that this conceptual error be corrected by linuxcnc developers.
Attachments:

Please Log in or Create an account to join the conversation.

More
31 Aug 2017 02:24 - 31 Aug 2017 02:25 #98253 by RobotMatic
The image shows the actual programmed path that should be generated by Linuxcnc when using G41, but because they do not have the intelligence to enter a path, it is lost due to the tangency of the tool.
Attachments:
Last edit: 31 Aug 2017 02:25 by RobotMatic.

Please Log in or Create an account to join the conversation.

More
31 Aug 2017 03:29 - 31 Aug 2017 03:34 #98256 by Todd Zuercher
Adding one line of g-code to your program will make it run the way you wished it to. It's only a work-around, but it will get you where you want to go.
#100=50
#101=45
#102=20
#103=0.25
#104=0
#105=0
#106=0

G0G90X#104Y#105Z#106S1200M3F600
T1M6
o100 REPEAT [[#102/#103]]
#100=[#100-[TAN[#101]*#103]]
G1G91Z-#103
G1X[#100-[#5410/1.999]] (This is the key line)
G1G41X#100D1
G3I-#100J0
G1G40X-#100
o100 ENDREPEAT

G91G28Z0
M30
Last edit: 31 Aug 2017 03:34 by Todd Zuercher.

Please Log in or Create an account to join the conversation.

More
31 Aug 2017 03:36 #98257 by RobotMatic
Another example a more complex level of parametric programming where I return to show the path loss that linuxcnc generates in the input by the tangency of the tool. With these examples I hope to show you the importance of linuxcnc conceptual error when using G41-G42.

Attachments:

Please Log in or Create an account to join the conversation.

More
31 Aug 2017 03:46 #98259 by RobotMatic
dear Mr. Todd Zuercher. I am showing basic levels of parametric programming. As a programmer I should not have to generate any extra movement to generate a path. Only Linuxcnc requires it, no other cnc requires it, I try to ask developers to correct the way linuxcnc enters a path. thank you very much for writing regards

Please Log in or Create an account to join the conversation.

More
31 Aug 2017 04:00 - 31 Aug 2017 04:03 #98260 by Todd Zuercher
The exact same line of code I suggested above would work the same with that (if the #100 variable is changed to #110)
Last edit: 31 Aug 2017 04:03 by Todd Zuercher.

Please Log in or Create an account to join the conversation.

Time to create page: 0.161 seconds
Powered by Kunena Forum