What's new
What's new

A Fadal toolsetting system that doesn't suck!

Hello Aaron,
This has worked out tremendously for me and thank you. Took a new job and they weren’t using positive tool offset and never setting a Z in their WC(fixture offsets). They were compensating Z in the tool fixture offset and never had a truest “set” tool. Loaded these macros and can finally save tool lengths and this way just makes so much more sense in the long run to me. Can setup multiple WC and run the same tooling in machine without resetting tools for every job.

The only issue I am having is clearing tool offsets. Whenever I give it a G49 or HO or even M30, it wants to move the Z axis the length of the tool. I do not like this at all. I never told the machine to move. Is there anyways I can clear out tool offsets without the machine Z axis wanting to rapid down the length of the tool? It’s a crash waiting to happen. These machines were a mess and had a bunch of programs left in the machine unlabeled. Could it be a variable issue?

Thanks in advance. Any help is much appreciated

-Josh
 
Hello Aaron,
This has worked out tremendously for me and thank you. Took a new job and they weren’t using positive tool offset and never setting a Z in their WC(fixture offsets). They were compensating Z in the tool fixture offset and never had a truest “set” tool. Loaded these macros and can finally save tool lengths and this way just makes so much more sense in the long run to me. Can setup multiple WC and run the same tooling in machine without resetting tools for every job.

The only issue I am having is clearing tool offsets. Whenever I give it a G49 or HO or even M30, it wants to move the Z axis the length of the tool. I do not like this at all. I never told the machine to move. Is there anyways I can clear out tool offsets without the machine Z axis wanting to rapid down the length of the tool? It’s a crash waiting to happen. These machines were a mess and had a bunch of programs left in the machine unlabeled. Could it be a variable issue?

Thanks in advance. Any help is much appreciated

-Josh

Glad it's been helpful Josh! I keep meaning to make a new version that integrates the tool measurement so there's only 1 step, but I have not been able to find time. Hopefully I will get to that soon!

I haven't seen that behaviour with my code on my machines, so I just dug into one of my programs to see what's going on. I have a modified post-processor that I'm using with Fusion 360, however the toolchanger and tool offset behaviour is unchanged from the 'stock' fadal post processor...

I am not explicitly clearing the tool offset compensation, instead a tool change is programmed and then the new tool offset is set. I would guess that the tool-change clears the height offset and G43. Here's an excerpt from one of my short programs:

Code:
%
O1001 (MKIII PALLET MACHINING)
(T2  D=3.175 CR=0. TAPER=118DEG - ZMIN=-0.954 - DRILL)
(T3  D=3.175 CR=0. - ZMIN=-0.254 - FLAT END MILL)
N10 G90 G94 G17
N10.5 G21
N11 G28 G91 Z0.

(DRILL1)
N11.5 M9
N12 T2 M6
N12.5 T3
N13 S6912 M3
N13.5 G4 P26
N14 E1
N14.5 M9
N15.5 G90 G0 X13.681 Y-16.828
N16 G43 Z24.765 H2
N17 Z15.875
N17.5 G98 G83 X13.681 Y-16.828 Z-0.954 R0+15.875 Q3.175 P0.5 F838.2
N18 X16.849
N18.5 X20.017
N19 X23.185
N19.5 X26.352
N20 G80
N20.5 Z24.765
N21.5 M5
N22 G28 G91 Z0.

(SLOT1)
N22.5 M9
N23 M1
N23.5 T3 M6
N24 T2
N24.5 S7500 M3
N25 E1
N25.5 M9
N26.5 G90 G0 X13.681 Y-16.827
N27 G43 Z26.035 H3
N27.5 Z12.065
...
 
Hey Aaron, I found this page/your macros via BGW's youtube video. Thanks so much for putting this together. After only sparingly running a Haas mini mill 3 years ago I was really struggling with getting the fixture offsets to make sense. Total life saver!

I have a few questions, hoping you can help.

Why can't we set any number to be the 'dedicated' tool measure pocket instead of #1? I see it in the code called out in V3, would there be any ramifications to setting it to #21, which is just behind #1 on the carousel of my '99 4020?

