CNCzone.com-The Largest Machinist Community on the net!



Home Page Mark Forums Read Today's Posts My Replies Classifieds Reviews Photo Gallery Web Links Share Files Advertise With Us Ad List
Go Back   CNCzone.com-The Largest Machinist Community on the net! > MetalWorking Machines > Haas Mills


Haas Mills Discuss Haas machinery here!


This forum is sponsored by:

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Ban this user!
Old 02-21-2010, 07:09 PM
 
Join Date: Jan 2007
Location: USA
Posts: 1,301
Delw is on a distinguished road
G10 and sub programs

In another thread I was asking about g10's and subs, geof suggested I start another topic ( good idea I am just 3 days late )
http://www.cnczone.com/forums/showthread.php?t=99706
And Maybe some of you programming guru's can make this the most complete g10 and sub program thread out there so others may benifit.


I don't do subs as much as I used to due to I usually use cad, however lately I been pulling vise's on and off so much I don't cut the jaws to match like I used to and being the parts are just a few tools and short.

I do anywhere from 1 part to vise to 4 parts per vise and up to 3 vise's on the Haas, again my vises come on and off daily so using cad would be a waste of time. My 6" kurt doubles should be here shortly so that will be 6 locations instead of 3. so I will need at least 6 work offsets.
height of parts vary and sometimes I run different parts on the machine at one time( I just copy each part program for each part and add a work offset). however in doing that I am wasteing time in tool changes and cut time, cause it will run through all the tools on one part then go and do the next part with all the tools( only if parts are not the same and if I DONT use cad ie being lazy).
And before anyone says it, Yes cad is the way to go, but some of these parts are so easy to program in my head there is no need to go into the office and write a cad program, if I can get away with a g10 or a sub program. plus I have the one vise at a time programs that I already made for my customer in small orders and they work , now there just bigger orders.

heres a sample program with one part on one vice
%
O00011
(1 VICE 1 WORK FIXTURE OFFSET)

M06 T20
G00 G90 G55 X-3. Y0.
M03 S6500
G43 Z0.5 H20 M08
G01 Z0. F80.
G01 X3.
G00 Z0.2 M09
G28 G91 Z0. M05
M01

M06 T1
G00 G90 G55 X0.995 Y0.
M03 S12000
G43 Z0.5 H01 M08
G01 Z-0.75 F50.
G02 I-0.995
I-0.995
G01 X1.
G00 Z0.3
X0.2
G01 Z0.1 F30.
G02 I-0.2 Z-0.2
I-0.2
G02 I-0.2 Z-0.41
I-0.2
G01 X0.3 F50.
G03 I-0.3
G01 X0.4
G02 I-0.4
G01 X0.53
G03 I-0.53
I-0.53
G01 X0.
G00 Z0.1
G01 Z0.
G01 X0.75
G02 I-0.75
G00 Z0.5 M09
G28 G91 Z0. M05
M01


M06 T17
G00 G90 G55 X0.9125 Y0.
M03 S12000
G43 Z0.5 H17 M08
G01 Z0. F50.
G02 I-0.9125 Z-0.11
I-0.9125
G00 Z0.2
X0.6175
G01 Z0.
G02 I-0.6175 Z-0.15
I-0.6175
M09
G28 G91 Z0. M05
M01

M06 T22
G00 G90 G55 X0. Y0.
M03 S5000
G43 Z0.5 H22 M08
G01 Z-0.408 F40.
G01 X0.505
G02 I-0.505
I-0.505
G01 X0.
G00 Z0.5 M09
G28 G91 Z0. M05
M01

M06 T5
G00 G90 G55 X0.572 Y0.
S12000 M03
G43 H05 Z0.3 M08
G01 Z0.2 F50.
G02 I-0.572 Z0.1375
G02 I-0.572 Z0.075
G02 I-0.572 Z0.0125
G02 I-0.572 Z-0.05
G02 I-0.572 Z-0.1125
G02 I-0.572 Z-0.175
G02 I-0.572 Z-0.2375
G02 I-0.572 Z-0.3
G02 I-0.572 Z-0.3625
G01 X0.
G00 Z0.5
G00 Z0.5 M09
G28 G91 Z0. M05
G91 G28 Y0.
M30
%

Heres the same program with 2 work fixture offsets one for each vises, Notice tool 20 has only the g55 fixture offset and does both vises
%
O00011
(2 VICES 2 WORK FIXTURE OFFSETS)

