;Attempt to engrave scale rings ;Engraving is done in the XA plane and in the postive direction from X =0 #<_dia> = 140 ; scale diameter #<_depth> = 0.15 ; engraving depth #<_height> = 4 ; character height. Negative to reverse figures #<_scale> = 1 ; unit conversion #<_inc> = 10 ; angle between numbers #<_tick> = 1 ; angle between ticks. 0 for no ticks #<_f> = 80 G21 F #<_f> #41 = [180 / [#<_dia> * 3.14159] * #<_height>] #42 = #<_height> (debug, #41 #42) O0 sub G92 A0 X0 G0 A0 X0 Z[#<_dia> / 2 + 1] G1 Z[#<_dia> / 2 - #<_depth>] A[0.2357 * #41] X[0.0976 * #42] A[0.3333 * #41] X[0.3333 * #42] A[0.3333 * #41] X[0.6667 * #42] A[0.2357 * #41] X[0.9024 * #42] A[0.0000 * #41] X[1.0000 * #42] A[-0.2357 * #41] X[0.9024 * #42] A[-0.3333 * #41] X[0.6667 * #42] A[-0.3333 * #41] X[0.3333 * #42] A[0.0000* #41] X[0.0000 * #42] G0 Z[#<_dia> / 2 + 1] G92.1 O0 endsub O1 sub G92 A0 X0 G1 Z[#<_dia> / 2 - #<_depth>] A[0.0000 * #41] X[1.0000 * #42] G0 Z[#<_dia> / 2 + 1] G92.1 O1 endsub O2 sub G92 A0 X0 G0 A[0.3333 * #41] X[0.000 * #42] Z[#<_dia> / 2 + 1] G1 Z[#<_dia>/2 - #<_depth>] A[-.3333 * #41] X[0.0000 * #42] A[0.0000 * #41] X[0.3333 * #42] A[0.2357 * #41] X[0.4310 * #42] A[0.3333 * #41] X[0.6666 * #42] A[0.2357 * #41] X[0.9024 * #42] A[0.0000 * #41] X[1.0000 * #42] A[-.2357 * #41] X[0.9024 * #42] A[-.3333 * #41] X[0.6667 * #42] G0 Z[#<_dia> / 2 + 1] G92.1 O2 endsub O3 sub G92 A0 X0 G0 A[-.3333 * #41] X[0.3333 * #42] Z[#<_dia> / 2 + 1] G1 Z[#<_dia>/2 - #<_depth>] A[-.2357 * #41] X[0.0976 * #42] A[0.0000 * #41] X[0.0000 * #42] A[0.2357 * #41] X[0.0976 * #42] A[0.3333 * #41] X[0.3333 * #42] A[0.2357 * #41] X[0.5690 * #42] A[0.0000 * #41] X[0.6667 * #42] A[0.3333 * #41] X[1.0000 * #42] A[-.3333 * #41] X[1.0000 * #42] G0 Z[#<_dia> / 2 + 1] G92.1 O3 endsub O4 sub G92 A0 X0 G0 A[0.2357 * #41] X[0.000 * #42] Z[#<_dia> / 2 + 1] G1 Z[#<_dia>/2 - #<_depth>] A[0.2357 * #41] X[1.0000 * #42] A[-.3333 * #41] X[0.3333 * #42] A[0.3333 * #41] X[0.3333 * #42] G0 Z[#<_dia> / 2 + 1] G92.1 O4 endsub O5 sub G92 A0 X0 G0 A[-.3333 * #41] X[0.3333 * #42] Z[#<_dia> / 2 + 1] G1 Z[#<_dia>/2 - #<_depth>] A[-.2357 * #41] X[0.0976 * #42] A[0.0000 * #41] X[0.0000 * #42] A[0.2357 * #41] X[0.0976 * #42] A[0.3333 * #41] X[0.3333 * #42] A[0.2357 * #41] X[0.5690 * #42] A[0.0000 * #41] X[0.6667 * #42] A[-.3333 * #41] X[0.6667 * #42] A[-.3333 * #41] X[1.0000 * #42] A[0.3333 * #41] X[1.0000 * #42] G0 Z[#<_dia> / 2 + 1] G92.1 O5 endsub O6 sub G92 A0 X0 G0 A[-.3333 * #41] X[0.0333 * #42] Z[#<_dia> / 2 + 1] G1 Z[#<_dia> / 2 - #<_depth>] A[-.2357 * #41] X[0.5690 * #42] A[0.0000 * #41] X[0.6667 * #42] A[0.2357 * #41] X[0.5690 * #42] A[0.3333 * #41] X[0.3333 * #42] A[0.2357 * #41] X[0.0976 * #42] A[0.0000 * #41] X[0.0000 * #42] A[-.2357 * #41] X[0.0967 * #42] A[-.3333 * #41] X[0.3333 * #42] A[-.2357 * #41] X[0.9024 * #42] A[0.0000 * #41] X[1.0000 * #42] A[0.2357 * #41] X[0.9024 * #42] G0Z [#<_dia> / 2 + 1] G92.1 O6 endsub O7 sub G92 A0 X0 G0 A[-.2357 * #41] X[0.0000 * #42] Z[#<_dia> / 2 + 1] G1 Z[#<_dia>/2 - #<_depth>] A[0.3333 * #41] X[1.0000 * #42] A[-.3333 * #41] X[1.0000 * #42] G0 Z[#<_dia> / 2 + 1] G92.1 O7 endsub O8 sub G92 A0 X0 G0 A[0.2357 * #41] X[0.5690 * #42] Z[#<_dia> / 2 + 1] G1 Z[#<_dia> / 2 - #<_depth>] A[-.2357 * #41] X[0.5690 * #42] A[-.3333 * #41] X[0.3333 * #42] A[-.2357 * #41] X[0.0976 * #42] A[0.0000 * #41] X[0.0000 * #42] A[0.2357 * #41] X[0.0976 * #42] A[0.3333 * #41] X[0.3333 * #42] A[0.2357 * #41] X[0.5690 * #42] A[0.3333 * #41] X[0.6667 * #42] A[0.2357 * #41] X[0.9024 * #42] A[0.0000 * #41] X[1.0000 * #42] A[-.2357 * #41] X[0.9024 * #42] A[-.3333 * #41] X[0.6667 * #42] A[-.2357 * #41] X[0.5690 * #42] G0 Z[#<_dia> / 2 + 1] G92.1 O8 endsub O9 sub G92 A0 X0 G0 A[-.3333 * #41] X[0.3333 * #42] Z[#<_dia> / 2 + 1] G1 Z[#<_dia>/2 - #<_depth>] A[-.2357 * #41] X[0.0976 * #42] A[0.0000 * #41] X[0.0000 * #42] A[0.2357 * #41] X[0.0976 * #42] A[0.3333 * #41] X[0.3333 * #42] A[0.3333 * #41] X[0.6667 * #42] A[0.2367 * #41] X[0.9024 * #42] A[0.0000 * #41] X[1.0000 * #42] A[-.2357 * #41] X[0.9024 * #42] A[-.3333 * #41] X[0.6667 * #42] A[-.2357 * #41] X[0.4310 * #42] A[0.0000 * #41] X[0.3333 * #42] A[0.2357 * #41] X[0.4310 * #42] A[0.3333 * #41] X[0.6667 * #42] G0 Z[#<_dia> / 2 + 1] G92.1 O9 endsub O SUB G92 A0 X0 G0 X [#<_height> * 1.5] G1 Z[#<_dia>/2 - #<_depth>] G1 X [#<_height> * 3] G0 Z[#<_dia> / 2 + 1] G92.1 O ENDSUB O SUB G92 A0 X0 G0 X [#<_height> * 2] G1 Z[#<_dia>/2 - #<_depth>] G1 X [#<_height> * 3] G0 Z[#<_dia> / 2 + 1] G92.1 O ENDSUB ; Start Engraving G92.1 #3 = 0 O100 while [#3 LT 360] #4 = [#3 * #<_scale>] (DEBUG, #4) O200 if [#3 MOD #<_inc> EQ 0] O101 if [#4 LT 10] G0 A#3 X0 Z[#<_dia> / 2 + 1] O[FIX[#4]] call O101 else if [#4 LT 100] G0 A[#3 - #42 * 0.3] X0 Z[#<_dia> / 2 + 1] O[FIX[#4 / 10]] call G0 A[#3 + #42 * 0.3] X0 O[FIX[#4 mod 10]] call O101 else if [#4 LT 1000] G0 A[#3 - #42 * 0.6 ] X0 Z[#<_dia> / 2 + 1] O[FIX[#4 / 100]] call G0 A#3 X0 O[FIX[[#4/10] mod 10]] call G0 A[#3 + #42 * 0.6 ] X0 O[FIX[#4 mod 10]] call O101 endif G0 A#3 X0 Z[#<_dia> / 2 + 1] O CALL O200 ELSE G0 A#3 X0 Z[#<_dia> / 2 + 1] O CALL O200 ENDIF #3 = [#3 + [#<_inc> * [#<_tick> EQ 0]] + #<_tick>] O100 endwhile M2