1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
|
/**********************************************************************
*************************** G_Code.h *******************************
**********************************************************************
*
* Company: Bits From Bytes Ltd
*
* Software License Agreement
*
* Copyright (C) 2009 Bits From Bytes Ltd. All rights reserved.
*
* Bits From Bytes Ltd licenses to you the right to use, modify,
* copy, and distribute this software under the
* Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported
* licence (see
* CreativeCommons-by-nc-sa-3.0-summary.pdf which is a copy of the
* text at http://creativecommons.org/licenses/by-nc-sa/3.0/ for a
* summary and CreativeCommons-by-nc-sa-3.0.pdf which is a copy of the
* text at http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode
* for the full legal text).
*
* You should refer to the license agreement (Bits From Bytes Ltd Software
* Licence.pdf) accompanying this Software for additional information
* regarding your rights and obligations.
*
* THE SOFTWARE AND DOCUMENTATION ARE PROVIDED "AS IS" WITHOUT
* WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT
* LIMITATION, ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A
* PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL
* BITS FROM BYTES LTD BE LIABLE FOR ANY INCIDENTAL, SPECIAL, INDIRECT
* OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF
* PROCUREMENT OF SUBSTITUTE GOODS, TECHNOLOGY OR SERVICES, ANY CLAIMS
* BY THIRD PARTIES (INCLUDING BUT NOT LIMITED TO ANY DEFENSE
* THEREOF), ANY CLAIMS FOR INDEMNITY OR CONTRIBUTION, OR OTHER
* SIMILAR COSTS, WHETHER ASSERTED ON THE BASIS OF CONTRACT, TORT
* (INCLUDING NEGLIGENCE), BREACH OF WARRANTY, OR OTHERWISE.
*
*
* Author(s) Date Comment
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Tony Fletcher (& Ian Adkins) 16/11/2009 Initial Release
***********************************************************************/
//List of G-Codes.
//See G_Code.c for list of the ones implemented
/*
RS274NGC G-CODE PROGRAMMING
G and M Code Modal Groups
group 1 = {G0, G1, G2, G3, G80, G81, G82, G83, G84, G85, G86, G87, G88, G89} - motion
group 2 = {G17, G18, G19} - plane selection
group 3 = {G90, G91} - distance mode
group 5 = {G93, G94} - spindle speed mode
group 6 = {G20, G21} - units
group 7 = {G40, G41, G42} - cutter diameter compensation
group 8 = {G43, G49} - tool length offset
group 10 = {G98, G99} - return mode in canned cycles
group12 = {G54, G55, G56, G57, G58, G59, G59.1, G59.2, G59.3} coordinate system selection
group 2 = {M26, M27} - axis clamping
group 4 = {M0, M1, M2, M30, M60} - stopping
group 6 = {M6} - tool change
group 7 = {M3, M4, M5} - spindle turning
group 8 = {M7, M8, M9} - coolant
group 9 = {M48, M49} - feed and speed override bypass
Words acceptable to the interpreter
No D Tool radius compensation number
Yes F Feedrate
Yes G General function see list below
No H Tool length offset
No I X-axis offset for arcs
No J Y-axis offset for arcs
No K Z-axis offset for arcs
No L Number of repetitions in canned cycles
Yes M Miscellanious function
No N Line Number
Yes P Dwell time in G4 and canned cycles
No Q Feed increment in G83 canned cycle
Key used with G10
No R arc radius
Yes S canned cycle plane
No T Tool selection
Yes X X-axis of machine
Yes Y Y-axis of machine
Yes Z Z-axis of machine
*/
/*
Yes G00 rapid positioning
Yes G01 linear interpolation
No G02 circular/helical interpolation (clockwise)
No G03 circular/helical interpolation (c-clockwise)
Yes G04 dwell
Yes G10 coordinate system origin setting
No G17 xy plane selection
No G18 xz plane selection
No G19 yz plane selection
Yes G20 inch system selection
Yes G21 millimeter system selection
No G40 cancel cutter diameter compensation
No G41 start cutter diameter compensation left
No G42 start cutter diameter compensation right
No G43 tool length offset (plus)
No G49 cancel tool length offset
No G53 motion in machine coordinate system
G54 use preset work coordinate system 1
G55 use preset work coordinate system 2
G56 use preset work coordinate system 3
G57 use preset work coordinate system 4
G58 use preset work coordinate system 5
G59 use preset work coordinate system 6
G59.1 use preset work coordinate system 7
G59.2 use preset work coordinate system 8
G59.3 use preset work coordinate system 9
G80 cancel motion mode (includes canned)
G81 drilling canned cycle
G82 drilling with dwell canned cycle
G83 chip-breaking drilling canned cycle
G84 right hand tapping canned cycle
G85 boring, no dwell, feed out canned cycle
G86 boring, spindle stop, rapid out canned
G87 back boring canned cycle
G88 boring, spindle stop, manual out canned
G89 boring, dwell, feed out canned cycle
Yes G90 absolute distance mode
Yes G91 incremental distance mode
Yes G92 offset coordinate systems
G92.2 cancel offset coordinate systems
G93 inverse time feed mode
G94 feed per minute mode
G98 initial level return in canned cycles
M0 program stop
M1 optional program stop
M2 program end
M3 turn spindle clockwise
M4 turn spindle counterclockwise
M5 stop spindle turning
M6 tool change
M7 mist coolant on
M8 flood coolant on
M9 mist and flood coolant off
M26 enable automatic b-axis clamping
M27 disable automatic b-axis clamping
M30 program end, pallet shuttle, and reset
M48 enable speed and feed overrides
M49 disable speed and feed overrides
M60 pallet shuttle and program stop
RepRap special codes
GCode generated by March 29,2007 Skeinforge
M100 P210 Set extruder speed to 210.0
M103 Turn extruder off.
M101 Turn extruder on.
M104 P145.0 Set temperature to 145.0 C.
M105 Custom code for temperature reading.
M106 Turn fan on.
M107 Turn fan off.
M108 P0.8 Set extrusion diameter to 0.8 mm.
**********************
BFB codes
**********************
M220 Turn off AUX
M221 Turn on AUX
M222 Set speed of fast XY moves
M223 Set speed of fast Z moves
M224
M225
**********************
*/
extern char ToolType; //1 Pen, 2 Extruder1 , 3 Extruder2, 4 Not Defined, 5 Router, 0 No Tool fitted
extern long SetTemperature; //value for extruder
extern int temperature_OK;
extern int RPM_Setting; //value for extruder
extern int SBR, SBW; //Buffer pointers
extern int Ex_Reverse;
extern int Reverse_Steps;
extern int Prime_Steps;
char Change_M104;
char FeedRate_ManualChange;
char FastMoveMotorEnable;//Flag to switch motor on/off during fast move
/*****************************************************************************/
/* External Functions */
/*****************************************************************************/
extern void G_CodeRun(char GC_L, int iGC_N, char GC_1L, float fGC_1, char GC_2L,
float fGC_2, char GC_3L, float fGC_3, char GC_4L,float fGC_4);
extern void M_Code_M104(void); //enable external tremperature control
|