M06 T20
G00 G90 G55 X-3. Y0.
M03 S6500
G43 Z0.5 H20 M08
G01 Z0. F80.
G01 X13.
G00 Z0.2 M09
G28 G91 Z0. M05
M01

M06 T1
G00 G90 G55 X0.995 Y0.
M03 S12000
G43 Z0.5 H01 M08
G01 Z-0.75 F50.
G02 I-0.995
I-0.995
G01 X1.
G00 Z0.3
X0.2
G01 Z0.1 F30.
G02 I-0.2 Z-0.2
I-0.2
G02 I-0.2 Z-0.41
I-0.2
G01 X0.3 F50.
G03 I-0.3
G01 X0.4
G02 I-0.4
G01 X0.53
G03 I-0.53
I-0.53
G01 X0.
G00 Z0.1
G01 Z0.
G01 X0.75
G02 I-0.75
G00 Z0.3
G90 G56 X0.995 Y0.
G01 Z-0.75 F50.
G02 I-0.995
I-0.995
G01 X1.
G00 Z0.3
X0.2
G01 Z0.1 F30.
G02 I-0.2 Z-0.2
I-0.2
G02 I-0.2 Z-0.41
I-0.2
G01 X0.3 F50.
G03 I-0.3
G01 X0.4
G02 I-0.4
G01 X0.53
G03 I-0.53
I-0.53
G01 X0.
G00 Z0.1
G01 Z0.
G01 X0.75
G02 I-0.75
G00 Z0.5 M09
G28 G91 Z0. M05
M01


M06 T17
G00 G90 G55 X0.9125 Y0.
M03 S12000
G43 Z0.5 H17 M08
G01 Z0. F50.
G02 I-0.9125 Z-0.11
I-0.9125
G00 Z0.2
X0.6175
G01 Z0.
G02 I-0.6175 Z-0.15
I-0.6175
G00 Z0.5

G00 G90 G56 X0.9125 Y0.
G01 Z0. F50.
G02 I-0.9125 Z-0.11
I-0.9125
G00 Z0.2
X0.6175
G01 Z0.
G02 I-0.6175 Z-0.15
I-0.6175
G00 Z0.5
M09
G28 G91 Z0. M05
M01

M06 T22
G00 G90 G55 X0. Y0.
M03 S5000
G43 Z0.5 H22 M08
G01 Z-0.408 F40.
G01 X0.505
G02 I-0.505
I-0.505
G01 X0.
G00 Z0.5

G00 G90 G56 X0. Y0.
G01 Z-0.408 F40.
G01 X0.505
G02 I-0.505
I-0.505
G01 X0.
G00 Z0.5 M09
G28 G91 Z0. M05
M01

M06 T5
G00 G90 G55 X0.572 Y0.
S12000 M03
G43 H05 Z0.3 M08
G01 Z0.2 F50.
G02 I-0.572 Z0.1375
G02 I-0.572 Z0.075
G02 I-0.572 Z0.0125
G02 I-0.572 Z-0.05
G02 I-0.572 Z-0.1125
G02 I-0.572 Z-0.175
G02 I-0.572 Z-0.2375
G02 I-0.572 Z-0.3
G02 I-0.572 Z-0.3625
G01 X0.
G00 Z0.5

G00 G90 G56 X0.572 Y0.
G01 Z0.2 F50.
G02 I-0.572 Z0.1375
G02 I-0.572 Z0.075
G02 I-0.572 Z0.0125
G02 I-0.572 Z-0.05
G02 I-0.572 Z-0.1125
G02 I-0.572 Z-0.175
G02 I-0.572 Z-0.2375
G02 I-0.572 Z-0.3
G02 I-0.572 Z-0.3625
G01 X0.
G00 Z0.5 M09
G28 G91 Z0. M05
G91 G28 Y0.
M30
%
Reply With Quote

  #2   Ban this user!
Old 02-21-2010, 07:39 PM
Caue's Avatar  
Join Date: Apr 2009
Location: Brazil
Age: 30
Posts: 29
Caue is on a distinguished road
Try It

%
O00011

M06 T20
G00 G90 G55 X-3. Y0.
M03 S6500
M97 P20
G00 G90 G55 X-3. Y0.
M97 P20

M06 T1
G00 G90 G55 X0.995 Y0.
M03 S12000
M97 P1
G00 G90 G56 X0.995 Y0.
M97 P1

