Tag Archives: cnc programming

G01 — Use ME for RAPID Movement Too !!

To experienced G code programmers … we might be stating the obvious here … but for the novice, this blog post may reveal a valuable programming trick that may come in handy during your CNC programming life.

When learning G code programming … one of the first codes taught are G00 and G01. G00 is used for rapid movement … making the axis move at their top speeds … while G01 is used for moving at a feedrate in a straight line. If we take a look at some of the details of these codes … we will also reveal a few hints into how they can be manipulated beyond their basic design.

A couple of notes on G00 :

  • As stated G00 executes axis movement at their top speed … so we can get to the destination as quickly as possible.
  • Oftentimes … the two axis are not created with the same rapid traverse speed … for example the X axis may be able to travel 1200 IPM while the Y axis is only capable of 850 IPM. This is often due to the design of the machine … size of the ball screw, etc..
  • When two axis are involved in the G00 move … the distance each axis has to travel is the determining factor as to which axis reaches it’s destination first … resulting in a move that is not a straight line.
  • Oftentimes … the machine is equipped with a RAPID OVERRIDE switch / dial that allows the user to slow down the rapid movement by some percentage … 25% – 50% – 100%. BUT … there is usually no a variable setting … so the rapid movements are hard to control when working in tight corners during program prove out.

A couple of notes on G01 :

  • G01 executes axis movement at a programmed feedrate … the axis moves at a rate that we determine via the F command.
  • When two axis are involved in the G01 move … the machine’s CNC controller calcuates the speed at which each axis will move so that each axis arrives at the end point at the same time … always resulting in a move that is a straight line.
  • Oftentimes … the machine is equipped with a FEEDRATE OVERRIDE switch / dial that allows the user to slow down the feed movement by percentages … there is usually a variable setting … and allows for extensive flexibility during program prove out … even to pause the movement completely.

SOooo What??

The points outlined above lend themselves to some “bending and twisting” and result in some nice features that can be employed in our CNC programming … such as :
  • We often think of G01 movement as cutting feed or cutting movement … but using a faster feed of 200-300 IPM or higher … when not cutting can turn a G01 move into a “rapid” move.

The two main advantages of programming G01 for rapid include :

  • Programming a fast feed into a G01 block will always result in a straight line move … comes in handy sometimes when moving around the part and avoiding possible collisions that a non-linear move like G00 may cause.
  • The FEEDRATE OVERRIDE switch allows us greater flexibility during programming prove out than the RAPID OVERRIDE … but yet when running at 100% the fast feedrate doesn’t have to effect our cycletime.

Thinking Outside the Box … always produces interesting results. In this case … we can bend the intended use of G01 to assist us creating an un-intended yet beneficial cutter movement.

 Got Ya Think’in ??
Any Other Ideas ??

X-Carve Programming … Shop Floor Programming … with KipwareM®

As we continue to ramp up our sister woodworking company … KÄRV … we continue to demonstrate  and prove our mantras for our Kipware® machine shop software. Metalworking operations … woodworking operations … both have a lot of similarities and requirements and we continue to prove our Kipware® real world machine shop design and features in our now real world woodworking environment.

We recently blogged regarding how we utilize our KipwareCYC® and KipwareQTE® machine shop cycletime and cost estimating software to estimate retail costs for some of our wood products. If you missed it … see the full article HERE.

We are also proving our “not every job requires a CAD/CAM system” programming mantra at KÄRV as well. We recently put our KipwareM® – conversational CNC programming software for milling … to work on a shop floor programming project we were working on in the KÄRV workshop. If you haven’t read our article on shop floor programming vs. CAD/CAM programming … it’s quite the eye-opener … you can read the full article HERE.

The Rest of the Story …

We came up with an idea for a unique clock design that featured a quartz clock movement inside a slice of an oak log. To house the clock body … we needed to mill a 3″ diameter hole in the slice … and we wanted to use our X-Carve CNC router to mill the hole. Simple enough … and it really illustrates how a simple programming project could turn into an overblown programming project if we were to use a CAD/CAM program to create that G code program.

