A G what?
One of the problems with using CAM is that people either forget or never knew how to read the program running their machine. While it’s not a bad thing to trust your CAM, when you’re trying to figure out why something isn’t working as planned at the machine it can be quite helpful to understand the instructions it's being feed. So I have decided to do a blog series on G-Code.
There are bout as many different languages as there are controls. In an effort to keep this as simple and clear as possible, I will be using the most commonly used one and that’s G-Code. In an effort to standardize even more I will be using the base of just about every G-code standard and that’s the FANUC 6M. By the time I am done any one reading these blogs should be able to program the part below by hand.
That’s my goal anyway.
There are a few different letters used in G-Code ranging from A-Z, and the meanings of some of them change depending on where it’s used. Don’t worry I will be covering most of them. So to start here are the G-codes I will be covering.
G00 - Rapid Positioning
G01 - Linear Interpolation
G02 - Arc Clockwise
G03 - Arc Counterclockwise
G04 - Feeding Dwell for some time
G17 - X - Y Plane selection
G18 - X - Z Plane selection
G19 - Y - Z Plane selection
G20 (G70) - Inch Units
G21 (G71)- Metric Units
G28 - Automatic Zero Return
G40 - Tool Compensation Cancel
G41 - Tool Compensation Left
G42 - Tool Compensation Right
G53 - Machine Coordinate System Setting
G54 – Work piece Coordinate Setting #1
G55 – Work piece Coordinate Setting #2
G56 – Work piece Coordinate Setting #3
G57 – Work piece Coordinate Setting #4
G58 – Work piece Coordinate Setting #5
G59 – Work piece Coordinate Setting #6
G73_ High Speed Peck Drilling Cycle
G74_ Left Hand Tapping Cycle
G76_ Fine Boring Cycle
G80_ Canned Cycle Cancel
G81_ Drilling Cycle (Canned)
G82_ Counter Boring Cycle (Canned)
G83_ Peck Drilling Cycle (Canned)
G84_ Right Hand Tapping Cycle (Canned)
G85_ Boring Cycle (Canned)
G87_ Back Boring Cycle (Canned)
G90 - Absolute Positioning
G91 - Incremental Positioning
G98 - Feedrate Per minute
G99 - Feedrate Per Revolution
The top of the list is G00. The format is the G followed by 2 digits. That is the standard but with all standards there are exceptions. You may also see the G00 written as G0. Not all controls require the leading 0. In this case the 00 means to position the tool at a rapid traverse. In other words move as fast as the machine can. Simple right?
Well there is a little more to understand and that’s how the machines actually move. There are three different ways a machine will position in rapid. The first one is it will move directly from point A to point B. the other two are referred to as doing a dogleg move. But what some machines do is move both axes at the same rate making a 45° move, then finish the longest leg move. The third will move just the opposite as method two. It will make a straight line move and when the distance left is equal it will move both axes. Why is this important? Well Cam systems don’t know how YOUR machine moves so it is up to you to understand it.
The next code I will talk about is G01 along with G40-42 and the F command. So until my next blog happy programming.
With the announcement of the HSMXpress I got to thinking about all the Xpress tools available to SolidWorks users. There are nine of them by my count. Generally an Xpress product is a lite version of an addin tool for SolidWorks. Often they have limitations that allow the user to gain an understanding of the tool and gain some benefit. The hope is they will see the power of the tool and compell them to purchase the full featured version. Since some of them require an independant download from the developer its easy to lose track of them all. Here they are with a little bit about what they do and my thoughts on them.
The Xpress tool that started it all. Originally CosmosXpress this is the FEA solution from SolidWorks that allows users to get their feet wet with Simulation. A wizard interface guides users through the process of setting up simulation studies that when complete mimic exactly the full SolidWorks Simulation product line. Users are limited in their mesh control, load types and fixtures (aka boundary conditions), as well as post processing analysis. When the study is complete they can even do a simple optimization study similar to the capabilities in Simulation Premium. Simulation Xpress is a great first pass FEA tool for the product designer.
FloXpress is a simlified version of SolidWorks FlowSimulation CFD solution. Users can study how air or water flows through their assemblies. They are limited to a single input and output.
DFMXpress is a tool from GeoMetric Technologies. This tool allows users to analyze there parts for details that make them difficult to machine. It check for things like inside radius and deep holes. I have little knowledge of the full versions of DFMPro. Geometric was the original developer of eDrawings for SolidWorks so they know their way around SolidWorks for sure.
DriveWorksXpress is a basic rules-based design tool based upon the offerings from DriveWorks. If you use a lot of design tables or do design or build-to-order DriveWorksXpress is a way to get started with Design Automation. Integrated into the SolidWorks Task Pane the tool allows you to capture model dimensions, features, and properties to automate with a user defined form. At the end of the process the system will make new versions of your parts assemblies and drawings for each custom job you specify. DriveWorks does a good job of explaining their limitations in their marketing literature for their entry level paid solution DriveWorksSolo.
SimpoeXpress is a tool for doing mold fill analysis. It came along to fill the void (pun intended) left after AutoDesk discontinued development of MoldFloXpress. The restrictions are the same allowing the user to add a single injection location control and choose from a preset library of materials. When the analysis is complete the tool predicts if your part will fill completely or if you end up with a short shot. I learned about it recently from a customer who was raving about it. I donwloaded it to try it and was quite impressed.
SustainabilityXpress is another tool based upon an offering from SolidWorks. This tool allows you to analyze the environmental impact of a single part at a time. It considers the material and manufacturing of your product as well as where its used and how its transported. The tool then produces a professional report on a number of environmental impact factors. If Green is a goal of your company SustainabilityXpress is a great way to demo it before investing in SolidWorks Sustainability, which works on full assemblies.
CAMWorksXpress is another CAM tool from Geometric Technologies. This is another 2.5 Axis machining option. Unlike most other Xpress tools it is not free. A free trial can be downloaded, but once the trial is up it lists for $995.
SolidCAM Xpress (download)
Another CAM tool available with an XPress version. SolidCAM Xpress claims to offer 2.5 Axis machining as well as 3 Axis Surface Machining functionality. A free trial is available but it also costs money. The price is not published.
That's quite a list. Let me know if I missed any. Or if you've had any experiences with the tools you'd like to share. I have not used them all and would love to hear your impressions of them.
One question that always comes up when programming a part in a CAM system is just how accurate do the speeds and feeds have to be? This has been something debated over and over.
Let’s start by defining the RPM formula from the Machinery’s Handbook.
N = 12V/πD
D =Cutter Diameter
So for a HSS end mill in Cold Drawn 1212 Carbon Steel the suggested FPM is 160, and we will be using a 1” cutter.
RPM = (12 * 160)/(3.14*.500) or 611 RPM.
We have the RPM how about the feed? We only have two choices in the Machinery’s Handbook 22nd edition for depth of cut .250 and .05. So much for the 1-5/8 LOC. At .250" depth of cut, .004" is the recommended chip per tooth.
So for a 4 flute 1” HSS end mill in 1212 we should be running 611RPM, 9.8IPM, at .25"DOC. We are all set now right?
Let’s take a close look at what happens when cutting an arc. A 1” end mill programmed to cut a 2” radius at 10 IPM. The center of the tool moves at 10 IPM. When cutting on the outside of the radius the cutting edge of the tool ends up slowing down to 8 IPM. When cutting on the inside of the radius the cutting edge of the tool ends up speeding up to 13 IPM. That’s a total of 5 IPM difference using the same tool and the same programmed feedrate.
What hasn’t been accounted for? How are we holding the part? Is it a new, used, or resharpened cutter? How rigid is the machine spindle (30, 40, 50 taper?) Is it a knee mill or machining center? Is it a horizontal or vertical mill? What is the horse power of the machine? What type of coolant is being used and how much (flood, mist)?
Ok let’s face it, at the time of programming there are so many unaccounted for variables, unless we create some kind of complicated database we can only program the speeds and feeds close to what we THINK they should be, or by what the tool has run at in the past on similar cuts. After all isn’t that why there are speed and feed overrides on the machine?