M06 T17
G00 G90 G55 X0.9125 Y0.
M03 S12000
M97 P17
G00 G90 G56 X0.9125 Y0.
M97 P17

M06 T22
G00 G90 G55 X0. Y0.
M03 S5000
M97 P22
G00 G90 G56 X0. Y0.
M97 P22

M06 T5
G00 G90 G55 X0.572 Y0.
S12000 M03
M97 P5
G00 G90 G56 X0.572 Y0.
M97 P5
M30

N20
G43 Z0.5 H20 M08
G01 Z0. F80.
G01 X3.
G00 Z0.2 M09
G28 G91 Z0. M05
M01
M99

N1
G43 Z0.5 H01 M08
G01 Z-0.75 F50.
G02 I-0.995
I-0.995
G01 X1.
G00 Z0.3
X0.2
G01 Z0.1 F30.
G02 I-0.2 Z-0.2
I-0.2
G02 I-0.2 Z-0.41
I-0.2
G01 X0.3 F50.
G03 I-0.3
G01 X0.4
G02 I-0.4
G01 X0.53
G03 I-0.53
I-0.53
G01 X0.
G00 Z0.1
G01 Z0.
G01 X0.75
G02 I-0.75
G00 Z0.5 M09
G28 G91 Z0. M05
M01
M99

N17
G43 Z0.5 H17 M08
G01 Z0. F50.
G02 I-0.9125 Z-0.11
I-0.9125
G00 Z0.2
X0.6175
G01 Z0.
G02 I-0.6175 Z-0.15
I-0.6175
M09
G28 G91 Z0. M05
M01
M99

N22
G43 Z0.5 H22 M08
G01 Z-0.408 F40.
G01 X0.505
G02 I-0.505
I-0.505
G01 X0.
G00 Z0.5 M09
G28 G91 Z0. M05
M01
M99

N5
G43 H05 Z0.3 M08
G01 Z0.2 F50.
G02 I-0.572 Z0.1375
G02 I-0.572 Z0.075
G02 I-0.572 Z0.0125
G02 I-0.572 Z-0.05
G02 I-0.572 Z-0.1125
G02 I-0.572 Z-0.175
G02 I-0.572 Z-0.2375
G02 I-0.572 Z-0.3
G02 I-0.572 Z-0.3625
G01 X0.
G00 Z0.5
G00 Z0.5 M09
G28 G91 Z0. M05
G91 G28 Y0.
M99
%

If you have any doubt, please e-mail me: caue.nascimento@haasbrasil.com.br
Now is sunday night here (11pm), but early in the morning I'll test this code on a brand new VF-3 I'm going to run tomorrow...

Have a nice week!
Reply With Quote

  #3  
Old 02-21-2010, 08:03 PM
dertsap's Avatar
Gold Member
 
Join Date: Oct 2005
Location: canada
Posts: 3,668
dertsap is on a distinguished road
Buy me a Beer?

g52 shift works great for multiple fixturing
if you scroll down then you'll see my preferred method , which is using macro variables , it lessens the amount of editing time on the machine in cases where thing may need to be shifted
this is a quick edit so there is a possibility Ive missed something but I'm sure you'll get the idea

this is setup for 3 part




%
O00011
(1 VICE 1 WORK FIXTURE OFFSET)

g52x0y0z0a0.
m97p1
g52x2.y0z0a0.
m97p1
g52x4.y0z0a0.
m97p1

g52x0y0z0a0.
m97p12
g52x2.y0z0a0.
m97p2
g52x4.y0z0a0.
m97p2

g52x0y0z0a0.
m97p3
g52x2.y0z0a0.
m97p3
g52x4.y0z0a0.
m97p3

g52x0y0z0a0.
m97p4
g52x2.y0z0a0.
m97p4
g52x4.y0z0a0.
m97p4

g52x0y0z0a0.
m97p5
g52x2.y0z0a0.
m97p5
g52x4.y0z0a0.
m97p5
G28 G91 Z0. M05
G91 G28 Y0.
m30

n1
M06 T20
G00 G90 G55 X-3. Y0.
M03 S6500
G43 Z0.5 H20 M08
G01 Z0. F80.
G01 X3.
G00 Z0.2
m99

