Content deleted Content added
Citation bot (talk | contribs) Alter: url. URLs might have been anonymized. Add: journal. Removed parameters. Some additions/deletions were parameter name changes. | Use this bot. Report bugs. | #UCB_CommandLine |
m cite repair; |
||
Line 27:
== 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.<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={{Format ISBN|9781599047164}} | 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={{Format ISBN|9780768090963}} | via=Google Books}}</ref> The first [[Technical standard|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).<ref>{{cite book | last=Evans | first=John M.
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 are not as troublesome because machining operations are usually developed with CAD/CAM applications that can output the appropriate G-code for a specific machine through a software tool called a post-processor (sometimes shortened to just a "post").
Line 33:
== Syntax ==
G-code began as a limited language that lacked constructs such as loops, conditional operators, and programmer-declared variables with [[Natural language|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,<ref>{{cite web
== Extensions and variations ==
Line 39:
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
Some CNC machines use "conversational" programming, which is a [[wizard (software)|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.
Line 56:
* {{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={{Format ISBN|978-0831131579}} |postscript=.}}
== External links ==
|