Revision as of 13:13, 21 June 2006 edit208.14.26.180 (talk)No edit summary← Previous edit | Latest revision as of 00:15, 17 December 2024 edit undo76.69.142.126 (talk) →History: Fixed grammar: verbal tense (are to were), readability (slightly shorter sentence).Tags: Mobile edit Mobile app edit Android app edit App section source | ||
Line 1: | Line 1: | ||
{{short description|Primary programming language used in CNC}} | |||
{{other uses|G-code (disambiguation)|G programming language (disambiguation)}} | |||
{{redirect|RS-274|the photoplotter format|Gerber format}} | |||
{{Infobox programming language | |||
| name = G-code | |||
| file ext = .gcode, .mpt, .mpf, .nc and several others | |||
| paradigm = ], ] | |||
| released = {{Start date|1963}} (RS-274) | |||
| designer = ] | |||
| developer = ] (RS-274), ] (ISO-6983) | |||
| implementations = Numerous; mainly ] Sinumerik, ], ], ], ], ] | |||
| dialects = | |||
| influenced by = | |||
| influenced = | |||
| programming language = | |||
| platform = | |||
| operating system = | |||
| license = | |||
| website = | |||
| wikibooks = | |||
}} | |||
'''G-code''' |
'''G-code''' (also '''RS-274''') is the most widely used ] (CNC) and ] ]. It is used mainly in ] to control automated ]s, as well as for ]. The ''G'' stands for geometry. G-code has many variants. | ||
G-code instructions are provided to a ] (industrial computer) that tells the motors where to move, how fast to move, and what path to follow. The two most common situations are that, within a machine tool such as a ] or ], a ] is moved according to these instructions through a toolpath cutting away material to leave only the finished workpiece and/or an unfinished workpiece is precisely positioned in any of up to nine axes<ref>Karlo Apro (2008). ''''. Industrial Press Inc. {{ISBN|0-8311-3375-9}}.</ref> around the three dimensions relative to a toolpath and, either or both can move relative to each other. The same concept also extends to noncutting tools such as ] or ] tools, ], additive methods such as 3D printing, and measuring instruments. | |||
Due to the lack of further development, the sheer 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 to it independently by manufacturers, meaning that operators have to know the dialects and quirks of the particular machines they use, and ] have had to limit themselves to the lowest common denominator of all the tools that they support. | |||
== History == | |||
Many manufacturers tried to overcome this difficulty of remaining compatible by following the lead of a machine tool controller built by Fanuc. Unfortunately, Fanuc does not remain consistent with RS-274 or its own previous standard, and has been slow at adding new features and exploiting the increasingly computing power. For example, they changed g70/g71 to g20/21; they used parentheses for comments which caused difficulty when they introduced mathematical calculations; they started to use nanometers just recently (requires 64 bit); they introduced the nurbs to overcome slow fetching of blocks from memory (instead of caching). | |||
The first implementation of a numerical control programming language was developed at the ] in the 1950s. In the decades that followed, many implementations were developed by numerous organizations, both commercial and noncommercial. Elements of G-code had often been used in these implementations.<ref>{{cite book | last=Xu | first=Xun | date=2009 | url=https://books.google.com/books?id=habcATPQWJ4C | title=Integrating Advanced Computer-aided Design, Manufacturing, and Numerical Control: Principles and Implementations | publisher=Information Science Reference | page=166 | isbn=978-1-59904-716-4 | via=Google Books}}</ref><ref>{{cite book | last=Harik | first=Ramy | author2=Thorsten Wuest | date=2019 | url=https://books.google.com/books?id=O3h0EAAAQBAJ | title=Introduction to Advanced Manufacturing | publisher=SAE International | page=116 | isbn=978-0-7680-9096-3 | via=Google Books}}</ref> The first ] version of G-code used in the United States, ''RS-274'', was published in 1963 by the ] (EIA; then known as Electronic Industries Association).<ref>{{cite book | last=Evans | first=John M. Jr. | date=1976 | url=https://www.govinfo.gov/content/pkg/GOVPUB-C13-2ef4aaa5a150eedcb85a1e6985e90bfa/pdf/GOVPUB-C13-2ef4aaa5a150eedcb85a1e6985e90bfa.pdf | title=National Bureau of Standards Information Report (NBSIR) 76-1094 (R): Standards for Computer Aided Manufacturing | publisher=National Bureau of Standards | page=43}}</ref> In 1974, EIA approved ''RS-274-C'', which merged ''RS-273'' (variable block for positioning and straight cut) and ''RS-274-B'' (variable block for contouring and contouring/positioning). A final revision of ''RS-274'' was approved in 1979, as ''RS-274-D''.<ref>{{cite journal | last=Schenck | first=John P. | date=January 1, 1998 | url=https://link.gale.com/apps/doc/A20429590/GPS?sid=wikipedia | title=Understanding common CNC protocols | journal=Wood & Wood Products | publisher=Vance Publishing | volume=103 | issue=1 | page=43 | via=Gale}}</ref><ref>{{citation| title = EIA Standard RS-274-D Interchangeable Variable Block Data Format for Positioning, Contouring, and Contouring/Positioning Numerically Controlled Machines |publisher = Electronic Industries Association |location= Washington D.C. |date=February 1979}}</ref> In other countries, the standard ''] 6983'' (finalized in 1982) is often used, but many European countries use other standards.<ref>{{cite book | last=Stark | first=J. | author2=V. K. Nguyen | date=2009 | url=https://books.google.com/books?id=RIgLRe12RD4C | chapter=STEP-compliant CNC Systems, Present and Future Directions | title=Advanced Design and Manufacturing Based on STEP | editor-last=Xu | editor-first=Xun | editor2=Andrew Yeh Ching Nee | publisher=Springer London | page=216 | isbn=978-1-84882-739-4 | via=Google Books}}</ref> For example, ''] 66025'' is used in Germany, and PN-73M-55256 and PN-93/M-55251 were formerly used in Poland. | |||
== Examples == | |||
During the 1970s through 1990s, many CNC machine tool builders attempted to overcome compatibility difficulties by standardizing on machine tool controllers built by ]. ] was another market dominator in CNC controls, especially in Europe. In the 2010s, controller differences and incompatibility were mitigated with the widespread adoption of CAD/CAM applications that were capable of outputting machine operations in the appropriate G-code for a specific machine through a software tool called a post-processor (sometimes shortened to just a "post"). | |||
G-code is also the name of any word in a CNC program that begins with the letter ''G'', and generally is a code telling the machine tool what type of action to perform, such as: | |||
*rapid move | |||
*controlled feed move in 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 ] | |||
*Set tool information such as offset. | |||
== Syntax == | |||
There are other codes; the type codes can be thought of like ] in a computer | |||
:X position | |||
:Y position | |||
:Z position | |||
:M code (another "action" register or Machine code(*)) | |||
:F feed rate | |||
:S ] | |||
:N line number | |||
:R Radius | |||
:T Tool selection | |||
:I Arc data X axis | |||
:J Arc data Y axis. | |||
:K Arc data Z axis. | |||
G-code began as a limited language that lacked constructs such as loops, conditional operators, and programmer-declared variables with ]-word-including names (or the expressions in which to use them). It was unable to encode logic but was just a way to "connect the dots" where the programmer figured out many of the dots' locations longhand. The latest implementations of G-code include macro language capabilities somewhat closer to a ]. Additionally, all primary manufacturers (e.g., Fanuc, Siemens, ]) provide access to ] (PLC) data, such as axis positioning data and tool data,<ref>{{cite web |archive-date=2014-05-03 |url=http://www.machinetoolhelp.com/Applications/macro/system_variables.html |title=Fanuc macro system variables |access-date=2014-06-30 |archive-url=https://web.archive.org/web/20140503030834/http://www.machinetoolhelp.com/Applications/macro/system_variables.html }}</ref> via variables used by NC programs. These constructs make it easier to develop automation applications. | |||
(*) 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. | |||
== Extensions and variations == | |||
Different machine tools, however, may use the same code to perform different functions: even machines that use the same CNC control. Some may have said that "]" G-code is standard, but that is a myth. | |||
Extensions and variations have been added independently by control manufacturers and machine tool manufacturers, and operators of a specific controller must be aware of the differences between each manufacturer's product. | |||
One standardized version of G-code, known as ''BCL'' (Binary Cutter Language), is used only on very few machines. Developed at MIT, BCL was developed to control CNC machines in terms of straight lines and arcs.<ref>{{Cite book|url=https://books.google.com/books?id=GE8vBQAAQBAJ&q=binary+cutter+language+gcode&pg=PA321|title=Information Technology Standards: Quest for the Common Byte.|last=Martin.|first=Libicki|date=1995|publisher=Elsevier Science|isbn=978-1-4832-9248-9|location=Burlington|page=321|oclc=895436474}}</ref> | |||
{|border="1" cellpadding="2" | |||
|+ Common Fanuc G Codes | |||
|- | |||
|G00 || Fast positioning | |||
|- | |||
|G01 || Linear interpolation | |||
|- | |||
|G02 || CW circular interpolation | |||
|- | |||
|G03 || CCW circular interpolation | |||
|- | |||
|G17 || X-Y plan selection | |||
|- | |||
|G18 || X-Z plan selection | |||
|- | |||
|G19 || Y-Z plan selection | |||
|- | |||
|G20 || Programming in inches | |||
|- | |||
|G21 || Programming in mm | |||
|- | |||
|G33 || Constant pitch threading | |||
|- | |||
|G34 ||Variable pitch threading | |||
|- | |||
|G40 || Tool radius compensation off | |||
|- | |||
|G41 || Tool radius compensation left | |||
|- | |||
|G42 || Tool radius compensation right | |||
|- | |||
|G90 || Absolute programming | |||
|- | |||
|G91 || Incremental programming | |||
|- | |||
|G94/G95 || Feed | |||
|- | |||
|G96/G97 || Constant cutting speed/Constant rotation speed | |||
|} | |||
Some CNC machines use "conversational" programming, which is a ]-like programming mode that either hides G-code or completely bypasses the use of G-code. Some popular examples are Okuma's Advanced One Touch (AOT), Southwestern Industries' ProtoTRAK, Mazak's Mazatrol, Hurco's Ultimax and Winmax, Haas' Intuitive Programming System (IPS), and Mori Seiki's CAPS conversational software. | |||
A standardized version of G-code known as ''BCL'' is used, but only on very few machines. | |||
== See also == | |||
G-code is understood by photoplotters, machine tool controls, and some ]s. | |||
* ] | |||
* ] | |||
* ] | |||
* ] | |||
== References == | |||
G-code files are output by ] software such as ], ], ], ], ] ] etc. Those applications typically use translators called post-processors to output code optimized for a particular machine type or family. Post-processors are often user-editable to enable further customization, if necessary. G-code is also output by specialized ] systems used to design ]s. Such software must be customized for each type of machine tool that it will be used to program. | |||
{{Reflist}} | |||
== Bibliography == | |||
Some CNC machines use "Conversational" programming, which is a ]-like programming mode that either hides G-code or completely bypasses the use of G-code. | |||
* {{MachinerysHandbook25e}} | |||
* {{Smid2008}} | |||
* {{Smid2010}} | |||
* {{Citation |last=Smid |first=Peter |year=2004 |title=Fanuc CNC Custom Macros |publisher=Industrial Press |url=https://books.google.com/books?id=YKvH-zYd3VwC&pg=PR11 |isbn=978-0-8311-3157-9 |postscript=.}} | |||
== |
== External links == | ||
* | |||
* {{Citation |last1=Kramer |first1=T. R. |last2=Proctor |first2=F. M. |last3=Messina |first3=E. R. |title=The NIST RS274NGC Interpreter – Version 3 |date=1 Aug 2000 |id=NISTIR 6556 |journal=] |url=https://www.nist.gov/manuscript-publication-search.cfm?pub_id=823374 |ref=none}} | |||
* http://museum.mit.edu/150/86 {{Webarchive|url=https://web.archive.org/web/20160319102859/http://museum.mit.edu/150/86 |date=2016-03-19 }} Has several links (including history of MIT Servo Lab) | |||
* at reprap.org | |||
* | |||
* | |||
* | |||
* | |||
* | |||
{{Metalworking navbox|machopen}} | |||
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.) | |||
] | |||
] | |||
{|border="1" cellpadding="2" | |||
|+ Sample | |||
|- | |||
|N01 M216 || (Turn on load monitor) | |||
|- | |||
|N02 G00 X20 Z20 || (Rapid move away from the part, to ensure the starting position of the tool) | |||
|- | |||
|N03 G50 S2000 || (Set Maximum spindle speed) | |||
|- | |||
|N04 T03 || (Choose tool #3 from the carousel) | |||
|- | |||
|N05 G96 S854 M42 M03 M08 || (Variable speed cutting, 854 ft/min, High spindle gear, Start spindle CW rotation, Turn the coolant on) | |||
|- | |||
|N06 G00 X1.1 Z1.1 T0303 || (Rapid feed to a point 0.1" from the end of the bar and 0.05" from the side, Use offset values for tool #3) | |||
|- | |||
|N07 M01 || (Optional Stop) | |||
|- | |||
|N08 G01 Z1.0 F.05 || (Feed in horizontally until the tool is standing 1" from the datum) | |||
|- | |||
|N09 X0.0 || (Feed down until the tool is on center - Face the end of the bar) | |||
|- | |||
|N10 G00 Z1.1 || (Rapid feed 0.1" away from the end of the bar) | |||
|- | |||
|N11 X1.0 || (Rapid feed up until the tool is standing at the finished OD) | |||
|- | |||
|N12 G01 Z0.0 || (Feed in horizontally cutting the bar to 1" diameter all the way to the datum) | |||
|- | |||
|N13 G00 X1.1 || (Rapid feed 0.05" away from the surface of the part) | |||
|- | |||
|N14 G00 X20 Z20 || (Rapid feed back out away from the work) | |||
|- | |||
|N15 M05 M09 || (Stop the spindle, Turn off the coolant) | |||
|- | |||
|N16 M215 || (Turn the load monitor off) | |||
|- | |||
|N17 M02 || (End of program) | |||
|} | |||
Several points to note: | |||
# There is room for some programming style, even in this short program. The grouping of codes in line N05 could have been put on multiple lines. Doing so may have made it easier to follow program execution. | |||
# Many codes are "Modal" meaning that they stay in effect until they are cancelled or replaced by a contradictory code. For example, once variable speed cutting had been selected (G97), it stayed in effect until the end of the program. In operation, the spindle speed would increase as the tool neared the center of the work in order to maintain a constant cutting speed. Similarly, once rapid feed was selected (G00) all tool movements would be rapid until a feed rate code (G01, G02, G03) was selected. | |||
# It is common practice to use a load monitor with CNC machinery. The load monitor will stop the machine if the spindle or feed loads exceed a preset value that is set during the set-up operation. The job of the load monitor is to prevent machine damage in the event of tool breakage or a programing mistake. Furthermore, to some extent it can warn of a tool that that is becoming dull and needs to be replaced or sharpened. | |||
# It is common practice to bring the tool in rapidly to a "safe" point that is close to the part - in this case 0.1" away - and then start feeding the tool. How close that "safe" distance is, depends on the skill and comfort level of the programmer. | |||
# If the program is wrong, there is a high probability that the machine will crash! That can be very costly. It is possible to intersperse the program with optional stops (M01 code) which allow the program to be run piecemeal. The optional stops remain in the program but they are skipped during the normal running of the machine. Thankfully, most CAD/CAM software ships with CNC simulators that will display the movement of the tool as the program executes. Many modern CNC machines also allow programmers to execute the program in a simulation mode and observe the operating parameters of the machine at a particular execution point. This enables programmers to discover semantic errors (as opposed to syntax errors) before losing material or tools to an incorrect program. | |||
==Basic ISO CC Code== | |||
:| | |||
:M03, M04, M05 Spindle CW, Spindle CCW, Spindle Stop | |||
:| | |||
:M08, M09 Coolant/lubricant On, Coolant/lubricant Off | |||
:M02 Program Stop | |||
:M30 Program end, rewind | |||
:M99 Subprogram end | |||
:M00, M01 Program stop, optional stop | |||
:| | |||
:G96, G97 Constant surface speed, Constant Spindle speed | |||
:G50 Maximum spindle speed | |||
:G18, G19 Feed mm pr revolvation, feed mm/min | |||
:G00, G01 rapid movement, Linear Interpolation (cutting in a straight line) | |||
:| | |||
:F Feed | |||
:S Spindle Speed | |||
:| | |||
:direction Coordinats X Y Z A B C | |||
---- | |||
'''Example of a simple CNC lathe program''' | |||
] | |||
:O1234 | |||
:G50 S2000 | |||
:G96 S300 M03 | |||
:G00 T0606 (ROUGHT TURN TOOL) | |||
:G18 X37. Z0. | |||
:G01 X-1. F0.2 | |||
:Z1. | |||
:G00 X30. | |||
:G01 Z-20. | |||
:X33. | |||
:X35. Z-21. | |||
:Z-25. | |||
:X37. | |||
:G00 X150. Z300. | |||
:M01 | |||
:T0101 (18MM DRILL) | |||
:G97 S1000 | |||
:G19 M03 | |||
:X0. Z5. | |||
:G01 Z-25. F100 | |||
:G00 Z5. | |||
:X150. Z300. | |||
:M05 | |||
:M30 | |||
---- | |||
'''Example of a simple CNC milling program''' | |||
A simple example might be a 4" x 2" rectangle. The basic code might read something like: | |||
] | |||
N1X0Y0T01 | |||
N2X0Y2000 | |||
N3X4000Y2000 | |||
N4X4000Y0 | |||
N5X0Y0 | |||
N6M00 | |||
:Line 1 (N1) tells the machine to traverse to grid point X0Y0 and to pick tool #1 | |||
:Line 2 tells the machine to traverse to grid point X0Y2.000 | |||
:Line 3 tells the machine to travel to grid point X4.000Y2.000 | |||
:Line 4 tells the machine to travel to grid point X4.000Y0 | |||
:Line 5 returns the machine to origin | |||
:Line 6 stops the machine | |||
:Note that the program does nothing to define the tool cutting path. If the machine is a router and uses a 1/8" radius cutter, the actual part will end up 1/4" smaller than designed (1/8" per side). To compensate, a G-code command (in this case) may be used to adjust the tool path. | |||
N1G44M0125 | |||
N2X0Y0T01 | |||
N3X0Y2000 | |||
N4X4000Y2000 | |||
N5X4000Y0 | |||
N6X0Y0 | |||
N7M00 | |||
:In this case, the controller sees the first line and adjusts the location of the cutter to .125 (or 1/8") to the outside of the cutting profile. Now the machine will make a part that matches the one designed. Depending on the cutting tool, the compensation can be set as needed. For example, a laser with a very fine beam might have a compensation of .005", while a waterjet with a .060 inside tip diameter may need a compensation of .030. | |||
==See also== | |||
*] | |||
*] | |||
==External links== | |||
* | |||
{{Metalworking - CNC, CAD, and CAM}} | |||
] | |||
] | |||
] | ] | ||
] | ] | ||
] | |||
] |
Latest revision as of 00:15, 17 December 2024
Primary programming language used in CNC For other uses, see G-code (disambiguation) and G programming language (disambiguation). "RS-274" redirects here. For the photoplotter format, see Gerber format.Paradigm | Procedural, imperative |
---|---|
Designed by | Massachusetts Institute of Technology |
Developer | Electronic Industries Association (RS-274), International Organization for Standardization (ISO-6983) |
First appeared | 1963 (1963) (RS-274) |
Filename extensions | .gcode, .mpt, .mpf, .nc and several others |
Major implementations | |
Numerous; mainly Siemens Sinumerik, FANUC, Haas, Heidenhain, Mazak, Okuma |
G-code (also RS-274) is the most widely used computer numerical control (CNC) and 3D printing programming language. It is used mainly in computer-aided manufacturing to control automated machine tools, as well as for 3D-printer slicer applications. The G stands for geometry. G-code has many variants.
G-code instructions are provided to a machine controller (industrial computer) that tells the motors where to move, how fast to move, and what path to follow. The two most common situations are that, within a machine tool such as a lathe or mill, a cutting tool is moved according to these instructions through a toolpath cutting away material to leave only the finished workpiece and/or an unfinished workpiece is precisely positioned in any of up to nine axes around the three dimensions relative to a toolpath and, either or both can move relative to each other. The same concept also extends to noncutting tools such as forming or burnishing tools, photoplotting, additive methods such as 3D printing, and measuring instruments.
History
The first implementation of a numerical control programming language was developed at the MIT Servomechanisms Laboratory in the 1950s. In the decades that followed, many implementations were developed by numerous organizations, both commercial and noncommercial. Elements of G-code had often been used in these implementations. The first standardized version of G-code used in the United States, RS-274, was published in 1963 by the Electronic Industries Alliance (EIA; then known as Electronic Industries Association). In 1974, EIA approved RS-274-C, which merged RS-273 (variable block for positioning and straight cut) and RS-274-B (variable block for contouring and contouring/positioning). A final revision of RS-274 was approved in 1979, as RS-274-D. In other countries, the standard ISO 6983 (finalized in 1982) is often used, but many European countries use other standards. For example, DIN 66025 is used in Germany, and PN-73M-55256 and PN-93/M-55251 were formerly used in Poland.
During the 1970s through 1990s, many CNC machine tool builders attempted to overcome compatibility difficulties by standardizing on machine tool controllers built by Fanuc. Siemens was another market dominator in CNC controls, especially in Europe. In the 2010s, controller differences and incompatibility were mitigated with the widespread adoption of CAD/CAM applications that were capable of outputting machine operations in the appropriate G-code for a specific machine through a software tool called a post-processor (sometimes shortened to just a "post").
Syntax
G-code began as a limited language that lacked constructs such as loops, conditional operators, and programmer-declared variables with natural-word-including names (or the expressions in which to use them). It was unable to encode logic but was just a way to "connect the dots" where the programmer figured out many of the dots' locations longhand. The latest implementations of G-code include macro language capabilities somewhat closer to a high-level programming language. Additionally, all primary manufacturers (e.g., Fanuc, Siemens, Heidenhain) provide access to programmable logic controller (PLC) data, such as axis positioning data and tool data, via variables used by NC programs. These constructs make it easier to develop automation applications.
Extensions and variations
Extensions and variations have been added independently by control manufacturers and machine tool manufacturers, and operators of a specific controller must be aware of the differences between each manufacturer's product.
One standardized version of G-code, known as BCL (Binary Cutter Language), is used only on very few machines. Developed at MIT, BCL was developed to control CNC machines in terms of straight lines and arcs.
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 Okuma's Advanced One Touch (AOT), Southwestern Industries' ProtoTRAK, Mazak's Mazatrol, Hurco's Ultimax and Winmax, Haas' Intuitive Programming System (IPS), and Mori Seiki's CAPS conversational software.
See also
References
- Karlo Apro (2008). Secrets of 5-Axis Machining. Industrial Press Inc. ISBN 0-8311-3375-9.
- Xu, Xun (2009). Integrating Advanced Computer-aided Design, Manufacturing, and Numerical Control: Principles and Implementations. Information Science Reference. p. 166. ISBN 978-1-59904-716-4 – via Google Books.
- Harik, Ramy; Thorsten Wuest (2019). Introduction to Advanced Manufacturing. SAE International. p. 116. ISBN 978-0-7680-9096-3 – via Google Books.
- Evans, John M. Jr. (1976). National Bureau of Standards Information Report (NBSIR) 76-1094 (R): Standards for Computer Aided Manufacturing (PDF). National Bureau of Standards. p. 43.
- Schenck, John P. (January 1, 1998). "Understanding common CNC protocols". Wood & Wood Products. 103 (1). Vance Publishing: 43 – via Gale.
- EIA Standard RS-274-D Interchangeable Variable Block Data Format for Positioning, Contouring, and Contouring/Positioning Numerically Controlled Machines, Washington D.C.: Electronic Industries Association, February 1979
- Stark, J.; V. K. Nguyen (2009). "STEP-compliant CNC Systems, Present and Future Directions". In Xu, Xun; Andrew Yeh Ching Nee (eds.). Advanced Design and Manufacturing Based on STEP. Springer London. p. 216. ISBN 978-1-84882-739-4 – via Google Books.
- "Fanuc macro system variables". Archived from the original on 2014-05-03. Retrieved 2014-06-30.
- Martin., Libicki (1995). Information Technology Standards: Quest for the Common Byte. Burlington: Elsevier Science. p. 321. ISBN 978-1-4832-9248-9. OCLC 895436474.
Bibliography
- Oberg, Erik; Jones, Franklin D.; Horton, Holbrook L.; Ryffel, Henry H. (1996), Green, Robert E.; McCauley, Christopher J. (eds.), Machinery's Handbook (25th ed.), New York: Industrial Press, ISBN 978-0-8311-2575-2, OCLC 473691581.
- Smid, Peter (2008), CNC Programming Handbook (3rd ed.), New York: Industrial Press, ISBN 9780831133474, LCCN 2007045901.
- Smid, Peter (2010), CNC Control Setup for Milling and Turning, New York: Industrial Press, ISBN 978-0831133504, LCCN 2010007023.
- Smid, Peter (2004), Fanuc CNC Custom Macros, Industrial Press, ISBN 978-0-8311-3157-9.
External links
- CNC G-Code and M-Code Programming
- Kramer, T. R.; Proctor, F. M.; Messina, E. R. (1 Aug 2000), "The NIST RS274NGC Interpreter – Version 3", NIST, NISTIR 6556
- http://museum.mit.edu/150/86 Archived 2016-03-19 at the Wayback Machine Has several links (including history of MIT Servo Lab)
- Complete list of G-code used by most 3D printers at reprap.org
- Fanuc and Haas G-code Reference
- Fanuc and Haas G-code Tutorial
- Haas Milling Manual
- G Code For Lathe & Milling
- M Code for Lathe & Milling