n2
M06 T1
G00 G90 G55 X0.995 Y0.
M03 S12000
G43 Z0.5 H01 M08
G01 Z-0.75 F50.
G02 I-0.995
I-0.995
G01 X1.
G00 Z0.3
X0.2
G01 Z0.1 F30.
G02 I-0.2 Z-0.2
I-0.2
G02 I-0.2 Z-0.41
I-0.2
G01 X0.3 F50.
G03 I-0.3
G01 X0.4
G02 I-0.4
G01 X0.53
G03 I-0.53
I-0.53
G01 X0.
G00 Z0.1
G01 Z0.
G01 X0.75
G02 I-0.75
G00 Z2.
m99


n3
M06 T17
G00 G90 G55 X0.9125 Y0.
M03 S12000
G43 Z0.5 H17 M08
G01 Z0. F50.
G02 I-0.9125 Z-0.11
I-0.9125
G00 Z0.2
X0.6175
G01 Z0.
G02 I-0.6175 Z-0.15
I-0.6175
g0z2.
m99

n4
M06 T22
G00 G90 G55 X0. Y0.
M03 S5000
G43 Z0.5 H22 M08
G01 Z-0.408 F40.
G01 X0.505
G02 I-0.505
I-0.505
G01 X0.
G00 Z2.
m99

n5
M06 T5
G00 G90 G55 X0.572 Y0.
S12000 M03
G43 H05 Z0.3 M08
G01 Z0.2 F50.
G02 I-0.572 Z0.1375
G02 I-0.572 Z0.075
G02 I-0.572 Z0.0125
G02 I-0.572 Z-0.05
G02 I-0.572 Z-0.1125
G02 I-0.572 Z-0.175
G02 I-0.572 Z-0.2375
G02 I-0.572 Z-0.3
G02 I-0.572 Z-0.3625
G01 X0.
G00 Z0.5
G00 Z2.
m99
%


OR
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@2
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@2
#101=0(position 1 x)
#102=0(position 1 y)
#103=0(position 1 z)
#104=0(position 1 a)
#111=2.(position 2 x)
#112=0(position 2 y)
#113=0(position 2 z)
#121=4.(position 3 x)
#122=0(position 3 y)
#123=0(position 3 z)
g52x#101y#102z#104a#105
m97p1
g52x#111y#112z#113a#105
m97p1
g52x#121y#122z#123a#105
m97p1

g52x#101y#102z#104a#105
m97p12
g52x#111y#112z#113a#105
m97p2
g52x#121y#122z#123a#105
m97p2

g52x#101y#102z#104a#105
m97p3
g52x#111y#112z#113a#105
m97p3
g52x#121y#122z#123a#105
m97p3

g52x#101y#102z#104a#105
m97p4
g52x#111y#112z#113a#105
m97p4
g52x#121y#122z#123a#105
m97p4

g52x#101y#102z#104a#105
m97p5
g52x#111y#112z#113a#105
m97p5
g52x#121y#122z#123a#105
m97p5
G28 G91 Z0. M05
G91 G28 Y0.
m30
n1
M06 T20
G00 G90 G55 X-3. Y0.
M03 S6500
G43 Z0.5 H20 M08
G01 Z0. F80.
G01 X3.
G00 Z0.2
m99

n2
M06 T1
G00 G90 G55 X0.995 Y0.
M03 S12000
G43 Z0.5 H01 M08
G01 Z-0.75 F50.
G02 I-0.995
I-0.995
G01 X1.
G00 Z0.3
X0.2
G01 Z0.1 F30.
G02 I-0.2 Z-0.2
I-0.2
G02 I-0.2 Z-0.41
I-0.2
G01 X0.3 F50.
G03 I-0.3
G01 X0.4
G02 I-0.4
G01 X0.53
G03 I-0.53
I-0.53
G01 X0.
G00 Z0.1
G01 Z0.
G01 X0.75
G02 I-0.75
G00 Z2.
m99


n3
M06 T17
G00 G90 G55 X0.9125 Y0.
M03 S12000
G43 Z0.5 H17 M08
G01 Z0. F50.
G02 I-0.9125 Z-0.11
I-0.9125
G00 Z0.2
X0.6175
G01 Z0.
G02 I-0.6175 Z-0.15
I-0.6175
g0z2.
m99

n4
M06 T22
G00 G90 G55 X0. Y0.
M03 S5000
G43 Z0.5 H22 M08
G01 Z-0.408 F40.
G01 X0.505
G02 I-0.505
I-0.505
G01 X0.
G00 Z2.
m99