Here’s the finished product

In a CAD/CAM system we would have had to first create a drawing … why? … and then use that drawing to create the toolpath. Some extra steps that would not only cost us time but that time expense has to go somewhere and that would mean additional labor costs associated with the cost of the clock … which would eventually be for sale on our website. Want one … get it HERE !!

So we started KipwareM® … no drawing required … and with a couple of fill-in-the-blank forms completed … we had our G code program to rough pocket and finish mill … using a helical milling routine … the 3″ hole needed to mount the clock movement. Here are some screenshots of the forms … simple, plain english, fill-in-the-blank forms with tons of machining options that created a quick and efficient toolpath … no drawing nor drawing time required Bang bang done !!

As I mentioned we roughed the pocket using a pocketing routine … but we finished the side walls using a helical type cutting routine. Very easy to create in KipwareM® and posted out using KipwareXC® with our X-Carve Profile. We sent the G code and drove the X-Carve using the Universal G Code Sender application. The results were outstanding and the fit for the clock movement was perfect … first shot.

Needless to say we saved ourselves a ton of time by not having to create a drawing and by using our shop floor programming ( not CAD/CAM programming ) model and KipwareM®. We did the programming right at the machine … no expensive CAD/CAM system required and no drawing or CAD/CAM experience required.

AND … we like the results !!

Another unique wood design produced in the KÄRV workshop !!

If you would like to learn more about KÄRV woodworking and see our other products and designs … please visit our website … www.KarvWoodworking.com

If you would like to explore our conversational, shop floor programming applications or any of our other REAL WORLD machine shop software … please visit our website … www.KentechInc.com

Kenney Skonieczny
President – Kentech Inc.
Woodworker – KÄRV Woodworking

Shop Floor Programming … Why It’s Different and Why It Matters

If you have ever worked and lived on the shop floor … as we did for over 30+ years … you know there is a difference between programming in a job shop type environment  … what we call every day programming / shop floor programming … and complex “die and mold” programming which is the true essence of CAD/CAM and CAD/CAM programming.

It’s a fact … it’s real … and it can DEFINITELY mean the difference between profit and loss. 

This post is dedicated to exploring exactly what we mean …. because there is a HUGE difference in employing a SHOP FLOOR PROGRAMMING model vs. a CAD/CAM PROGRAMMING model. 

SHOP FLOOR PROGRAMMING

Our definition of shop floor programming is the programming of the simpler, everyday type workpieces on the shop floor … perhaps directly at the machine … by the shop floor personnel using simpler G code creation tools like Kipware® conversational. It is in contrast to the CAD/CAM programming model where CAD/CAM software … with the start of everything dependent on a CAD drawing … is used by dedicated “CAD/CAM” guy(s) to create G code programs. Our 30+ years of shop floor experience have proven to us that everyday operations like simple milling … drilling … tapping … turning … grooving … boring … for the everyday type parts machined in 95% of job shops around the world every day … can be created more efficiently using the  shop floor programming model.

In a job shop and / or production environment … shop floor programming can especially pay big dividends when the statement “the more the merrier” is employed. The more personnel that are involved in the creation of G code programs … the better the efficiency and the better the output. And of course, allowing shop floor personnel to create the simpler, everyday CNC programs using tools like our Kipware® conversational means increased profits along with that increased efficiency and output.

In most cases … being a good chipmaker is the key experience requirement. Someone who can cut chips … knows material removal and all that that encompasses … and knows fixturing and workholding. While the knowledge of G code in any CNC environment is always essential … tools like Kipware® conversational can assist those chipmakers with limited G code knowledge create fast and efficient  G code programs from scratch. Many chipmakers have a handle on G code but creating a G code program from scratch can be a daunting, cumbersome and sometimes slow task. The reverse is also true … CAD/CAM / computer operators often lack the chipmaking and fixturing expertise of the shop floor personnel resulting in non-efficient CAD/CAM programs or constant re-programming because of real world consequences.

