Jump to content

Welcome to eMastercam

Register now to participate in the forums, access the download area, buy Mastercam training materials, post processors and more. This message will be removed once you have signed in.

Use your display name or email address to sign in:

Extracting tool info for a TLO


Guest
 Share

Recommended Posts

Is anyone doing this?

 

I am going to start using G10 to set my TLO's into the control and doing the full preset's offline.

 

I currently have a variable set on MR5 as an input box, which I enter the gage height of the tool and then output it into the program as a G10 line.

 

Is anyone aware of a way to set a length in MC and then be able to extract that length as a TLO offset?

 

Am I reaching here?

Link to comment
Share on other sites
Guest CNC Apps Guy 1

You shoudl be able to extract that info with this snippet or at least get pointed in the right direction.

 

 

code:

pmetatool1  # Write tool setup info from MetaCut View info.

tcr_meta = tcr

if tool_typ = 13 | tool_typ = 17, tldia_meta = tldia + (2 *(flute_len * tan(tip_angle))

else, tldia_meta = tldia

if cctotip = 0, tipcomp = 1

else, tipcomp = 0

if tool_typ = 10 | opcode = 3, tipcomp = 0

if tool_typ = 12, td_meta = tip_dia

else, td_meta = 0

if tool_typ = 13 | tool_typ = 17, td_meta = tldia

flute_meta = flute_len

oa_meta = oa_len

ta_meta = tip_angle

cd_meta = hldr_dia

cl_meta = hldr_len

sd_meta = cd_meta

tsl = hldr_len + oa_len

#(NWDTOOL NAME"1/2 CHAMFER MILL" T1 D.5 R0. F2. L3. A45. TD.06 CD2. CL1. SD2. C0)

# N = "Tool name"

# T = Tool No.

# D = Tool Dia.

# R = Corner Radius

# F = Flute Length

# L = Tool over all length

# A = Tip angle or Taper angle

# TD = Tip Dia.

# CD = Colllet/Holder Dia.

# CL = Collet/Holder Height

# SD = Spindle Dia. (set equal to Collet Diameter)

# C = tip or center 0 = tip 1 = center

spaces=0

if t >= zero, [

"(", 34," ",*t,ptspace," ", 34, " ", pmetacomm,") ",e

"( ", *tlngno, " | ", *tloffno, ")",e

"( ", *tldia_meta, " | ",

[if tcr_meta > 0, *tcr_meta, " | "], *flute_meta, " ) ",e

"( DISTANCE FROM TIP TO FACE OF HOLDER = ", *oa_meta," ) ",e

if hldr_len > 1,

[

"( TOOL SET LENGTH = ", *tsl," ) ",e

]

if hldr_len <= 1,

[

"( TOOL SET LENGTH = 2.00 MIN ) ",e

]

if fulinfo=1,

[

[if td_meta > 0, *td_meta " | "],[if ta_meta <> 180, *ta_meta], " ) ",e

[if td_meta < 0, *td_meta, " | "],

"( ", *cd_meta, " | ", *cl_meta, ") ",e

[if tipcomp=1, "( >>> TLO COMP TO CENTER )"],e

[if n_tap_thds > 0 , "( >>> TPI ", *n_tap_thds, ")",e]

[if pilot_dia > 0 , "( >>> PILOT DIA ", *pilot_dia, ")",e]

[if tip_dia > 0, "( >>> TIP DIA ", *tip_dia, ")",e]

]

]

spaces=sav_spc

You'd then need to create the G10 like a tool table. Should be pretty straight forward.

 

HTH

Link to comment
Share on other sites

I'll be more than glad to, once I figure it out wink.gif

 

What I am trying to do is use the available information from the tool descriptions so that when I define a tool, that I can extract that length and then grab it and output as my TLO offset, that I can use G10 to send into my control.

Link to comment
Share on other sites
Guest CNC Apps Guy 1

Well in theory if you define your tool holder and cutting tool correctly you can use those numbers to create a "Gage Length"(which is my preference for tool lengths (Always a + value)). Gage length is the distance from the gage line of the holder to the tip of the tool. Then when you post your program, if you have the true numbers for the tool definition then you can theoretically post and run with no touching off tools. You have to do some preliminary testing first to make sure you have the numbers right, but if everything checks out, you're good to go with 1 less step in the process. At the header of the program, where the tool list is, you would then have G10's for each tool and a value to be input into the offset register.

Link to comment
Share on other sites

So when the programmer makes the program he will specify a minimum gage length.

 

Pre-settter guy will use that info, and record actually gage length.

 

Operator will install tool and input the value into the offset register.

 

End result, machine will never stop running parts.

 

??????????????????????????????????????????????

 

Something like that idea.gif

 

Lars

Link to comment
Share on other sites

quote:

So when the programmer makes the program he will specify a minimum gage length.

Pre-settter guy will use that info, and record actually gage length.

Operator will install tool and input the value into the offset register.

End result, machine will never stop running parts.


Programmer will specify A gage length.

Pre-setter guy will meet the gage length.

Operator will install tool

Probe and program will find machine offset according to work piece.

 

Monkey removed from equation

Link to comment
Share on other sites

I was thinking this was doable but a serious undertaking.

 

So I sit down figuring I'm into this for most of the weekend.

 

 

WRONG!!!!!

 

code:

if mi5$, g10_output = yes$

if g10_output,

[

tlo_val = mr5$

if t$ >= 0, pbld, "G10 G90 L10", "P",no_spc$*,pnote, *tlo_val, e$

if t$ >= 0, tcnt = tcnt + 1

]

This is what I changed it to

code:

if mi5$, g10_output = yes$

if g10_output,

[

tlo_val = hldr_len + oa_len

if t$ >= 0, pbld, "G10 G90 L10", "P",no_spc$*,pnote, *tlo_val, e$

if t$ >= 0, tcnt = tcnt + 1

]

SWEET!!!!!!!!

 

and that gets me this

code:

(PROGRAM   - MACHINE_GROUP_1.NC)

(DATE - MAR-18-06)

(T1 - 1. SPOTDRILL - H1 - D1 - D1.0000" - - DRILL/CBORE)

G10 G90 L10 P1 R5.35

(T2 - 5/16 DRILL - H2 - D2 - D0.3125" - - DRILL/CBORE)

G10 G90 L10 P2 R6.35

(T3 - #6-32 STI CUTTINGTAP - H3 - D3 - D0.1380" - - DRILL/CBORE)

G10 G90 L10 P3 R4.1

Just make sure you define holder length and your tool length, so with t a presetter, you know your gage length, you can set the length of the individual holders and how far out you want your tool and your gage length is set

 

[ 03-18-2006, 08:33 AM: Message edited by: jmparis ]

Link to comment
Share on other sites

If anyone can use this output just give me a holler.

 

You can define the holder, the length of the holder, the tool, the length of tool. Calculates the G10 value and outputs it.

 

code:

(PROGRAM   - MACHINE_GROUP_1.NC)

(DATE - MAR-18-06)

(T1 - 1. SPOTDRILL - H1 - D1 - D1.0000" - - DRILL/CBORE)

(LYNDEX HOLDER)

(HOLDER GAGE LENGTH 2.35)

(TOOL LENGTH 3.)

G10 G90 L10 P1 R5.35

(T2 - 5/16 DRILL - H2 - D2 - D0.3125" - - DRILL/CBORE)

(ER-16 HOLDER 5.25 GAGE)

(HOLDER GAGE LENGTH 2.35)

(TOOL LENGTH 4.)

G10 G90 L10 P2 R6.35

(T3 - #6-32 STI CUTTINGTAP - H3 - D3 - D0.1380" - - DRILL/CBORE)

(LYNDEX DRILL CHUCK)

(HOLDER GAGE LENGTH 2.35)

(TOOL LENGTH 1.75)

G10 G90 L10 P3 R4.1

(T4 - 3/64 130° MACHINE DRILL - H4 - D4 - D0.0469" - - DRILL/CBORE)

(SMALL DRILL CHUCK)

(HOLDER GAGE LENGTH 1.)

(TOOL LENGTH 1.75)

G10 G90 L10 P4 R2.75

(T5 - #67 CARBIDE CIRCUIT BOARD DRILL - H5 - D5 - D0.0320" - - DRILL/CBORE)

(ER-16)

(HOLDER GAGE LENGTH 1.)

(TOOL LENGTH 2.)

G10 G90 L10 P5 R3.

if you don't need it for a particular job a flip of an mi variable and it goes away

code:

PROGRAM   - MACHINE_GROUP_1.NC)

(DATE - MAR-18-06)

(T1 - 1. SPOTDRILL - H1 - D1 - D1.0000" - - DRILL/CBORE)

(T2 - 5/16 DRILL - H2 - D2 - D0.3125" - - DRILL/CBORE)

(T3 - #6-32 STI CUTTINGTAP - H3 - D3 - D0.1380" - - DRILL/CBORE)

(T4 - 3/64 130° MACHINE DRILL - H4 - D4 - D0.0469" - - DRILL/CBORE)

(T5 - #67 CARBIDE CIRCUIT BOARD DRILL - H5 - D5 - D0.0320" - - DRILL/CBORE)

Link to comment
Share on other sites
  • 3 months later...

To add some more to this. When the mi5$ variable is set to 1, I get the above noted output, I also get questions during posting for a Z Tool length macro.

 

code:

#---------------------------------------------------------------------------

# POST QUESTIONS

#---------------------------------------------------------------------------

fq 1 stock "Amount of stock to remove:"

fq 2 ball_dia "Probe ball dia size:"

fq 3 work_set "Work Offset 1=G54, 2=G55, 3=G56, etc:"

fq 4 probe_pos "Probe Depth "Z":"

Triggers this section and fills in the appropriate data

 

code:

if mi5$ = 1,                                ###################### THIS SECTION ADDED FOR PROBE FUNCTIONALITY

[ ###################### TAKES USER INPUT SET VARIABLES FOR Z HEIGHT

"(" "SET BLOCK DELETE OFF TO BYPASS", ")", e$ ################### MACRO TOUCH OFF

"(" "THIS SECTION AFTER SETTING Z HEIGHT", ")", e$

pfbld, "(" "#180 = X TOUCH POSITION", ")", e$

pfbld, "(" "#181 = Y TOUCH POSITION", ")", e$

pfbld, 35, no_spc$, "180", 61, 35, no_spc$, "5021", e$

pfbld, 35, no_spc$, "181", 61, 35, no_spc$, "5022", e$

q1

pfbld, "(" "#170 = TOP STOCK REMOVAL", ")", e$

q2

pfbld, "(" "#171 = PROBE BALL SIZE", ")", e$

q3

pfbld, "(" "#172 = WORK OFFSET", ")", e$

q4

pfbld, "(" "#173 = PROBE HEIGHT", ")", e$

pfbld, 35, no_spc$, "170", 61, *stock, e$

pfbld, 35, no_spc$, "171", 61, ball_dia, e$

pfbld, 35, no_spc$, "172", 61, work_set, e$

pfbld, 35, no_spc$, "173", 61, probe_pos, e$

pfbld, "M98 P8889", e$

]

The macro call empties and stoare any ionformation in G59. #555 is the length from the spindle face to the top of the table. #180 & #181 are the current XY positions. The operator simply moves the machine to a place where he can touch the top of the surface called out, ie, fixture plate, top of stock, casting surface. Then press cycle start.

 

code:

%

O8889(Z TOUCH MACRO CALL)

(PROGRAM WILL RUN ON THE G59)

(WORK OFFSET)

#120=#5321

#121=#5322

#122=#5323

#5321=0

#5322=0

#5323=0

#5323=#555

G00G17G40G80G90

T30

M6

G00G59G90X#180Y#181M19

G43H30Z12.G31F80.

M98P8099

G65P8900

G04P100

M98P8098

#5321=#120

#5322=#121

#5323=#122

G91G28Z0.M19

M99

The macro that calculates

code:

%

O8900(Z TOUCH MACRO)

()

#6=#170

#20=#171

#23=#172

#26=#173

IF [#20 EQ 0] GOTO4

IF[#23 GT 5]GOTO5

IF[#6 LT 0]GOTO6

#130=5203+[#23*20]

#[#130]=0.

#3004=2

G90G31Z#26F40.

G0G91Z#503

G4P200

G90G31Z#26F.5

G0G91Z#503

G4P100

#110=#5063

#111=#[#4111+11000]

#100=#5063-#[#4111+11000]

#101=#555+#100

#102=#101-[#20/2]

#103=#102-#6

#[#130]=#103

#3004=0

GOTO99

N4#3000=152(PROBE BALL DIA NOT SET)

N5#3000=100(WORK OFFSET OUT OF RANGE)

N6#3000=101(STOCK OFFSET INVALID)

N99M99

%

If any one can use it, here you go.

 

BTW, set up times for these machines are down to minutes. Ball locked and modular fixturing.

Link to comment
Share on other sites

Our setup sheet, IN-house solutions flavor and modified to do it, tkaes the same information that is available in the posted nc code and outputs it onour setup sheets. The toolcrib guy setups up according to my choice of holder and tool length stick out.

 

GkAGdYH.png

 

Here's how the listing looks

Edited by Guest
Link to comment
Share on other sites

very close to ours, are kitter presets to our setup sheet also, then he downloads the preseats into a file that gets pulled into the machine with the program.

I went into a shop that has a chip on the tool holder that keeps all the info for that tool.

tool life, length, diameter, and wear

it was very cool, could transfer between machines and they would warn when tool life was out and be exchanged for a backup.

in our cells we run tool life management on everything and all lengths are set and some are checked for breakage also.

we keep the G10 program seperate from the main so if there is adjustments made in tool data it will not be reread from the program.

if your G10 is in the main lengths will need to be adjusted in the program potential for disaster.

Link to comment
Share on other sites

thats what wear offsets are for wink.gif

 

If tey need to adjust a tool, the operators know when they get the new tool, that the R # needs to be adjusted. That information is then kicked back to me, I then adjust the tool definition in the file and everything is kept up to date

Link to comment
Share on other sites

quote:

do you also G10 your work offsets?

Yes I do Right in the tool listing at the top of the program, cycvle start G10 loads offsets.

 

quote:

do you run aa G10 prior to new program to clear all wear values?

You know, I don't do it now but thinking about, I can see where this might be something good to do.

Link to comment
Share on other sites

Where I keep tools set up and always in the machine, I think for my use, setting up the post to clear the tools it set might be a better approach for us.

 

Never thought about that before though, thanks for pointing that out.

Link to comment
Share on other sites
  • 7 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.

Join us!

eMastercam - your online source for all things Mastercam.

Together, we are the strongest Mastercam community on the web with over 56,000 members, and our online store offers a wide selection of training materials for all applications and skill levels.

Follow us

×
×
  • Create New...