n5
M06 T5
G00 G90 G55 X0.572 Y0.
S12000 M03
G43 H05 Z0.3 M08
G01 Z0.2 F50.
G02 I-0.572 Z0.1375
G02 I-0.572 Z0.075
G02 I-0.572 Z0.0125
G02 I-0.572 Z-0.05
G02 I-0.572 Z-0.1125
G02 I-0.572 Z-0.175
G02 I-0.572 Z-0.2375
G02 I-0.572 Z-0.3
G02 I-0.572 Z-0.3625
G01 X0.
G00 Z0.5
G00 Z2.
m99
%
__________________
A poet knows no boundary yet he is bound to the boundaries of ones own mind !! http://cnctoybox.org
Reply With Quote

  #4   Ban this user!
Old 02-21-2010, 09:49 PM
 
Join Date: Feb 2010
Location: USA
Posts: 59
MKproto is on a distinguished road

If you have macros, you can alias another work offset that increments with the g10 that way you dont shift you orginal work offset as you progress throught the program, and dont have to cut and dont have to do a lot of hand typing that can be prone to errors. Or you can use a macro to increment your g52 position, which makes it easy to run between n numbers, usings and if < or > and goto commands. I personally alias and use a G10 most of the time because my post is setup to loop with a g10 and goto. I just modified it to alias the work coordinate to g120 that I dont use. I use g110-113 for table center locations for easy 5 axis setups, and ability to move the code from machine to machine without reposting.
Reply With Quote

  #5   Ban this user!
Old 02-21-2010, 11:33 PM
 
Join Date: Jul 2005
Location: Canada
Posts: 11,565
Geof will become famous soon enough

Okay, my turn now that I am back from a nice Greek Salad and Sirloin Steak dinner and have a glass of wine at hand. Being lazy I will try to avoid typing as many lines as some others but will try to get my approach across.

I use, or used to use, G10 for setting work offsets and subroutines that are run at each offset location quite extensively; I say 'used to use G10' because I switched over to using G52 quite a while back. But I will go further into this after describing my approach to using subroutines for machining multiple parts.

Subroutines on Haas machines are very convenient because they can be local; they do not have to consist of a separate program but can be located within the calling program. I normally add them sequentially at the bottom of the calling program although I think the Haas controller will search up and down a program to find the line number that is being called by the command M97 Pnnnn which simply says; find line Nnnnn and keep going from there, returning to the line below here when a M99 is found. (For the sake of completeness I need to comment that it is possible to have an L count; M97 Pnnnn L4 says go to line Nnnnn and return here until L is counted to zero then return one line down. But this is not really relevant to using subroutines for multiple parts.)

Because I am going to deal with G10 or G52 later, for this description of my approach to multi-tool, multi-part programs using subroutines I will use Work Location (WL) for the zero point of each of the parts so I can write WL1, WL2, etc.

This would be a typical program structure for three tools and four parts; comments between <<<< and >>>> are not part of the program.

