A letter engraving custom macro
by Bruce Litton
Here is a letter engraving program that will engrave the letters A-Z (any
size) for any Fanuc or Fanuc compatible control having custom macro B. The
control system we currently have is the Yasnac MX3, (programs should work on
Fanuc 10m,11m,16m,18m controls). Without the control option for scaling the task
of making letters of different size was challenge!
Instructions for use:.
O7000 is an example program that engraves the word "HELLO". We'll
use it to explain the use of variables:
- %
- O7000(MASTER ENGRAVING PROGRAM)
- G90G54J1
- N10M3S8000
- G90G0X-.2Y0. M8
- G43H20Z3.
- #503=1.000
- #500=[#503/1.782]
- #501=.100
- #502=1.000
- G65P7001A8.0B-0.02C15.0D40.0E1.0 (H)
- G65P7001A5.0B-.02C15.0D40.0E1.0 (E)
- G65P7001A12.0B-.02C15.0D40.0E1.0 (L)
- G65P7001A12.0B-.02C15.0D40.E01.0 (L)
- G65P7001A15.0B-.02C15.0D40.0E0.0 (O)
- N20M98P8998 M30
- %
NOTE: You can keep from having to retype all of the commands in these
programs by using your Internet browser's copy function. Simply highlight the
program, copy it, and then open your word processor or CNC text editor. Use the
paste function to bring the program into your text editor. While there will be
some editing to do (you'll likely have to eliminate some funny characters and
add carriage returns), this will save a lot of typing!
Understanding program O7000
Program O7000 contains instructions and calculations for the CNC control.
Variables used in G65 commands:
- A=Code number for letter (0=SPACE, 1.-A, 2.-B, 3.-C, etc., see full list
below)
- B=Z depth from program zero
- C=Plunging feedrate for the Z axis
- D=XY feedrate
- E=Step over for next letter? (1.=YES,0.=NO)
- #503 before the G65 commands is the letter height (1.0 inch in the
example)
- #500, #501, #502 set the width and aspect ratio for the letters. You can
leave them as shown in the example.
The command "G65P7001A8.0B-0.02C15.0D40.0E1.0" will machine the
letter H (see code list for A word below). It will be machined 0.02 deep in Z,
plunged at 15.0 ipm and machined (XY) at 40.0 ipm. The E1.0 specifies that the
machine must move over by the letter spacing to get ready for machining the next
letter. If E is set to zero (as it should be after your last letter), there will
be no move over after the letter is machined.
Code numbers are as follows:
SPACE-0. A-1. B-2. C-3. D-4. E-5. F-6. G-7. H-8. I-9. J-10. K-11. L-12. M-13.
N-14. O-15. P-16. Q-17. R-18. S-19. T-20. U-21. V-22. W-23. X-24. Y-25. Z-26.
(Note that you must include a decimal point after each code number in the A
word.)
The lettering program
Program O7001 contains all the lettering movements.
- %
- O7001(LETTER PROGRAMS)
- IF[#1EQ0.]GOTO100
- IF[#1EQ1.]GOTO1
- IF[#1EQ2.]GOTO2
- IF[#1EQ3.]GOTO3
- IF[#1EQ4.]GOTO4
- IF[#1EQ5.]GOTO5
- IF[#1EQ6.]GOTO6
- IF[#1EQ7.]GOTO7
- IF[#1EQ8.]GOTO8
- IF[#1EQ9.]GOTO9
- IF[#1EQ10.]GOTO10
- IF[#1EQ11.]GOTO11
- IF[#1EQ12.]GOTO12
- IF[#1EQ13.]GOTO13
- IF[#1EQ14.]GOTO14
- IF[#1EQ15.]GOTO15
- IF[#1EQ16.]GOTO16
- IF[#1EQ17.]GOTO17
- IF[#1EQ18.]GOTO18
- IF[#1EQ19.]GOTO19
- IF[#1EQ20.]GOTO20
- IF[#1EQ21.]GOTO21
- IF[#1EQ22.]GOTO22
- IF[#1EQ23.]GOTO23
- IF[#1EQ24.]GOTO24
- IF[#1EQ25.]GOTO25
- IF[#1EQ26.]GOTO26
-
- (A LETTER PROGRAM)
- N1G91G0X[#500*.2203]Y[#500*.118]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X[#500*.7796]Y[#500*1.782]F#7
- X[#500*.7796]Y-[#500*1.782]
- G90G0Z#502
- G91G0X-[#500*.4018]Y[#500*.9186]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X-[#500*.7554]F#7
- G90G0Z#502
- G91G0X-[#500*.6222]Y-[#500*1.0366]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (B LETTER PROGRAM)
- N2G91G0X[#500*.1923]Y[#500*.118]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1Y[#500*1.782]F#7
- X[#500*1.041]
- G2R[#500*.4179]J-[#500*.4179]Y-[#500*.8358]
- G1X-[#500*1.041]
- G90G0Z#502
- G91G0Y-[#500*.9462]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X[#500*1.1422]F#7
- G3R[#500*.4731]J[#500*.4731]Y[#500*.9462]
- G90G0Z#502
- G91G0X-[#500*1.3345]Y-[#500*1.0642]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (C LETTER PROGRAM)
- N3G91G0X[#500*1.3288]Y[#500*.1719]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1
- G2R[#500*.891]I-[#500*.3288] J[#500*.828]
- Y[#500*.828]
- X-[#500*1.2198]F#7
- G2R[#500*.891]I[#500*.891]X[#500*1.2198]Y[#500*.828]
- G90G0Z#502
- G91G0X-[#500*1.3288]Y-[#500*1.828]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (D LETTER PROGRAM)
- N4G91G0X[#500*.1129]Y[#500*.118]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1Y[#500*1.782]F#7
- X[#500*.633]
- G2R[#500*.891]J-[#500*.891]Y-[#500*1.782]
- G1X-[#500*.633]
- G90G0Z#502
- G91G0X-[#500*.1129]Y-[#500*.118]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (E LETTER PROGRAM)
- N5G91G0X[#500*1.5895]Y[#500*.118]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X-[#500*1.1791]F#7
- Y[#500*1.782]
- X[#500*1.1791]
- G90G0Z#502
- G91G0X-[#500*.4535]Y-[#500*.8319]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X-[#500*.7256]F#7
- G90G0Z#502
- G91G0X-[#500*.4104]Y-[#500*1.068]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (F LETTER PROGRAM)
- N6G91G0X[#500*.2474]Y[#500*.118]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1Y[#500*1.782]F#7
- X[#500*1.5051]
- G90G0Z#502
- G91G0X-[#500*.7306]Y-[#500*.891]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X-[#500*.7744]F#7
- G90G0Z#502
- G91G0X-[#500*.2474]Y-[#500*1.009]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (G LETTER PROGRAM)
- N7G91G0X[#500*1.4273]Y[#500*1.009]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X[#500*.4636]F#7
- G2R[#500*.891]X-[#500*1.782]I-[#500*.891]
- G2R[#500*.891]I[#500*.891]X[#500*1.2891]Y[#500*.797]
- G90G0Z#502
- G91G0X-[#500*1.3981]Y-[#500*1.806]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (H LETTER PROGRAM)
- N8G91G0X[#500*.2587]Y[#500*.118]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1Y[#500*1.782]F#7
- G90G0Z#502
- G91G0X[#500*1.4825]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1Y-[#500*1.782]F#7
- G90G0Z#502
- G91G0Y[#500*.891]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X-[#500*1.4825]F#7
- G90G0Z#502
- G91G0X-[#500*.2587]Y-[#500*1.009]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (I LETTER PROGRAM)
- N9G91G0X[#500*.4908]Y[#500*.118]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X[#500*1.0182]F#7
- G90G0Z#502
- G91G0X-[#500*.5091]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1Y[#500*1.782]F#7
- G90G0Z#502
- G91G0X-[#500*.5091]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X[#500*1.0182]F#7
- G90G0Z#502
- G91G0X-[#500*1.5091]Y-[#500*1.8999]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (J LETTER PROGRAM)
- N10G91G0X[#500*.9405]Y[#500*1.9]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X[#500*.7128]F#7
- G90G0Z#502
- G91G0X-[#500*.3564]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1Y-[#500*1.3067]F#7
- G2R[#500*.4752]I-[#500*.4752]X-[#500*.9504]
- G90G0Z#502
- G91G0X-[#500*.3465]Y-[#500*.5932]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (K LETTER PROGRAM)
- N11G91G0X[#500*.4174]Y[#500*.118]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1Y[#500*1.782]F#7
- G90G0Z#502
- G91G0Y-[#500*.891]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X[#500*1.0145]Y[#500*.891]F#7
- G90G0Z#502
- G91G0X-[#500*.7972]Y-[#500*.7001]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X[#500*.9478]Y-[#500*1.0818]F#7
- G90G0Z#502
- G91G0X-[#500*1.5825]Y-[#500*.118]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (L LETTER PROGRAM)
- N12G91G0X[#500*1.4625]Y[#500*.118]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X-[#500*.9251]F#7
- Y[#500*1.782]
- G90G0Z#502
- G91G0X-[#500*.5374]Y-[#500*1.9]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (M LETTER PROGRAM)
- N13G91G0X[#500*.3317]Y[#500*.118]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1Y[#500*1.782]F#7
- X[#500*.6682]Y-[#500*1.782]
- X[#500*.6682]Y[#500*1.782]
- Y-[#500*1.782]
- G90G0Z#502
- G91G0X-[#500*1.6682]Y-[#500*.118]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (N LETTER PROGRAM)
- N14G91G0X[#500*.2705]Y[#500*.118]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1Y[#500*1.782]F#7
- X[#500*1.4589]Y-[#500*1.782]
- Y[#500*1.782]
- G90G0Z#502
- G91G0X-[#500*1.7294]Y-[#500*1.9]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (O LETTER PROGRAM)
- N15G91G0X[#500*1.6364]Y[#500*.7544]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1Y[#500*.5091]F#7
- G3R[#500*.6364]I-[#500*.6364]X-[#500*1.2728]
- G1Y-[#500*.5091]
- G3R[#500*.6364]I[#500*.6364]X[#500*1.2728]
- G90G0Z#502
- G91G0X-[#500*1.6364]Y-[#500*.7544]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (P LETTER PROGRAM)
- N16G91G0X[#500*.4918]Y[#500*.118]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1Y[#500*1.782]F#7
- X[#500*.5722]
- G2R[#500*.4440]J-[#500*.4440]Y-[#500*.8880]
- G1X-[#500*.5722]
- G90G0Z#502
- G91G0X-[#500*.4918]Y-[#500*1.0119]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (Q LETTER PROGRAM)
- N17G91G0X[#500*1.714]Y[#500*.118]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X-[#500*.4700]Y[#500*.4700]F#7
- G90G0Z#502
- G91G0X[#500*.3923]Y[#500*.1664]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1Y[#500*.5091]F#7
- G3R[#500*.6364]I-[#500*.6364]X-[#500*1.2728]
- G1Y-[#500*.5091]
- G3R[#500*.6364]I[#500*.6364]X[#500*1.2728]
- G90G0Z#502
- G91G0X-[#500*1.6364]Y-[#500*.7544]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- ( R LETTER PROGRAM)
- N18G91G0X[#500*.4129]Y[#500*.118]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1Y[#500*1.782]F#7
- X[#500*.7934]
- G2R[#500*.3807]J-[#500*.3807]Y-[#500*.7614]
- G1X-[#500*.7934]
- G90G0Z#502
- G91G0X[#500*.6739]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X[#500*.5001]Y-[#500*1.0205]F#7
- G90G0Z#502
- G91G0X-[#500*1.5870]Y-[#500*.118]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (S LETTER PROGRAM)
- N19G91G0X[#500*1.6543]Y[#500*1.6772]
- G90G0Z#501
- G90G1Z#2F#3
- G91
- G3R[#500*.891]I-[#500*.5929]J-[#500*.6650]X-[#500*.6682]Y[#500*.2227]F#7
- G3R[#500*.4455]J-[#500*.4455]Y-[#500*.891]
- G1X[#500*.2572]
- G2R[#500*.4469]I-[#500*.0359]J-[#500*.4455]X[#500*.4109]Y-[#500*.4455]
- G2R[#500*.4469]I-[#500*.4469]X-[#500*.4109]Y-[#500*.4455] G1X-[#500*.3100]
- G2R[#500*.891]I[#500*.0263]J[#500*.8906]X-[#500*.5877]Y[#500*.2450]
- G90G0Z#502
- G91G0X-[#500*.3456]Y-[#500*.3630]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (T LETTER PROGRAM)
- N20G91G0X[#500*1.]Y[#500*.118]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1Y[#500*1.782]F#7
- G90G0Z#502
- G91G0X-[#500*.891]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X[#500*1.782]F#7
- G90G0Z#502
- G91G0X-[#500*1.891]Y-[#500*1.9]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (U LETTER PROGRAM)
- N21G91G0X[#500*1.7637]Y[#500*1.9]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1Y-[#500*1.0182]F#7
- G2R[#500*.7637]I-[#500*.7637]X-[#500*1.5274]
- G1Y[#500*1.0182]
- G90G0Z#502
- G91G0X-[#500*.2362]Y-[#500*1.9]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (V LETTER PROGRAM)
- N22G91G0X[#500*1.6682]Y[#500*1.9]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X-[#500*.6682]Y-[#500*1.782]F#7
- X-[#500*.6682]Y[#500*1.782]
- G90G0Z#502
- G91G0X-[#500*.3317]Y-[#500*1.9]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (W LETTER PROGRAM)
- N23G91G0X[#500*1.8591]Y[#500*1.9]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X-[#500*.3500]Y-[#500*1.782]F#7
- X-[#500*.5091]Y[#500*1.782]
- X-[#500*.5091]Y-[#500*1.782]
- X-[#500*.3500]Y[#500*1.782]
- G90G0Z#502
- G91G0X-[#500*.1408]Y-[#500*1.9]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (X LETTER PROGRAM)
- N24G91G0X[#500*1.8909]Y[#500*.118]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X-[#500*1.782]Y[#500*1.782]F#7
- G90G0Z#502
- G91G0X[#500*1.782]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X-[#500*1.782]Y-[#500*1.782]F#7
- G90G0Z#502
- G91G0X-[#500*.109]Y-[#500*.118]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (Y LETTER PROGRAM)
- N25G91G0X[#500*1.6615]Y[#500*1.9]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X-[#500*.6615]Y-[#500*.882]F#7
- Y-[#500*.8909]
- G90G0Z#502
- G91G0Y[#500*.8909]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X-[#500*.6615]Y[#500*.882]F#7
- G90G0Z#502
- G91G0X-[#500*.3385]Y-[#500*1.9]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (Z LETTER PROGRAM)
- N26G91G0X[#500*1.891]Y[#500*.118]
- G90G0Z#501
- G90G1Z#2F#3
- G91G1X-[#500*1.782]F#7
- X[#500*1.782]Y[#500*1.782]
- X-[#500*1.782]
- G90G0Z#502
- G91G0X-[#500*.109]Y-[#500*1.9]
- IF[#8EQ1.]GOTO100
- IF[#8EQ0.]GOTO200
-
- (STEP OVER PROGRAM)
- N100G90G0Z#502
- G91G0X[#500*2.0000]
- N200M99
- %