Does Machinekit Support Tool Centerpoint Control (tcp)?

279 views
Skip to first unread message

Xander Luciano

unread,
Mar 29, 2016, 2:25:51 PM3/29/16
to Pocket NC
Hey guys,

I've been in the CNC industry for a few years now and a common feature on some full size 5 axis mills is something called Tool Centerpoint Control or Tool Centerpoint Management. This basically allows you to put a part in the machine ANYWHERE and just zero the machine to the part using an offset such as G54. The machine control then uses the tool length in the tool offsets combined with the axis center of rotation to compensate for any A and B rotation. 

From all the tutorials I have seen on the PocketNC everyone seems to be programming from the center of machine rotation with a predefined stock location. I'm curious as to whether the software the PocketNC uses (Machinekit) supports Tool Centerpoint Control, and if so, how would I utilize it?

For more info on Tool Centerpoint Control/Management see: http://blog.hurco.com/blog/bid/263615/5-Axis-Buzz-Words-learn-the-lingo

Thanks.
-Xander

Tokyo Pav

unread,
Apr 1, 2016, 12:07:22 AM4/1/16
to Pocket NC
It would be machinekit supporting the work offset, G54, G55, G56 etc. I'm pretty sure it would at least in 3-axis mode. Not sure if machinekit would handle plane rotation. 

Randy Kopf

unread,
Apr 1, 2016, 2:00:05 PM4/1/16
to Pocket NC
I've tried to research TCP on the Machinekit forum. There is some progression. 

Pocket NC does supports 3 Axis Fixture offsets. but not under 5 Axis mode.
Pocket NC does NOT support TCP at this time.
The Pocket NC used the intersection of the two rotary tables as that origin.

With Pocket NC your part can still be placed anywhere in the working envelope of the machine. It's just the origin used in the part program and the output of the code must be based on the Machines Origin. Since this is required up front you must incorporate and use the Machine Origin as the bases for the output code. And if the part is positioned shifted from the machine origin it must be modeled in the program as such.

With TCP (not supported) The program can use a different origin than the machines origin. And the program does not need to know where the origin of the machine is. During setup on the actual machine you must describe where the part program origin with respect to the machine origin. So that can be done long after the program is made.

So let me explain this using the graphic below.

With Pocket NC
The machines origin is shown with a red taget. And there is an orange block that is 1" square. It is sitting 1/2" off the origin of the machine. It's position is X0.5 Y0.5 So this shows a part can be setup anywhere. With Pocket NC if you wanted to make a position move to the corner shown with the green target the NC Code would read X0.5, Y0.5 then if you read the coordinates on the actual machine the part program and machine values both would be the same and read X0.5, Y0.5

With Fixture Offset and TCP 
In this case the Part Program Origin could be set to the Green Target. And the part can be setup shifted on the machine later. So the origin in the program is now X0,Y0 And if you made a positioning move to that green target the code would be X0,Y0.  But you would need to input values into a fixture offset to decribe where the position of the part is with respect to the position of the machine. I.e. G54 X0.5, Y0,5. Then when you execute the program and if you execute the program as it moves to the corner with the Green target the machine would read X0,Y0 for Part Origin YET it would read X0.5, Y0.5 for Machine coordinates

Conclusion:
So all this means is one way (Pocket NC) you must setup that difference of any shift up front in the program. And the Second method (Fixture Offset TCP not supported) is you could do it later. Granted that later allows for variation is parts and precise setup. 

Let me know if you need more clarification.

Randy Kopf


Xander Luciano

unread,
Apr 1, 2016, 2:31:36 PM4/1/16
to Pocket NC
Yea Machinekit supports G54, G55, etc. (it has 10 cusotm offsets I believe G54-59, G59.1, G59.2 and G59.3) and you set those with
G10 L2 P# X# Y# Z# A# B#
Where # is a number and X, Y, Z, A, and B are optional parameters. I didn't see anywhere about it handling plane rotation though. Possibly could be added into a post processor if you tell it the offset ahead of time, but I'm not sure if that's worth the effort.

Randy Kopf

unread,
Apr 1, 2016, 4:34:07 PM4/1/16
to Pocket NC
While Machinekit supports Fixture Offset programming and technically the Pocket NC does as well... it should be noted without TPC the Pocket NC won't be able track the part origin and positions under 5 axis with simultaneous motion. 

In a simple sense if you position the tool tip to a corner of a part and rotate around that point with TCP (5 Axis Simultaneously) and you move all 5 tables they will work in unison to stay on that point while the angle of rotation changes. With caution I would mention I do this type of work every day at my day job with Mastercam and a Fanuc based CMS 5 Axis Router. I am not trying in any way to act smart I'm am simply trying to share important information to help others understand the issue.

I'd also say I've not YET used Fixture Offsets on the Pocket NC since I am more interested in 5 Axis work. But it would be worth seeing how it works Fixture Offsets do work and what the limit is. Like for  3+2 positioning work. I am certain caution would need to be used to initially position after calling a Fixture Offset that includes a A/B table and caution while exiting after the end of cut motions.

Here is as great video by Fanuc explaining advanced machining modes on 5 Axis machines and I learned some things watching it.


Randy Kopf

Randy Kopf

unread,
Apr 8, 2016, 11:23:12 AM4/8/16
to Pocket NC
Xander:
Good morning I was curious if you had a chance to use Fixture Offsets on your Pocket NC? Or do you just set it up statically like the example from Pocket NC?
Thanks,
Randy

Xander Luciano

unread,
Apr 8, 2016, 2:59:46 PM4/8/16
to Pocket NC
Hey Randy,

I've used G54 and G55 offsets and, well they work. Downside is I didn't do any rotations because I had no compensation. I've been struggling with the work holding on the pocket though, kind of wishing I had some sort of part stop or other way of locating material in the machine. As of now I can only locate to one fixed "jaw" which means if I need to take a part out and rotate it, I can't put it back in a known location. I'm trying to work out a solution to that now, and depending on how that goes I may look into programming my own TCP using machinekit's API. 

I'll post an update when I have a clearer direction in mind!
Reply all
Reply to author
Forward
0 new messages