O00000 (Typical Subroutine Program)
N1 G00 G17 G20 G40 G49 G90 G90 G98 (Typical safety line)
(Tool 1 description)
(Tool 2 description)
(Tool 3 description)
G10 L12 G90 P1 R0.rrr (Tool 1 tool diameter)
G10 L12 G90 P2 R0.rrr (Tool 2 tool diameter)
G10 L12 G90 P4 R0.rrr (Tool 3 tool diameter)
<<<<Note these G10 commands are not related to setting work zeroes>>>>
(Whatever comments you need for the program)
<<<<The Work Location selection and subroutine calls are in the following lines>>>>
WL1 (Select work location 1)
M97 P1000 (Call subroutine for tool 1)
M97 P2000 (Call subroutine for tool 2)
M97 P3000 (Call subroutine for tool 3)
WL1 (Select work location 2)
M97 P1000 (Call subroutine for tool 1)
M97 P2000 (Call subroutine for tool 2)
M97 P3000 (Call subroutine for tool 3)
WL1 (Select work location 3)
M97 P1000 (Call subroutine for tool 1)
M97 P2000 (Call subroutine for tool 2)
M97 P3000 (Call subroutine for tool 3)
WL1 (Select work location 4)
M97 P1000 (Call subroutine for tool 1)
M97 P2000 (Call subroutine for tool 2)
M97 P3000 (Call subroutine for tool 3)
T1 M06 (Back to tool 1 before ending program)
G53 G00 Xxxx.xxx Yyyy.yyy Zzzz.zzz (Park table at handy place for reloading
M30 (Stop and rewind)
----------------
<<<<Below here are the subroutines>>>>
N1000 T1 M06
G43 H01
M03 Ssssss
G00 Xx.x Yy.y Zz.z (Move to start)
<<<<In here is everything that tool 1 does>>>>
M99 (Return from subroutine)
------------
N2000 T2 M06
G43 H02
M03 Ssssss
G00 Xx.x Yy.y Zz.z (Move to start)
<<<<In here is everything that tool 2 does>>>>
M99 (Return from subroutine)
------------
N3000 T3 M06
G43 H03
M03 Ssssss
G00 Xx.x Yy.y Zz.z (Move to start)
<<<<In here is everything that tool 3 does>>>>
M99 (Return from subroutine)
------------

And that is the whole program.

The reason I structure things using N1000, N2000 etc is that this makes it handy for writing or editing programs. Things like the tool number, T1, the length offset G43 H01, tool compensation, D01 are all 1 if the line number is 1nnn. This is just a mnemonic to help me when I am writing programs (remember I am such a klutz I cannot do CAM).

Incidentally, I am pretty sure Mastercam can output this type of subroutine program. Donkey Hotey (I think) covered this in a thread a while back and I talked to a Mastercam guy about it.


Now for the Work Location....Work Offset.....Work Zero.... whatever you want to call it.

G10 L2 G90 P1 X-8.0 Y-6.0 Z0.0 puts the G54 Work Zero at X-8. Y-6. and Z 0.0; P2 sets the G55 Work Zero, P3 G56, etc.

When would I use G10?

If the vises never leave the table, or if the vises always go back to exactly the same location G10 is handy. G10 sets the Work Zeros in machine coordinates so to use G10 the workholding system always has to go back onto the machine in the same location with reference to machine coordinates. this means locating dowels, subplates or some other locating method.

When your vises never leave the table or always return to the same location then my WL1 becomes G54, Wl2 G55 etc, and the program has these lines somewhere near the top:

G10 L2 G90 P1 Xxxxx Yyyyy Zzzzz (Set G54)
G10 L2 G90 P2 Xxxxx Yyyyy Zzzzz (Set G55)
etc

And you can use G10 to set individual work zeros at each part location in custom jaws in however many vise you have.

BUT if your vises do not go back to the same location you have to edit all the G10 lines in all your programs; which, in a practical sense, is a non-starter.

This is why I switched to G52. For those unfamiliar with G52 it defines a subsidiary work zero with reference to the active, or primary, work zero. In other words if you have G54 set at X-8. Y-6. Z0. and you use the command; G52 X2. Y2. Z0. your work zero is now at X-6. Y-4.

The value of G52 is that if you have a double-lock vise that can hold four parts you only need to locate a single primary work zero and your program then locates the work zeroes for the parts as:

G54 (Primary work zero)
G52 Xxxx.xxx Yyyy.yyy Zzxzxz.zzz
M97 Pnnnn
etc for four different locations.

And when you re-install the vise you only need to dial in to the primary location which can be at the center of the fixed jaw. (You are allowed to interpolate a hole in the middle of the fixed jaw for this purpos :-))

If you have three double lock vise mounted on a subplate then you dial in to a single primary work zero location that allows you to define twelve part locations using G52.

Or, if you make dedicated fixtures you can define many more part locations from a single primary location; my record so far is 32 part locations.

And I have to admit the 750 ml of Shiraz I have consumed while typing this is making concentration difficult so any questions will have to wait until I have metabolized the alcohol.

P.S. Maybe I did type as many lines as the others.


EDIT

Above I have the phrase: The value of G52 is that if you have a double-lock vise that can hold four parts ....

This, of course, is two parts per jaw because that is what we run as our parts are small. You may have only one part per jaw.
__________________
An open mind is a virtue...so long as all the common sense has not leaked out.
Reply With Quote

Sponsored Links
  #6   Ban this user!
Old 02-22-2010, 12:43 AM
Donkey Hotey's Avatar  
Join Date: Nov 2007
Location: USA
Posts: 1,636
Donkey Hotey is on a distinguished road

I've got nothing to add since, I'd approach this in a completely different way. I'll share that way, then shut up and read (and try to learn):

If I were using multiple, dual station vises with square jaws, I'd set a work stop for each jaw position, then I could tram in the vise, touch off the work offsets for each and be done.

