Created and Maintained by the Real World Software Developers and Machinists at www.KentechInc.com ... click here to check it out !!
Showing posts with label kipware. Show all posts
Showing posts with label kipware. Show all posts

Wednesday, January 22, 2014

Product Introduction - Chick One-Lok CNC Vise

I would say it is safe to say that the CNC machining center is an evolution of the manual milling machine ... bigger, better, faster and more efficient in many ways. The unfortunate fact regarding that evolution is that the ever popular vise for holding our work has not followed along very closely. As evidenced by our bruised and battered knuckles and the array of attachments on the market that cater to that piece of equipment.

But now ... after decades of trudging along and making due ... CHICK has finally brought a CNC designed vise to market. This CHICK One-Lok vise is not a traditional knee mill vise adapted for use on a CNC ... it is a vise specifically designed for the CNC machine.

The CHICK One-Lok Vise allows major advantages over the traditional vise in ways such as :
  • Enabling dramatically faster set-ups and part changes
  • Eliminate fixed jaw deflection and movable jaw lift for greater part precision
  • Greater versatility with features like multiple location features ... moveable toe clamps ... and an integrated repeatable jaw system.
We don't have any affiliation with CHICK or this product ... just thought it was is a real nice product and we we wanted to make sure to bring it to your attention in our Blog. We've got some follow-up links below so you can get some additional information ... Be sure to check out the really cool jaw system !!


Click the image above to watch a video on the CHICK One-Lok Vise

Until next time ...
Happy Chip Making !!

Tuesday, May 21, 2013

Multi-Part Machining Series - Part #3

Machining Multiple - Different Parts

So far in our series we have looked at machining multiple parts of all the same part mounted in our fixtures during our machining cycle. What if we want to machine different parts during the cycle ... we want to mount different fixtures on the table and machine one of each during the machining cycle.

First let's look at some reasons WHY we might want to do this.

  1. Perhaps we will be delivering an assembly made of multiple parts we need to machine. If we machine all the components at the same time ... during the machining cycle ... we can better accomplish scheduling and production of the entire assembly.
  2. Perhaps similar parts utilize similar cutting tools ... if we can machine them at the same time we can reduce and better control our tooling requirements both from a "tool in the machine" as well as from an inventory viewpoint.
  3. We need to break into a production run for some "special circumstance" ... rather than halt the production all-together, we can sneak another fixture on the table and machine both parts during the same cycle.
  4. Having lived in the real world ... we could go on and on and on ... you know !!

Looking back at Part #1 and Part #2 in our series ... any of these scenarios certainly becomes a fairly simple task.

Fixture Offsets from Part #1
As we mount the different fixtures on the table ... we can establish a Work Offset for each fixture. Now each fixture is independent of the others ... and can be called with a simple G54-G59 call.


Sub-Programming from Part #2
We could use a variety of sub-programming options to accomplish the various scenarios. The easiest is to simply have a complete machining program for each fixture ... and call it using the sub-program call in our main program. So we would utilize a main program to actually link all our different machining programs together. Something line this :

Main Program :