CAD/CAM PROGRAMMING

Is contrast to the points outlined above … the programming of complex … what we’ll call “die and mold programming” … should be the main prerequisite  behind a CAD/CAM programming model. CAD is an essential tool for design and engineering … and while the the CAM portion of the CAD/CAM model can be disputed … for complex, 3D programming die and mold programming … it to is essential.

However, using a complex CAD/CAM system and requiring CAD/CAM trained personnel to create G code programs for the simpler, everyday type workpieces can mean the exclusion of valuable chipmakers from the programming process. It can oftentimes lead to slow program creation and thus decreased efficiency, productivity and output. The fact is … CAD/CAM was never designed for EVERYDAY programming. It was created to handle complex design and the programming of complex aircraft and die / mold components. It was always an afterthought to adept it to production programming. The mere fact that everything starts with a drawing inherently makes it more complex and cumbersome for this task.

 Debating the CAM in CAD/CAM

Even when utilizing a CAD application for design … still not every workpiece should be or needs to be programmed through the CAM module nor by the “CAD/CAM programmer”. The point we want to make here is that CAD can be different than CAD/CAM. While having a drawing and design application … a CAD program … can be and oftentimes is essential … the CAM part is up for discussion. Handing off a drawing and having the simpler workpieces … the everyday type workpieces … programmed on the shop floor can free up additional programming resources to concentrate on the more complex programming required for the more complex components. Shop floor programming can be the key that unlocks increased efficiency and productivity … even when using a CAD ( and / or CAD/CAM ) programming model.

And home and hobby shops?

One man, small shops and hobby makers can also reap the rewards of NOT programming every workpiece through a CAD/CAM system and using a shop floor programming application. The quick and efficient programming made possible through tools like Kipware® conversational can assist in realizing the quick and accurate production of workpieces … whether a single component, multiple components or in production. Spending time creating drawings … because every CAD/CAM program starts with a CAD model … for even the simplest of operations … can slow down, bog down, and waste time that home and hobby shops can’t afford to waste.

Although usually a CAD system is required in these environments … mainly because small shops and one man shops also do their own design … shop floor programming and tools like Kipware® conversational can also be an essential part of their efficiency.


Bottom line …

CAD/CAM is a great tool. But it can be overkill … can often bog down a programming environment … and can remove good chipmakers from the programming process. These chipmakers are more often than not the keys to unlocking a good SHOP FLOOR PROGRAMMING SYSTEM and the benefits that can come from that.

Don’t be fooled by the CAD/CAM marketing.
Don’t get caught in CAD/CAM overkill.

We invite you to explore Kipware conversational and see how shop floor programming can set you and your shop floor free !!

Kenney Skonieczny – President
Kentech Inc.

When is a CNC Program More Than JUST G Code?

… when it’s a set-up sheet as well.

Most people are familiar with the ability of most CNC controls to include COMMENTS in the CNC G code program itself. Comments are designated in a variety of ways from :

  1. ( THIS IS A FANUC AND OKUMA COMMENT ) … any text inside (  ) is considered a comment.
  2. ! THIS IS AN ACRAMATIC COMMENT … any text following the ! is considered a comment.
  3. ; THIS IS A FAGOR COMMENT … any text following the ; is considered a comment.
  4. and on and on we could go.

Comments can be a real help when they include operator messages … such as :

M00 ( TURN PART AROUND )
or
M00 ! CHECK DIMENSION A

… but comments can go well beyond operator messages and can turn your G code program into a complete set-up doc as well that includes tool information, part zero locations and even stock descriptions.

