585,715 active members*
3,870 visitors online*
Register for free
Login
Results 1 to 10 of 10
  1. #1
    Join Date
    Mar 2004
    Posts
    18

    History of G code

    I am teaching my class how to use these forums for learning.

    So, we have a question:

    Where did the G and M codes originate?

    Thanks!
    Andrew J. Jones
    Lonestar College-Cyfair

  2. #2
    Join Date
    Apr 2005
    Posts
    1778
    Quote Originally Posted by SurfRunner View Post
    I am teaching my class how to use these forums for learning.

    So, we have a question:

    Where did the G and M codes originate?

    Thanks!
    I found this on wikipedia. http://en.wikipedia.org/wiki/G-code

    G-code is a common name for the programming language that controls NC and CNC machine tools. Developed by the Electronic Industries Alliance in the early 1960s, a final revision was approved in February 1980 as RS274D.

    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 contoller must be aware of differences of each manufacturers' product. When initially introduced, CAM systems were limited in the configurations of tools supported.

    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 standard, and has been slow at adding new features and exploiting the increase in 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 (non-uniform, rational B-spline) to overcome slow fetching of blocks from memory (instead of caching).
    Alan

  3. #3
    Join Date
    Apr 2005
    Posts
    3634
    Quote Originally Posted by SurfRunner View Post
    I am teaching my class how to use these forums for learning.

    So, we have a question:

    Where did the G and M codes originate?

    Thanks!
    Gerber Scientific Instruments, created the g-code file format.
    http://www.gerberscientific.com/


    .

  4. #4
    Join Date
    Feb 2007
    Posts
    9
    Here is a good link; http://www.linuxcnc.org/handbook/gcode/g-code.html


    RS-274D is the recommended standard for numerically controlled machines developed by the Electronic Industry Association in the early 1960's. The RS-274D revision was approved in February, 1980. These standards provide a basis for the writing of numeric control programs.

    There are a number of historical sidelights to this standard, many having to do with the original use of punched paper tape as the only data interchange medium. The 64-character EIA-244 paper tape standard is now (thankfully) obsolete, and ASCII character bit patterns are now the standard representation. This old tape standard had specific characters used for 'searching' for specific lines (program blocks) on the tape, 'rewinding' the tape, etc. Ocasionally this obsolete language is still used when referring to some cnc control tasks.

    The full NIST Enhanced Machine Controller is nc programmed using a variant of the RS274D language to control motion and I/O. This variant is called RS276NGC because it was developed for the Next Generation Controller, a project of the National Center for Manufacturing Science. The version of RS274 used by EMC adheres closely to the publications of the NCMS wherever those publications produce an unambiguous set. In some cases reference to other implementations of RS274 had to be made by NIST.

  5. #5
    Join Date
    Jun 2006
    Posts
    22
    Thank you men!

  6. #6
    Join Date
    Feb 2004
    Posts
    21
    Interesting-I came here after reading the wikipedia page on numerical control, Numerical control - Wikipedia, the free encyclopedia ,which states "One such standard has since become very common, the "G-code" that was originally used on Gerber Scientific plotters and then adapted for CNC use.

    That page has a link to URL="http://en.wikipedia.org/wiki/Gerber_Scientific"]http://en.wikipedia.org/wiki/Gerber_Scientific[/URL], which makes no mention of G-code.

    The Wikipedia G-Code page, G-code - Wikipedia, the free encyclopedia,makes no mention of Gerber, except to list "Gerber File" as a similar topic. This page says G-Code was designed by MIT.

    The "Gerber File" page, Gerber format - Wikipedia, the free encyclopedia, says "The Gerber format is a file format used by printed circuit board (PCB) industry software.......There are two versions. RS-274X ("extended Gerber") is the most commonly used today. The previous version was a subset of EIA RS-274-D ("standard Gerber"); it is deprecated and is largely superseded by RS-274X.
    The Gerber format was developed by Gerber Systems Corp.........The RS-274X Gerber format, also known as extended Gerber or X-Gerber, is a 2D bi-level vector image description format.[4] It is a superset of RS-274-D standard Gerber, which is itself a subset of the EIA RS-274-D format for numerically controlled machines."

    Switcher's post above says, "Gerber Scientific Instruments, created the g-code file format. Gerber Scientific, Inc.", but the Gerber Scientific link makes no mention of G-code, either, as far as I can find.

    The linuxcnc link referenced by plaqn B(above) is dead, and I can't find any info on who invented G-Code on the linuxcnc site.


    S...who invented G-Code?
    Andy

  7. #7
    Join Date
    Jun 2007
    Posts
    92
    G-code came out of the computer graphics industry (Gerber - the origin, Calcomp, Bendix Computer Graphics, AutoTrol for example) and was only intended for drafting plotters which are strictly X-Y machines (I'm an old Bendix CG engineer). It is loaded with hair-pulling anomolies because it wasn't intended for complicated 3- and 5-axis machining applications, the limitation of memory storage (typically less than 100 kilobytes!) and as it was adopted as "universal" by the machine control industry it became a designed-by-committee monster. It's amazing that it's still around but it works in spite of it's shortcomings. It's only because of the application of post-processors and machine specific code that it keeps going in the space age.
    I know that's more than your students need to know but it is interesting.
    rampit

  8. #8
    Join Date
    Dec 2003
    Posts
    24220
    I submit all my P.CCT files to my board maker in Gerber format, essentially just X,Y co-ordinates & drill files.
    Assuming the the G comes from Gerber, the M part is for general (M)achine control or Miscellaneous functions.
    Then of course there is also S & T commands passed over with the M functions.
    Al.
    CNC, Mechatronics Integration and Custom Machine Design

    “Logic will get you from A to B. Imagination will take you everywhere.”
    Albert E.

  9. #9
    Join Date
    May 2004
    Posts
    4519
    So, now to look at the big picture. While knowing some of the history of G-code can be interesting, it is also quite trivial and probably will have no effect on the quality of ones machining or programming skills.

  10. #10
    Join Date
    Sep 2008
    Posts
    229
    Quote Originally Posted by awander View Post
    The linuxcnc link referenced by plaqn B(above) is dead, and I can't find any info on who invented G-Code on the linuxcnc site.
    The Wayback Machine still has it: G Code Basics

    LinuxCNC uses it's own dialect of G-code which was developed by NIST and they termed RS274NGC. I think the main change was introducing the O-word control structures (conditional looping).

    G-code is horribly limited by the use of single-letter keywords, there can be only 26 commands and axes in total.

    There are alternatives such as Step-NC
    STEP-NC - Wikipedia, the free encyclopedia

    Apt360 was a rather old attempt, and might still have its day:
    LinuxCNC Documentation Wiki: AptProgrammingForEMC

    It has been proposed that you could program parts in Python or other high-level languages and link directly to machine movement commands simply by swapping the G-code parser for something else.

    import cam
    move(X=10, Y=20)
    feed(X=30, Y=20, feed=100)
    toolchange(tool=3, offset = 5)

    for example. This could be much more readily extensible.

Similar Threads

  1. SpaceShipOne Makes History:
    By cncadmin in forum Community Club House
    Replies: 8
    Last Post: 04-21-2008, 02:59 PM
  2. A Brief History Of Global Climate Change
    By Geof in forum Environmental / Alternate Energy
    Replies: 36
    Last Post: 04-21-2008, 01:07 PM
  3. Keystroke History Help?
    By Jclem2 in forum CNC (Mill / Lathe) Control Software (NC)
    Replies: 1
    Last Post: 11-10-2006, 08:22 PM
  4. History
    By jam1n in forum Community Club House
    Replies: 0
    Last Post: 02-22-2006, 09:09 PM
  5. Haas Rotary History
    By ARB in forum Haas Mills
    Replies: 4
    Last Post: 01-13-2005, 08:02 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •