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 03-24-2007, 07:01 AM
 
Join Date: Jan 2007
Location: usa
Posts: 39
joesimmers is on a distinguished road
Haas mill multiple vise question (programming)

I have a new vf2 and I am getting ready to do my first job where I will use more than one vise.

I plan to have 3 vises setup. There will be 8 or 9 toolchanges.

I plan to program g54, g55, and g56 for each vises.

This is to machine three identical parts at one time.

Is the SIMPLEST way to write my program using M97's?

Or should I use M98's (I have never used M98)

Thanks for any advice.

Joe Simmers
Reply With Quote

  #2   Ban this user!
Old 03-24-2007, 08:28 AM
jackson's Avatar  
Join Date: Oct 2006
Location: United States
Posts: 586
jackson is on a distinguished road

I dont use sub programs what i do it just copy and paste get the first part programed then copy and paste the rest and change G54 to your G55 G56 and set get your locations to me it is simpler but that is just me, get your first vise on and indicated in then set your other two up and take a peice of good flat stock and clamp the first then the second then the third that will get you real close to being in line
__________________
individual who perceives a solution and is willing to take command. Very often, that individual is crazy.
Reply With Quote

  #3   Ban this user!
Old 03-24-2007, 08:50 AM
 
Join Date: Jun 2006
Location: USA
Age: 46
Posts: 478
ajl6549 is on a distinguished road

I'm with Jackson on the cut and paste thing. Also it's more efficiant as opposed to machining one complete, then the next, and so on.
__________________
A.J.L.
Reply With Quote

  #4   Ban this user!
Old 03-24-2007, 09:09 AM
BlueChip's Avatar  
Join Date: Jun 2003
Location: Massachusetts
Posts: 130
BlueChip is on a distinguished road
Multiple Part Programming

Just my opinions :

(1) Best programming practice is to use the G54 - G59 work offsets ... Why? ... adds independancy to each location so each is easily adjusted without effecting the others ... hit the vise, bump the vise, easy to re-adjust one without changing the others and no programming change, just an offset change.

(2) Best to use sub-programming instead of copy and paste ... Why? ... Let's face it, there's always some adjustments that need to be made once the chips start flying ... and should be, that's how the most optimized programs get created. If you use sub programs, you'll be using one program so if you need to make a program adjustment, you'll only have to do it in one place. Also, first part is correct, all parts will be correct. If you copy and paste, you'll need to make multiple changes in multiple locations or keep going back and forth from the PC to the machine for editing if you need big changes. Also, if you need to change the machining order due to cutting conditions, just change one place or change the sub program calls.

Now the drawbacks of sub programming :

(1) If you complete one part then move to the next vise and complete the second etc., easy program as below but longer run times as tool changes are not optimized. The best way is to machine all vises with the tool while it is in the spindle ... harder to do with sub programs ( see below ). It's your call, easier programming or most optimized ... depends on what's more important to you.

(2) Headache when saving the programs for future use ... you need to save all the sub programs as well ... in your case 7 or 8.

Some programming examples :