Most people will create either a paper or digital tool sheet / list and / or set-up sheet / list that is stored and re-called when the corresponding G code program is going to be run again. The set-up personnel refer to these docs to set the machine up … loading required tools and setting height offsets and work offsets. Works great … no problems. But is there a better alternative? The answer is a “could be” yes. By storing this information directly in the G code program using the COMMENT capability of your CNC control. For example … something like this :

O1234
( PART #1234 )
( PROVEN PROGRAM : 7/2/2014 )
( PROGRAMMER : JM )
( PART LOCATED IN VISE USING JAWS JW-1234 )
( STOP SET-UP IS RIGHT SIDE – WORKPIECE STOP AGAINST FLANGE )
( X/Y PART ZERO IS LOWER LEFT CORNER )
( Z0 = TOP FINISH SURFACE )
( T1 / H1 = #3 CENTER DRILL )
( T2 / H22  = 1/2 DRILL )
( T3 / H3 = .500 CARBIDE END MILL )

So what is the advantage of keeping this info directly in the G code program using the COMMENTS capability of the CNC control?

  1. Harder to misplace … if you’re going to run the program, you need the program … and all the set-up info is right there stored right inside the G code program.
  2. Complete info is there for all to see at any time … no rummaging for loose paperwork or docs.
  3. Any edits or changes can be made directly in the program … when the running program is saved after execution … all the current set-up info is changed and saved as well including all updated data.

We often get asked … “Won’t this slow down my program execution speed?” The truth is that it will … but it will also be so minimal that usually the cost savings of having comments and all the convenience that comes with it far outweigh any reduction in program execution time. Rummaging around for lost documentation or re-creating lost documentation would be the real money waster.

Just a little something to think about if you haven’t considered COMMENTS already in your CNC programming. We touched on only a few points here … but we’re sure you can find many more benefits depending on the capabilities or lack thereof pertaining to your particular CNC programming operation. The fact is that expanding the use of COMMENTS in your CNC programming could be a real time and money saving alternative to digital or paper documentation.

Until next time … Happy Chip Making !!
Kenney Skonieczny – President
Kentech Inc.

Why Use Cutter Compensation In Your CNC Programming ?

The story has been circulating here about a support issue that was raised recently where a Kipware® conversational customer inquired about how to have KipwareT® output program coordinates using the tool center vs. using G41/G42 cutter compensation and the imaginary tool tip on the control. The conversation went something like this :

Support Staff : “Why would you want to do that? That’s really not a good programming practice.”

Client : “Well all our programs are written like that.”

Support Staff : “OK … but that’s not a good programming practice. When we created Kipware® conversational we wanted to include best programming practice so KipwareT® outputs G41 / G42 and does all the calculations and automatically includes all start-up and cancel blocks and code … so it creates a better program. No worries … even if you don’t know how to program it KipwareT® does it all for you.”

Client : “Yes but nobody programs like that.”

Really? Nobody out there programs like that? We find that hard to believe.

So … we decided to post some of our main reasoning for considering the use of cutter compensation on the control as “Best Programming Practice”. If you agree with our points … we hope that you will consider making the change … getting educated … and to start creating your G code programs using G41 / G42 cutter compensation.

cutter_comp1

  1. Program Coordinates … programming to the tool tip center means that coordinates in the program do not reflect actual part print coordinates. Coordinates are based on the tool tip center rather than on the part dimensions. You can imagine the trouble and confusion that happens when edits need to be made.
  2. Tool Interchange – Turning … since the G code was written for a specific tool radius … the program will only function correctly for that tool radius. Decide to use a 1/64 radius for finish when the program was written for a 1/32 radius … re-program or re-generate the toolpath.
  3. Tool Interchange – Milling … I think this point probably comes into play more for milling G code than turning G code. Does your shop always have perfect .500 end mills? If so … WHY ???? Re-grinding end mills is quite a cost saver … but it means your end mills might be .485 or something odd. If you use G41 / G42 … who cares? Just enter the correct offset value.
  4. Dimensional Adjustments … Come on, this is the real world. There is no reason to keep running back and forth to the CAD/CAM guy or programming office when dimensional adjustments need to be made during production … and they will be because cutting conditions are not theoretical, they’re real !!. Cutter compensation and part / tool offsets can handle probably 99.99% of all dimensional adjustments. Use the power of the control !!

Some of the main reasons we hear for why clients don’t use cutter compensation ( and none of them are valid by the way ) …

  1. Nobody taught me. Come on … grab a hold of your future and do some “playing” at the machine … or read for yourself. This is a truly important programming tool … you need to know hoe to use it if you want to go anywhere.
  2. Nobody uses it.  Like our scenario above … just keeping following the crowd … over the cliff. If I ran that shop … the guy that comes to me and says “I think we need to change the way we think about cutter compensation” would have more of my respect than the guy who gives me the excuse “That’s the way we always did it.”

“I’m not stubborn … 

it’s just that doing things your way is stupid.”

After having spent more than 30+ years creating … editing … teaching … G code and running shops on a day-to-day basis … cutter compensation is one of the most mis-understood and mis-used programming feature. And also the most important tool a programmer and operator and shop foreman has at his/her disposal.

If you agree … want to learn more … or just want some additional reading … below is a link to one of our previous posts that dealt with this issue also … CLICK HERE for that article.

Unfortunately CAD/CAM systems have made it so easy to program with tool tip radius … but in the real world, on the shop floor, it can be a real detriment to productivity and efficiency. We urge any CNC programmer out there who is not using cutter compensation on the control to step up and take control of your future … get educated on cutter compensation … and use cutter compensation in your G code. Your future will be a lot brighter … and profitable.

Kenney Skonieczny – President
Kentech Inc.

Shop Efficiency Series Part 4 : Re-Thinking Your HEIGHT OFFSET Strategy

As we have been stressing throughout this Shop Efficiency Series … keeping your spindle running and the green cycle light lit is one of the main keys to making money and profits. In Part 4 we’re going to shift our attention back to the VMC and HMC world and send out some thoughts regarding Tool Height Offsets … “touching off” tools … and how to get that inevitable task done quickly, easily and efficiently … so that the spindle stays running and the tools gets in the chip.

Tool breakage or the need to replace dull or ineffective tools can cause huge loss of cutting times and spindle on time. With the implementation of the simple system we outline below … you can insure that replacing or setting up your tools for machining can be done quickly and efficiently with as little disruption to cutting time as possible. There are some initial costs involved … but the ROI is fast and you’ll see the results immediately.

We’ll take you through the Set-Up and Process first to show you how it works … then highlight some of the Features and Benefits that can achieved by utilizing this system. The basic idea is to utilize a MASTER TOOL to set the part Z0 position … and use the HEIGHT OFFSETS to calibrate the distance difference from the MASTER TOOL and EACH CUTTING TOOL. This system leaves us only the MASTER TOOL to re-calibrate for each workpiece … and allows us to leave the cutting tools unchanged no matter what part we’re running. Setting up ONE tool is obviously faster than setting up multiple tools.

What You’ll Need :

  1. Height Gauge … digital gauge will obviously function the best.
  2. Master Tool ( more details below )
  3. Tool Holder Adapter or Setting Fixture

tip10-pic1

The Master Tool :

In order to utilize the features of this system, you’ll need to create a MASTER TOOL. What we refer to as a master tool would be a piece of stock, say a piece of turned, ground and polished stock or drill rod loaded and secured into a tool holder. It should be secure in the holder … the best way is with a shoulder butting against the tool holder face so it has a positive stop. Another feature is to make this master tool close to the length of the machine specs longest tool. This way you’ll know that no cutting tool can be longer than this master tool.

Tool Holder Adapter or Setting Fixture :

Once you have created your stable Master Tool … the next stable component should be your setting fixture. With a little thought and work you can turn a standard tool tightening fixture … such as the ones pictured below … into something suitable for this purpose … with the main criteria being the stable repeatability of the tool holder positioning.

fixture_complete

The Process :

On a surface plate, set up your height gauge and tool holder adapter to allow for the measuring of your tools. To measure a tool :

  • Place the MASTER TOOL in the setting fixture and set zero at the top of the master tool.

tip10-pic2

  • Place a cutting tool to be measured in the setting fixture and record the reading at the top of the tool’s cutting edge. This is the distance from the master tool tip to the cutting tool tip. This dimension is the value that is to be entered in the machines height offset table for the measured tool.

tip10-pic3

  • Repeat the second step above for each tool to be measured, recording the value on the height gauge for each tool.
  • Load the tools in the magazine and enter the measured height offset values from Step #2 above into their respective height offset table positions.
  • Using the MASTER TOOL, touch the Z0 surface of the workpiece and record the value from the home position to the Z0 location. This value should be entered in the Z table for the work offset (G54 – G59) to be used in the program.

That’s it. 

Your program is ready to run. Your program will call up the G54 – G59 work offset or similar and will know the distance from the master tool to the Z0 location. Using the H value call in the program, the machine will calculate the difference between the master tool and the measured tool and adjust as required.

Now that we’ve set the thoughts and ideas in your mind … feel free to deviate and expand on the basics outlined here.

 Some Features and Benefits :

  1. Let’s suppose you’re going to set up a new job next but will utilize some of the tooling from the previous job. The only set-up required is to use the Master Tool to touch the new Z0 surface, changing the value in the work offsets with this new value. Your cutting tools and their height offsets can remain the same. Save time by touching off one tool instead of many.
  2. You can set-up a spare tool or replacement tool off the machine using the master tool and the height gauge … insuring that your spindle will be back in the cut faster.
  3. You can load say a nice cutting carbide mill in the magazine and use it for a variety of different jobs. No need to touch it off all the time, just use the master tool to get your work offset in Z.
  4. Measuring tools becomes easier, allowing more people to assist with the tool setting . Setters don’t need to know how to operate the machine.

From experience, once you try this method you’ll find it saves you all kinds of time. The best advantage is being able to call out set tools that stay in the magazine. This really speeds up the set-up and changeover process.

Stay tuned for more posts in our Shop Efficiency Series.
Next up we’ll take a look at MULTI-FUNCTION tools that can perform multiple types of cutting and save your shop a ton of time in the process.

Conversational

Kenney Skonieczny – President
Kentech Inc.

Multi-Part CNC 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.

Conversational

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 !!

For more Tips … Tricks … and other CNC & machine shop info …
Follow us on Google+  by clicking the image below :

google+_icon

Or on Twitter … @Kipware … by clicking the image below

Twitter_logo

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://kentechinc.biz/the-hows-and-whys-of-cnc-sub-programming/

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 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 !!

Until Next Time … Happy Chip Making !!

Conversational

For more Tips … Tricks … and other CNC & machine shop info …
Follow us on Google+  by clicking the image below :

Twitter_logo

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 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 !!

Conversational

 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 !!!

Cutter Compensation – A Programmers Best Friend

In this post … we would like to touch on some of the points regarding cutter compensation … when turning angles and radii … on Fanuc based CNC controls.

Many programmers shy away from cutter compensation … primarily because they have never taken the time to fully understand both it’s power nor how to use it properly. But the reality is that cutter comp is one of a programmers best friends. The most common reason goes something like this “It’s just as easy to have the CAD/CAM system compensate for the TNR ( tool nose radius ) and out put the hard numbers.” That is true … but life on the shop floor makes this a bad practice. A couple of reasons why :

  1. The “numbers” in the G code don’t match the “numbers” on the part … because they are taking into account the TNR. If manual edits need to be made … even simple edits … this makes it much harder because the part dimensions don’t match the G code numbers.
  2. Say after cutting … the conditions warrant either a bigger or smaller TNR for better cutting conditions. If cutter comp is used … it’s a simple offset change. If not … it’s a trudge back to the CAD/CAM guy or system to re-post and make a new G code program for the revised tool and it’s TNR.
  3. In milling … let’s say I broke my last perfect .250R end mill … but I have a re-ground one that is .245R.. Again, if cutter comp is used … it’s a simple offset change. If not … it’s another trudge back to the CAD/CAM guy or system to re-post and make a new G code program for the revised tool radius.

Conversational

But here we are going to stick with turning here … and here are a couple of simple rules for when to use and when not to use cutter compensation.

  • Whenever angles or radii are involved … you must use TNR compensation or the angles and radii will be off. Because the programmed point of the cutting tool, an imaginary sharp point, does not coincide with the actual point of the cutting tool which always has some corner radius. For this reason, when machining close tolerance angle or radius cuts, inaccurate workpieces will be produced. The amount of error is proportional to the amount of the tool nose radius.
  • Only worry about using it for finishing … It’s really not worth the effort to use it roughing … the amount you leave for finish allowance will probably “hide” the mismatch due to the TNR.
  • You must start cutter comp with a “start up block”. This block is usually the move as you approach the part … the move distance must be greater than the radius in the TNR offset. So if your tool has a radius of .032 … make a move at least .035 … preferably more.
  • Make sure that your TNR is less than any radius on the part … don’t try to jam an .032 tool into a .020 radius … alarms will greet you somewhere along the way.
  • We’ll cover some additional thoughts at the end of the post.

The Details :

The CNC control has the capability to automatically compensate for the tool nose radius thru the CUTTER COMPENSATION codes of G41 and G42. G41 is called cutter compensation left. The left side is explained as the side of the workpiece the cutting tool is on when viewed in the direction of cutter movement or the cutter is moving on the left side of the programmed path. Once commanded, G41 or G42 are modal commands and remain active until the G40 or cancel condition is obtained.

In Fanuc controls, in addition to commanding G41 or G42 direction, the programmer must also tell the control two other aspects of the cutting tool which are : (a) the amount of the tool nose radius and (b) the imaginary tool tip location. Both these values are entered in the tools geometry or wear offset table. In the offset table, the R value is the amount of the tools nose radius. If the program called T0101 in the tool command, in offset table #1, under the R column, the nose radius of the tool would be entered. The T column in the offset tables holds the imaginary tool tip location.

Cutter compensation must be programmed using what is commonly referred to as a start up block. This block, which must be a G01 type block, is used to activate the cutter compensation before the cutting tool actual contacts the workpiece. The movement amount in the start up block must always be greater than the nose radius of the tool stored in the R column of the offset table. Circular commands using G02 or G03 are not allowed on start up blocks.

G40 is used to cancel the automatic compensation of the tool nose radius. G40 should always be commanded on a G00 block as the tool moves away from the workpiece with the tool in a clearance position.

More Rules and Thoughts :

Many rules apply in the use of cutter compensation as the control is always checking the tool position so it can calculate for the tool nose radius. Three rules of thumb apply and should keep you free of the controls cutter compensation alarms :

(1) Always command a start up block before contacting the workpiece and move in the G01 mode with a move greater than the nose radius of the tool.

(2) Use cutter compensation primarily in the finishing cut and try to eliminate it in the roughing passes. The more moves made with G41 or G42 modal, the more likely for a problem. To finish the part, use the start up block, finish cut the part and command G40 when done. Ifadditional cuts are required, use another start up block and cancel the cutter comp each time as soon as the profile cut is finished.

(3) Always cancel G41 or G42 using the G40 command. The best place to command G40 is on a G00 block, at a clearance point or moving to a clearance point. Because cutter compensation causes the control to perform some powerful calculations and is a complex command, you should also consult your controls instruction manual for further info on G41 or G42.

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 !!!