|
From: <ray...@us...> - 2003-07-18 18:54:16
|
Update of /cvsroot/emc/documents/lyx
In directory sc8-pr-cvs1:/tmp/cvs-serv31392
Modified Files:
User_Gcode_Basics.lyx User_Gcode_Coordinates.lyx
User_Linux.lyx User_Whatis_EMC.lyx
Log Message:
various updates
Index: User_Gcode_Basics.lyx
===================================================================
RCS file: /cvsroot/emc/documents/lyx/User_Gcode_Basics.lyx,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** User_Gcode_Basics.lyx 5 Jul 2003 01:44:29 -0000 1.1
--- User_Gcode_Basics.lyx 18 Jul 2003 18:46:07 -0000 1.2
***************
*** 27,30 ****
--- 27,53 ----
G Code Basics
+ \layout Section
+
+ Introduction
+ \layout Standard
+
+ RS274 is commonly referred to as G-code.
+ G-code was developed so that people who were accustomed to turning the
+ handles of machine tools to make cuts could tell a motor to do the turning
+ for them.
+ If you've ever tried to cut a diagonal or an arc on a manual machine you
+ will appreciate the coordination that G-code can give you.
+ \layout Standard
+
+ Stories have it that before G-code, coordinated motion was either done by
+ gearing the two axes together like you might do with a lathe for smooth
+ turning or facing or it was done by having a person shout out the next
+ position to two or more operators who would then turn the handles.
+ This sounds a bit like the crew chief shouting stroke, stroke, stroke for
+ the crew of a rowboat.
+ Early milling of some propellers was done this way.
+ \layout Subsection
+
+ RS274D
\layout Standard
***************
*** 46,49 ****
--- 69,75 ----
cnc control tasks.
+ \layout Subsubsection
+
+ RS274NGC
\layout Standard
***************
*** 174,178 ****
within a block of nc program just yet.
These will become clear as you work your way through the definitions of
! the permissible words listed in the next unit.
\layout Standard
--- 200,204 ----
within a block of nc program just yet.
These will become clear as you work your way through the definitions of
! the permissible words listed.
\layout Standard
***************
*** 237,241 ****
In this chapter all examples will use explicit numbers.
Expressions and unary operations are treated in the computation chapter.
! The use of parameter values or variables are a described in detail in the
Using Variables chapter.
--- 263,267 ----
In this chapter all examples will use explicit numbers.
Expressions and unary operations are treated in the computation chapter.
! The use of parameter values or variables are described in detail in the
Using Variables chapter.
***************
*** 305,309 ****
the chapter on canned cycles.
\layout Standard
!
\begin_inset Tabular
--- 331,335 ----
the chapter on canned cycles.
\layout Standard
! \align center
\begin_inset Tabular
***************
*** 753,757 ****
\layout Standard
!
Table 2 Words acceptable to the EMC interpreter
\layout Section
--- 779,783 ----
\layout Standard
! \align center
Table 2 Words acceptable to the EMC interpreter
\layout Section
***************
*** 813,817 ****
X, Y, and Z words will be accepted, as will A, B, and C.
\layout Standard
!
\begin_inset Tabular
--- 839,843 ----
X, Y, and Z words will be accepted, as will A, B, and C.
\layout Standard
! \align center
\begin_inset Tabular
***************
*** 988,992 ****
\layout Standard
!
Table 3 Definition of Common Axes
\layout Section
--- 1014,1018 ----
\layout Standard
! \align center
Table 3 Definition of Common Axes
\layout Section
***************
*** 1008,1012 ****
Table 4 lists the currently available g words.
\layout Standard
!
\begin_inset Tabular
--- 1034,1038 ----
Table 4 lists the currently available g words.
\layout Standard
! \align center
\begin_inset Tabular
***************
*** 1811,1815 ****
\layout Standard
!
Table 4 G Code List
\layout Standard
--- 1837,1841 ----
\layout Standard
! \align center
Table 4 G Code List
\layout Standard
***************
*** 1989,1995 ****
by the P number.
It is an error if the P number is negative.
! \layout Comment
! G10 Description here..
\layout Subsection*
--- 2015,2048 ----
by the P number.
It is an error if the P number is negative.
! \layout Standard
!
! \begin_inset LatexCommand \index{G10}
!
! \end_inset
!
! To set the coordinate values for the origin of a coordinate system, program
! G10 L2 P - X- Y- Z- A- B- C-, where the P number must evaluate to an integer
! in the range 1 to 9 (corresponding to G54 to G59.3) and all axis words are
! optional.
! The coordinates of the origin of the coordinate system specified by the
! P number are reset to the coordinate values given (in terms of the absolute
! coordinate system).
! Only those coordinates for which an axis word is included on the line will
! be reset.
!
! \layout Standard
!
! The coordinate system whose origin is set by a G10 command may be active
! or inactive at the time the G10 is executed.
!
! \layout Standard
!
! Example: G10 L2 P1 x 3.5 y 17.2 sets the origin of the first coordinate system
! (the one selected by G54) to a point where X is 3.5 and Y is 17.2 (in absolute
! coordinates).
! The Z coordinate of the origin (and the coordinates for any rotational
! axes) are whatever those coordinates of the origin were before the line
! was executed.
\layout Subsection*
***************
*** 2040,2200 ****
\layout Subsection*
- Fixture Offsets (G54-G59.3)
- \layout Standard
! Fixture offset are used to make a part home that is different from the absolute,
! machine coordinate system.
! This allows the part programmer to set up home positions for multiple parts.
! A typical operation that uses fixture offsets would be to mill multiple
! copies of parts on "islands" in a piece, similar to the figure below: [gcode/im
! ages/offset.jpg]
! \layout Standard
!
!
! \begin_inset Figure size 360 161
! file /usr/share/lyx/EMC_images/offsets.eps
! width 2 5
! flags 9
\end_inset
! \layout Standard
!
! To use fixture offsets, the values of the desired home positions must be
! stored in the control, prior to running a program that uses them.
! Once there are values assigned, a call to G54, for instance, would add
! 2 to all X values in a program.
! A call to G58 would add 2 to X values and -2 to Y values in this example.
! \layout Standard
!
!
! \begin_inset LatexCommand \index{G53}
\end_inset
! G53 is used to cancel out fixture offsets.
! So, calling G53 and then G0 X0 Y0 would send the machine back to the actual
! coordinates of X=0, Y=0.
\layout Standard
- \pextra_type 2 \pextra_alignment 0 \pextra_widthp 100
! G53\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! motion in machine coordinate system
\layout Standard
- \pextra_type 2 \pextra_alignment 0 \pextra_widthp 100
! \begin_inset LatexCommand \index{G54}
!
! \end_inset
!
! G54\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! use preset work coordinate system 1
\layout Standard
- \pextra_type 2 \pextra_alignment 0 \pextra_widthp 100
-
! \begin_inset LatexCommand \index{G55}
!
! \end_inset
! G55\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! use preset work coordinate system 2
\layout Standard
- \pextra_type 2 \pextra_alignment 0 \pextra_widthp 100
-
-
- \begin_inset LatexCommand \index{G56}
-
- \end_inset
! G56\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! use preset work coordinate system 3
! \layout Standard
! \pextra_type 2 \pextra_alignment 0 \pextra_widthp 100
! \begin_inset LatexCommand \index{G57}
\end_inset
- G57\SpecialChar ~
- \SpecialChar ~
- \SpecialChar ~
- \SpecialChar ~
- \SpecialChar ~
- use preset work coordinate system 4
- \layout Standard
- \pextra_type 2 \pextra_alignment 0 \pextra_widthp 100
-
! \begin_inset LatexCommand \index{G58}
\end_inset
- G58\SpecialChar ~
- \SpecialChar ~
- \SpecialChar ~
- \SpecialChar ~
- \SpecialChar ~
- use preset work coordinate system 5
- \layout Standard
- \pextra_type 2 \pextra_alignment 0 \pextra_widthp 100
-
! \begin_inset LatexCommand \index{G59}
\end_inset
! G59\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! use preset work coordinate system 6
\layout Standard
- \pextra_type 2 \pextra_alignment 0 \pextra_widthp 100
! G59.1\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! use preset work coordinate system 7
! \layout Standard
! \pextra_type 2 \pextra_alignment 0 \pextra_widthp 100
! G59.2\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! use preset work coordinate system 8
\layout Standard
- \pextra_type 2 \pextra_alignment 0 \pextra_widthp 100
! G59.3\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! use preset work coordinate system 9
\layout Subsection*
Canned Cycles/Drill Subroutines (G80-G89)
! \layout Comment
! Look here for a complete reference.
\layout Subsection*
--- 2093,2192 ----
\layout Subsection*
! \begin_inset LatexCommand \index{G28}
\end_inset
! \begin_inset LatexCommand \index{G30}
\end_inset
! Return to Home - G28 and G30
\layout Standard
! Two home positions are defined (by parameters 5161-5166 for G28 and parameters
! 5181-5186 for G30).
! The parameter values are in terms of the absolute coordinate system, but
! are in unspecified length units.
!
\layout Standard
+ To return to home position by way of the programmed position, program G28
+ X- Y- Z- A- B- C- (or use G30).
+ All axis words are optional.
+ The path is made by a traverse move from the current position to the programmed
+ position, followed by a traverse move to the home position.
+ If no axis words are programmed, the intermediate point is the current
+ point, so only one move is made.
+ \layout Subsection*
! Tool Length Compensation - G43 and G49
\layout Standard
! Are covered in detail in the chapter on tool compensation.
! \layout Subsection*
! Cutter Radius Compensation - G40, G41, and G42
\layout Standard
! These are also covered in detail in the chapter on tool compensation.
! \layout Subsection*
! \begin_inset LatexCommand \index{G61}
\end_inset
! \begin_inset LatexCommand \index{G61.1}
\end_inset
! \begin_inset LatexCommand \index{G64}
\end_inset
! Set Path Control Mode - G61, G61.1, and G64
\layout Standard
! Program G61 to put the machining center into exact path mode, G61.1 for exact
! stop mode, or G64 for continuous mode.
! It is OK to program for the mode that is already active.
!
! \layout Quotation
! The machining center may be put into any one of three path control modes:
! (1) exact stop mode, (2) exact path mode, or (3) continuous mode.
! In exact stop mode, the machine stops briefly at the end of each programmed
! move.
! In exact path mode, the machine follows the programmed path as exactly
! as possible, slowing or stopping if necessary at sharp corners of the path.
! In continuous mode, sharp corners of the path may be rounded slightly so
! that the feed rate may be kept up.
! See Section 3.5.14 and Section 4.3.5.3
! \layout Quotation
!
! The canonical machining functions share with the RS274 language the simplifying
! assumption that machine dynamics can be almost ignored.
! That is, in this model, acceleration and deceleration do not occur.
! Components of the machining center can be told to move at a specific rate,
! and that rate is imagined as being achieved instantaneously.
! Stopping is also imagined as instantaneous.
! This model obviously does not correspond with reality.
! The control modes provided here provide some compensation for this lack
! of consideration of dynamics.
! \begin_float footnote
\layout Standard
! From Section 2.1.2.16 of RS@&$NGC document from NIST.
! \end_float
\layout Subsection*
Canned Cycles/Drill Subroutines (G80-G89)
! \layout Standard
! These are treated in detail in the chapter on canned cycles.
\layout Subsection*
Index: User_Gcode_Coordinates.lyx
===================================================================
RCS file: /cvsroot/emc/documents/lyx/User_Gcode_Coordinates.lyx,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** User_Gcode_Coordinates.lyx 5 Jul 2003 01:44:29 -0000 1.1
--- User_Gcode_Coordinates.lyx 18 Jul 2003 18:46:07 -0000 1.2
***************
*** 6,10 ****
\fontscheme bookman
\graphics default
! \float_placement h
\paperfontsize 10
\spacing single
--- 6,10 ----
\fontscheme bookman
\graphics default
! \float_placement !!h
\paperfontsize 10
\spacing single
***************
*** 26,32 ****
\layout Chapter
! G92 Offsets and Coordinate Systems
\layout Standard
! (here we describe these in detail)
\the_end
--- 26,860 ----
\layout Chapter
! Coordinate System and G92 Offsets
! \layout Section
!
! Introduction
\layout Standard
! You have seen how handy a tool length offset can be.
! Having this allows the programmer to ignore the actual tool length when
! writing a part program.
! In the same way, it is really nice to be able to find a prominent part
! of a casting or block of material and work a program from that point rather
! than having to take account of the location at which the casting or block
! will be held during the machining.
! \layout Standard
!
! This chapter introduces you to offsets as they are used by the EMC.
! These include;
! \layout Itemize
!
! machine coordinates (G53)
! \layout Itemize
!
! nine offsets (G54-G59.3)
! \layout Itemize
!
! a set of global offsets (G92).
! \layout Section
!
! The Machine Position Command (G53)
! \layout Standard
!
! Regardless of any offsets that may be in effect, putting a G53
! \begin_inset LatexCommand \index{G53}
!
! \end_inset
!
! in a block of code tells the interpreter to go to the real or absolute
! axis positions commanded in the block.
! For example
! \layout Standard
!
! g53 g0 x0 y0 z0
! \layout Standard
!
! will get you to the actual position where these three axes are zero.
! You might use a command like this if you have a favorite position for tool
! changes or if your machine has an auto tool changer.
! You might also use this command to get the tool out of the way so that
! you can rotate or change a part in a vice.
!
! \layout Standard
!
! G53 is not a modal command.
! It must be used on each line where motion based upon absolute machine position
! is desired.
!
! \layout Section
!
! Fixture Offsets (G54-G59.3)
! \layout Standard
!
! \begin_float fig
! \layout Standard
! \align center
!
! \begin_inset Figure size 476 213
! file ../images/offsets.eps
! width 3 80
! flags 9
!
! \end_inset
!
!
! \layout Caption
!
!
! \begin_inset LatexCommand \label{fig:offsets}
!
! \end_inset
!
! Work Offsets
! \end_float
! \layout Standard
!
! Work or fixture offset are used to make a part home that is different from
! the absolute, machine coordinate system.
! This allows the part programmer to set up home positions for multiple parts.
! A typical operation that uses fixture offsets would be to mill multiple
! copies of parts on "islands" in a piece, similar to figure
! \begin_inset LatexCommand \ref{fig:offsets}
!
! \end_inset
!
!
! \layout Standard
!
! The values for offsets are stored in the VAR file that is requested by the
! INI file during the startup of an EMC.
! In our example below we'll use
! \begin_inset LatexCommand \index{G55}
!
! \end_inset
!
! G55.
! The values for each axis for G55 are stored as variable numbers.
!
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! 5241\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! 0.000000
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! 5242\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! 0.000000
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! 5243\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! 0.000000
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! 5244\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! 0.000000
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! 5245\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! 0.000000
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! 5246\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! 0.000000
! \layout Standard
!
! In the VAR file scheme, the first variable number stores the X offset, the
! second the Y offset and so on for all six axes.
! There are numbered sets like this for each of the fixture offsets.
!
! \layout Standard
!
! Each of the graphical interfaces has a way to set values for these offsets.
! You can also set these values by editing the VAR file itself and then issuing
! a [reset] so that the EMC reads the new values.
! For our example let's directly edit the file so that G55 takes on the following
! values.
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! 5241\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! 2.000000
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! 5242\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! 1.000000
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! 5243\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! -2.000000
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! 5244\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! 0.000000
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! 5245\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! 0.000000
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! 5246\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! 0.000000
! \layout Standard
!
! You should read this as moving the zero positions of G55 to X = 2 units,
! Y= 1 unit, and Z = -2 units away from the absolute zero position.
! \layout Standard
!
! Once there are values assigned, a call to G55 in a program block would shift
! the zero reference by the values stored.
! The following line would then move each axis to the new zero position.
! Unlike G53, G54 through G59.3 are modal commands.
! They will act on all blocks of code after one of them has been set.
! The program that might be run using figure
! \begin_inset LatexCommand \ref{fig:offsets}
!
! \end_inset
!
! would require only a single coordinate reference for each of the locations
! and all of the work to be done there.
! The following code is offered as an example of making a square using the
! G55 offsets that we set above.
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! G55 G0 x0 y0 z0
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g1 f2 z-0.2000
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! x1
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! y1
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! x0
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! y0
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g0 z0
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g54 x0 y0 z0
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! m2
! \layout Standard
!
!
! \begin_inset Quotes eld
! \end_inset
!
! But,
! \begin_inset Quotes erd
! \end_inset
!
! you say,
! \begin_inset Quotes eld
! \end_inset
!
! why is there a G54 in there near the end.
! \begin_inset Quotes erd
! \end_inset
!
! Many programmers leave the G54 coordinate system with all zero values so
! that there is a modal code for the absolute machine based axis positions.
! This program assumes that we have done that and use the ending command
! as a command to machine zero.
! It would have been possible to use g53 and arrive at the same place but
! that command would not have been modal and any commands issued after it
! would have returned to using the G55 offsets because that coordinate system
! would still be in effect.
! \layout Standard
! \pextra_type 2 \pextra_alignment 0 \pextra_widthp 100
!
!
! \begin_inset LatexCommand \index{G54}
!
! \end_inset
!
! G54\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! use preset work coordinate system 1
! \layout Standard
! \pextra_type 2 \pextra_alignment 0 \pextra_widthp 100
!
!
! \begin_inset LatexCommand \index{G55}
!
! \end_inset
!
! G55\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! use preset work coordinate system 2
! \layout Standard
! \pextra_type 2 \pextra_alignment 0 \pextra_widthp 100
!
!
! \begin_inset LatexCommand \index{G56}
!
! \end_inset
!
! G56\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! use preset work coordinate system 3
! \layout Standard
! \pextra_type 2 \pextra_alignment 0 \pextra_widthp 100
!
!
! \begin_inset LatexCommand \index{G57}
!
! \end_inset
!
! G57\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! use preset work coordinate system 4
! \layout Standard
! \pextra_type 2 \pextra_alignment 0 \pextra_widthp 100
!
!
! \begin_inset LatexCommand \index{G58}
!
! \end_inset
!
! G58\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! use preset work coordinate system 5
! \layout Standard
! \pextra_type 2 \pextra_alignment 0 \pextra_widthp 100
!
!
! \begin_inset LatexCommand \index{G59}
!
! \end_inset
!
! G59\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! use preset work coordinate system 6
! \layout Standard
! \pextra_type 2 \pextra_alignment 0 \pextra_widthp 100
!
! G59.1\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! use preset work coordinate system 7
! \layout Standard
! \pextra_type 2 \pextra_alignment 0 \pextra_widthp 100
!
! G59.2\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! use preset work coordinate system 8
! \layout Standard
! \pextra_type 2 \pextra_alignment 0 \pextra_widthp 100
!
! G59.3\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! use preset work coordinate system 9
! \layout Subsection
!
! Default coordinate system
! \layout Standard
!
! One other variable in the VAR file becomes important when we think about
! offset systems.
! This variable is named 5220.
! In the default files it's value is set to 1.00000.
! This means that when the EMC starts up it should use the first coordinate
! system as its default.
! If you set this to 9.00000 it would use the nineth offset system as its
! default for startup and reset.
! Any value other than an interger (decimal really) between 1 and 9 will
! cause the EMC to fault on startup.
!
! \layout Subsection
!
! Setting coordinate system values within G-code.
! \layout Standard
!
! In the general programming chapter we listed a G10 command word.
! This command can be used to change the values of the offsets in a coordinate
! system.
! (add here)
! \layout Section
!
! G92 Offsets
! \layout Standard
!
! G92 is the most misunderstood and maligned part of EMC programming.
! The way that it works has changed just a bit from the early days to the
! current releases.
! This change has confused many users.
! It should be thought of as a temporary offset that is applied to all other
! offsets.
!
! \layout Standard
!
! In response to criticism of it, Ray Henry studied it by comparing the way
! the interpreter authors expected it to work and the way that it worked
! on his Grizzly minimill.
! The following quoted paragraphs are extracted from his paper which is available
! in several text formats in the dropbox at
! \begin_inset LatexCommand \url{http://www.linuxcnc.org}
!
! \end_inset
!
! .
! \layout Subsection
!
! The G92 commands
! \layout Standard
!
! This set of commands include;
! \layout Description
! \pextra_type 1 \pextra_widthp 5
!
! G92 This command, when used with axis names, sets values to offset variables.
! \layout Description
! \pextra_type 1 \pextra_widthp 5
!
! G92.1 This command sets zero values to the g92 variables.
! \layout Description
! \pextra_type 1 \pextra_widthp 5
!
! G92.2 This command suspends but does not zero out the g92 variables.
! \layout Description
! \pextra_type 1 \pextra_widthp 5
!
! G92.3 This command applies offset values that have been suspended.
! \layout Standard
!
! When the commands are used as described above, they will work pretty much
! as you would expect.
! \layout Quotation
!
! A user must understand the correct ways that the g92 values work.
! They are set based upon the location of each axis when the g92 command
! is invoked.
! The NIST document is clear that,
! \begin_inset Quotes eld
! \end_inset
!
! To make the
! \noun on
!
! \noun default
! current point have the coordinates
! \begin_inset Quotes erd
! \end_inset
!
! x0, y0, and z0 you would use g92 x0 y0 z0.
! G92
! \emph on
! does not work from absolute machine coordinates
! \emph default
! .
! It works from
! \emph on
! current location
! \emph default
! .
!
! \layout Quotation
!
! G92 also works from current location as modified by any other offsets that
! are in effect when the g92 command is invoked.
! While testing for differences between work offsets and actual offsets it
! was found that a g54 offset could cancel out a g92 and thus give the appearance
! that no offsets were in effect.
! However, the g92 was still in effect for all coordinates and did produce
! expected work offsets for the other coordinate systems.
!
! \layout Quotation
!
! It is likely that the absence of home switches and proper home procedures
! will result in very large errors in the application of g92 values if they
! exist in the var file.
! Many EMC users do not have home switches in place on their machines.
! For them home should be found by moving each axis to a location and issuing
! the home command.
! When each axis is in a known location, the home command will recalculate
! how the g92 values are applied and will produce consistent results.
! Without a home sequence, the values are applied to the position of the
! machine when the EMC begins to run.
! \layout Subsection
!
! Setting G92 values
! \layout Standard
!
! There are at least two ways to set G92 values.
! \layout Itemize
!
! right mouse click on position displays of tkemc will popup a window into
! which you can type a value.
!
! \layout Itemize
!
! the g92 command
! \layout Standard
!
! Both of these work from the current location of the axis to which the offset
! is to be applied.
!
! \layout Quotation
!
! Issuing g92 x y z a b c does in fact set values to the g92 variables such
! that each axis takes on the value associated with it's name.
! These values are assigned to the current position of the machine axis.
! These results satisfy paragraphs one and two of the NIST document.
! \layout Quotation
!
! G92 commands work from current axis location and add and subtract correctly
! to give the current axis position the value assigned by the g92 command.
! The effects work even though previous offsets are in.
! \layout Standard
!
! So if the X axis is currently showing 2.0000 as its position a G92 x0 will
! set an offset of -2.0000 so that the current location of X becomes zero.
! A G92 X2 will set an offset of 0.0000 and the displayed position will not
! change.
! A G92 X5.0000 will set an offset of 3.0000 so that the current displayed
! position becomes 5.0000.
!
! \layout Subsection
!
! G92 Cautions
! \layout Standard
!
! Sometimes the values of a G92 offset get stuck in the VAR file.
! When this happens reset or a startup will cause them to become active again.
! The variables are named
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! 5211\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! 0.000000
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! 5212\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! 0.000000
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! 5213\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! 0.000000
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! 5214\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! 0.000000
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! 5215\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! 0.000000
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! 5216\SpecialChar ~
! \SpecialChar ~
! \SpecialChar ~
! 0.000000
! \layout Standard
!
! where 5211 is the X axis offset and so on.
! If you are seeing unexpected positions as the result of a commanded move,
! or even unexpected numbers in the position displays when you start up,
! look at these variables in the VAR file and see if they contain values.
! If they do, set them to zeros and the problems should go away.
! \layout Quotation
!
! With these tests we can see that reset returns g92 to the condition that
! it had when the interpreter started up.
! The reader should note that we have established ...
! that no write of these values occurs during a normal run so if no g92 was
! set at the startup, none will be read in during a reset.
! \layout Quotation
!
! It may be that this is the heart of the problem that some have experienced
! with differences between the old and the new interpreter.
! It may well be, but I leave it to others to test, that the old interpreter
! and task programs immediately wrote values to the var file and then found
! those values during a reset.
!
! \layout Standard
!
! On the other hand, if G92 values existed in the VAR file when the EMC started
! up
! \layout Quotation
!
! ...
! starting the EMC with g92 values in the var file is that it will apply
! the values to current location of each axis.
! If this is home position and home position is set as machine zero everything
! will be correct.
! Once home has been established using real machine switches or moving each
! axis to a known home position and issuing an axis home command, g92 commands
! and values work as advertised.
! \layout Quotation
!
! These tests did not study the effect of re-reading the var file while they
! contain numbers.
! This could cause problems if g92 offsets had been removed with g92.1 but
! the var file still contained the previous numbers.
!
! \layout Standard
!
! It is this complexity that causes us to say that G92 values must be treated
! as temporary.
! They should be used to set global short term offsets.
! The G54-59.3 coordinate systems should be used whenever long lasting and
! predictable offsets are needed.
! \layout Section
!
! Sample Program Using Offsets
! \layout Standard
!
! This sample engraving project mills a set of four .1 radius circles in roughly
! a star shape around a center circle.
! We can setup the individual circle pattern like this.
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! G10 L2 P1 x0 y0 z0 (ensure that g54 is set to machine zero)
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g0 x-.1 y0 z0
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g1 f1 z-.25
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g3 x-.1 y0 i.1 j0
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g0 z0
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! m2
! \layout Standard
!
! We can issue a set of commands to create offsets for the four other circles
! like this.
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! G10 L2 P2 x0.5 (offsets g55 x value by 0.5 inch)
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! G10 L2 P3 x-0.5 (offsets g56 x value by -0.5 inch)
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! G10 L2 P4 y0.5 (offsets g57 y value by 0.5 inch)
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! G10 L2 P5 y-0.5 (offsets g58 y value by -0.5 inch)
! \layout Standard
!
! We put these together in the following program.
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! (a program for milling five small circles in a diamond shape)
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! G10 L2 P1 x0 y0 z0 (ensure that g54 is machine zero)
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! G10 L2 P2 x0.5 (offsets g55 x value by 0.5 inch)
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! G10 L2 P3 x-0.5 (offsets g56 x value by -0.5 inch)
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! G10 L2 P4 y0.5 (offsets g57 y value by 0.5 inch)
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! G10 L2 P5 y-0.5 (offsets g58 y value by -0.5 inch)
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g54 g0 x-.1 y0 z0 (center circle)
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g1 f1 z-.25
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g3 x-.1 y0 i.1 j0
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g0 z0
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g55 g0 x-.1 y0 z0 (first offset circle)
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g1 f1 z-.25
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g3 x-.1 y0 i.1 j0
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g0 z0
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g56 g0 x-.1 y0 z0 (second offset circle)
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g1 f1 z-.25
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g3 x-.1 y0 i.1 j0
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g0 z0
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g57 g0 x-.1 y0 z0 (third offset circle)
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g1 f1 z-.25
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g3 x-.1 y0 i.1 j0
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g0 z0
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g58 g0 x-.1 y0 z0 (fourth offset circle)
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g1 f1 z-.25
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g3 x-.1 y0 i.1 j0
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! g54 g0 x0 y0 z0
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! m2
! \layout Standard
!
! Now comes the time when we might apply a set of G92 offsets to this program.
! You'll see that it is running in each case at z0.
! If the mill were at the zero position, a g92 z1.0000 issued at the head
! of the program would shift everything down an inch.
! You might also shift the whole pattern around in the XY plane by adding
! some x and y offsets with g92.
! If you do this you should add a G92.1 command just before the m2 that ends
! the program.
! If you do not, other programs that you might run after this one will also
! use that g92 offset.
! Furthermore it would save the g92 values when you shut down the EMC and
! they will be recalled when you start up again.
\the_end
Index: User_Linux.lyx
===================================================================
RCS file: /cvsroot/emc/documents/lyx/User_Linux.lyx,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** User_Linux.lyx 5 Jul 2003 01:44:29 -0000 1.1
--- User_Linux.lyx 18 Jul 2003 18:46:07 -0000 1.2
***************
*** 504,515 ****
\layout Standard
! This is in essence how the entire text mode of Linux works works.
At a prompt, you enter a command and press the <enter> key.
!
\layout Standard
! The command may have arguments that go along with it.
Let me illustrate with the Linux equivalent of the ms-dos dir command.
! That command is ls (lower case LS).
The response that I get to this command is a window full of file names.
They may arranged in multiple columns, but that depends upon the size of
--- 504,517 ----
\layout Standard
! This is in essence how the entire text mode of Linux works.
At a prompt, you enter a command and press the <enter> key.
! Linux runs the command that you have typed in and returns a response.
! If no response is called for it will return the prompt so that you can
! enter another command.
\layout Standard
! A command may have arguments that go along with it.
Let me illustrate with the Linux equivalent of the ms-dos dir command.
! That Linux command is ls (lower case LS).
The response that I get to this command is a window full of file names.
They may arranged in multiple columns, but that depends upon the size of
***************
*** 588,592 ****
The fact that you entered a single word, info, and the terminal executed
! a program named info is the significant point here.
There are thousands of commands.
Any file marked with executable permissions is an acceptable command to
--- 590,594 ----
The fact that you entered a single word, info, and the terminal executed
! a program named info is the significant point.
There are thousands of commands.
Any file marked with executable permissions is an acceptable command to
***************
*** 606,610 ****
available to users of Linux.
! Right now I can almost hear you gasp --
\begin_inset Quotes eld
\end_inset
--- 608,612 ----
available to users of Linux.
! Right now I can almost hear you gasp,
\begin_inset Quotes eld
\end_inset
***************
*** 614,619 ****
\end_inset
! Most all of the shells will execute a command like ls and will start a
! binary file for you.
Which shell you are running becomes important if the file that you want
to run is a script.
--- 616,621 ----
\end_inset
! The good news is that most all of the shells will execute a command like
! ls and will start a binary file for you.
Which shell you are running becomes important if the file that you want
to run is a script.
***************
*** 1193,1197 ****
It is a good idea to use this script program when you are debugging an
EMC.
! From it you can cut and past the problem lines into your email requests
for help.
You will need to rename the typescript file after each session if you want
--- 1195,1199 ----
It is a good idea to use this script program when you are debugging an
EMC.
! From it you can cut and paste the problem lines into your email requests
for help.
You will need to rename the typescript file after each session if you want
Index: User_Whatis_EMC.lyx
===================================================================
RCS file: /cvsroot/emc/documents/lyx/User_Whatis_EMC.lyx,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** User_Whatis_EMC.lyx 16 Jul 2003 19:47:20 -0000 1.2
--- User_Whatis_EMC.lyx 18 Jul 2003 18:46:07 -0000 1.3
***************
*** 6,17 ****
\fontscheme bookman
\graphics default
! \float_placement h
\paperfontsize 10
\spacing single
! \papersize Default
! \paperpackage a4wide
! \use_geometry 0
\use_amsmath 0
\paperorientation portrait
\secnumdepth 5
\tocdepth 5
--- 6,23 ----
\fontscheme bookman
\graphics default
! \float_placement !!h
\paperfontsize 10
\spacing single
! \papersize Custom
! \paperpackage a4
! \use_geometry 1
\use_amsmath 0
\paperorientation portrait
+ \paperwidth 8.5in
+ \paperheight 11in
+ \leftmargin 1.2in
+ \topmargin 1in
+ \rightmargin 0.6in
+ \bottommargin 0.6in
\secnumdepth 5
\tocdepth 5
***************
*** 322,325 ****
--- 328,337 ----
machine kinematics routines.
+ \layout Standard
+
+ The motion controllers that you will be using with your stepper motors will
+ most likely be steppermod or freqmod.
+ The ability and requirements of each of these will be described when we
+ get to hardware and how to configure the EMC for your specific hardware.
\layout Subsection
***************
*** 333,336 ****
--- 345,357 ----
machine actions like lube, coolant, and spindle direction and speed.
+ \layout Standard
+
+ There are a couple of versions of I/O controllers that are a part of most
+ every EMC release.
+ These are minimillio and bridgeportio.
+ You guessed it the one that we will be working with here is minimillio.
+ The hardware chapter will talk just a bit about bridgeportio in case you
+ want to add some of the extra features available with it to your minimill.
+
\layout Subsection
***************
*** 409,412 ****
--- 430,439 ----
input or output systems and sends blocks of canonical commands to the task
and motion planning programs.
+ \layout Standard
+
+ There are also at least two task controllers included in most every release
+ of the EMC.
+ These are named minimilltask and bridgeporttask.
+ These complement the I/O programs.
\layout Section
***************
*** 426,430 ****
Broken tools, gouged vices, and scars are the evidence of lessons taught.
! Good part finish and close tolerances are the evidence of lessons learned.
No machine, no computer program, can take the place of human experience.
\layout Standard
--- 453,458 ----
Broken tools, gouged vices, and scars are the evidence of lessons taught.
! Good part finish, close tolerances, and careful work are the evidence of
! lessons learned.
No machine, no computer program, can take the place of human experience.
\layout Standard
***************
*** 435,438 ****
--- 463,470 ----
It is a machine that is either waiting for your command or executing the
command that you have just given it.
+ Throughout these pages we will give information that will help you become
+ a good operator of the EMC minimill.
+ You will need some information right up front here so that the following
+ pages will make sense to you.
\layout Subsection
***************
*** 442,446 ****
When an EMC is running, there are three different major modes used for inputting
! commands, manual, auto, and mdi.
Changing from one mode to another makes a big difference in the way that
the EMC behaves.
--- 474,479 ----
When an EMC is running, there are three different major modes used for inputting
! commands.
! These are manual, auto, and mdi.
Changing from one mode to another makes a big difference in the way that
the EMC behaves.
***************
*** 453,457 ****
\layout Standard
! In manual mode, each command is entered as a separate command.
In human terms a manual command might be
\begin_inset Quotes eld
--- 486,490 ----
\layout Standard
! In manual mode, each command is entered as separate.
In human terms a manual command might be
\begin_inset Quotes eld
***************
*** 470,475 ****
\end_inset
! These commands are normally handled on the graphical interface by pressing
! a button with the mouse or holding down a key on the keyboard.
In auto mode, a similar button or keypress might be used to load or start
the running of a whole program of G-code that is stored in a file.
--- 503,510 ----
\end_inset
! These are roughly equivalent to flipping a switch or turning the handwheel
! for an axis.
! These commands are normally handled on one of the graphical interfaces
! by pressing a button with the mouse or holding down a key on the keyboard.
In auto mode, a similar button or keypress might be used to load or start
the running of a whole program of G-code that is stored in a file.
***************
*** 481,484 ****
--- 516,520 ----
in motion in all modes.
These include abort, estop, and feedrate override.
+ Commands like these are pretty self explanitory.
\layout Subsection
***************
*** 547,552 ****
Most of this is not the topic of this book but there are a few things that
you will have to understand in order to make our little minimill work for
! us.
\layout Subsection
--- 583,662 ----
Most of this is not the topic of this book but there are a few things that
you will have to understand in order to make our little minimill work for
! us like we expect it to work.
!
! \layout Subsection
!
! Units
! \layout Standard
!
! Units can be confusing.
! A newbie recently asked,
! \begin_inset Quotes eld
! \end_inset
!
! Does it work in inches, feet, centimeters, millimeters, or what?
! \begin_inset Quotes erd
! \end_inset
!
! There are several possible answers to this question but the best one is
! that it works in the units that you set it to work in.
!
! \layout Standard
!
! At a machine level, we set each axis' units to some value using an INI variable
! that looks like this.
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! UNITS=\SpecialChar ~
! \SpecialChar ~
! 1
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! or
! \layout Standard
! \pextra_type 1 \pextra_widthp 5
!
! UNITS =\SpecialChar ~
! \SpecialChar ~
! 0.03937007874016
! \layout Standard
!
! Math folk will get a clue from these numbers because the long decimal number
! is the distance represented by one millimeter if we convert it into inches.
+ \begin_inset Quotes eld
+ \end_inset
+
+ So,
+ \begin_inset Quotes erd
+ \end_inset
+
+ you say,
+ \begin_inset Quotes eld
+ \end_inset
+
+ the EMC uses millimeters internally.
+ \begin_inset Quotes erd
+ \end_inset
+
+ If we use UNITS = 1 then we have defined our user units as millimeters.
+ If we use UNITS = 0.03937007874016 then we have defined our user units as
+ inches.
+ Using similar maths we could set our units to most any value we wanted.
+ (Some of the EMC people who run vehicles with the EMC set units to kilometers
+ or miles.)
+ \layout Standard
+
+ After we have decided upon a value for the units for an axis, we tell the
+ emc how may step pulses or encoder pulses it should send or read for each
+ unit of distance to be traveled.
+ Once we have done this, the EMC knows how to count units of distance.
+ However it is very important to understand that this counting of distance
+ is different from the commanding of distance.
+ You can command distance in millimeters or inches without even thinking
+ about the units that you defined.
+ There are G-codes that allow you to switch easily between metric and imperial.
\layout Subsection
***************
*** 577,599 ****
There are four kinds of configuration files: INI, NML, TBL, VAR.
! These are reflected in lower case file extensions.
They may be named emc.tbl or generic.tbl but they do the same thing when
they are read by the EMC as it starts up.
\layout Standard
! The first, emc.ini, contains all the machine parameters such as servo gains,
! scale factors, cycle times, units, etc.
and will certainly need to be edited.
! emc.nml contains communication settings for shared memory and network ports
you may need to override on your system, although it is likely that you
can leave these settings alone.
! tool.tbl contains the tool information such as which pocket contains which
tool, and the length and diameter for each tool.
! rs274ngc.var contains variables specific to the RS-274-NGC dialect of NC
code, notably for setting the persistent numeric variables for the nine
work coordinate systems.
- We will get into some of the details of these files as we begin to hook
- up and operate our little machine.
\the_end
--- 687,745 ----
There are four kinds of configuration files: INI, NML, TBL, VAR.
! These are reflected in lower case file extensions to a file name.
They may be named emc.tbl or generic.tbl but they do the same thing when
they are read by the EMC as it starts up.
+ Many users copy these and name them for the specific machine that they
+ are editing them for.
+ A set of these files named Sherlinemill.ini, Sherlinemill.var, Sherlinemill.tbl
+ and Sherlinemill.nml are certainly more descriptive than a bunch of files
+ named generic.
\layout Standard
! These files each contain specific information for your CNC.
! \layout Itemize
!
! emc.ini, contains all the machine parameters such as servo gains, scale factors,
! cycle times, units, etc.
and will certainly need to be edited.
!
! \layout Itemize
!
! emc.nml contains communication settings for shared memory and network ports
you may need to override on your system, although it is likely that you
can leave these settings alone.
!
! \layout Itemize
!
! tool.tbl contains the tool information such as which pocket contains which
tool, and the length and diameter for each tool.
!
! \layout Itemize
!
! rs274ngc.var contains variables specific to the RS-274-NGC dialect of NC
code, notably for setting the persistent numeric variables for the nine
work coordinate systems.
+ \layout Standard
+
+ We'll get into some of the details of these files as we begin to hook up
+ and operate our little machine.
+ \layout Standard
+
+ In addition to these four files, there is a standard startup file.
+ Back in the early days of the EMC it was common to have to start up several
+ different tasks in different terminal windows in order to get the EMC to
+ run a machine.
+ Each of these tasks had to be supplied a bunch of information in the form
+ of arguments in order to be certain that the task started the way that
+ we expected it to.
+ All of this was a tedius thing.
+ All of this has been replaced with the run script file.
+ It is named with a .run extension.
+ This executable script file controls the startup of all of the modules
+ needed to run a standard version of the EMC.
+ These run files are all pretty much the same.
+ You may want to edit the name of the ini file that will be called by the
+ run file that you choose to use but the rest of it can be left alone.
\the_end
|