Second, during the Fixture Offset macro at the very end where you confirm you want to accept the change, is it possible to use Y or N instead of 1 or 2 to select? I'm guessing it's a Fadal programming thing, just wondering if you experimented with that at all. Likely needing to capture a Y or N, set it to a variable, then use that in the if statement?

Third, is there any reason why I can't or shouldn't use programs 9003 or 9004 for a warmup routine? Maybe there is a simpler or already in place solution, but I'm new to Fadal and haven't found anything.

Fourth (!) (I keep thinking of these as I write), how do I get to the screen that shows all of the loaded programs that came up when I went to the macro screen before loading your programs?
 
Hey Aaron, I found this page/your macros via BGW's youtube video. Thanks so much for putting this together. After only sparingly running a Haas mini mill 3 years ago I was really struggling with getting the fixture offsets to make sense. Total life saver!

I have a few questions, hoping you can help.

Why can't we set any number to be the 'dedicated' tool measure pocket instead of #1? I see it in the code called out in V3, would there be any ramifications to setting it to #21, which is just behind #1 on the carousel of my '99 4020?

Second, during the Fixture Offset macro at the very end where you confirm you want to accept the change, is it possible to use Y or N instead of 1 or 2 to select? I'm guessing it's a Fadal programming thing, just wondering if you experimented with that at all. Likely needing to capture a Y or N, set it to a variable, then use that in the if statement?

Third, is there any reason why I can't or shouldn't use programs 9003 or 9004 for a warmup routine? Maybe there is a simpler or already in place solution, but I'm new to Fadal and haven't found anything.

Fourth (!) (I keep thinking of these as I write), how do I get to the screen that shows all of the loaded programs that came up when I went to the macro screen before loading your programs?

Hey Travis!
Sorry for the slow response, I am still digging myself out of my backlog of emails and so on... That's the reward I get for taking time off over Christmas! :D

1) To use a different tool as the reference tool you need to change all calls to the height of the reference tool in `fixture_offset_compensator.txt`. You can see in a few places it's reading the height of that tool using the `H1` command, so all those instances of `H1` would change to `H21` if you wanted to use tool 21 instead.

2) Unfortunately as far as I know user input in Fadal macros can only take the form of numbers, not letters, which is why I was forced to use 1 or 2 vs Y or N. I did develop this macro set on a fairly old -4 control though, so if you have a newer -5 control maybe it supports letters? I am not sure! There are quite a few minor undocumented changes between different revisions of the CNC88HS control that I have seen... For instance my VMC10 with the older version of the control does not support the M3.1 command (spindle clockwise ignoring rotation sensor) whereas the CNC88HS manual seems to imply that all versions of the control should support that command!

3) There should be no problem at all using #9003 or #9004 as your warmup program and launching it through the custom macro chooser! Just be aware that for some reason calling a program from a macro skips the need to press cycle start to run the called program, so there may be unexpected movement... You can get around this by adding an M0 to the start of your warmup program to ensure the cycle start button has to be pressed before it will run.

4) To show all the loaded programs on the control just type 'PR' at the command line, or use the spacebar to cycle through the quick menus until you find the 'list programs' option.

Hope this is helpful mate! If you do make any changes to the macros be very sure to carefully test them before trusting them! The macro language is a bit finicky and hard to read, and it makes it very easy to make a small mistake that could cause a crash!

-Aaron
 
Apologies for reviving this old thread, but does anybody have a similar macro as the FADAL one here for a Fanuc 16i and 18i controller and a Yasnac controller?
 
Last edited:
Angelw, do you have any possible insight into this?
Tool Length and Workshift Offset setting Macro for both controls you mention is reasonably simple, whether using an Automatic Measuring device, or a combination of Macro Program and manual movement of the tool to a measuring device for tool length setting, or workpiece Z Zero for Workshift Offset setting. Tell me what you wnat to do exactly.

Regards,

Bill
 
