Computerized Numerical Control (CNC) Machining
is a method used to perform a wide range of manufacturing tasks, which are all carried out by computerized devices. With the help of Computer Aided Design (CAD) and Computer Aided Machining (CAM) in the late 1970s, CNC machines replaced the old-school manual machines.
CNC router. From Wikipedia, the free encyclopedia.
A computer numerical control (CNC) router is a computer-controlled cutting machine related to the hand-held router used for cutting various hard materials, such as wood, composites, aluminium, steel, plastics, and foams
M-Code. G-code (or G programming language) is the street name for the most widely used numerical code programming language. Utilized mainly in automation, G-code is sometimes called G programming language. ... M-code (for 'miscellaneous function') is an auxiliary command; descriptions vary.
G-codes, also called preparatory codes, are any word in a CNC program that begins with the letter G. Generally it is a code telling the machine tool what type of action to perform, such as: Rapid movement (transport the tool as quickly as possible in between cuts)
Tool / machine crashing
In CNC, a "crash" occurs when the machine moves in such a way that is harmful to the machine, tools, or parts being machined, sometimes resulting in bending or breakage of cutting tools, accessory clamps, vises, and fixtures, or causing damage to the machine itself by bending guide rails, breaking drive screws, or causing structural components to crack or deform under strain. A mild crash may not damage the machine or tools, but may damage the part being machined so that it must be scrapped.
Many CNC tools have no inherent sense of the absolute position of the table or tools when turned on. They must be manually "homed" or "zeroed" to have any reference to work from, and these limits are just for figuring out the location of the part to work with it, and aren't really any sort of hard motion limit on the mechanism. It is often possible to drive the machine outside the physical bounds of its drive mechanism, resulting in a collision with itself or damage to the drive mechanism. Many machines implement control parameters limiting axis motion past a certain limit in addition to physical limit switches. However, these parameters can often be changed by the operator.
Many CNC tools also don't know anything about their working environment. Machines may have load sensing systems on spindle and axis drives, but some do not. They blindly follow the machining code provided and it is up to an operator to detect if a crash is either occurring or about to occur, and for the operator to manually abort the active process. Machines equipped with load sensors can stop axis or spindle movement in response to an overload condition, but this does not prevent a crash from occurring. It may only limit the damage resulting from the crash. Some crashes may not ever overload any axis or spindle drives.
If the drive system is weaker than the machine structural integrity, then the drive system simply pushes against the obstruction and the drive motors "slip in place". The machine tool may not detect the collision or the slipping, so for example the tool should now be at 210 mm on the X axis, but is, in fact, at 32mm where it hit the obstruction and kept slipping. All of the next tool motions will be off by −178mm on the X axis, and all future motions are now invalid, which may result in further collisions with clamps, vises, or the machine itself. This is common in open loop stepper systems, but is not possible in closed loop systems unless mechanical slippage between the motor and drive mechanism has occurred. Instead, in a closed loop system, the machine will continue to attempt to move against the load until either the drive motor goes into an overcurrent condition or a servo following error alarm is generated.
Collision detection and avoidance is possible, through the use of absolute position sensors (optical encoder strips or disks) to verify that motion occurred, or torque sensors or power-draw sensors on the drive system to detect abnormal strain when the machine should just be moving and not cutting, but these are not a common component of most hobby CNC tools.
Instead, most hobby CNC tools simply rely on the assumed accuracy of stepper motors that rotate a specific number of degrees in response to magnetic field changes. It is often assumed the stepper is perfectly accurate and never missteps, so tool position monitoring simply involves counting the number of pulses sent to the stepper over time. An alternate means of stepper position monitoring is usually not available, so crash or slip detection is not possible.
Commercial CNC metalworking machines use closed loop feedback controls for axis movement. In a closed loop system, the control is aware of the actual position of the axis at all times. With proper control programming, this will reduce the possibility of a crash, but it is still up to the operator and programmer to ensure that the machine is operated in a safe manner. However, during the 2000s and 2010s, the software for machining simulation has been maturing rapidly, and it is no longer uncommon for the entire machine tool envelope (including all axes, spindles, chucks, turrets, tool holders, tailstocks, fixtures, clamps, and stock) to be modeled accurately with 3D solid models, which allows the simulation software to predict fairly accurately whether a cycle will involve a crash. Although such simulation is not new, its accuracy and market penetration are changing considerably because of computing advancements.
Numerical precision and equipment backlash
Within the numerical systems of CNC programming it is possible for the code generator to assume that the controlled mechanism is always perfectly accurate, or that precision tolerances are identical for all cutting or movement directions. This is not always a true condition of CNC tools. CNC tools with a large amount of mechanical backlash can still be highly precise if the drive or cutting mechanism is only driven so as to apply cutting force from one direction, and all driving systems are pressed tightly together in that one cutting direction. However a CNC device with high backlash and a dull cutting tool can lead to cutter chatter and possible workpiece gouging. Backlash also affects precision of some operations involving axis movement reversals during cutting, such as the milling of a circle, where axis motion is sinusoidal. However, this can be compensated for if the amount of backlash is precisely known by linear encoders or manual measurement.
The high backlash mechanism itself is not necessarily relied on to be repeatedly precise for the cutting process, but some other reference object or precision surface may be used to zero the mechanism, by tightly applying pressure against the reference and setting that as the zero reference for all following CNC-encoded motions. This is similar to the manual machine tool method of clamping a micrometer onto a reference beam and adjusting the Vernier dial to zero using that object as the reference.
Positioning control system
In numerical control systems, the position of the tool is defined by a set of instructions called the part program.
Positioning control is handled by means of either an open loop or a closed loop system. In an open loop system, communication takes place in one direction only: from the controller to the motor. In a closed loop system, feedback is provided to the controller so that it can correct for errors in position, velocity, and acceleration, which can arise due to variations in load or temperature. Open loop systems are generally cheaper but less accurate. Stepper motors can be used in both types of systems, while servo motors can only be used in closed systems.
The G & M code positions are all based on a three dimensional Cartesian coordinate system. This system is a typical plane we see often in math when you are graphing. This system is required to map out the machine tool paths and any other kind of actions that need to happen in a specific coordinate. Absolute coordinates is what is generally used more commonly for machines and represents the (0,0,0) point on the plane. This point is set on the stock material in order to give a starting point or "Home position" before starting the actual machining.
G20 G40 G80 G90 G94 G54(Inch, Cutter Comp. Cancel, Deactivate all canned cycles, moves axes to machine coordinate, feed per min., origin coordinate system)
M06 T01 (Tool change to tool 1)
G43 H01 (Tool length comp. in positive direction, length compensation for tool)
M03 S1200 (Spindle turns CW at 1200RPM)
G00 X0. Y0. (Rapid Traverse to X=0. Y=0.)
G00 Z.5 (Rapid Traverse to z=.5)
G00 X1. Y-.75 (Rapid traverse to X1. Y-.75)
G01 Z-.1 F10 (Plunge into part at Z-.25 at 10in per min.)
G03 X.875 Y-.5 I.1875 J-.75 (CCW arc cut to X.875 Y-.5 with radius origin at I.625 J-.75)
G03 X.5 Y-.75 I0.0 J0.0 (CCW arc cut to X.5 Y-.75 with radius origin at I0.0 J0.0)
G03 X.75 Y-.9375 I0.0 J0.0(CCW arc cut to X.75 Y-.9375 with radius origin at I0.0 J0.0)
G02 X1. Y-1.25 I.75 J-1.25 (CW arc cut to X1. Y-1.25 with radius origin at I.75 J-1.25)
G02 X.75 Y-1.5625 I0.0 J0.0 (CW arc cut to X.75 Y-1.5625 with same radius origin as previous arc)
G02 X.5 Y-1.25 I0.0 J0.0 (CW arc cut to X.5 Y-1.25 with same radius origin as previous arc)
G00 Z.5 (Rapid traverse to z.5)
M05 (spindle stops)
M30 (Program End)
%G00 X0.0 Y0.0 (Mill returns to origin)
Having the correct Speeds and Feeds in the program provides for a more efficient and smoother product run. Incorrect speeds and feeds will cause damage to the tool, machine spindle and even the product. The quickest and simplest way to find these numbers would be to use a calculator that can be found online. A formula can also be used to calculate the proper speeds and feeds for a material. This values can be found online or Machinery's Handbook.
EXAMPLE OF A CNC MACHINE CUTTING A PART.