Professional Documents
Culture Documents
Electrical Discharge Machining
Electrical Discharge Machining
Contents
1 History
2 Generalities
3 Definition of the technological parameters
4 Material removal mechanism
5 Types
o 5.1 Sinker EDM
o 5.2 Wire EDM
6 Applications
o 6.1 Prototype production
o 6.2 Coinage die making
o 6.3 Small hole drilling
7 Advantages and disadvantages
8 See also
9 References
10 External links
History
The EDM process was invented by two Russian scientists, Dr. B.R. Lazarenko and Dr. N.I.
Lazarenko in 1943.
The first numerically controlled (NC, or computer controlled) EDM was invented by Makino in
Japan in 1980.
Agie launches in 1969 the world's first series-produced, numerically controlled wire-cut EDM
machine.
Generalities
Electrical discharge machining is a machining method primarily used for hard metals or those
that would be very difficult to machine with traditional techniques. EDM typically works with
materials that are electrically conductive, although methods for machining insulating ceramics
with EDM have also been proposed. EDM can cut intricate contours or cavities in pre-hardened
steel without the need for heat treatment to soften and re-harden them. This method can be used
with any other metal or metal alloy such as titanium, hastelloy, kovar, and inconel.
EDM is often included in the non-traditional or non-conventional group of machining
methods together with processes such as electrochemical machining (ECM), water jet cutting
(WJ, AWJ), laser cutting and opposite to the conventional group (turning, milling, grinding,
drilling and any other process whose material removal mechanism is essentially based on
mechanical forces). Ideally, EDM can be seen as a series of breakdowns and restorations of the
liquid dielectric in-between the electrodes. However, caution should be exerted in considering
such a statement because it is an idealized model of the process, introduced to describe the
fundamental ideas underlying the process. Yet, any practical application involves many aspects
that may also need to be considered. For instance, the removal of the debris from the interelectrode volume is likely to be always partial. Thus the electrical proprieties of the dielectric in
the inter-electrodes volume can be different from their nominal values and can even vary with
time. The inter-electrode distance, often also referred to as spark-gap, is the end result of the
control algorithms of the specific machine used. The control of such a distance appears logically
to be central to this process. Also, not all of the current flow between the dielectric is of the ideal
type described above: the spark-gap can be short-circuited by the debris. The control system of
the electrode may fails to react quickly enough to prevent the two electrodes (tool and
workpiece) to get in contact with a consequent short circuit. And this is unwanted because a short
circuit contributes to the removal differently from the ideal case. The flushing action can be
inadequate to restore the insulating properties of the dielectric so that the flow of current happens
always in the point of the inter-electrode volume (this is referred to as arcing), with a consequent
unwanted change of shape (damage) of the tool-electrode and workpiece. Ultimately, A
description of this process in a suitable way for the specific purpose at hand is what makes the
EDM area such a rich field for further investigations and research. To obtain a specific geometry,
the EDM tool is guided along the desired path very close to the work, ideally it should not touch
the workpiece, although in reality this may happens due to the performance of the specific
motion control in use. In this way a large number of current discharges (colloquially also called
sparks) happen, each contributing to the removal of material from both tool and workpiece,
where small craters are formed. The size of the craters is a function of the technological
parameters set for the specific job at hand. They can be with typical dimensions ranging from the
nanoscale (in micro-EDM operations) to some hundreds of micrometers in roughing conditions.
The presence of these small craters on the tool results in the gradual erosion of the electrode.
This erosion of the tool-electrode is also referred to as wear. Strategies are needed to counteract
the detrimental effect of the wear on the geometry of the workpiece. One possibility is that of
continuously replacing the tool-electrode during a machining operation. This is what happens if a
continuously replaced wire is used as electrode. In this case, the correspondent EDM process is
also called wire-EDM. The tool-electrode can also be used in such a way that only a small
portion of it is actually engaged into the machining process and this portion is changed on a
regular basis. This is for instance the case, when using as tool-electrode a rotating disk. The
corresponding process is often also referred to as EDM-grinding. A further strategy consists in
using a set of electrodes with different sizes and shapes during the same EDM operation. This is
often referred to as multiple electrode strategy and is most common when the tool electrode
replicates in negative the wanted shape and is advanced towards the blank along a single
direction, usually the vertical direction (i.e. z- axis). This resembles the sink of the tool into the
dielectric liquid in which the workpiece is immersed, so, not surprisingly, it is often referred to as
die-sinking EDM (also called Conventional EDM and Ram EDM). The correspondent machines
are often called Sinker EDM. Usually, the electrodes of this types have quite complex forms. If
the final geometry is obtained using a usually simple shaped electrode which is moved along
several directions and is possibly also subject to rotations often the term EDM-milling is used. In
any case, the severity of the wear is strictly dependent on the technological parameters used in
the operation (for instance: polarity, maximum current, open circuit voltage). For example, in
micro-EDM, also known as -EDM, these parameters are usually set at values which generates
sever wear. Therefore, wear is a major problem in that area.
operation. This would enable the user to estimate directly the electrical parameter that affect their
operations in an open way, without relying upon machine manufacturer's claims. Finally, it is
worth mentioning that, quite unexpectedly, when machining different materials in identical
nominal set-up conditions the actual electrical parameters of the process are significantly
different.[3]
Types
Sinker EDM
Sinker EDM sometimes is also referred to as cavity type EDM or volume EDM. Sinker EDM
consists of an electrode and workpiece that are submerged in an insulating liquid such as oil or
dielectric fluid. The electrode and workpiece are connected to a suitable power supply. The
power supply generates an electrical potential between the two parts. As the electrode approaches
the workpiece, dielectric breakdown occurs in the fluid forming an ionization channel, and a
small spark jumps. The resulting heat and cavitation vaporize the base material, and to some
extent, the electrode. These sparks strike one at a time in huge numbers at seemingly random
locations between the electrode and the workpiece. As the base metal is eroded, and the spark
gap subsequently increased, the electrode is lowered automatically by the machine so that the
process can continue uninterrupted. Several hundred thousand sparks occur per second in this
process, with the actual duty cycle being carefully controlled by the setup parameters. These
controlling cycles are sometimes known as "on time" and "off time". The on time setting
determines the length or duration of the spark. Hence, a longer on time produces a deeper cavity
for that spark and all subsequent sparks for that cycle creating a rougher finish on the workpiece.
The reverse is true for a shorter on time. Off time is the period of time that one spark is replaced
by another. A longer off time for example, allows the flushing of dielectric fluid through a nozzle
to clean out the eroded debris, thereby avoiding a short circuit. These settings are maintained in
micro seconds. The typical part geometry is to cut small or odd shaped angles. Vertical, orbital,
vectorial, directional, helical, conical, rotational, spin and indexing machining cycles are also
used.
Wire EDM
In wire electrical discharge machining (WEDM), or wire-cut EDM, a thin single-strand metal
wire, usually brass, is fed through the workpiece, typically occurring submerged in a tank of
dielectric fluid. This process is used to cut plates as thick as 300mm and to make punches,
tools,and dies from hard metals that are too difficult to machine with other methods. The wire,
which is constantly fed from a spool, is held between upper and lower diamond guides. The
guides move in the xy plane, usually being CNC controlled and on almost all modern machines
the upper guide can also move independently in the zuv axis, giving rise to the ability to cut
tapered and transitioning shapes (circle on the bottom square at the top for example) and can
control axis movements in xyuvijkl. This gives the wire-cut EDM the ability to be
programmed to cut very intricate and delicate shapes. The wire is controlled by upper and lower
diamond guides that are usually accurate to 0.004 mm, and can have a cutting path or kerf as
small as 0.12 mm using 0.1 mm wire, though the average cutting kerf that achieves the best
economic cost and machining time is 0.335 mm using 0.25 brass wire. The reason that the
cutting width is greater than the width of the wire is because sparking also occurs from the sides
of the wire to the work piece, causing erosion. This "overcut" is necessary, predictable, and
easily compensated for. Spools of wire are typically very long. For example, an 8 kg spool of
0.25 mm wire is just over 19 kilometers long. Today, the smallest wire diameter is 20
micrometres and the geometry precision is not far from +/- 1 micrometre. The wire-cut process
uses water as its dielectric with the water's resistivity and other electrical properties carefully
controlled by filters and de-ionizer units. The water also serves the very critical purpose of
flushing the cut debris away from the cutting zone. Flushing is an important determining factor
in the maximum feed rate available in a given material thickness, and poor flushing situations
necessitate the reduction of the feed rate.
Along with tighter tolerances multiaxis EDM wire-cutting machining center have many added
features such as: Multiheads for cutting two parts at the same time, controls for preventing wire
breakage, automatic self-threading features in case of wire breakage, and programmable
machining strategies to optimize the operation.
Wire-cutting EDM is commonly used when low residual stresses are desired. Wire EDM may
leave residual stress on the workpiece that are less significant than those that may be left if the
same workpiece were obtained by machining. In fact in wire EDM there are not large cutting
forces involved in the removal of material. Yet, the workpiece may undergo to a significant
thermal cycle, whose severity depends on the technological parameters used. Possible effects of
such thermal cycles are the formation of a recast layer on the part and the presence of tensile
residual stresses on the workpiece. If the process is set up so that the energy/power per pulse is
relatively little (typically in finishing operations), little change in the mechanical properties of a
material is expected in wire-cutting EDM due to these low residual stresses, although material
that hasn't been stressed relieved can distort in the machining process.
Applications
Prototype production
The EDM process is most widely used by the mould-making tool and die industries, but is
becoming a common method of making prototype and production parts, especially in the
aerospace, automobile and electronics industries in which production quantities are relatively
low. In Sinker EDM, a graphite, copper tungsten or pure copper electrode is machined into the
desired (negative) shape and fed into the workpiece on the end of a vertical ram.
EDM control panel (Hansvedt machine). Machine may be adjusted for a refined surface
(electropolish) at end of process.
Master at top, badge die workpiece at bottom, oil jets at left (oil has been drained). Initial flat
stamping will be "dapped" to give a curved surface.
through hardened steel in less than 10 seconds, averaging 50% to 80% wear rate. Holes of
0.3 mm to 6.1 mm can be achieved in this drilling operation. Brass electrodes are easier to
machine but are not recommended for wire-cut operations due to eroded brass particles causing
"brass on brass" wire breakage, therefore copper is recommended.
complex shapes that would otherwise be difficult to produce with conventional cutting
tools
extremely hard material to very close tolerances
very small work pieces where conventional cutting tools may damage the part from
excess cutting tool pressure.
Dielectric
A dielectric is a nonconducting substance, i.e. an insulator. The term was coined by William
Whewell in response to a request from Michael Faraday.[1] Although "dielectric" and "insulator"
are generally considered synonymous, the term "dielectric" is more often used to describe
materials where the dielectric polarization is important, such as the insulating material between
the metallic plates of a capacitor, while "insulator" is more often used when the material is being
used to prevent a current flow across it.
Dielectrics is the study of dielectric materials and involves physical models to describe how an
electric field behaves inside a material. It is characterized by how an electric field interacts with
an atom and is therefore possible to approach from either a classical interpretation or a quantum
one.
Many phenomena in electronics, solid state and optical physics can be described using the
underlying assumptions of the dielectric model. This can mean that the same mathematical
objects can go by many different names.
Contents
1 Definitions
o 1.1 Classical
o 1.2 Behavior
2 Dielectric model applied to vacuum
3 Applications
o 3.1 Capacitors
o 3.2 Cable insulation
4 Some practical dielectrics
5 See also
6 References
7 External links
Definitions
Electric field interaction with an atom under the classical dielectric model.
Von Hippel, in his seminal work, Dielectric Materials and Applications, stated:
Dielectrics... are not a narrow class of so-called insulators, but the broad expanse of nonmetals
considered from the standpoint of their interaction with electric, magnetic, or electromagnetic
fields. Thus we are concerned with gases as well as with liquids and solids, and with the storage
of electric and magnetic energy as well as its dissipation.[2]
Classical
In the classical approach to the dielectric model, a material is made up of atoms. Each atom
consists of a cloud of negative charge bound to and surrounding a positive point charge at its
centre. Because of the comparatively huge distance between them, none of the atoms in the
dielectric material interact with one another[citation needed]. Note: Remember that the model is not
attempting to say anything about the structure of matter. It is only trying to describe the
interaction between an electric field and matter.
In the presence of an electric field the charge cloud is distorted, as shown in the top right of the
figure.
This can be reduced to a simple dipole using the superposition principle. A dipole is
characterized by its dipole moment, a vector quantity shown in the figure as the blue arrow
labeled M. It is the relationship between the electric field and the dipole moment that gives rise
to the behavior of the dielectric. Note: The dipole moment is shown to be pointing in the same
direction as the electric field. This isn't always correct, and it is a major simplification, but it is
suitable for many materials.[citation needed]
When the electric field is removed the atom returns to its original state. The time required to do
so is the so-called relaxation time; an exponential decay.
Behavior
This is the essence of the model in physics. The behavior of the dielectric now depends on the
situation. The more complicated the situation the richer the model has to be in order to accurately
describe the behavior. Important questions are:
The relationship between the electric field E and the dipole moment M gives rise to the behavior
of the dielectric, which, for a given material, can be characterized by the function F defined by
the equation:
.
When both the type of electric field and the type of material have been defined, one then chooses
the simplest function F that correctly predicts the phenomena of interest. Examples of possible
phenomena:
Refractive index
Group velocity dispersion
Birefringence
Self-focusing
Harmonic generation
Applications
Capacitors
Commercially manufactured capacitors typically use a solid dielectric material with high
permittivity as the intervening medium between the stored positive and negative charges. This
material is often referred to in technical contexts as the "capacitor dielectric" [3] . The most
obvious advantage to using such a dielectric material is that it prevents the conducting plates on
which the charges are stored from coming into direct electrical contact. More significantly
however, a high permittivity allows a greater charge to be stored at a given voltage. This can be
seen by treating the case of a linear dielectric with permittivity and thickness d between two
conducting plates with uniform charge density . In this case, the charge density is given by
From this, it can easily be seen that a larger leads to greater charge stored and thus greater
capacitance.
Dielectric materials used for capacitors are also chosen such that they are resistant to ionization.
This allows the capacitor to operate at higher voltages before the insulating dielectric ionizes and
begins to allow undesirable current flow.
Cable insulation
The term "dielectric" may also refer to the insulation used in power and RF cables[citation needed].
Common materials used as electrical insulations are electrical insulation paper and plastics.
Industrial coatings such as parylene provide a dielectric barrier between the substrate and
its environment.
Mineral oil is used extensively inside electrical transformers as a fluid dielectric and to
assist in cooling. Dielectric fluids with higher dielectric constants, such as electrical grade
castor oil, are often used in high voltage capacitors to help prevent corona discharge and
increase capacitance.
Because dielectrics resist the flow of electricity, the surface of a dielectric may retain
stranded excess electrical charges. This may occur accidentally when the dielectric is
rubbed (the triboelectric effect). This can be useful, as in a Van de Graaff generator or
electrophorus, or it can be potentially destructive as in the case of electrostatic discharge.
Specially processed dielectrics, called electrets (also known as ferroelectrics), may retain
excess internal charge or "frozen in" polarization. Electrets have a semipermanent
external electric field, and are the electrostatic equivalent to magnets. Electrets have
numerous practical applications in the home and industry.
Some dielectrics can generate a potential difference when subjected to mechanical stress,
or change physical shape if an external voltage is applied across the material. This
property is called piezoelectricity. Piezoelectric materials are another class of very useful
dielectrics.
Some ionic crystals and polymer dielectrics exhibit a spontaneous dipole moment which
can be reversed by an externally applied electric field. This behavior is called the
ferroelectric effect. These materials are analogous to the way ferromagnetic materials
behave within an externally applied magnetic field. Ferroelectric materials often have
very high dielectric constants, making them quite useful for capacitors.
Milling machine
A CAD designed part (top) and physical part (bottom) produced by CNC milling.
This article includes a list of references, related reading or external links, but its sources
remain unclear because it lacks inline citations. Please improve this article by
introducing more precise citations where appropriate. (October 2008)
A milling machine is a machine tool used for the shaping of metal and other solid materials.
Milling machines exist in two basic forms: horizontal and vertical, which terms refer to the
orientation of the cutting tool spindle. Unlike a drill press, in which the workpiece is held
stationary and the drill is moved vertically to penetrate the material, milling also involves
movement of the workpiece against the rotating cutter, the latter which is able to cut on its flanks
as well as its tip. Workpiece and cutter movement are precisely controlled to less than 0.001
inches (.025 millimeters), usually by means of precision ground slides and leadscrews or
analogous technology. Milling machines may be manually operated, mechanically automated, or
digitally automated via computer numerical control (CNC).
Milling machines can perform a vast number of operations, some very complex, such as slot and
keyway cutting, planing, drilling, diesinking, rebating, routing, etc. Cutting fluid is often pumped
to the cutting site to cool and lubricate the cut, and to sluice away the resulting swarf.
Contents
[hide]
1 Types
o 1.1 Comparing vertical with horizontal
o 1.2 Other milling machine variants and terminology
2 Computer numerical control
o 2.1 Milling machine tooling
3 History
o 3.1 1810s-1830s
o 3.2 1840s-1860
o 3.3 1860s
o 3.4 1870s-1930s
o 3.5 1940s-1970s
o 3.6 1980s-present
4 See also
5 References
6 Further reading
7 External links
Types
There are many ways to classify milling machines, depending on which criteria are the focus:
Criterion
Control
Comments
Manual;
Mechanically automated via cams;
Digitally automated via NC/CNC
Full-auto tool-changing
versus semi-auto or manual
tool-changing
Purpose
Purpose
Purpose
Power source
Box or column mills are very basic hobbyist bench-mounted milling machines that feature
a head riding up and down on a column or box way.
Turret or vertical ram mills are more commonly referred to as Bridgeport-type milling
machines. The spindle can be aligned in many different positions for a very versatile, if
somewhat less rigid machine.
Knee mill or knee-and-column mill refers to any milling machine whose x-y table rides up
and down the column on a vertically adjustable knee. This includes Bridgeports.
C-Frame mills are larger, industrial production mills. They feature a knee and fixed
spindle head that is only mobile vertically. They are typically much more powerful than a
turret mill, featuring a separate hydraulic motor for integral hydraulic power feeds in all
directions, and a twenty to fifty horsepower motor. Backlash eliminators are almost
always standard equipment. They use large NMTB 40 or 50 tooling. The tables on Cframe mills are usually 18" by 68" or larger, to allow multiple parts to be machined at the
same time.
Planer-style mills are large mills built in the same configuration as planers except with a
milling spindle instead of a planing head. This term is growing dated as planers
themselves are largely a thing of the past.
Bed mill refers to any milling machine where the spindle is on a pendant that moves up
and down to move the cutter into the work. These are generally more rigid than a knee
mill.
Ram type mill refers to a mill that has a swiveling cutting head mounted on a sliding ram.
The spindle can be oriented either vertically or horizontally, or anywhere in between. Van
Norman specialized in ram type mills through most of the 20th century, but since the
advent of CNC machines ram type mills are no longer made.
Jig borers are vertical mills that are built to bore holes, and very light slot or face milling.
They are typically bed mills with a long spindle throw. The beds are more accurate, and
the handwheels are graduated down to .0001" for precise hole placement.
Horizontal boring mills are large, accurate bed horizontal mills that incorporate many
features from various machine tools. They are predominantly used to create large
manufacturing jigs, or to modify large, high precision parts. They have a spindle stroke of
several (usually between four and six) feet, and many are equipped with a tailstock to
perform very long boring operations without losing accuracy as the bore increases in
depth. A typical bed would have X and Y travel, and be between three and four feet
square with a rotary table or a larger rectangle without said table. The pendant usually has
between four and eight feet in vertical movement. Some mills have a large (30" or more)
integral facing head. Right angle rotary tables and vertical milling attachments are
available to further increase productivity.
Floor mills have a row of rotary tables, and a horizontal pendant spindle mounted on a set
of tracks that runs parallel to the table row. These mills have predominantly been
converted to CNC, but some can still be found (if one can even find a used machine
available) under manual control. The spindle carriage moves to each individual table,
performs the machining operations, and moves to the next table while the previous table
is being set up for the next operation. Unlike any other kind of mill, floor mills have floor
units that are entirely movable. A crane will drop massive rotary tables, X-Y tables, and
the like into position for machining, allowing the largest and most complex custom
milling operations to take place.
Thin wall milling of aluminum using a water based coolant on the milling cutter
Most CNC milling machines (also called machining centers) are computer controlled vertical
mills with the ability to move the spindle vertically along the Z-axis. This extra degree of
freedom permits their use in diesinking, engraving applications, and 2.5D surfaces such as relief
sculptures. When combined with the use of conical tools or a ball nose cutter, it also significantly
improves milling precision without impacting speed, providing a cost-efficient alternative to
most flat-surface hand-engraving work.
High speed steel with cobalt endmills used for cutting operations in a milling machine.
CAT-40 Toolholder
An improvement on CAT Tooling is BT Tooling, which looks very similar and can easily be
confused with CAT tooling. Like CAT Tooling, BT Tooling comes in a range of sizes and uses
the same NMTB body taper. However, BT tooling is symmetrical about the spindle axis, which
CAT tooling is not. This gives BT tooling greater stability and balance at high speeds. One other
subtle difference between these two toolholders is the thread used to hold the pull stud. CAT
Tooling is all Imperial thread and BT Tooling is all Metric thread. Note that this affects the pull
stud only, it does not affect the tool that they can hold, both types of tooling are sold to accept
both Imperial and metric sized tools.
SK and HSK tooling, sometimes called "Hollow Shank Tooling", is much more common in
Europe where it was invented than it is in the United States. It is claimed that HSK tooling is
even better than BT Tooling at high speeds. The holding mechanism for HSK tooling is placed
within the (hollow) body of the tool and, as spindle speed increases, it expands, gripping the tool
more tightly with increasing spindle speed. There is no pull stud with this type of tooling.
The situation is quite different for manual milling machines there is little standardization.
Newer and larger manual machines usually use NMTB tooling. This tooling is somewhat similar
to CAT tooling but requires a drawbar within the milling machine. Furthermore, there are a
number of variations with NMTB tooling that make interchangeability troublesome.
As an historical footnote: Bridgeport is now owned by Hardinge Brothers of Elmira, New York.
History
1810s-1830s
Milling machines evolved from the practice of rotary filingthat is, running a circular cutter
with file-like teeth in the headstock of a lathe. Both rotary filing and later true milling were
developed in order to reduce the time and effort spent on hand-filing. The full, true story of the
milling machine's development will probably never be known, because much of the early
development took place in individual shops where generally no one was taking down records for
posterity. However, the broad outlines are known. Rotary filing long predated milling. A rotary
file by Jacques de Vaucanson, circa 1760, is well known. It is clear that milling machines as a
distinct class of machine tool (separate from lathes running rotary files) first appeared between
1814 and 1818. Joseph W. Roe, a respected founding father of machine tool historians, credited
Eli Whitney with producing the first true milling machine. However, subsequent scholars,
including Robert S. Woodbury and others, suggest that just as much credit belongs to various
other inventors, including Robert Johnson, Simeon North, Captain John H. Hall, and Thomas
Blanchard. (Several of the men mentioned above are sometimes described on the internet as "the
inventor of the first milling machine" or "the inventor of interchangeable parts". Such claims are
oversimplified, as these technologies evolved over time among many people.) The two federal
armories of the U.S. (Springfield and Harpers Ferry) and the various private armories and inside
contractors that shared turnover of skilled workmen with them were the centers of earliest
development of true milling machines (as distinct from lathe headstocks tooled up for rotary
filing).
James Nasmyth built a milling machine very advanced for its time between 1829 and 1831. It
was tooled to mill the six sides of a hex nut that was mounted in a six-way indexing fixture.
A milling machine built and used in the shop of Gay & Silver (aka Gay, Silver, & Co) in the
1830s was influential because it employed a better method of vertical positioning than earlier
machines. For example, Whitney's machine (the one that Roe considered the very first) and
others did not make provision for vertical travel of the knee. Evidently the workflow assumption
behind this was that the machine would be set up with shims, vise, etc. for a certain part design
and successive parts would not require vertical adjustment (or at most would need only
shimming). This indicates that the earliest way of thinking about milling machines was as
production machines, not toolroom machines.
1840s-1860
Some of the key men in milling machine development during this era included Frederick W.
Howe, Francis A. Pratt, Elisha K. Root, and others. (These same men during the same era were
also busy developing the state of the art in turret lathes. Howe's experience at Gay & Silver in the
1840s acquainted him with early versions of both machine tools. His machine tool designs were
later built at Robbins & Lawrence, the Providence Tool Company, and Brown & Sharpe.) The
most successful milling machine design to emerge during this era was the Lincoln miller, which
rather than being a specific make and model of machine tool is truly a family of related tools
built by various companies over several decades. It took its name from the first company to put
one on the market, George S. Lincoln & Company.
During this era there was a continued blind spot in milling machine design, as various designers
failed to develop a truly simple and effective means of providing slide travel in all three of the
archetypal milling axes (X, Y, and Zor as they were known in the past, longitudinal, traverse,
and vertical). Vertical positioning ideas were either absent or underdeveloped.
1860s
1870s-1930s
Two firms which most dominated the milling machine field during these decades were Brown &
Sharpe and the Cincinnati Milling Machine Company. However, hundreds of other firms built
milling machines during this time, and many were significant in one way or another. The
archetypal workhorse milling machine of the late 19th and early 20th centuries was a heavy
knee-and-column horizontal-spindle design with power table feeds, indexing head, and a stout
overarm to support the arbor.
A. L. De Leeuw of the Cincinnati Milling Machine Company is credited with applying scientific
study to the design of milling cutters, leading to modern practice with larger, more widely spaced
teeth.
Around the end of World War I, machine tool control advanced in various ways that laid the
groundwork for later CNC technology. The jig borer popularized the ideas of coordinate
dimensioning (dimensioning of all locations on the part from a single reference point); working
routinely in "tenths" (ten-thousandths of an inch, 0.0001") as an everyday machine capability;
and using the control to go straight from drawing to part, circumventing jig-making. In 1920 the
new tracer design of J.C. Shaw was applied to Keller tracer milling machines for die-sinking via
the three-dimensional copying of a template. This made diesinking faster and easier just as dies
were in higher demand than ever before, and was very helpful for large steel dies such as those
used to stamp sheets in automobile manufacturing. Such machines translated the tracer
movements to input for servos that worked the machine leadscrews or hydraulics. They also
spurred the development of antibacklash leadscrew nuts. All of the above concepts were new in
the 1920s but would become routine in the NC/CNC era. By the 1930s, incredibly large and
advanced milling machines existed, such as the Cincinnati Hydro-Tel, that presaged today's CNC
mills in every respect except the CNC control itself.
1940s-1970s
By 1940, automation via cams, such as in screw machines and automatic chuckers, had already
been very well developed for decades. By the close of World War II, many additional ideas
involving servomechanisms were in the air. These ideas, which soon were combined with the
emerging technology of digital computers, transformed machine tool control very deeply. The
details (which are beyond the scope of this article) have evolved immensely with every passing
decade since World War II.
During the 1950s, numerical control (NC) made its appearance.
During the 1960s and 1970s, NC evolved into CNC, data storage and input media evolved,
computer processing power and memory capacity steadily increased, and NC and CNC machine
tools gradually disseminated from the level of huge corporations to the level of medium-sized
corporations.
1980s-present
Computers and CNC machine tools continue to develop rapidly. The PC revolution has a great
impact on this development. By the late 1980s small machine shops had desktop computers and
CNC machine tools. After that hobbyists began obtaining CNC mills and lathes
G-code
This article is about the machine tool programming language. For the video recorder
programming system, see Video recorder scheduling code.
G-Code, or preparatory code or function, are functions in the Numerical control programming
language. The G-codes are the codes that position the tool and do the actual work, as opposed to
M-codes, that manages the machine; T for tool-related codes. S and F are tool-Speed and toolFeed, and finally D-codes for tool compensation.
The programming language of Numerical Control (NC) is sometimes informally called G-code.
But in actuality, G-codes are only a part of the NC-programming language that controls NC and
CNC machine tools. The term Numerical Control was coined at the MIT Servomechanisms
Laboratory, and several versions of NC were and are still developed independently by CNCmachine manufacturers. The main standardized version used in the United States was settled by
the Electronic Industries Alliance in the early 1960s. A final revision was approved in February
1980 as RS274D. In Europe, the standard DIN 66025 / ISO 6983 is often used instead.
Due to the lack of further development, the immense variety of machine tool configurations, and
little demand for interoperability, few machine tool controllers (CNCs) adhere to this standard.
Extensions and variations have been added independently by manufacturers, and operators of a
specific controller must be aware of differences of each manufacturers' product. When initially
introduced, CAM systems were limited in the configurations of tools supported.
Today, the main manufacturers of CNC control systems are GE Fanuc Automation (joint venture
of General Electric and Fanuc), Siemens, Mitsubishi, and Heidenhain, but there still exist many
smaller and/or older controller systems.
Some CNC machine manufacturers attempted to overcome compatibility difficulties by
standardizing on a machine tool controller built by Fanuc. Unfortunately, Fanuc does not remain
consistent with RS-274 or its own previous versions, and has been slow at adding new features,
as well as exploiting increases in computing power. For example, they changed G70/G71 to
G20/G21; they used parentheses for comments which caused difficulty when they introduced
mathematical calculations so they use square parentheses for macro calculations; they now have
nano technology recently in 32-bit mode but in the Fanuc 15MB control they introduced HPCC
(high-precision contour control) which uses a 64-bit RISC processor and this now has a 500
block buffer for look-ahead for correct shape contouring and surfacing of small block programs
and 5-axis continuous machining.
This is also used for NURBS to be able to work closely with industrial designers and the systems
that are used to design flowing surfaces. The NURBS has its origins from the ship building
industry and is described by using a knot and a weight as for bending steamed wooden planks
and beams.
Contents
1 Common Codes
2 Example Program
3 See also
4 External links
Common Codes
G-codes are also called preparatory codes, and 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 move
controlled feed move in a straight line or arc
series of controlled feed moves that would result in a hole being bored, a workpiece cut
(routed) to a specific dimension, or a decorative profile shape added to the edge of a
workpiece.
change a pallet
set tool information such as offset.
There are other codes; the type codes can be thought of like registers in a computer
X absolute position
Y absolute position
Z absolute position
A position (rotary around X)
B position (rotary around Y)
C position (rotary around Z)
U Relative axis parallel to X
V Relative axis parallel to Y
W Relative axis parallel to Z
M code (another "action" register or Machine code(*)) (otherwise referred to as a
"Miscellaneous" function")
F feed rate
S spindle speed
N line number
R Arc radius or optional word passed to a subprogram/canned cycle
P Dwell time or optional word passed to a subprogram/canned cycle
T Tool selection
I Arc data X axis
J Arc data Y axis.
K Arc data Z axis, or optional word passed to a subprogram/canned cycle
D Cutter diameter/radius offset
H Tool length offset
(*) M codes control the overall machine, causing it to stop, start, turn on coolant, etc., whereas
other codes pertain to the path traversed by cutting tools. Different machine tools may use the
same code to perform different functions; even machines that use the same CNC control.
Code
G00
G01
G02
G03
G04
G05.1 Q1.
G05 P10000
G07
G09
G10/G11
G12
G13
G17
G18
G19
G20
G21
G28
G30
G31
G33
G34
G40
G41
G42
G43
G44
G45
G46
G47
G48
G49
G50
G53
G54 to G59
G54.1 P1 to
P48
G73
G74
G76
G80
G81
G82
G83
G84
G84.2
G90
G91
G92
G94/G95
G96
G97
G98/G99
A standardized version of G-code known as BCL is used, but only on very few machines.
G-code files may be generated by CAM software. Those applications typically use translators
called post-processors to output code optimized for a particular machine type or family. Postprocessors are often user-editable to enable further customization, if necessary. G-code is also
output by specialized CAD systems used to design printed circuit boards. Such software must be
customized for each type of machine tool that it will be used to program. Some G-code is written
by hand for volume production jobs. In this environment, the inherent inefficiency of CAMgenerated G-code is unacceptable.
Some CNC machines use "conversational" programming, which is a wizard-like programming
mode that either hides G-code or completely bypasses the use of G-code. Some popular
examples are Southwestern Industries' ProtoTRAK, Mazak's Mazatrol, Hurco's Ultimax and
Mori Seiki's CAPS conversational software.
Example Program
This is a generic program that demonstrates the use of G-Code to turn a 1" diameter X 1" long
part. Assume that a bar of material is in the machine and that the bar is slightly oversized in
length and diameter and that the bar protrudes by more than 1" from the face of the chuck.
(Caution: This is generic, it might not work on any real machine! Pay particular attention to point
5 below.)
Description
N08
N09
N10
N11
Feed in horizontally until the tool is standing 1" from the datum
Feed down until the tool is on center - Face the end of the bar
Rapid feed 0.1" away from the end of the bar
Rapid feed up until the tool is standing at the finished OD
Feed in horizontally cutting the bar to 1" diameter all the way to the
datum
Stop the spindle, Turn off the coolant
Home X axis in the machine coordinate system, then home all other axes
Turn the load monitor off
Program stop, pallet change if applicable, rewind to beginning of the
program
6. For pedagogical purposes, line numbers have been included in the program above. They
are usually not necessary for operation of a machine, so they are seldom used in industry.
However, if branching or looping statements are used in the code, then line numbers may
well be included as the target of those statements (e.g. GOTO N99).
MATLAB
For the subdistrict in Chandpur District, Bangladesh, see Matlab Upazila. For the computer
algebra system, see MATHLAB.
MATLAB
The MathWorks
Stable release
Written in
Technical computing
License
Proprietary
Website
MATLAB
Paradigm
imperative
Appeared in
late 1970s
Designed by
Cleve Moler
Developer
Typing discipline
OS
The MathWorks
dynamic
Cross-platform
Contents
1 History
2 Syntax
o 2.1 Variables
o 2.2 Vectors/Matrices
o 2.3 Semicolon
o 2.4 Graphics
3 Object-Oriented Programming
4 Limitations
5 Interactions with other languages
6 Alternatives
7 Release history
8 See also
9 References
10 Further reading
11 External links
History
MATLAB (meaning "matrix laboratory") was invented in the late 1970s by Cleve Moler, then
chairman of the computer science department at the University of New Mexico.[3] He designed it
to give his students access to LINPACK and EISPACK without having to learn Fortran. It soon
spread to other universities and found a strong audience within the applied mathematics
community. Jack Little, an engineer, was exposed to it during a visit Moler made to Stanford
University in 1983. Recognizing its commercial potential, he joined with Moler and Steve
Bangert. They rewrote MATLAB in C and founded The MathWorks in 1984 to continue its
development. These rewritten libraries were known as JACKPAC.[citation needed] In 2000, MATLAB
was rewritten to use a newer set of libraries for matrix manipulation, LAPACK[4].
MATLAB was first adopted by control design engineers, Little's specialty, but quickly spread to
many other domains. It is now also used in education, in particular the teaching of linear algebra
and numerical analysis, and is popular amongst scientists involved with image processing.[3]
Syntax
This article is written like a manual or guidebook. Please help rewrite this article from a
neutral point of view. (October 2008)
MATLAB, the application, is built around the MATLAB language. The simplest way to execute
MATLAB code is to type it in at the prompt, >> , in the Command Window, one of the elements
of the MATLAB Desktop. In this way, MATLAB can be used as an interactive mathematical
shell. Sequences of commands can be saved in a text file, typically using the MATLAB Editor, as
a script or encapsulated into a function, extending the commands available.[5]
Variables
Variables are defined with the assignment operator, =. MATLAB is dynamically typed, meaning
that variables can be assigned without declaring their type, except if they are to be treated as
symbolic objects[6], and that their type can change. Values can come from constants, from
computation involving values of other variables, or from the output of a function. For example:
>> x = 17
x =
17
>> x = 'hat'
x =
hat
>> x = [3*4, pi/2]
x =
12.0000
1.5708
>> y = 3*sin(x)
y =
-1.6097
3.0000
Vectors/Matrices
MATLAB is a "Matrix Laboratory", and as such it provides many convenient ways for creating
vectors, matrices, and multi-dimensional arrays. In the MATLAB vernacular, a vector refers to a
one dimensional (1N or N1) matrix, commonly referred to as an array in other programming
languages. A matrix generally refers to a 2-dimensional array, i.e. an mn array where m and n
are greater than or equal to 1. Arrays with more than two dimensions are referred to as
multidimensional arrays.
MATLAB provides a simple way to define simple arrays using the syntax:
init:increment:terminator. For instance:
>> array = 1:2:9
array =
1 3 5 7 9
defines a variable named array (or assigns a new value to an existing variable with the name
array) which is an array consisting of the values 1, 3, 5, 7, and 9. That is, the array starts at 1
(the init value), increments with each step from the previous value by 2 (the increment value),
and stops once it reaches (or to avoid exceeding) 9 (the terminator value).
>> array = 1:3:9
array =
1 4 7
the increment value can actually be left out of this syntax (along with one of the colons), to use a
default value of 1.
>> ari = 1:5
ari =
1 2 3 4 5
assigns to the variable named ari an array with the values 1, 2, 3, 4, and 5, since the default
value of 1 is used as the incrementer.
Indexing is one-based[7], which is the usual convention for matrices in mathematics. This is
atypical for programming languages, whose arrays more often start with zero.
Matrices can be defined by separating the elements of a row with blank space or comma and
using a semicolon to terminate each row. The list of elements should be surrounded by square
brackets: []. Parentheses: () are used to access elements and subarrays (they are also used to
denote a function argument list).
>> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
>> A(2,3)
ans =
11
Sets of indices can be specified by expressions such as "2:4", which evaluates to [2, 3, 4]. For
example, a submatrix taken from rows 2 through 4 and columns 3 through 4 can be written as:
>> A(2:4,3:4)
ans =
11 8
7 12
14 1
A square identity matrix of size n can be generated using the function eye, and matrices of any
size with zeros or ones can be generated with the functions zeros and ones, respectively.
>> eye(3)
ans =
1 0 0
0 1 0
0 0 1
>> zeros(2,3)
ans =
0 0 0
0 0 0
>> ones(2,3)
ans =
1 1 1
1 1 1
Most MATLAB functions can accept matrices and will apply themselves to each element. For
example, mod(2*J,n) will multiply every element in "J" by 2, and then reduce each element
modulo "n". MATLAB does include standard "for" and "while" loops, but using MATLAB's
vectorized notation often produces code that is easier to read and faster to execute. This code,
excerpted from the function magic.m, creates a magic square M for odd values of n (MATLAB
function meshgrid is used here to generate square matrices I and J containing 1:n).
[J,I] = meshgrid(1:n);
A = mod(I+J-(n+3)/2,n);
B = mod(I+2*J-2,n);
M = n*A + B + 1;
Semicolon
Unlike many other languages, where the semicolon is used to terminate commands, in MATLAB
the semicolon serves to suppress the output of the line that it concludes.
Graphics
Function plot can be used to produce a graph from two vectors x and y. The code:
x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)
Three-dimensional graphics can be produced using the functions surf, plot3 or mesh.
[X,Y] = meshgrid(-10:0.25:10,10:0.25:10);
f = sinc(sqrt((X/pi).^2+(Y/pi).^2));
mesh(X,Y,f);
axis([-10 10 -10 10 -0.3 1])
xlabel('{\bfx}')
ylabel('{\bfy}')
zlabel('{\bfsinc} ({\bfR})')
hidden off
[X,Y] = meshgrid(-10:0.25:10,10:0.25:10);
f = sinc(sqrt((X/pi).^2+(Y/pi).^2));
surf(X,Y,f);
axis([-10 10 -10 10 -0.3 1])
xlabel('{\bfx}')
ylabel('{\bfy}')
zlabel('{\bfsinc} ({\bfR})')
Object-Oriented Programming
MATLAB's support for object-oriented programming includes classes, inheritance, virtual
dispatch, packages, pass-by-value semantics, and pass-by-reference semantics.[8]
classdef hello
methods
function doit(this)
end
end
disp('hello')
end
When put into a file named hello.m, this can be executed with the following commands:
>> x = hello;
>> x.doit;
hello
Limitations
For a long time there was criticism that because MATLAB is a proprietary product of The
MathWorks, users are subject to vendor lock-in.[9][10] Recently an additional tool called the
MATLAB Builder under the Application Deployment tools section has been provided to deploy
MATLAB functions as library files which can be used with .NET or Java application building
environment. But the drawback is that the computer where the application has to be deployed
needs MCR (MATLAB Component Runtime) for the MATLAB files to function normally. MCR
can be distributed freely with library files generated by the MATLAB compiler.
MATLAB, like Fortran, Visual Basic and Ada, uses parentheses, e.g. y = f(x), for both
indexing into an array and calling a function. Although this syntax can facilitate a switch
between a procedure and a lookup table, both of which correspond to mathematical functions, a
careful reading of the code may be required to establish the intent.
Many functions have a different behavior with matrix and vector arguments. Since vectors are
matrices of one row or one column, this can give unexpected results. For instance, function
sum(A) where A is a matrix gives a row vector containing the sum of each column of A, and
sum(v) where v is a column or row vector gives the sum of its elements; hence the programmer
must be careful if the matrix argument of sum can degenerate into a single-row array.[11] While
sum and many similar functions accept an optional argument to specify a direction, others, like
plot,[12] do not, and require additional checks. There are other cases where MATLAB's
interpretation of code may not be consistently what the user intended[citation needed] (e.g. how spaces
are handled inside brackets as separators where it makes sense but not where it doesn't, or
backslash escape sequences which are interpreted by some functions like fprintf but not
directly by the language parser because it wouldn't be convenient for Windows directories). What
might be considered as a convenience for commands typed interactively where the user can
check that MATLAB does what the user wants may be less supportive of the need to construct
reusable code.[citation needed]
Array indexing is one-based which is the common convention for matrices in mathematics, but
does not accommodate any indexing convention of sequences that have zero or negative indices.
For instance, in MATLAB the DFT (or FFT) is defined with the DC component at index 1
instead of index 0, which is not consistent with the standard definition of the DFT in any
literature. This one-based indexing convention is hard coded into MATLAB, making it difficult
for a user to define their own zero-based or negative indexed arrays to concisely model an idea
having non-positive indices.
Code written for a specific release of MATLAB often does not run with earlier releases as it may
use some of the newer features. To give just one example: save('filename','x') saves the
variable x in a file. The variable can be loaded with load('filename') in the same MATLAB
release. However, if saved with MATLAB version 7 or later, it cannot be loaded with MATLAB
version 6 or earlier. As workaround, in MATLAB version 7 save('filename','x','-v6')
generates a file that can be read with version 6. However, executing
save('filename','x','-v6') in version 6 causes an error message.
Alternatives
MATLAB has a number of competitors.
There are free open source alternatives to MATLAB, in particular GNU Octave, FreeMat, and
Scilab which are intended to be mostly compatible with the MATLAB language (but not the
MATLAB desktop environment). Among other languages that treat arrays as basic entities (array
programming languages) are APL and its successor J, Fortran 95 and 2003, as well as the
statistical language S (the main implementations of S are S-PLUS and the popular open source
language R).
There are also several libraries to add similar functionality to existing languages, such as Perl
Data Language for Perl and SciPy together with NumPy and Matplotlib for Python.
See also: list of numerical analysis software and comparison of numerical analysis software
Release history
version[16]
MATLAB 1.0
R?
1984
MATLAB 2
R?
1986
MATLAB 3
R?
1987
MATLAB 3.5
R?
1990
MATLAB 4
R?
1992
MATLAB 4.2c R7
1994
MATLAB 5.0
R8
1996
MATLAB 5.1
R9
R10
R11
1997
1998
1999
MATLAB 6.0
R12
2000
MATLAB 6.1
R12.1
2001
MATLAB 6.5
R13
2002
R14
R14SP3
MATLAB 7.2
R2006a
MATLAB 7.3
R2006b
MATLAB 7.4
R2007a
MATLAB 7.5
R2007b
MATLAB 7.6
R2008a
MATLAB 7.7
R2008b
MATLAB 7.8
R2009a
2003
2004
2005
2006
2007
2008
2009