Tool Length and Workshift Offset setting Macro for both controls you mention is reasonably simple, whether using an Automatic Measuring device, or a combination of Macro Program and manual movement of the tool to a measuring device for tool length setting, or workpiece Z Zero for Workshift Offset setting. Tell me what you wnat to do exactly.

Regards,

Bill
Hi Angelw,

We are transitioning a part of our shop to positive tool offsets. See picture below of what we are trying to accomplish.

We have a Zoller tool setter we set our tools on. I have the Zoller setup to send the tool offsets to the machines. Most of these machines are older machines with Fanuc controllers. Since they are older, I don't want to invest money in buying Renishaw probes but would rather use Haimer or Haff & Schneider 3d tasters. So all that leaves is setting the G54 X, Y, and Z. I do not need a macro for X and Y. I do need a macro for Z though.

The macro would basically add the length of the Haimer 3d taster when needle reads zero to the Z value output by the controller.

We already know the length of the Haimer probe when needle is at zero. I just need a macro that adds it to the Z value output by the controller to eliminate arithmetic errors by our setup people.


1691592814532.png

Thanks,

Chris
 
So I checked this out yesterday. Unfortunately if you leave a tool length as zero, or leave it as a negative offset the machine will try to bury the tool in the work. Not ideal...

The two options are: either I come up with a better system (open to suggestions there) or I can write a macro that checks the tool lengths and throws an error if they're wrong. The macro could be called as a subroutine during tool changes for instance, would probably work very pretty well but it's starting to get a bit complicated...
I have been using this system for about a week now and really like it, but as soon as I thought I had it down it bit me. I forgot to run the tool compensation program after measuring a chamfer mill and now it's friction welded into some soft jaws.

I went through the process Aaron mentions here and made a simple macro that verifies that the current tool offset is positive. If not it will simply give you an optional stop and then end the program. From what I have read in the manual it should also print "Tool length negative", but for some reason this isn't working for me. Not sure if this is specific to my machine/settings, but it's not critical.

%
O9003
(MACHINE)
( VENDOR AUTODESK)
( MODEL FADAL)
( DESCRIPTION GENERIC 3-AXIS)

N10 #CLEAR
N20 #V1=TN
N30 #IF H(V1) <= 0 THEN GOTO :TOOL
N40 M99
N50 #:TOOL
N60 #PRINT "TOOL LENGTH NEGATIVE"
N70 M0
N80 M30

To go along with this I made a simple post edit to fusion so this subprogram is called after every tool change. I hard coded the program number to 9003. You can adjust this to whatever you like.

If you have made other post edits before, remember to save a copy for safe keeping before editing.
Search for "case COMMAND_LOAD_TOOL"
Under the "write"ToolBlock" line you need to add the following new line with whatever program number you want to use.
writeBlock("M98 P9003 L1");

Example program for drilling 8 holes with this process.

%
O1001
(MACHINE)
( VENDOR AUTODESK)
( MODEL FADAL)
( DESCRIPTION GENERIC 3-AXIS)
(T5 D=0.2 CR=0. TAPER=140DEG - ZMIN=-0.2362 - DRILL)
N10 G90 G94 G17
N15 G20
N20 G28 G91 Z0.
N25 G90

(DRILL5)
N30 T5 M6
N35 M98 P9003 L1
N40 S8594.4 M3
N45 G4 P21
N50 G90 G94 G17
N55 M8
N60 G0 E1 X-2.938 Y-0.4331
N65 G43 Z0.6 H5
N70 Z0.2
N75 G98 G81 X-2.938 Y-0.4331 Z-0.2362 R0+0.2 F42.97
N80 Y0.4331
N85 X-1.3238
N90 Y-0.4331
N95 X1.3238
N100 Y0.4331
N105 X2.938
N110 Y-0.4331
N115 G80
N120 Z0.6

N125 M9
N130 G28 G91 Z0.
N135 G90
N140 G53 X0. Y9.9
N145 M30
%

It's not a complicated program or post edit change, but hopefully it will save someone in the future.
 
Last edited:








 
Back
Top