O0001
G54
M98 P1234 ( program to machine fixture #1 completely )
G55
M98 P5678 ( program to machine fixture #2 completely )
G56
M98 P8888 ( program to machine fixture #3 completely )
M30
%


When we press the cycle start at program O0001 .... it will call each of our compete machining programs and will machine the workpieces at each fixture completely. Simple. You could get very creative and efficient if you did some specific tooling / sub-programming calls ... think about it.

And .... we still have our independent programs available should we need to just machine one of the parts for some reason.

As I'm writing this ... different scenarios and reasons to utilize this approach keep popping into my head. But rather than write a long dissertation here ... look around your shop ... look at your work flow ... and see if you can view some of your own scenarios where better work flow can be achieved using some of our talking points from this series.

If you are so inclined ... please drop us an email at Sales@KentechInc.com ... tell us some of your unique situations ... or even ask us our recommendations ... and we'll publish / add them into this post for the benefit of others to review.

Thanks in advance to everyone ... and Happy Chip Making !!

Check out our Real World World machine shop software at www.KentechInc.com
Conversational CAD/CAM
Quoting & Estimating
G Code Conversion
CNC Training
.... and MORE !!!



Wednesday, May 8, 2013

Multi-Part Machining Series - Part #2

Programming for Multiple Fixtures

So the decision has been made ... "We need production ... which means we need to mount as many vises or fixtures on the table as we can fit ... to make as many parts as possible."

First scenario ...
  1. We are going to make all the same part. 
  2. For our example here ... let's say that we can fit 4 fixtures on the table ... we are going to machine 4 parts in one cycle.
Some thoughts :
  1. When the tool is in the spindle ... we want to do as much work with it as possible. That means hitting each part on each fixture while it's in the spindle.
  2. As mentioned in Part #1 ... each fixture is independent with it's own work coordinate system.
  3. As a set-up ... we want to make one part first ... confirm that it is correct dimensionally and that the cutting conditions are optimal ... and then expand those toolpaths to machine the other vises.
  4. For this article ... we are not going to be concerned with the actual G code program ... more with the flow of the program. How we can structure the program to machine all the parts.
So we mount the fixtures on the table ... set up and record our Work Coordinate Offsets ... G54 - G57.

How can we write the program to machine one part ... then expand it to 3 more parts ... with the least amount of effort. Our suggestion : Sub Programming ( for a more in-depth MAKING CHIPS blog post on sub-programming ... go here : http://kipware.blogspot.com/2013/02/the-hows-and-whys-of-sub-programming.html )

Here is the structure of our initial set-up program :

O0001 ( Main Program )

N0001
G00G91G28Z0
T01M06
G90S3500M03
G43Z1.500H01M08 -------- Put the tool in the spindle, start the spindle, position Z to clearance

G00G54X0Y0 --------------- Move to the first fixture, call the sub to do the work with this tool
M98 P1000

G00G91G28Z0 --------------- End this tools sequence
M01

N0002
G00G91G28Z0
T02M06
G90S1200M03
G43Z1.500H02M08 -------- Put the next tool in the spindle, start the spindle, position Z to clearance

G00G54X0Y0 --------------- Move to the first fixture, call the sub to do the work with this tool
M98 P1001

G00G91G28Z0 --------------- End this tools sequence
M01

ETC
ETC -------------------------- Create similar cycles for all the remaining tools.
ETC
M30

Once all of the above is confirmed ... w're ready to rock and roll on all the fixtures.
Just make these simple edits :

O0001 ( Main Program )

N0001
G00G91G28Z0
T01M06
G90S3500M03
G43Z1.500H01M08

G00G54X0Y0
M98 P1000
G00G55X0Y0
M98 P1000
G00G56X0Y0
M98 P1000
G00G57X0Y0
M98 P1000

G00G91G28Z0
M01

N0002
G00G91G28Z0
T02M06
G90S1200M03
G43Z1.500H02M08

G00G54X0Y0
M98 P1001
G00G55X0Y0
M98 P1001
G00G56X0Y0
M98 P1001
G00G57X0Y0
M98 P1001

G00G91G28Z0
M01

ETC
ETC -------------------------- Create similar cycles for all the remaining tools.
ETC
M30

The above will work fine ... one blaring item is that we are positioning back to the first fixture ... from the last fixture each time ... some wasted movement. Easy to fix because of our structure and the use of sub-programs ... just start each tool at the last vise where the last tool was working ... like this :

First Tool :
G00G54X0Y0
M98 P1000
G00G55X0Y0
M98 P1000
G00G56X0Y0
M98 P1000
G00G57X0Y0
M98 P1000

Next Tool ( work the offsets backwards ):
G00G57X0Y0
M98 P1001
G00G56X0Y0
M98 P1001
G00G55X0Y0
M98 P1001
G00G54X0Y0
M98 P1001

Next Tool :
G00G54X0Y0
M98 P1002
G00G55X0Y0
M98 P1002
G00G56X0Y0
M98 P1002
G00G57X0Y0
M98 P1002

ETC ... ETC ... ETC.

So there you have it ... combining our knowledge of SUB-PROGRAMMING with WORK COORDINATE OFFSETS ... we machined (4) parts on (4) fixtures ... efficiently.

If you followed the other Making Chips posts on SUB-PROGRAMMING and WORK COORDINATE OFFSETS... you will have an even better understanding of why these features will prove so useful when :
  1. Johnny "bumps" the middle fixture with his hammer
  2. Paul adds a revision .... an additional hole to the part
  3. "The Boss" decides he wants to take off one of the fixtures ... who knows why !!!
Anyway ... if you aren't sure why the above are simple fixes ... just go back and review the other posts !!

In the next post in the series ... we'll take a closer look at some other scenarios and options ... Stay Tuned !!

As always ... Happy Chip Making !!!

Check out our Real World World machine shop software at www.KentechInc.com
Conversational CAD/CAM
Quoting & Estimating
G Code Conversion
CNC Training
.... and MORE !!!

Wednesday, April 24, 2013

Multi-Part Machining Series - Part #1

Work Coordinate Systems

Most production shops will rarely utilize a one-vise or one-fixture setup on a VMC or HMC when running a multiple piece production run. The most efficient production will have the cutting tool performing it's function on as many parts as possible while it is in the spindle. That normally means adding as many multiple vises or fixtures as the room on the table will permit.

We will be devoting the next couple of Making Chips posts to set-up and programming tips and tricks dealing with multi-part machining.

What does that multi-part machining mean for programming? As with anything in life ... first we want to reduce the amount of work ... in this case, the amount of programming. The use of sub-programming to cut down on the amount of typing or data entry or whatever work ... is one. ( We dealt with sub programming in a previous post here : http://kipware.blogspot.com/2013/02/the-hows-and-whys-of-sub-programming.html ). The other is a little feature on most machines called WORK OFFSETS. In our post here we will be explaining the Fanuc style and codes of Work Offsets ... since about 95% of machines out there are what we refer to as "fanuc compatible." And that includes the popular Haas machines as well.

Why Work Offsets?

Let's take a simpler example of placing two vises on the VMC table ... both will hold identical pieces of stock ... and we want to machine two identical workpieces using the same identical tools.

Hole dimensions are identical for both workpieces.

We could always do something like use the top left corner on the part on the left as X0/Y0 and then add the 12.300 + 3.100 to program the two holes on the part on the right ... sure, simple in this case. But even this scenario is fraught with potential problems. 

  1. What if we "bump" the vise ... and the 12.300 is no longer the case. We now have to go back into the program and adjust the X and Y coordinates to reflect the new distance. 
  2. What if one vice is a different height / thickness than the other ... the parts Z0 is different.
  3. Next time we run the job ... we have to get the vises exactly 12.300 apart ... or alter the program again.
  4. .... it goes on and on ... none of the scenarios are nice to imagine.

This type of situation ... and this is a simple one ... begs for the use of Work Offsets.

What are Work Offsets?

The Work Offsets allow the user to designate distances from the fixed Zero Return position on the machine to a certain location on the machine through an offset table. The Work Offsets are recorded distances from a fixed position on the machine ... usually the Zero Return or Reference Return position on the machine. This position is the only position that can be repeated on the machine without fail ... because it is defined from a physical limit switch. Once the electronics on the machine are powered off ... most internally recorded positions are lost ... no power to keep the computer running, it loses it's memory. When the machine is powered back on ... we can find our Zero Return by utilizing that function on the machines panel because it searches for that physical limit switch ... it doesn't rely on any memorized position ... it is dependent on the physical limit switch. For that reason ... all Work Offset positions are recorded from that Zero Return position for all axis.

The number of Work Offsets available on a machine tool can vary ... some have as little as one or two and others have 300-500 ... on Fanuc controlled machines the standard number is six ... although options to add  more are available. They are designated by G code calls ... G54, G55, G56, G57. G58 and G59.

If you were to look in the Work Offset table ... you would see something similar to :

So the user measures the distance from the fixed Zero Return position to ... let's use our example ... to the top left corner of the left hand vice as that parts X0/Y0 location. The measured distance is then entered in the Work Offset table ... both X and Y ... under one of the Work Offset designations ... we'll use G54. The steps are repeated for the left hand vice ... and the X and Y distances are entered in the G55 offset locations.

In our example, let's imagine that the vises and the stock are the same height in the Z axis ... just for simplicity ... but the Z axis could have a value similar to X and Y if required.

How to use Work Offsets in the G Code Program?

Let's say we have the scenario below .... the machines Zero Return position is the point on the top right designated with the purple circle :

Our Work Offset Table would look like :

Now for the programming part. Whenever the G code calls out a Work Coordinate System .... G54 thru G59 ... that Work Coordinate System becomes the default and any X / Y / Z coordinates called out for in the G code will reflect the X/Y/Z coordinates from the offset table. So the programming line ...
G00 G90 G54 X0 Y0
 ... would move the tool to the top left corner of the left hand vise. If we were to then command ...
X3.100 Y-2.125
.... we would position to the top left hole of the left hand vise ... because the G54 Work Coordinate System is the default. Similarly ... the command lines :
G00 G90 G55 X0 Y0
X3.100 Y-2.125 
... would position the tool to first the top left corner of the right hand vise ... then the top left hole of the right hand vise using the G55 Work Coordinate System.

So using the Work Coordinate Offsets and Work Coordinate System calls ... it is very easy to switch between the left hand and right hand vise by simply commanding G54 or G55.

The Advantages of Work Offsets

As we outlined above ... we are asking for problems when we don't use the Work Offsets. How did we fix them?

  1. If we "bump" the vise ... only the values in the Work Offset table will change ... the G code program will not need any editing.
  2. If the vises were different heights .... we could easily use the Z value in the Offset Table to make that adjustment ... again, no program editing.
  3. Next time we run the job ... we only need to adjust the G54 and G55 Offset Table values ... no program editing is required.
  4. and on and on and on. I'm sure you will see many more advantages on the shop floor.
As we progress through our Multi-Part Machining Series over the next posts ... we'll try to highlight some of the other programming Tips and Tricks that can be employed.

Stay Tuned .... and Happy Chip Making !!



Check out our Real World World machine shop software at www.KentechInc.com
Conversational CAD/CAM
Quoting & Estimating
G Code Conversion
CNC Training
.... and MORE !!!

Wednesday, April 10, 2013

Circle Milling Like a Professional


Milling a counterbore or doing other circle cutting using an end mill or similar tool can be a powerful and creative machining process. Most times replacing the need for a reamer, boring bar or other sizing tool. This type of cutting, when combined with cutter compensation gives the operator much more flexibility in adjusting the size of the finished hole.

However, the main drawback is usually created using simple programs and is usually found at the entry and exit points where a small tool mark can be created due to the tool pressure caused at the entry of the cut. With a little creative programming technique and some simple calculations, a much more efficient and "professional" program can be created.

In this post, we're going to take you step by step through a program creation to mill a circle using the "loop in - loop out" method which takes the cutter from the center into the side of the hole using an arc move - then cuts completely around the hole - then loops back to the center using another arc move. This type of cutting gives a real nice finish in the hole, helps maintain size a little better and leaves no tool mark at entry or exit points.

In our example, finish milling an inside round pocket using G02 or G03, a cutter mark will remain from tool pressure at the entrance and exit point of the arc. In order to create a smooth entrance and exit, some “tricky” machining technique must be employed because most machines do not have a “canned cycle” for the type of cutting explained here. Although this employs nothing more than simple G02 or G03 commands, the manner in which the codes are used and the type of process that results, makes efficient use of the simple codes and makes a more attractive and accurate workpiece.

The objective with the example below is to create a smooth transition into and out of the cut. In the example below, we are attempting to machine a 2 in. radius circle with a 1 in. radius cutter.

STEP #1 : We calculate the arc needed to move the cutter from the center of the pocket to the finish wall edge. In the example below, we use the following formula :

2.00 (pocket radius) - 1.00 (cutter radius) = 1.00

This is the distance needed to move from the pocket center to the wall edge, allowing for the cutter radius.

STEP #2 : Next divide the total distance in half to obtain the radius needed to swing an arc from the center to the outer edge as calculated above.

1.00 / 2 = .500


If you like this concept ...
we invite you to take a look at our
it auto-creates G code from fill-in-the-blank forms ...
NO CAD experience required !!!

Cutter  Compensation  Note : 
Some controls will allow for the activation of CUTTER COMPENSATION on the example program block #1. In that case, you can calculate the same as above but do not compensate for the cutter radius, instead call the cutter compensation G Code and compensation offset number on the program block. In our example, the program block would be :

G02 G91 G42 X2.00 Y0 R.500 D12 

In this block, we are using G42 (cutter compensation right) and storing the radius of the cutter in offset #12. Using cutter comp as above will allow for the easy adjustment of the pocket size by adjusting the value in offset #12. Don't forget to cancel the cutter comp with G40 after the tools cutting is complete.


Creating a "CYCLE" : 
Using a simple combination of sub-programming, you can take the example above a step further and create a simple Z axis step-down cycle resulting in the roughing of the above example with little effort.

In the program example below, we are taking the circle cutting routine created above and storing it in a sub program. The main program will step the Z axis down - call the sub-program to machine the hole at that depth, then return to the main program which will in turn move the Z axis to another depth and start the process again. This "cycle" repeats until the total depth is achieved.

Main Program : 
{ start and position the tool to the hole center as normal }
G01 G90 Z-.100 F15.0 ; --- move to the depth of the first cut
M98 P1111 ---------------- call Sub Program O1111 which does the cutting as above
G01 G90 Z-.200 F15.0 ; --- move to the next depth of cut
M98 P1111 ---------------- call Sub Program O1111 again at the new depth
G01 G90 Z-.300 F15.0 ; --- move to the next depth of cut
M98 P1111 ---------------- call Sub Program O1111 again
G01 G90 Z-.400 F15.0 ; --- move to the next depth of cut
.... etc. till the desired depth is realized

Sub Program : 
O1111;
G02 G91 X1.00 Y0 R.500 F10.0 ; -- circle to the hole edge
G02 I-1.00 ; --------------------- cut the complete circle
G02 X-1.00 Y0 R.500 ; ------------ circle back to the center
M99 ; ---------------------------- return to the main program

This is just one example of the combination use of the sub-programming feature and "simple" programming codes to create a user cycle. You can always use your initiative and create some other ideas. Maybe think about these  : 
How can you put the Z axis move in the sub-program as well ?
Call the sub program and repeat a set number of times ?
... any others ?

Happy Chip Making !!

Check out our Real World World machine shop software at www.KentechInc.com
Conversational CAD/CAM
Quoting & Estimating
G Code Conversion
CNC Training
.... and MORE !!!




Wednesday, February 27, 2013

Canned Cycle Drilling and R Plane Tricks

Wasting time drilling air when "drilling" holes in a part with multiple levels is not uncommon for the novice programmer. In this Making Chips post ... we would like to discuss the always important R plane and how you can easily control it in your G code program.

First ... the FACTS :

There are two planes that the programmer needs to be concerned with :

INITIAL PLANE ... this is the plane used for rapiding around the workpiece. This plane should always be set high enough to avoid the workpiece as well as any clamps or other fixture related objects that can be struck by the tool as it moves around the part.
  • On  Fanuc controlled or Haas machine ... the initial plane is defined as the last Z position before the canned cycle is called. So in the sample code below :
G00 G90 Z1.000
G98 G81 Z-.500 R.050 F1.0

  • Z1.00 would be considered the INITIAL PLANE ... because it is the last Z position prior to the the G81 canned cycle command.
  • In an Okuma machine ... the user can set the INITIAL PLANE by commanding a G71 Z--- line prior to the canned cycle command line. So ... imitating the above Fanuc line ... we would program :
G71 Z1.000
G81 Z-.500 R.050 F1.0

R PLANE : The R plane is defined as the plane at which the drilling operation begins. So basically the tool rapids from the Initial Plane to the R plane ... and then starts the drilling operation. The R plane is defined in the canned cycle command line. So in the above examples ... R.050 is defined as the R plane ... the point where the drilling operation would begin.

In the above programs ... the tool would rapid from the Z1.00 initial plane to the Z.050 R plane.

After drilling ... we can tell the tool where to return by using the G98 ( initial plane return ) or G99 ( R plane return ) ... for Fanuc / Haas ... in the canned cycle command line. Once commanded ... G98 / G99 becomes modal ... which means the machine will remember where it is supposed to return ... until told differently. When programming for Okuma ... we can use the M53 ( like G98 ) / M54  ( like G99 ) commands.

NEXT ... the TRICKS :

Did you know that you can very easily change the R plane when drilling on uneven surfaces?
Did you know that you can very easily change the return point between the INITIAL and R planes?

As mentioned above ... once G98 or G99 is set ... the control remembers where to go.
Also ... once the R plane is set in the canned cycle command ... it remembers where the R plane is.

But you can change either very easy ... just command it !! Like this :

(1) G00 G90 Z1.000
(2) G98 G81 Z-.500 R.050 F1.0
(3) X1.00 Y1.00
(4) G99 X2.00 Y2.00
(5) X3.00 Y3.00 R-.100
(6) G98 X4.00 Y4.00 R.050
(7) G80

(1) - Sets the Initial Plane as Z1.00
(2) - Sets the R plane as Z.050 ... return to the Z1.00 after drilling this hole
(3) - Drill this hole ... R plane is .050 and return to Z1.00 ... these were modal from (2)
(4) - After drilling this hole ... return to R plane ... still set to Z.050
(5) - Drill this hole but start at the new R plane of Z-.100 ... return to Z-.100 after drilling ... G99 is modal.
(6) - Drill this hole but start at the new R plane of Z.050 ... return to Z1.00 after drilling this hole G99.
(7) - Cancel the canned cycle ... all modal canned cycle information is cleared.

On an Okuma machine ... users can set and re-set the Initial Plane through the G71 command. On a Fanuc / Haas control ... this is not so easy. You would have to cancel the current canned cycle with a G80 ... move the Z axis to the desired Initial Plane ... then re-command a new canned cycle to set a new Initial Plane.

So ... as we illustrated here ... it's fairly easy to efficiently and effectively machine holes on uneven surfaces using a combination of the return plane commands G98 / G99 / M53 / M54 and R plane settings. Although the Initial Plane. So ... STOP CUTTING AIR !!!

Happy Chip Making !!

Check out our Real World World machine shop software at www.KentechInc.com
Conversational CAD/CAM
Quoting & Estimating
G Code Conversion
CNC Training
.... and MORE !!!