Content deleted Content added
Thumperward (talk | contribs) |
|||
(41 intermediate revisions by 15 users not shown) | |||
Line 1:
{{WikiProject
{{WikiProject Metalworking|importance=Mid}}
}}
==Someone deleted important information!==
Please restore: The section "List of G-codes commonly found on FANUC and similarly designed controls for milling and turning" as well as the section "Letter addresses", and "specific codes", and the "example program". They were deleted around July to August of 2023. The article is next to useless without the substance of example G, and M codes. Those sections make the article much more educational. Keep in mind machining is a technical trade, You can only dumb it down so much before you are saying nothing. <!-- Template:Unsigned IP --><small class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/98.127.21.16|98.127.21.16]] ([[User talk:98.127.21.16#top|talk]]) 02:11, 29 January 2024 (UTC)</small> <!--Autosigned by SineBot-->
:There could have been a more gentle way to redirect or explain common commands and such, but the editor did make a valid point, wikipedia is not a textbook/instruction book nor cheatsheet:
:https://en.wikipedia.org/w/index.php?title=G-code&oldid=1168186120 is the particular edit you refer to.
:you can still see the commands in the old page: https://en.wikipedia.org/w/index.php?title=G-code&oldid=1166786829#List_of_G-codes_commonly_found_on_FANUC_and_similarly_designed_controls_for_milling_and_turning or source the original book. (for the 27th edition, page 1272, pdf page 1593) its the first book in the bibliography section.
:Tons of other resources seem to be dead, or unreachable from europe, this wiki page is very outdated and a mess anyway [[User:CodeAsm|CodeAsm]] ([[User talk:CodeAsm|talk]]) 13:41, 25 November 2024 (UTC)
==Typo?==
Can someone fix this "a post"? I'm not sure exactly what they mean:
"that can output the appropriate G-code called a post for a specific machine tool." <!-- Template:Unsigned IP --><small class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/98.23.52.216|98.23.52.216]] ([[User talk:98.23.52.216#top|talk]]) 23:09, 3 January 2019 (UTC)</small> <!--Autosigned by SineBot-->
==Gerber==
Line 60 ⟶ 73:
::: I am just learning G-code, but it seems that the sample code is machining a cylinder of 1 inch radius, not diameter. GerhardRP <span style="font-size: smaller;" class="autosigned">—Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/129.236.254.107|129.236.254.107]] ([[User talk:129.236.254.107|talk]]) 16:41, 25 February 2011 (UTC)</span><!-- Template:UnsignedIP --> <!--Autosigned by SineBot-->
:::: Ah, good eye. The program is correct, but there's something to be explained in order to interpret it that way. On most CNC lathes/turning centers, the X-axis is interpreted to mean diameter rather than radius. The machine takes care of dividing by 2. So in line N07, where you see X1.1, the tool is actually moving to 0.550" above centerline. So the tool is 50 thou (''not'' 100 thou) above the intended finished surface. Which means that, if the bar is starting as 1-1/16 bar stock (1.0625), the tool is only 18 thou above the bar surface. The purpose of programming in terms of diameter instead of radius is to make it easier/more intuitive for the human. (The machine cares not for your puny human mental crutches.) This goes back even before CNC; among manual lathes, some have "diameter-reading" cross-slide dial graduations, and some have "radius-reading" dial graduations. (People throw around the term "direct-reading", but I don't like that term, because the hearer might hear "direct" in the sense that one thou on the dial equals one thou of slide linear distance [radius], or in the sense that you can think in terms of diameter, "directly" from dial to diameter. Better just to explicitly say which one you mean.) One might argue that diameter-reading introduces the complication that the human may *forget* that his .100" is actually only 0.50" above intended finish. But in general, two counterpoints: (1) Doing lathe work, especially manually, you grow accustomed to reflexively qualifying your thoughts with a conscientious "*per side*" and "*on diameter*" tacked onto the end of a number/distance-to-go thought; and (2) no matter which way you do it, there are some pros and some cons. <s>Most</s> <u>Many</u> machinists feel that diameter-reading is more desirable overall, and thus it's what CNCs are usually parameterized for. — [[User:Three-quarter-ten|¾-10]] 15:32, 26 February 2011 (UTC)
::::: Umm, the comment above is entirely wrong. He cannot say MOST machinists because a hell of a lot of us do NOT do not agree with this. The whole radius vs diameter programming fight has been going on for decades. A lot of us like to program with the real numbers, the opposite of what 3/4/10 says above.
::::: But I amn't gonna bother changing the program cuz it don't matter to me, this is just wikipedia, not a real part [[Special:Contributions/116.231.75.122|116.231.75.122]] ([[User talk:116.231.75.122|talk]]) 12:52, 23 March 2017 (UTC)
{{outdent}} Bullshit that it's "entirely wrong". The only single word of the whole paragraph that you consider wrong is that "most" could be changed to "many" to avoid quantifying. I fixed that single word. — [[User:Three-quarter-ten|¾-10]] 00:49, 12 July 2017 (UTC)
==G96==
Line 161 ⟶ 176:
:: OK, thanks. [[User:Gwideman|Gwideman]] ([[User talk:Gwideman|talk]]) 01:50, 8 March 2014 (UTC)
: Relevant discussion here: https://www.reddit.com/r/hobbycnc/comments/hdryki/what_does_the_g_in_gcode_stand_for/ /u/richcournoyer suggests that it may have to do with [[APT (programming language)]] predating G-Code and using the GO command. Other users in the thread refer to these documents https://www.americanmicroinc.com/difference-g-code-m-code.html#:%7E:text=What%20Is%20CNC%20G%20Code,the%20parts%20what%20to%20do. https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=823374 and say that it stands for "Geometric". --[[User:Kenblu24|Kenblu24]] ([[User talk:Kenblu24|talk]]) 15:42, 22 June 2020 (UTC)
== .gcode file? ==
where is that? the 3d file? [[User:RealCyGuy|RealCyGuy]] ([[User talk:RealCyGuy|talk]]) 14:33, 12 July 2018 (UTC)
.gcode is a plaintext format that contains the g-codes listed one after another, it is not a 3D file of an object but rather the toolpath. Some programs can use the toolpath and operation commands to generate a reconstruction of the object based on some assumptions about what the g-code file is written for. --[[Special:Contributions/2003:D6:170C:5A82:BCC3:6C66:317:53BE|2003:D6:170C:5A82:BCC3:6C66:317:53BE]] ([[User talk:2003:D6:170C:5A82:BCC3:6C66:317:53BE|talk]]) 10:31, 6 June 2020 (UTC)
== True origins where? At MIT? Reference needed. ==
The history section states, "The first implementation of a numerical control programming language was developed at the MIT Servomechanisms Laboratory in the late 1950s."
No sources cited.
My casual investigation online finds no reference to the substance of a G-code language originating at MIT. The statement in the article doesn't assert that MIT had anything to do specifically with G-code, just a "first implementation" of something else. Nowhere does the article give the origins of G-code specifically, or why it had the favor of being adopted by anyone other than whoever invented this horror of software engineering. Any other NC or robotics work of that era has plenty of claimants who take credit. Similarly imperfect language projects like FORTRAN or BASIC have their authors credited.
I've spent some hours researching the technical lore online, and all I can find are old hands talking about G-code being first encountered as a quick hack to run the early Gerber drilling machines. Nobody seems to remember where it actually started as a concrete thing.
Sure hope this unsourced assertion is not some MIT pranksters up to WP mischief.
Can we know today who is responsible in history for starting G-code? [[User:Rkinch|Richard J Kinch]] ([[User talk:Rkinch|talk]]) 06:17, 28 March 2019 (UTC)
: "whoever invented this horror of software engineering" — in the 1950s, machines were not software controlled but rather finite state machines. Even in the 1960s and 1970s, instruments and machines were FSMs with fairly simple designs. Test equipment controlled by [[GPIB|HPIB/GPIB]] would shift ASCII digits into a register; a single alpha character would specify a destination for the shift register. It wasn't until the middle 1970s that microprocessors enabled the switch from FSM to software/Turing machine.
: See [[History of numerical control]].
: I cannot find my copy of EIA RS-274, but I think it pointed to MIT for its origins.
: In looking over the early MIT reports, I didn't find a description of MIT's paper tape format, but the reports give some history and fit with my dim memory. The machine tool and APT development reports explain the issues. Some APT flow charts refer to "X-codes". The initial machine tool control tests were for one axis; that was later extended to 3 axes, so X, Y, and Z codes would make sense, and the term X-code would be natural. Feed rates and spindle speeds were also specified to the machine tool. It could easily be that MIT's milling machine did not have any G-code commands because it only did linear interpolation. One could dispense with G0 and G1 distinction by simply changing the feed rate (which was already required).
:: {{cite report |title=Automatic Programming of Numerically Controlled Machine Tools |first=John E. |last=Ward |date=15 January 1960 |url=https://apps.dtic.mil/dtic/tr/fulltext/u2/241754.pdf |publisher=DTIC |id=AD241754 }}
: [[User:Glrx|Glrx]] ([[User talk:Glrx|talk]]) 17:46, 26 April 2019 (UTC)
:: So the trail from EIA RS-274 to X-code to MIT is as follows:
:: RS-274-C, which was approved in April 1974, unified two different EIA standard: RS-273 (Straight Cut) and RS-274 (Contour Cut), both of which had initial publication in January 1963 (see Library of Congress copyright filings).
:: The EIA RS standards, which governed members of the EIA, were essentially copies of earlier AIA National Aerospace Standards: NAS 943 (Straight Cut) and NAS 955 (Contour Cut). NAS 943 was approved in 1960 (as per the AIA Annual Report, available online). The EIA governed Electronics manufacturers, while the AIA governed Aerospace manufacturers.
:: Those standards are predominately based on the two leading Numerically Controlled mills during the APT work: the Giddings & Lewis mill (trademarked as the Numericord) which used a combination of General Electric and Concord Controls controllers. The second system was the Kearney & Trecker mill, which used a Bendix controller. Both machines had detailed papers published at the Eastern Joint Computer Conference in December 1957 (proceedings available online). The Bendix solution used "R-codes" to describe operational modes (essentially G-codes) and another set to describe auxiliary on/off functions (essentially M-codes). The Giddings & Lewis system used "X-codes" which also described operational modes and auxiliary on/off functions. These are the X-codes described in the APT flowcharts. The assertion that these were the two leading NC mills in the mid-50s can be found in <i>Forces of Production</i> by David F. Noble. The same book contains significant content as to why Bendix became the preferred solution during the standardization process, which was driven as a requirement by the US Air Force.
:: The X-codes are better documented in US patent 2963137 "Controls for a typewriter and associated apparatus" (the patent title is somewhat misleading - this is a numerical control patent). The patent assignee is Giddings & Lewis, but the four inventors (McDonough, Susskind, Grossimon, and Lee) were all MIT staff attached to the Servo Lab. Giddings & Lewis poached the entire MIT numerical control staff (with the exception of Susskind) to form Concord Controls at the beginning of 1956. Note that the same team worked on the original MIT NC Mill, which was finalized in 1952. Bendix licensed the two patents that were generated from the 1952 mill. It's unknown if the idea for X-Code occurred while the group was at Concord Controls or while at MIT. They would have been influenced by activities in the field of Automatic Programming occurring on the MIT Whirlwind computer in 1954 (Susskind was on the Whirlwind staff). Two Automatic Programming activities, well-known in Whirlwind circles, were the "CS" and "SS" programs, which both utilized labels that were called "mnemonic alphadecimals", which consisted of a single alphabetic character, followed by up to 3 decimal digits, the same as the X-Code format. (documented in MIT Report R-233, "The MIT Systems of Automatic Coding", C.W. Adams, available online)
:: The Bendix R-codes were encoded on punch tape in their own special block, so there was never an appearance of an alphanumeric code, such as "R00", although the codes were labeled "R" on the part programming sheets (see the 1957 paper). The Giddings & Lewis X-Code, however, appeared exactly as G-Code would later be used. There is no relationship between the operational code numbers between X-Code and the later G-code. It's unknown if the same can be said for the auxiliary functions, as they are deliberately not documented in the 1957 paper, nor the 1956 patent - other than the Program End function which was encoded as "X00", the same as the later "M00". (see the part programming sheet, Figure 5, of the G&L patent).
::[[User:Alvonruff|Alvonruff]] ([[User talk:Alvonruff|talk]]) 15:17, 16 September 2021 (UTC)
==FANUC sources?==
<nowiki>Sources: Smid 2008;<ref name="Smid2008">{{Harvnb|Smid|2008}}.</ref> Smid 2010;<ref name="Smid2010">{{Harvnb|Smid|2010}}.</ref> Green et al. 1996.<ref name="Greenetal1996">{{Harvnb|Green|1996|pp=1162–1226}}.</ref>
</nowiki>
This line appears in the article, but there is no link to the actual publication, there is no title to the publication... and worst, it's not something that can be googled for easily! This needs to be fixed.
== GRBL chapter ==
I miss an article or other description of GRBL in the Wikipedia, so I propose a sub-chapter 'GRBL' under 'implementations'. Okay? --[[User:Edoe|Edoe]] ([[User talk:Edoe|talk]]) 11:02, 14 February 2021 (UTC)
== RfC: Partially Reversing Thumperward's deletions ==
{{divbox|1=grey|3=
{{diff|prev|1168186349|label=1168186349}} - ''«in fact that applies to this whole section»''<br>
{{diff|prev|1168186303|label=1168186303}} - ''«tidy endnotes, rm unreferenced commentary on the general state of CNC»''<br>
{{diff|prev|1168186120|label=1168186120}} - ''«[[WP:NOTMANUAL]]»''
}}
I suggest to ''partially'' amend the above edits (by {{u|Thumperward}}) and partially restore [[Special:permalink/1166786829| August 1, 2023 [1168186120]]] revision of the article.<br/>The edits were justified by [[WP:NOTMANUAL]] policy without specifying exact provision violated, which makes deletion questionable.<br/>
Due to this article's complex subject covered (there are various unwieldy standards and a whole rainbow of G-code implementations)I suggest the following to be done to the following subsections:
{| class="wikitable"
! № !! Subsection !! What to do
|-
|{{anchor|RFC51325_1}} [[#RFC51325_1|#1]] || [[Special:permalink/1166786829#Specific_codes|#Specific codes]] || RESTORE SUMMARY of the subsection entirely
|-
|{{anchor|RFC51325_2}} [[#RFC51325_2|#2]] || [[Special:permalink/1166786829#Specific_codes|#Letter addresses]] || RESTORE table of LETTER prefixes entirely; the table is small and letter prefixes are basically key part of this article; without them this article is useless; they should serve as an introductory overview; replace LINKS to [[WP:ANCHOR]]s to the FANUC codes to Wikibooks article counterparts
|-
|{{anchor|RFC51325_3}} [[#RFC51325_3|#3]] || [[Special:permalink/1166786829#List_of_G-codes_commonly_found_on_FANUC_and_similarly_designed_controls_for_milling_and_turning|#FANUC G-Codes]] || MOVE Entirely to [[:Wikibooks:G-Code]]
|-
|{{anchor|RFC51325_4}} [[#RFC51325_4|#4]] || [[Special:permalink/1166786829#List_of_M-codes_commonly_found_on_FANUC_and_similarly_designed_controls_for_milling_and_turning|#FANUC M-Codes]] || MOVE Entirely to [[:Wikibooks:G-Code]]
|-
|{{anchor|RFC51325_5}} [[#RFC51325_5|#5]] || [[Special:permalink/1166786829#Example_program|#Example program]] || RESTORE EXAMPLE entirely; this neither falls under [[WP:NOTMANUAL]]/'''1.Instruction manuals and cookbooks''', nor Wikipedia would be full without clear examples
|} <span style="font-weight: bold" >[[User:Alexander_Davronov|<span style="color:#a8a8a8;">AXO</span><span style="color:#000">NOV</span>]] [[User talk:Alexander_Davronov|(talk)]] [[Special:Contributions/Alexander_Davronov|⚑]]</span> 11:21, 13 May 2025 (UTC)
: I'm fine with the summary of the "specific codes" section being re-added. The rest is still purely implementational detail which provides no reader value in helping them understand the subject. It is sufficient to say that the language provides opcodes to perform specific functions without having to exhaustively list them. Likewise, I've never encountered a sample program on here beyond hello-world length which can even be followed by an inexpert reader, and a page-long listing with another full page of annotations (none of it sourced of course) is a perfect case of that. Obviously I have no opposition whatsoever to any and all of it being moved to Wikibooks, which accepts reference implementational content like this. [[User:Thumperward|Chris Cunningham (user:thumperward)]] ([[User talk:Thumperward|talk]]) 07:04, 15 May 2025 (UTC)
::The long listings of codes are actually FANUC-related. Opcodes details from any manufacturer should be kept out of scope of this article and moved elsewhere. <span style="font-weight: bold" >[[User:Alexander_Davronov|<span style="color:#a8a8a8;">AXO</span><span style="color:#000">NOV</span>]] [[User talk:Alexander_Davronov|(talk)]] [[Special:Contributions/Alexander_Davronov|⚑]]</span> 08:01, 15 May 2025 (UTC)
::: That doesn't matter. What individual opcodes do is not relevant to understanding the subject matter: it is solely relevant to operating it. I'm loathe to point at other programming language articles (wikipedia being subject to rapid change, article quality wildly fluctuating across both space and time, etc) but an exhaustive list of keywords is not a feature of any high-quality counterpart to this article. [[User:Thumperward|Chris Cunningham (user:thumperward)]] ([[User talk:Thumperward|talk]]) 23:03, 15 May 2025 (UTC)
|