If the jaws were irregular and holding multiple parts, I'd do the Mastercam programming with the parts sitting in the model of the jaws. In each center (fixed) jaw, I would drill/bore a reference hole and forever use that center as my work zero. Again, tram the vises, indicate to the center of the bore and use only one offset per vise. Using this method, the fixed jaw is always the datum and the center of that reference bore is your XY origin. Even though it doesn't relate to the part in any meaningful way, if the parts were programmed referenced to that point, it wouldn't matter.

In either case, Z zero (for me) would be the base of the part surface pocket in the soft jaws. Using the Renishaw probing, finding the center of that bore and the Z surface goes really quickly.
Originally Posted by Geof View Post
Incidentally, I am pretty sure Mastercam can output this type of subroutine program. Donkey Hotey (I think) covered this in a thread a while back and I talked to a Mastercam guy about it.
Yup, it will translate by tool number and it will also (supposedly) do it as subroutines (though I haven't tried it that way). Yes, it was a headache fumbling through it the first time (middle of this thread, my 'aha' moment was at post 28):
http://cnczone.com/forums/showthread...073#post518073
__________________
Greg
Reply With Quote

  #7   Ban this user!
Old 02-22-2010, 01:40 AM
 
Join Date: Jan 2007
Location: USA
Posts: 1,301
Delw is on a distinguished road

these are excellent replies. Thanks. I will read thembetter tomorrow when I am awake.

now I am going to throw in a kicker, there will be approx. 40 parts per run. and they will run on a 4th axis tombstone block 10 parts per index at 90º. held on by mitee bite clamps

Donkey brought up a good point. the 1st operation is from bar stock. then they needs to be turned and cut on 2 sides and also indexing 30º for some small holes. Hence the 4th axis. then the profiles need to be located in a vise to do the final mill operation.

This is enough to get started, thinking and playing. i like the fact there was a bunch of differnt ways even macros, macros bother me LMAO always have, but I am going to be playing with those this year as well.

Oh BTW keep these ways coming as there might be more guys that could use the help as well.
Delw
Reply With Quote

  #8   Ban this user!
Old 02-22-2010, 10:12 AM
 
Join Date: Jul 2005
Location: Canada
Posts: 11,565
Geof will become famous soon enough

Originally Posted by Delw View Post
....now I am going to throw in a kicker, there will be approx. 40 parts per run. and they will run on a 4th axis tombstone block 10 parts per index at 90º. held on by mitee bite clamps....Delw
This is not really a kicker; actually I think it makes things easier; with the qualification that the initial setup time may be a bit more tedious when all the part locations are being defined with reference to a single work zero. However, subsequent setups can be simple.

Over the past few years we have gone through the transition from all vice work to all rotary tombstone work for dozens of parts and all the tooling time has been recouped many times over.

Initially we used just a pair of vises with custom jaws for gripping four round parts per load, used a Blake Indicator to dial into each part and entered work offsets by hand. The custom jaws did not always return to the same spot when they were removed and re-installed which is why it was necessary to relocate the work zeros every run. This approach is perfectly okay, using a probe would be faster but ten years ago probes where not as readily available. Not to mention the vises occupied the entire machine table so there was no space.

Then we transitioned to larger machines and double vises with three keyed to a baseplate; using custom jaws a load was twelve parts so dialng in to each part location was inefficient. However, these jaws were keyed to the vise base so they did return to the same spot so we could locate all the part work zeros from a reference hole somewhere on the vises; this is more or less what Greg is talking about. The shortcoming to this system was that the baseplate for the vises was not keyed to the table so if the entire assembly was removed and replaced it was necessary to edit all the G10 work zero commands. This is where dertsap's macro approach would be viable because with this it would just be necessary to entire a correction factor for the main reference point. As I recall back then I had cheaped out and the machine did not have macros activated. Also back then I was not up to speed on G52; we still use these vise setups for some parts and now part locations are set using G52 commands.

Then we transitioned to the rotary platforms; these use the central reference hole that all the G52 commands work from. We have custom fixtures for the parts that are done on the rotaries and we simplified program writing and setups by building the fixtures on the platform. This means that the G52 commands used for machining the locating holes in the fixture for the parts are the ones used for machining the part. This is a solid state analog of Greg's procedure of drawing the vises and parts together in Mastercam. Because most of our parts are based on 2.000" and 2.250" diameter round bar some fixtures are used with several parts.

I am now a great believer in rotary fixturing when parts have features in more than one plane; the initial tooling time is significant and it may only be viable for repeating parts. However, the improvement in accuracy between related features in different planes can make it worthwhile for non-repeating parts.

And now I should run off and install the M-FIN wiring in a machine so we can get an airblast working to blow chips of a tap when tapping Delrin.
__________________
An open mind is a virtue...so long as all the common sense has not leaked out.
Reply With Quote

  #9   Ban this user!
Old 02-22-2010, 01:11 PM
 
Join Date: Jan 2007
Location: USA
Posts: 1,301
Delw is on a distinguished road

I am going to try a few of these

One thing that is nice about running sub programs is that this way you only have one program to change on feeds/speeds/ depths/ corner rads etc etc.
if you had 10 parts you would have to change all 10 parts in the programs,


Geof,
Thats why I bought the 210mm rotary with the vf2ss, however I still dont have my fixture up and running 100% I did mount it on the rotary a few weeks ago and played around making sure everything worked like I drew it up. Never ran a part on it yet.


BTW the Mitee Bites with the shopmade T nuts was a very very clever Idea Thanks for that tip.

Delw
Reply With Quote

  #10   Ban this user!
Old 02-22-2010, 02:07 PM
 
Join Date: Jul 2005
Location: Canada
Posts: 11,565
Geof will become famous soon enough

Originally Posted by Delw View Post
...One thing that is nice about running sub programs is that this way you only have one program to change on feeds/speeds/ depths/ corner rads etc etc....if you had 10 parts you would have to change all 10 parts in the programs,..Delw
That is a very important advantage that I forgot to mention.

Another thing I forgot to mention is putting a Block Delete in front of all except one of the M97 Pnnnn commands. This way when you are setting up and checking sizes you press block delete and run through every tool finishing one part rather than losing a whole load because a tool was over or undersize.

When you are proving programs it is also sometimes convenient to block out a particular tool which can be done by going to the subroutine and putting M99 in place of the Tn M06 at line Nnnnn.

Also because each subroutine has all the tool commands from selection to speed and everything the tool does it is possible to do a Restart very quickly even with a very long program. Jump the program down to the tool you are restarting on and then move one line down. This means that the machine position immediately preceding the restart line is the tool change position so you are confident the machine is not going to hit anything. Also the machine seems to scan the program faster, much faster if you are using block delete, than a straight program with no subroutines.
__________________
An open mind is a virtue...so long as all the common sense has not leaked out.

Last edited by Geof; 02-22-2010 at 04:01 PM.
Reply With Quote

Sponsored Links
  #11   Ban this user!
Old 02-22-2010, 03:17 PM
 
Join Date: Jan 2007
Location: USA
Posts: 1,301
Delw is on a distinguished road

Originally Posted by Geof View Post
Another thing I forgot to mention is putting a Block Delete in front of all except one the M97 Pnnnn commands. This way when you are setting up and checking sizes yu press block delete and run through every tool finishing one part rathet than losing a whole load because a tool was over or undersize.
Thats Another good tip.

On my old Acroloc with a yasnac mx1 control this was one thing that I couldnt do so I had to run the parts ( block skip on the board/software) was broke)


BTW Geof, Your typing is getting as bad as mine, I blame it on the keyboard

Thanks again
Delw
Reply With Quote

  #12   Ban this user!
Old 02-22-2010, 04:05 PM
 
Join Date: Jul 2005
Location: Canada
Posts: 11,565
Geof will become famous soon enough

Originally Posted by Delw View Post
.....BTW Geof, Your typing is getting as bad as mine, I blame it on the keyboard

Thanks again
Delw
Picky, Picky.

Did I get them all?

I often have to spend a couple of minutes proofing and correcting a post; I blame big fingers. Doing similar things on a machine controller can sometimes elicit far more alarming results than someone commenting on your bad typing.
__________________
An open mind is a virtue...so long as all the common sense has not leaked out.
Reply With Quote

Reply




Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
PLC programs? KC8QVO General Electronics Discussion 1 05-09-2007 11:06 PM
CAD programs Crazycorkey General CAM Discussion 3 02-10-2007 06:21 PM
DNC Programs zoeper General CNC (Mill and Lathe) Control Software (NC) 3 01-12-2007 03:48 PM
What programs can do this- july_favre General CAM Discussion 19 09-22-2005 11:36 PM
Which programs do you use ? bunalmis DIY-CNC Router Table Machines 23 07-25-2003 09:02 AM




All times are GMT -5. The time now is 08:38 PM.





Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Content Relevant URLs by vBSEO
Template-Modifications by TMS

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361