( Machine parts complete at each vise )
O0001
G54 ( establish vise #1 work offset )
M98 P1111 ( call your machining program O1111 )
G55 ( establish vise #2 work offset )
M98 P1111 ( call your machining program O1111 )
G56 ( establish vise #3 work offset )
M98 P1111 ( call your machining program O1111 )
M30

( Optimized to cut all parts while the tool is in the spindle )
O0001
N0001
G00 G91 G28 Z0
T01 M06
G90 S3000 M03
G54 ( establish vise #1 work offset )
M98 P1111 ( program to machine part for tool #1 )
G55 ( establish vise #2 work offset )
M98 P1111 ( call your machining program for tool #1 )
G56 ( establish vise #3 work offset )
M98 P1111 ( call your machining program for tool #1 )
G00 G91 G28 Z0 M09
M01
N0002
G00 G91 G28 Z0
T02 M06
G90 S3000 M03
G56 ( establish vise #3 work offset - working your way back now )
M98 P1112 ( program to machine part for tool #2 )
G55 ( establish vise #2 work offset )
M98 P1112 ( call your machining program for tool #2 )
G54 ( establish vise #1 work offset )
M98 P1112 ( call your machining program for tool #2 )
G00 G91 G28 Z0 M09
M01
etc.
etc.
M30

Just some thoughts ... hope it adds some fuel for thought.

Real World Machine Shop Software at www.KentechInc.com
Reply With Quote

  #5   Ban this user!
Old 03-24-2007, 09:32 AM
 
Join Date: Jun 2006
Location: USA
Age: 46
Posts: 478
ajl6549 is on a distinguished road

Well Chip, your correct on the ease of programming thing, but if he's making three at a time, then it's probably safe to assume that it's a lot of pieces he's making and there for efficincy is paramount. Also if you take a program that is proven to make one piece, and make it efficiantly, and cut and paste it, the "multiple changes" should be minimal at worst.
__________________
A.J.L.
Reply With Quote

Sponsored Links
  #6   Ban this user!
Old 03-24-2007, 09:51 AM
BlueChip's Avatar  
Join Date: Jun 2003
Location: Massachusetts
Posts: 130
BlueChip is on a distinguished road
Another thought

One more thought / plan ... make one part complete on one vise, prove it all out and optimize the toolpath ... then break it up and cut and paste or sub it out to make multiple parts / locations.

Real World Machine Shop Software ... www.KentechInc.com
Reply With Quote

  #7   Ban this user!
Old 03-24-2007, 09:56 AM
 
Join Date: Jul 2005
Location: Canada
Posts: 11,565
Geof will become famous soon enough

Do it with subroutines for each tool. This puts everything in a single program so it is easy to find lines in the program if you need to edit.

The main program selects the first work zero then goes to the subroutine for the first tool, selects the second work zero then goes to the the first tool subroutine again then third work zero, subroutine again.

All the tool change commands are in the subroutines so when the program goes back to the first work zero and calls the second subroutine this initiates a tool change to tool two and the machine cycles through the three work zeroes like before.

This continues for however many tools there are and then the program changes back to tool one, parks the vises convenient for unloading and reloading and stops.

With this system there are some real advantages.

When you are writing the program you treat each tool subroutine as a separate program. Write it in the Clipboard and run it from the Clipboard. Then when that tool sub routine is correct paste it into the correct place at the end of the main program and change the M30 needed to run it to an M99 because now it is a subroutine.

When you want to edit CUT a tool subroutine back to the clipboard, edit and run it there to prove the changes then paste it back into the program. NOTE I always make a copy of the program as backup before doing this just in case I screwup and lose something.

When a program has many tools doing a lot of work it is sometimes tedious to go through all the tools when setting up and proving the program. With this method it is possible to put a Block Delete in front of all the work zero subroutine calls except for G54. This way you prove and finish the program on only one part; quicker and less waste if you make a mistake.

I have written hundreds of programs using this method with some of them using up to 32 work zeroes and 10 or 11 tools. A really nice thing is that if you move the program to a larger or smaller machine all that is needed are a few more or less work zero/subroutine calls. Another thing is that if the format is kept consistent anyone familiar with it can edit a program as easily as the person who wrote it.

I can post an example next week if you like.

Last edited by Geof; 03-24-2007 at 09:58 AM. Reason: typo
Reply With Quote

  #8   Ban this user!
Old 03-24-2007, 10:24 AM
 
Join Date: Jun 2006
Location: USA
Age: 46
Posts: 478
ajl6549 is on a distinguished road

All I can say is, it's to bad your not doing this on a Mazak. Multi-pieces are a snap with Mazatrol.
__________________
A.J.L.
Reply With Quote

  #9   Ban this user!
Old 03-24-2007, 10:31 AM
 
Join Date: Jun 2006
Location: USA
Age: 46
Posts: 478
ajl6549 is on a distinguished road

Remember to keep it as simple as possible.
__________________
A.J.L.
Reply With Quote

  #10   Ban this user!
Old 03-25-2007, 12:10 PM
gar gar is offline
 
Join Date: Mar 2005
Location: USA
Posts: 1,498
gar is on a distinguished road

070325-1052 EST USA

joesimmers:

Following is a sample program that provides a solution to some of the above comments. This requires MACRO capability, uses G52 in combination with a fixed G54, provides a means to do one or more parts with the same subroutines for each part, and minimizes tool changes.

Note: using a subroutine for your position information greatly reduces errors for multiple parts. Either all parts are OK or none are.

We have our own tool change subroutine that simpifies the code in the main program. Note: HAAS has a mode that functionally ignores a tool change if that tool is already loaded. Thus, multiple tool changes on the same tool do not affect cycle time.

Part programming is in absolute in contrast to incremental. This is possible because of the use of G52.

The theory of this program is thet G54 defines a base coordinate. This might be the left vise rear jaw left and front edges. G52 is used to create the base coordinate for each part relative to G54. G54 is never changed only G52 is.

Two #-variables (#151 and #152) are preset to define the starting and ending parts. There is a table of G52 values at N1500 that defines the position of each part. #150 contains the ordinal number of the current part being processed minus 1.

#150 is initially set to the value in #152 - 1 at the beginning of each loop in the program. In the main program a tool is picked. One or more subroutines are executed. #150 is incremented to the next part position and the subroutines are repeated until #150 equals the last part defined by #151.

The next tool is selected and the same kind of process is repeated.

Each part is 2.1 inches from the previous part in the X-axis. This could be expanded to work in both the X and Y directions.

Works without change between my 1993 and 2000 machines.


%
O3004
(SAMPLE.CNS 070325-1029)
(Beta prog 981226-1009 )


(******** You must set value for number of parts ****)

#151= 1 ( replace 1 with 1 thru 11 for number of last part. )
( #150 is used for loop counter )

#152= 1 ( This #152 value minus 1 is loaded into #150 throughout the )
( program to determine the starting part position)
( for loop counter initialization )

IF [ [ #151 GT 11 ] OR [ #151 LT 1 ] ] GOTO1000
IF [ [ #152 GT 11 ] OR [ #152 LT 1 ] ] GOTO1000


#153= 1.7500 + [ #151 * 2.1 ] (#153 is used for length in P20)

(***************************************************)

G52 X0. Y0.
G53 G00 Z0.

(**** TOOL Change to Mill Finishing **** -->1 IDM15F HAAS TL # 6 )
( rough face to set top of surface )
(in the called sub N20 is the only place #153 is used)

G65 P6901 E54 R2.05 S3000 T6 D06 ( call tool chg sub )

G00 X-1.5 Y1.500
Z0.1

G01 F40. M97 P20 Z0.
G90 G00 Z0.1




(Do tool 12 work)

#150= #152 - 1 ( initialize loop counter )

N250 (************* LOOP POINT --A-- ************* note this loop only uses tool #12)
( In this loop the tool diameter definition remains constant. )
M97 P1500 ( sets G52 for this pass, #150 incremented in N1500 )


(**** TOOL Change to Mill Finishing **** -->2 IDM14F HAAS TL # 12 )

G65 P6901 E54 R0.25 S5000 T12 D12 ( call tool ch sub )

G00 X1.825 Y1.1375

Z0.1
F60. G01 M97 P13 Z-0.125
G90 G00 Z0.1


G00 X1.825 Y1.1375
Z0.1
F60. G01 M97 P13 Z-0.25
G90 G00 Z0.1




(**** TOOL Change to Mill Finishing **** ->3 IDM15F HAAS TL # 12 )

G65 P6901 E54 R0.25 S5000 T12 D12 ( call tool chg sub )

G00 X1.825 Y-1.4375
Z0.1
F60. G01 M97 P12 Z-0.125
G90 G00 Z0.1


G00 X1.825 Y-1.4375
Z0.1
F60. G01 M97 P12 Z-0.25
G90 G00 Z0.1


IF [ #150 LT #151 ] GOTO250

(************************* END of LOOP --A-- **********************)

G52 X0. Y0.




(Do tool 11 work)

#150= #152 - 1 ( initialize loop counter )

N251 (************* LOOP POINT --B-- ************** note this loop only uses tool #11)
( In this loop the tool diameter definition changes. )

M97 P1500 ( sets G52 for this pass, 150 incremented in N1500 )


(**** TOOL Change to Mll Roughing **** --->9 IDM20R HAAS TL # 11 )
( rough the outside )

G65 P6901 E54 R0.19 S5000 T11 D11 ( call tool chg sub )

G00 X0.1943 Y1.8648
Z0.1
F40. G01 M97 P21 Z-0.25
G90 G00 Z0.1

G00 X0.1943 Y1.8648
Z0.1
F40. G01 M97 P21 Z-0.37
G90 G00 Z0.1




(**** TOOL Change to Mill Finishing **** -->10 IDM20F HAAS TL # 11 )
( finish the outside )

G65 P6901 E54 R0.187 S5000 T11 D11 ( call tool chg sub )

G00 X0.1943 Y1.8648
Z0.1
F40. G01 M97 P21 Z-0.37
G90 G00 Z0.1


IF [ #150 LT #151 ] GOTO251

(************************* END of LOOP --B-- **********************)

G52 X0. Y0.




M09
M05
G90 G00 G53 Z0
G53 X-16. Y0
M30


(subroutines)

N20 (this is only place #153 is used)
G01 G40 X-1.5 Y0.9475
G01 X#153 Y0.9475
G01 X#153 Y-1.0525
G01 G40 X-1.5 Y-1.0525
M99


N12
G01 G40 X1.825 Y-1.1375
G01 X1.075 Y-1.1375
G01 X1.075 Y-1.4375
G01 X1.7833 Y-1.4375
G01 X1.7833 Y-1.3043
G01 X1.1101 Y-1.3043
G01 G40 X1.1101 Y-1.2504
M99


N11
G01 G40 X2.05 Y1.0375
G01 X1.81 Y1.0375
G01 X1.81 Y-1.0375
G01 X1.57 Y-1.0375
G01 X1.57 Y1.0375
G01 X1.33 Y1.0375
G01 X1.33 Y-1.0375
G01 X1.09 Y-1.0375
G01 X1.09 Y1.0375
G01 X0.85 Y1.0375
G01 X0.85 Y-1.0375
G01 G40 X0.9824 Y-1.0375
M99



N1500

( #150 IS INITIALIZED BEFORE CALL TO SUBROUTINE )

IF [ #150 EQ 0 ] GOTO200
IF [ #150 EQ 1 ] GOTO201
IF [ #150 EQ 2 ] GOTO202
IF [ #150 EQ 3 ] GOTO203
IF [ #150 EQ 4 ] GOTO204
IF [ #150 EQ 5 ] GOTO205
IF [ #150 EQ 6 ] GOTO206
IF [ #150 EQ 7 ] GOTO207
IF [ #150 EQ 8 ] GOTO208
IF [ #150 EQ 9 ] GOTO209
IF [ #150 EQ 10 ] GOTO210
IF [ #150 EQ 11 ] GOTO211
#3000= 15 (N1500 - #150 OUT OF RANGE)

N200 G52 X0.
GOTO300
N201 G52 X-2.1
GOTO300
N202 G52 X-4.2
GOTO300
N203 G52 X-6.3
GOTO300
N204 G52 X-8.4
GOTO300
N205 G52 X-10.5
GOTO300
N206 G52 X-12.6
GOTO300
N207 G52 X-14.7
GOTO300
N208 G52 X-16.8
GOTO300
N209 G52 X-18.9
GOTO300
N210 G52 X-21.
GOTO300
N211 G52 X-23.
GOTO300

N300
#150= #150 + 1
M99



%
Reply With Quote

Sponsored Links
  #11   Ban this user!
Old 03-28-2007, 07:15 PM
 
Join Date: Mar 2007
Location: USA
Posts: 15
Dadeslot is on a distinguished road

Sorry to diagree with the m98 m99 but cut copy past is the quickest and easiest way to program I feel especially with haas easy search function its easy to fine tune each vise. Keep it simple

Dadeslot
Reply With Quote

  #12   Ban this user!
Old 03-28-2007, 07:22 PM
 
Join Date: Jul 2005
Location: Canada
Posts: 11,565
Geof will become famous soon enough

Originally Posted by Dadeslot View Post
Sorry to diagree with the m98 m99 but cut copy past is the quickest and easiest way to program I feel especially with haas easy search function its easy to fine tune each vise. Keep it simple

Dadeslot
If I have a program using 10 tools on 32 different locations you are saying it is simple to copy each tool routine 32 times for each location? More simple than having one tool routine in a sub and calling it 32 times after selecting the different locations?
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
Kurt Vise & Haas Minimill Fit Motivator-1 Haas Mills 8 12-31-2006 08:13 PM
programming multiple double vises bink G-Code Programing 12 10-26-2006 09:07 PM
Haas Mini Mill Programming Question CuttingTools Haas Mills 41 05-24-2006 08:44 AM
What Vise for IH mill ? Roy Norris Industrial Hobbies (Support forum) 8 07-23-2005 09:43 PM
Haas vs. Mazatrol 640 Programming fuzz5150 Haas Mills 1 04-10-2005 11:11 PM




All times are GMT -5. The time now is 02:24 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