G43 tool length compensation

Here's the place for discussion related to CAM/CNC and the development of the Path module.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
sliptonic
Veteran
Posts: 3459
Joined: Tue Oct 25, 2011 10:46 pm
Location: Columbia, Missouri
Contact:

Re: G43 tool length compensation

Post by sliptonic »

jkv wrote: Wed Jul 17, 2019 11:54 am I have tried to implement the G43 tool length compensation in a first simple attempt by changing the linuxcnc postprocessor. Three days ago (Sun Jul 14) I published it in my post titled 'Fanuc 15m post and several questions'. As sliptonic has mentioned the G43 must be given after every tool change for the first z move with the syntax G43 Z___ H __ e.g. G43 Z4.356 H27, whereby H is the machine register for the tool with the number 27. So, an arbitrary tool number has to be defined and the first Z move must be isolated. As far as I can see that's all. As I have written in my post isolationg the first move is a problem in FreeCAD. I my opinion the G43 tool length compensation should be handled in the post. What do you think about that?
First, I'm really happy to see someone tackling a Fanuc post. Fanuc is so widely used that it should definitely be a candidate to merge in master.

I think a post-processor flag is an excellent way to do this. That way tool length compensation is handled job-wide and user doesn't have to add additional operations or configure the tool controllers individually.
Erich Schulz wrote: Wed Jul 17, 2019 3:06 am the ghost of TLO seems to live on in 2 places in UI:
The Tool Length Offset stored in the Tool Table doesn't really have anything to do with G43. It might be useful in the future for calculating whether a tool can reach a feature but it isn't used at all right now. As jkv clarified, the H-word never carries the length measurement itself, it only tells the control which offset value (tool/register) in its own table to apply as an offset to the current tool.
Erich Schulz
Posts: 141
Joined: Tue May 07, 2019 10:50 pm
Location: Brisbane, Australia

Re: G43 tool length compensation

Post by Erich Schulz »

sliptonic wrote: Wed Jul 17, 2019 1:28 pm
Erich Schulz wrote: Wed Jul 17, 2019 3:06 am the ghost of TLO seems to live on in 2 places in UI:
The Tool Length Offset stored in the Tool Table doesn't really have anything to do with G43. It might be useful in the future for calculating whether a tool can reach a feature but it isn't used at all right now. As jkv clarified, the H-word never carries the length measurement itself, it only tells the control which offset value (tool/register) in its own table to apply as an offset to the current tool.
It would be fantastic if these subtleties were expressed as tool tips! 😀

I swear after 6 months of playing with my 60406090 (edit: forget how big this machine is) I'll start making some PRs, but my current noobiness only makes me only safe to point at things that will confuse the noobs. In 6 months time I fear that like others I will have just learned my way around the curves and won't see them anymore.
Last edited by Erich Schulz on Thu Jul 18, 2019 8:22 am, edited 1 time in total.
User avatar
sliptonic
Veteran
Posts: 3459
Joined: Tue Oct 25, 2011 10:46 pm
Location: Columbia, Missouri
Contact:

Re: G43 tool length compensation

Post by sliptonic »

What curves? I don't see any curves. Straight as an arrow from here. :lol:
User avatar
dubstar-04
Posts: 698
Joined: Mon Mar 04, 2013 8:41 pm
Location: Chester, UK
Contact:

Re: G43 tool length compensation

Post by dubstar-04 »

User avatar
lrak
Posts: 34
Joined: Fri Feb 22, 2019 12:33 am

Re: G43 tool length compensation

Post by lrak »

I see:
M6 T29
G43 H29

in the code, but the H value would come from Z in the tool table...

I've keep looking for where I can set a tool length so If I save a linuxcnc-tooltable it will have the Z variable set?

The Length variable appears to be for OAL(Over all Length) of the actual tool. There needs to be another variable for Z.

For instance - if I look at threadmill.fctb - I have:
{
"version": 2,
"name": "5mm-threadmill",
"shape": "thread-mill.fcstd",
"parameter": {
"Chipload": "0.03 mm",
"Crest": "0.10 mm",
"Diameter": "4.00 mm",
"Flutes": "3",
"Length": "20.00 mm",
"Material": "Carbide",
"NeckDiameter": "2.57 mm",
"NeckLength": "20.00 mm",
"ShankDiameter": "6.00 mm",
"cuttingAngle": "60.00 \u00b0"
},
"attribute": {}
}

--------------%<--------------------
No place for the G43 length? (Might need to be instantiated? )


The output for this tool as a linuxcnc tool table has this line:
T28 P0 X0 Y0 Z0 A0 B0 C0 U0 V0 W0 D4.00 I0 J0 Q0; 5mm-threadmill001

Which needs to have a number after the Z.

,.,.
Some background - Tool setters can help, but often with mills with a knee, the value will change so with any knee move you would have to set all the tools again. With a simple height gauge, entering the length from the the tool-holder-flange to the the tip won't change with different knee heights and can be set while installing tools into the holders.
I would rather have questions that cannot be answered,
than answers that cannot be questioned’
Richard Feynman.
Post Reply