; engrave numeric serial numbers up to 10 digits long ; assumes machine in lower left hand corner of number and spindle on ; numbers will be engraved left to right on the xy plane #<_depth> = -0.005 ; depth to engrave from current position #<_scale> = 1.0 ; 1 = .1875" #<_width> = .2 ; charatcer width spacing, .2" normal #<_feed_rate> = 3 ; feed rate #<_digits> = 10 ; number of digits, max of 10, min of 1 #<_digit_0> = #4000 ; read in digits #<_digit_1> = #4001 ; read in digits #<_digit_2> = #4002 ; read in digits #<_digit_3> = #4003 ; read in digits #<_digit_4> = #4004 ; read in digits #<_digit_5> = #4005 ; read in digits #<_digit_6> = #4006 ; read in digits #<_digit_7> = #4007 ; read in digits #<_digit_8> = #4008 ; read in digits #<_digit_9> = #4009 ; read in digits #<_x_start> = #<_x> ; read in origin #<_y_start> = #<_y> ; read in origin #<_digits_counter> = 0 ; counter for printing digits ; update serial number #<_digit_0> = [#<_digit_0> + 1] o120 if [#<_digit_0> GE 10] #<_digit_0> = 0 #<_digit_1> = [#<_digit_1> + 1] o120 endif o121 if [#<_digit_1> GE 10] #<_digit_1> = 0 #<_digit_2> = [#<_digit_2> + 1] o121 endif o122 if [#<_digit_2> GE 10] #<_digit_2> = 0 #<_digit_3> = [#<_digit_3> + 1] o122 endif o123 if [#<_digit_3> GE 10] #<_digit_3> = 0 #<_digit_4> = [#<_digit_4> + 1] o123 endif o124 if [#<_digit_4> GE 10] #<_digit_4> = 0 #<_digit_5> = [#<_digit_5> + 1] o124 endif o125 if [#<_digit_5> GE 10] #<_digit_5> = 0 #<_digit_6> = [#<_digit_6> + 1] o125 endif o126 if [#<_digit_6> GE 10] #<_digit_6> = 0 #<_digit_7> = [#<_digit_7> + 1] o126 endif o127 if [#<_digit_7> GE 10] #<_digit_7> = 0 #<_digit_8> = [#<_digit_8> + 1] o127 endif o128 if [#<_digit_8> GE 10] #<_digit_8> = 0 #<_digit_9> = [#<_digit_9> + 1] o128 endif o129 if [#<_digit_9> GE 10] (abort, max serial number exceeded) o129 endif ; store digits #4000 = #<_digit_0> #4001 = #<_digit_1> #4002 = #<_digit_2> #4003 = #<_digit_3> #4004 = #<_digit_4> #4005 = #<_digit_5> #4006 = #<_digit_6> #4007 = #<_digit_7> #4008 = #<_digit_8> #4009 = #<_digit_9> ; iterate through digits o110 if [#<_digits> GE 10] o32 call o[48 + #<_digit_9>] call #<_digits_counter> = [#<_digits_counter> + 1] o110 endif o109 if [#<_digits> GE 9] o32 call o[48 + #<_digit_8>] call #<_digits_counter> =[ #<_digits_counter> + 1] o109 endif o108 if [#<_digits> GE 8] o32 call o[48 + #<_digit_7>] call #<_digits_counter> = [#<_digits_counter> + 1] o108 endif o107 if [#<_digits> GE 7] o32 call o[48 + #<_digit_6>] call #<_digits_counter> = [#<_digits_counter> + 1] o107 endif o106 if [#<_digits> GE 6] o32 call o[48 + #<_digit_5>] call #<_digits_counter> = [#<_digits_counter> + 1] o106 endif o105 if [#<_digits> GE 5] o32 call o[48 + #<_digit_4>] call #<_digits_counter> = [#<_digits_counter> + 1] o105 endif o104 if [#<_digits> GE 4] o32 call o[48 + #<_digit_3>] call #<_digits_counter> = [#<_digits_counter> + 1] o104 endif o103 if [#<_digits> GE 3] o32 call o[48 + #<_digit_2>] call #<_digits_counter> = [#<_digits_counter> + 1] o103 endif o102 if [#<_digits> GE 2] o32 call o[48 + #<_digit_1>] call #<_digits_counter> = [#<_digits_counter> + 1] o102 endif o101 if [#<_digits> GE 1] o32 call o[48 + #<_digit_0>] call #<_digits_counter> = [#<_digits_counter> + 1] o101 endif M02 ; spacing for digit width o32 sub G00 G90 X[#<_x_start> + [#<_width> * #<_digits_counter> * #<_scale>]] Y#<_y_start> ; position to corner of next digit #<_x_new> = #<_x> ; update character position #<_y_new> = #<_y> ; update character position o32 endsub ; 0 o48 sub X[#<_x_new> + [0.0804 * #<_scale>]] Y[#<_y_new> + [0.1875 * #<_scale>]] G01 G91 Z#<_depth> F#<_feed_rate> G90 X[#<_x_new> + [0.0536 * #<_scale>]] Y[#<_y_new> + [0.1786 * #<_scale>]] X[#<_x_new> + [0.0357 * #<_scale>]] Y[#<_y_new> + [0.1518 * #<_scale>]] X[#<_x_new> + [0.0268 * #<_scale>]] Y[#<_y_new> + [0.1071 * #<_scale>]] X[#<_x_new> + [0.0268 * #<_scale>]] Y[#<_y_new> + [0.0804 * #<_scale>]] X[#<_x_new> + [0.0357 * #<_scale>]] Y[#<_y_new> + [0.0357 * #<_scale>]] X[#<_x_new> + [0.0536 * #<_scale>]] Y[#<_y_new> + [0.0089 * #<_scale>]] X[#<_x_new> + [0.0804 * #<_scale>]] Y[#<_y_new> + [0.0000 * #<_scale>]] X[#<_x_new> + [0.0982 * #<_scale>]] Y[#<_y_new> + [0.0000 * #<_scale>]] X[#<_x_new> + [0.1250 * #<_scale>]] Y[#<_y_new> + [0.0089 * #<_scale>]] X[#<_x_new> + [0.1429 * #<_scale>]] Y[#<_y_new> + [0.0357 * #<_scale>]] X[#<_x_new> + [0.1518 * #<_scale>]] Y[#<_y_new> + [0.0804 * #<_scale>]] X[#<_x_new> + [0.1518 * #<_scale>]] Y[#<_y_new> + [0.1071 * #<_scale>]] X[#<_x_new> + [0.1429 * #<_scale>]] Y[#<_y_new> + [0.1518 * #<_scale>]] X[#<_x_new> + [0.1250 * #<_scale>]] Y[#<_y_new> + [0.1786 * #<_scale>]] X[#<_x_new> + [0.0982 * #<_scale>]] Y[#<_y_new> + [0.1875 * #<_scale>]] X[#<_x_new> + [0.0804 * #<_scale>]] Y[#<_y_new> + [0.1875 * #<_scale>]] G00 G91 Z[#<_depth> * -1] o48 endsub ; 1 o49 sub X[#<_x_new> + [0.0536 * #<_scale>]] Y[#<_y_new> + [0.1518 * #<_scale>]] G01 G91 Z#<_depth> F#<_feed_rate> G90 X[#<_x_new> + [0.0714 * #<_scale>]] Y[#<_y_new> + [0.1607 * #<_scale>]] X[#<_x_new> + [0.0982 * #<_scale>]] Y[#<_y_new> + [0.1875 * #<_scale>]] X[#<_x_new> + [0.0982 * #<_scale>]] Y[#<_y_new> + [0.0000 * #<_scale>]] G00 G91 Z[#<_depth> * -1] o49 endsub ; 2 o50 sub X[#<_x_new> + [0.0357 * #<_scale>]] Y[#<_y_new> + [0.1429 * #<_scale>]] G01 G91 Z#<_depth> F#<_feed_rate> G90 X[#<_x_new> + [0.0357 * #<_scale>]] Y[#<_y_new> + [0.1518 * #<_scale>]] X[#<_x_new> + [0.0446 * #<_scale>]] Y[#<_y_new> + [0.1696 * #<_scale>]] X[#<_x_new> + [0.0536 * #<_scale>]] Y[#<_y_new> + [0.1786 * #<_scale>]] X[#<_x_new> + [0.0714 * #<_scale>]] Y[#<_y_new> + [0.1875 * #<_scale>]] X[#<_x_new> + [0.1071 * #<_scale>]] Y[#<_y_new> + [0.1875 * #<_scale>]] X[#<_x_new> + [0.1250 * #<_scale>]] Y[#<_y_new> + [0.1786 * #<_scale>]] X[#<_x_new> + [0.1339 * #<_scale>]] Y[#<_y_new> + [0.1696 * #<_scale>]] X[#<_x_new> + [0.1429 * #<_scale>]] Y[#<_y_new> + [0.1518 * #<_scale>]] X[#<_x_new> + [0.1429 * #<_scale>]] Y[#<_y_new> + [0.1339 * #<_scale>]] X[#<_x_new> + [0.1339 * #<_scale>]] Y[#<_y_new> + [0.1161 * #<_scale>]] X[#<_x_new> + [0.1161 * #<_scale>]] Y[#<_y_new> + [0.0893 * #<_scale>]] X[#<_x_new> + [0.0268 * #<_scale>]] Y[#<_y_new> + [0.0000 * #<_scale>]] X[#<_x_new> + [0.1518 * #<_scale>]] Y[#<_y_new> + [0.0000 * #<_scale>]] G00 G91 Z[#<_depth> * -1] o50 endsub ; 3 o51 sub X[#<_x_new> + [0.0446 * #<_scale>]] Y[#<_y_new> + [0.1875 * #<_scale>]] G01 G91 Z#<_depth> F#<_feed_rate> G90 X[#<_x_new> + [0.1429 * #<_scale>]] Y[#<_y_new> + [0.1875 * #<_scale>]] X[#<_x_new> + [0.0893 * #<_scale>]] Y[#<_y_new> + [0.1161 * #<_scale>]] X[#<_x_new> + [0.1161 * #<_scale>]] Y[#<_y_new> + [0.1161 * #<_scale>]] X[#<_x_new> + [0.1339 * #<_scale>]] Y[#<_y_new> + [0.1071 * #<_scale>]] X[#<_x_new> + [0.1429 * #<_scale>]] Y[#<_y_new> + [0.0982 * #<_scale>]] X[#<_x_new> + [0.1518 * #<_scale>]] Y[#<_y_new> + [0.0714 * #<_scale>]] X[#<_x_new> + [0.1518 * #<_scale>]] Y[#<_y_new> + [0.0536 * #<_scale>]] X[#<_x_new> + [0.1429 * #<_scale>]] Y[#<_y_new> + [0.0268 * #<_scale>]] X[#<_x_new> + [0.1250 * #<_scale>]] Y[#<_y_new> + [0.0089 * #<_scale>]] X[#<_x_new> + [0.0982 * #<_scale>]] Y[#<_y_new> + [0.0000 * #<_scale>]] X[#<_x_new> + [0.0714 * #<_scale>]] Y[#<_y_new> + [0.0000 * #<_scale>]] X[#<_x_new> + [0.0446 * #<_scale>]] Y[#<_y_new> + [0.0089 * #<_scale>]] X[#<_x_new> + [0.0357 * #<_scale>]] Y[#<_y_new> + [0.0179 * #<_scale>]] X[#<_x_new> + [0.0268 * #<_scale>]] Y[#<_y_new> + [0.0357 * #<_scale>]] G00 G91 Z[#<_depth> * -1] o51 endsu ; 4 o52 sub X[#<_x_new> + [0.1161 * #<_scale>]] Y[#<_y_new> + [0.0000 * #<_scale>]] G01 G91 Z#<_depth> F#<_feed_rate> G90 X[#<_x_new> + [0.1161 * #<_scale>]] Y[#<_y_new> + [0.1875 * #<_scale>]] X[#<_x_new> + [0.0268 * #<_scale>]] Y[#<_y_new> + [0.0625 * #<_scale>]] X[#<_x_new> + [0.1607 * #<_scale>]] Y[#<_y_new> + [0.0625 * #<_scale>]] G00 G91 Z[#<_depth> * -1] o52 endsub ; 5 o53 sub X[#<_x_new> + [0.1339 * #<_scale>]] Y[#<_y_new> + [0.1875 * #<_scale>]] G01 G91Z#<_depth> F#<_feed_rate> G90 X[#<_x_new> + [0.0446 * #<_scale>]] Y[#<_y_new> + [0.1875 * #<_scale>]] X[#<_x_new> + [0.0357 * #<_scale>]] Y[#<_y_new> + [0.1071 * #<_scale>]] X[#<_x_new> + [0.0446 * #<_scale>]] Y[#<_y_new> + [0.1161 * #<_scale>]] X[#<_x_new> + [0.0714 * #<_scale>]] Y[#<_y_new> + [0.1250 * #<_scale>]] X[#<_x_new> + [0.0982 * #<_scale>]] Y[#<_y_new> + [0.1250 * #<_scale>]] X[#<_x_new> + [0.1250 * #<_scale>]] Y[#<_y_new> + [0.1161 * #<_scale>]] X[#<_x_new> + [0.1429 * #<_scale>]] Y[#<_y_new> + [0.0982 * #<_scale>]] X[#<_x_new> + [0.1518 * #<_scale>]] Y[#<_y_new> + [0.0714 * #<_scale>]] X[#<_x_new> + [0.1518 * #<_scale>]] Y[#<_y_new> + [0.0536 * #<_scale>]] X[#<_x_new> + [0.1429 * #<_scale>]] Y[#<_y_new> + [0.0268 * #<_scale>]] X[#<_x_new> + [0.1250 * #<_scale>]] Y[#<_y_new> + [0.0089 * #<_scale>]] X[#<_x_new> + [0.0982 * #<_scale>]] Y[#<_y_new> + [0.0000 * #<_scale>]] X[#<_x_new> + [0.0714 * #<_scale>]] Y[#<_y_new> + [0.0000 * #<_scale>]] X[#<_x_new> + [0.0446 * #<_scale>]] Y[#<_y_new> + [0.0089 * #<_scale>]] X[#<_x_new> + [0.0357 * #<_scale>]] Y[#<_y_new> + [0.0179 * #<_scale>]] X[#<_x_new> + [0.0268 * #<_scale>]] Y[#<_y_new> + [0.0357 * #<_scale>]] G00 G91 Z[#<_depth> * -1] o53 endsub ; 6 o54 sub X[#<_x_new> + [0.1429 * #<_scale>]] Y[#<_y_new> + [0.1607 * #<_scale>]] G01 G91 Z#<_depth> F#<_feed_rate> G90 X[#<_x_new> + [0.1339 * #<_scale>]] Y[#<_y_new> + [0.1786 * #<_scale>]] X[#<_x_new> + [0.1071 * #<_scale>]] Y[#<_y_new> + [0.1875 * #<_scale>]] X[#<_x_new> + [0.0893 * #<_scale>]] Y[#<_y_new> + [0.1875 * #<_scale>]] X[#<_x_new> + [0.0625 * #<_scale>]] Y[#<_y_new> + [0.1786 * #<_scale>]] X[#<_x_new> + [0.0446 * #<_scale>]] Y[#<_y_new> + [0.1518 * #<_scale>]] X[#<_x_new> + [0.0357 * #<_scale>]] Y[#<_y_new> + [0.1071 * #<_scale>]] X[#<_x_new> + [0.0357 * #<_scale>]] Y[#<_y_new> + [0.0625 * #<_scale>]] X[#<_x_new> + [0.0446 * #<_scale>]] Y[#<_y_new> + [0.0268 * #<_scale>]] X[#<_x_new> + [0.0625 * #<_scale>]] Y[#<_y_new> + [0.0089 * #<_scale>]] X[#<_x_new> + [0.0893 * #<_scale>]] Y[#<_y_new> + [0.0000 * #<_scale>]] X[#<_x_new> + [0.0982 * #<_scale>]] Y[#<_y_new> + [0.0000 * #<_scale>]] X[#<_x_new> + [0.1250 * #<_scale>]] Y[#<_y_new> + [0.0089 * #<_scale>]] X[#<_x_new> + [0.1429 * #<_scale>]] Y[#<_y_new> + [0.0268 * #<_scale>]] X[#<_x_new> + [0.1518 * #<_scale>]] Y[#<_y_new> + [0.0536 * #<_scale>]] X[#<_x_new> + [0.1518 * #<_scale>]] Y[#<_y_new> + [0.0625 * #<_scale>]] X[#<_x_new> + [0.1429 * #<_scale>]] Y[#<_y_new> + [0.0893 * #<_scale>]] X[#<_x_new> + [0.1250 * #<_scale>]] Y[#<_y_new> + [0.1071 * #<_scale>]] X[#<_x_new> + [0.0982 * #<_scale>]] Y[#<_y_new> + [0.1161 * #<_scale>]] X[#<_x_new> + [0.0893 * #<_scale>]] Y[#<_y_new> + [0.1161 * #<_scale>]] X[#<_x_new> + [0.0625 * #<_scale>]] Y[#<_y_new> + [0.1071 * #<_scale>]] X[#<_x_new> + [0.0446 * #<_scale>]] Y[#<_y_new> + [0.0893 * #<_scale>]] X[#<_x_new> + [0.0357 * #<_scale>]] Y[#<_y_new> + [0.0625 * #<_scale>]] G00 G91 Z[#<_depth> * -1] o54 endsub ; 7 o55 sub X[#<_x_new> + [0.0625 * #<_scale>]] Y[#<_y_new> + [0.0000 * #<_scale>]] G01 G91 Z#<_depth> F#<_feed_rate> G90 X[#<_x_new> + [0.1518 * #<_scale>]] Y[#<_y_new> + [0.1875 * #<_scale>]] X[#<_x_new> + [0.0268 * #<_scale>]] Y[#<_y_new> + [0.1875 * #<_scale>]] G00 G91 Z[#<_depth> * -1] o55 endsub ; 8 o56 sub X[#<_x_new> + [0.0714 * #<_scale>]] Y[#<_y_new> + [0.1875 * #<_scale>]] G01 G91 Z#<_depth> F#<_feed_rate> G90 X[#<_x_new> + [0.0446 * #<_scale>]] Y[#<_y_new> + [0.1786 * #<_scale>]] X[#<_x_new> + [0.0357 * #<_scale>]] Y[#<_y_new> + [0.1607 * #<_scale>]] X[#<_x_new> + [0.0357 * #<_scale>]] Y[#<_y_new> + [0.1429 * #<_scale>]] X[#<_x_new> + [0.0446 * #<_scale>]] Y[#<_y_new> + [0.1250 * #<_scale>]] X[#<_x_new> + [0.0625 * #<_scale>]] Y[#<_y_new> + [0.1161 * #<_scale>]] X[#<_x_new> + [0.0982 * #<_scale>]] Y[#<_y_new> + [0.1071 * #<_scale>]] X[#<_x_new> + [0.1250 * #<_scale>]] Y[#<_y_new> + [0.0982 * #<_scale>]] X[#<_x_new> + [0.1429 * #<_scale>]] Y[#<_y_new> + [0.0804 * #<_scale>]] X[#<_x_new> + [0.1518 * #<_scale>]] Y[#<_y_new> + [0.0625 * #<_scale>]] X[#<_x_new> + [0.1518 * #<_scale>]] Y[#<_y_new> + [0.0357 * #<_scale>]] X[#<_x_new> + [0.1429 * #<_scale>]] Y[#<_y_new> + [0.0179 * #<_scale>]] X[#<_x_new> + [0.1339 * #<_scale>]] Y[#<_y_new> + [0.0089 * #<_scale>]] X[#<_x_new> + [0.1071 * #<_scale>]] Y[#<_y_new> + [0.0000 * #<_scale>]] X[#<_x_new> + [0.0714 * #<_scale>]] Y[#<_y_new> + [0.0000 * #<_scale>]] X[#<_x_new> + [0.0446 * #<_scale>]] Y[#<_y_new> + [0.0089 * #<_scale>]] X[#<_x_new> + [0.0357 * #<_scale>]] Y[#<_y_new> + [0.0179 * #<_scale>]] X[#<_x_new> + [0.0268 * #<_scale>]] Y[#<_y_new> + [0.0357 * #<_scale>]] X[#<_x_new> + [0.0268 * #<_scale>]] Y[#<_y_new> + [0.0625 * #<_scale>]] X[#<_x_new> + [0.0357 * #<_scale>]] Y[#<_y_new> + [0.0804 * #<_scale>]] X[#<_x_new> + [0.0536 * #<_scale>]] Y[#<_y_new> + [0.0982 * #<_scale>]] X[#<_x_new> + [0.0804 * #<_scale>]] Y[#<_y_new> + [0.1071 * #<_scale>]] X[#<_x_new> + [0.1161 * #<_scale>]] Y[#<_y_new> + [0.1161 * #<_scale>]] X[#<_x_new> + [0.1339 * #<_scale>]] Y[#<_y_new> + [0.1250 * #<_scale>]] X[#<_x_new> + [0.1429 * #<_scale>]] Y[#<_y_new> + [0.1429 * #<_scale>]] X[#<_x_new> + [0.1429 * #<_scale>]] Y[#<_y_new> + [0.1607 * #<_scale>]] X[#<_x_new> + [0.1339 * #<_scale>]] Y[#<_y_new> + [0.1786 * #<_scale>]] X[#<_x_new> + [0.1071 * #<_scale>]] Y[#<_y_new> + [0.1875 * #<_scale>]] X[#<_x_new> + [0.0714 * #<_scale>]] Y[#<_y_new> + [0.1875 * #<_scale>]] G00 G91 Z[#<_depth> * -1] o56 endsub ; 9 o57 sub X[#<_x_new> + [0.1429 * #<_scale>]] Y[#<_y_new> + [0.1250 * #<_scale>]] G01 G91 Z#<_depth> F#<_feed_rate> G90 X[#<_x_new> + [0.1339 * #<_scale>]] Y[#<_y_new> + [0.0982 * #<_scale>]] X[#<_x_new> + [0.1161 * #<_scale>]] Y[#<_y_new> + [0.0804 * #<_scale>]] X[#<_x_new> + [0.0893 * #<_scale>]] Y[#<_y_new> + [0.0714 * #<_scale>]] X[#<_x_new> + [0.0804 * #<_scale>]] Y[#<_y_new> + [0.0714 * #<_scale>]] X[#<_x_new> + [0.0536 * #<_scale>]] Y[#<_y_new> + [0.0804 * #<_scale>]] X[#<_x_new> + [0.0357 * #<_scale>]] Y[#<_y_new> + [0.0982 * #<_scale>]] X[#<_x_new> + [0.0268 * #<_scale>]] Y[#<_y_new> + [0.1250 * #<_scale>]] X[#<_x_new> + [0.0268 * #<_scale>]] Y[#<_y_new> + [0.1339 * #<_scale>]] X[#<_x_new> + [0.0357 * #<_scale>]] Y[#<_y_new> + [0.1607 * #<_scale>]] X[#<_x_new> + [0.0536 * #<_scale>]] Y[#<_y_new> + [0.1786 * #<_scale>]] X[#<_x_new> + [0.0804 * #<_scale>]] Y[#<_y_new> + [0.1875 * #<_scale>]] X[#<_x_new> + [0.0893 * #<_scale>]] Y[#<_y_new> + [0.1875 * #<_scale>]] X[#<_x_new> + [0.1161 * #<_scale>]] Y[#<_y_new> + [0.1786 * #<_scale>]] X[#<_x_new> + [0.1339 * #<_scale>]] Y[#<_y_new> + [0.1607 * #<_scale>]] X[#<_x_new> + [0.1429 * #<_scale>]] Y[#<_y_new> + [0.1250 * #<_scale>]] X[#<_x_new> + [0.1429 * #<_scale>]] Y[#<_y_new> + [0.0804 * #<_scale>]] X[#<_x_new> + [0.1339 * #<_scale>]] Y[#<_y_new> + [0.0357 * #<_scale>]] X[#<_x_new> + [0.1161 * #<_scale>]] Y[#<_y_new> + [0.0089 * #<_scale>]] X[#<_x_new> + [0.0893 * #<_scale>]] Y[#<_y_new> + [0.0000 * #<_scale>]] X[#<_x_new> + [0.0714 * #<_scale>]] Y[#<_y_new> + [0.0000 * #<_scale>]] X[#<_x_new> + [0.0446 * #<_scale>]] Y[#<_y_new> + [0.0089 * #<_scale>]] X[#<_x_new> + [0.0357 * #<_scale>]] Y[#<_y_new> + [0.0268 * #<_scale>]] G00 G91 Z[#<_depth> * -1] o57 endsub