Counting and Logging Cut Pieces

All things related to the Centroid Acorn Plasma system.

Moderators: cnckeith, Joey

Post Reply
GarrettJ
Posts: 3
Joined: Wed Feb 14, 2024 2:34 pm
Acorn CNC Controller: No
Plasma CNC Controller: No
AcornSix CNC Controller: No
Allin1DC CNC Controller: No
Hickory CNC Controller: No
Oak CNC controller: No
CNC Control System Serial Number: none
DC3IOB: No
CNC12: Yes
CNC11: No
CPU10 or CPU7: No

Counting and Logging Cut Pieces

Post by GarrettJ »

Good Afternoon.

First, I have a couple introductory points.
1. I am new here to the forum. Thank you for hosting and continuing to stay active here.
2. I do not know if I am posting in the right place. If not, please let me know where to post and I will gladly move there. You will understand my potential confusion as I elaborate.


On to the situation. I work for a structural steel fabrication company. At this company, we are using a cnc plasma cutter to cut mostly handrail pipe (1-1/4" or 1-1/2" STD pipe) along with some tube and angle. We program this machine from Solidworks with the Sigmatube plugin. The .cnc files that Sigmatube produces get stored in file explorer and then ran through cncmill 12 (Emulator) to be cut on the machine. Truly, the process works pretty good and we get better in different parts of the process nearly every day.

However, one issue we would like to address is logging pieces as they get cut. You see, currently, we have any given file which represents one stick of material. This file may have anywhere from 1-100 piece marks (all depending on the length of the pieces) in it. The issue is when we know that we know that we know that pieces were programmed and cut correctly, but cannot prove it because our system is not set up to log the pieces that are truly cut. Right now, our operator simply marks a given file with "[ Done ]" when has cut a file, then he moves on to the next. The current system works fine for the most part, but there have been instances of the operator mismarking files, or simply not remembering if he marked something or not. The current system is also not very trustworthy, as there is no real consistency as to when something was marked, if it was marked, or if it was marked simply as a cover-up.

This leads to the heart of my question. Within cnc-mill 12 (Emulator) is there a way, or specific style of G-code we can use to create a function that stores the piecemark name as a variable, then writes each variable into a separate log file when that code is read as the machine is cutting? Of course, if there is a better way to do this, I'm more than happy to pursue that.

If anything needs clarified, please let me know!

Thank you!
Joey
Posts: 516
Joined: Tue Aug 17, 2021 10:51 am
Acorn CNC Controller: Yes
Allin1DC CNC Controller: No
Oak CNC controller: No
CNC Control System Serial Number: none
DC3IOB: No
CNC12: Yes
CNC11: No
CPU10 or CPU7: No

Re: Counting and Logging Cut Pieces

Post by Joey »

I think I understand what your asking.

So this a plasma tube cutting machine? Just curious since I didn't see anything mentioned about plasma in the post. Is this an acorn board control?

Do you have any examples of the variables or the Gcode?


I'll look into it and get back to you
GarrettJ
Posts: 3
Joined: Wed Feb 14, 2024 2:34 pm
Acorn CNC Controller: No
Plasma CNC Controller: No
AcornSix CNC Controller: No
Allin1DC CNC Controller: No
Hickory CNC Controller: No
Oak CNC controller: No
CNC Control System Serial Number: none
DC3IOB: No
CNC12: Yes
CNC11: No
CPU10 or CPU7: No

Re: Counting and Logging Cut Pieces

Post by GarrettJ »

Thanks for the response and for looking into it!

This is a plasma cutting machine. It is a TPC2444 model machine made by a company in Pennsylvania called Electro Mechanical Integrators (EMI).

I do not know what board control it has. Sorry.


One example of G-Code straight out of Sigmatube is here:

Code: Select all

 
 
;Main program
;(Batchfile Header Information)
;(Batch Name: 3X3X1-4 ANGLE T1 L1)
;(Post Name: "EMI 2400 PROMPTS ROP.PST")
;(Post Version: 1.2)
;(Description:)
#[C] = 100 ; Marking Feedrate
#[D] = 50 ; Small Feedrate
#[E] = 75 ; Medium Feedrate
#[F] = 100 ; Flat Feedrate
#[G] = 600 ; Corner Feedrate
#[H] = 5.00 ; Print Location X Modifier
#[I] = 3.00 ; Print Location X Modifier Small Parts
#[J] = 0.00 ; Print Location Y Modifier
#[L] = 0.00 ;  Print Location A Modifier
#[K] = -50.35; AutoLoad Position
G54
T1
G43H1
G90
N9101
M25 ;RAISE TORCH
G90
M63 ;LOWER LIFT1  MATERIAL DOWN ON FRONT SUPPORT
G0 Y0.0  A0
G0 Z2.5000 F#F
M70 ;RETRACT BOTH PNEUMATIC Z  M25 TO RETRACT SERVO Z
M0
 
 
N9301
;(Name:  3X3X1-4 ANGLE T1 L1)
;(Cut Dia: 4.2426 Wall Thick: 0.2500)
;(Len:    240.0000)
;(Number Of Pieces: 0)
G93.1
G90
G0 Z2.5000
G0 X239.8750 Y-1.1060
G1 Z1.6000
G0 Z2.5000
/M16
;*** Begin Marking Code ***
 G91
 G0 X#H Y#J A#L
 M46 ; lower marking head
 M120 "c:\EMI\marking.txt"
 M123 ;2323 2M32
 M120 "c:\EMI\dummy.txt"
 if ![#4201 || #4202] then M130 L1 "C:\EMI\T2Printer\T2.exe"
 M47 ; raise marking head
 #[e] = #50033 ; copy error input 33 to variable #e
 IF [#e==1] THEN M130 L1 "C:\EMI\T2Printer\T2.EXE RESET" ; if error reset printer
 IF [#e==1] THEN M200 "Marking Error, press <Cycle Start> to ignore and continue."
 G0 X-#H Y-#J A-#L
 G90
;*** End Marking Code ***
G0 X239.8750 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X239.8750 Y-1.5000 Z1.5000
G1 X239.8750 Y-1.1060
G94F#D
G1 X239.8750 Y1.2500
/M16
G94
G0 Z2.5000
G0 X239.8750 Y1.1060 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X239.8750 Y1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X239.8750 Y1.5000
G1 X239.8750 Y1.1060
G94F#D
G1 X239.8750 Y-1.1064
G94F#F
G1 X239.8750 Y-1.5000
G1 X239.8750 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X234.4125 Y0.0706 A0.0000
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X234.3000 Y0.0289
G1 X234.3026 Y-0.0416
G1 X234.3334 Y-0.1052
G1 X234.3872 Y-0.1509
G1 X234.4548 Y-0.1712
G1 X234.5249 Y-0.1626
G1 X234.5856 Y-0.1265
G1 X234.6267 Y-0.0691
G1 X234.6412 Y0.0000
G1 X234.6407 Y0.0129
G1 X234.6210 Y0.0808
G1 X234.5758 Y0.1349
G1 X234.5125 Y0.1663
G1 X234.4420 Y0.1697
G1 X234.3761 Y0.1443
G1 X234.3259 Y0.0946
G1 X234.3000 Y0.0289
/M16
G94
G0 Z2.5000
G0 X229.0787 Y-1.1060
G1 Z1.6000
G0 Z2.5000
G0 X229.0787 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X229.0787 Y-1.5000
G1 X229.0787 Y-1.1060
G94F#D
G1 X229.0787 Y1.2500
/M16
G94
G0 Z2.5000
G0 X230.3109 Y1.2325 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X230.8678 Y1.7895
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X230.5895 Y1.5111
G1 X230.3109 Y1.2325
G94F#D
G1 X229.0833 Y0.0049
G1 X229.0817 Y0.0031
G1 X229.0804 Y0.0010
G1 X229.0794 Y-0.0014
G1 X229.0789 Y-0.0039
G1 X229.0787 Y-0.0062
G1 X229.0787 Y-1.1064
G94F#F
G1 X229.0787 Y-1.5000
G1 X229.0787 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X228.8877 Y-1.1060 A0.0000
G1 Z1.6000
G0 Z2.5000
/M16
;*** Begin Marking Code ***
 G91
 G0 X#H Y#J A#L
 M46 ; lower marking head
 M120 "c:\EMI\marking.txt"
 M123 ;2323 2M32
 M120 "c:\EMI\dummy.txt"
 if ![#4201 || #4202] then M130 L1 "C:\EMI\T2Printer\T2.exe"
 M47 ; raise marking head
 #[e] = #50033 ; copy error input 33 to variable #e
 IF [#e==1] THEN M130 L1 "C:\EMI\T2Printer\T2.EXE RESET" ; if error reset printer
 IF [#e==1] THEN M200 "Marking Error, press <Cycle Start> to ignore and continue."
 G0 X-#H Y-#J A-#L
 G90
;*** End Marking Code ***
G0 X228.8877 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X228.8877 Y-1.5000
G1 X228.8877 Y-1.1060
G94F#D
G1 X228.8877 Y1.2500
/M16
G94
G0 Z2.5000
G0 X228.8877 Y1.1060 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X228.8877 Y1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X228.8877 Y1.5000
G1 X228.8877 Y1.1060
G94F#D
G1 X228.8877 Y-1.1064
G94F#F
G1 X228.8877 Y-1.5000
G1 X228.8877 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X223.4252 Y0.0706 A0.0000
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X223.3126 Y0.0289
G1 X223.3153 Y-0.0416
G1 X223.3461 Y-0.1052
G1 X223.3999 Y-0.1509
G1 X223.4675 Y-0.1712
G1 X223.5376 Y-0.1626
G1 X223.5983 Y-0.1265
G1 X223.6394 Y-0.0691
G1 X223.6539 Y0.0000
G1 X223.6534 Y0.0129
G1 X223.6337 Y0.0808
G1 X223.5884 Y0.1349
G1 X223.5252 Y0.1663
G1 X223.4546 Y0.1697
G1 X223.3887 Y0.1443
G1 X223.3386 Y0.0946
G1 X223.3126 Y0.0289
/M16
G94
G0 Z2.5000
G0 X218.0913 Y-1.1060
G1 Z1.6000
G0 Z2.5000
G0 X218.0913 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X218.0913 Y-1.5000
G1 X218.0913 Y-1.1060
G94F#D
G1 X218.0913 Y1.2500
/M16
G94
G0 Z2.5000
G0 X219.3235 Y1.2325 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X219.8805 Y1.7895
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X219.6021 Y1.5111
G1 X219.3235 Y1.2325
G94F#D
G1 X218.0959 Y0.0049
G1 X218.0944 Y0.0031
G1 X218.0931 Y0.0010
G1 X218.0921 Y-0.0014
G1 X218.0915 Y-0.0039
G1 X218.0913 Y-0.0062
G1 X218.0913 Y-1.1064
G94F#F
G1 X218.0913 Y-1.5000
G1 X218.0913 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X217.9003 Y-1.1060 A0.0000
G1 Z1.6000
G0 Z2.5000
/M16
;*** Begin Marking Code ***
 G91
 G0 X#H Y#J A#L
 M46 ; lower marking head
 M120 "c:\EMI\marking.txt"
 M123 ;2323 2M32
 M120 "c:\EMI\dummy.txt"
 if ![#4201 || #4202] then M130 L1 "C:\EMI\T2Printer\T2.exe"
 M47 ; raise marking head
 #[e] = #50033 ; copy error input 33 to variable #e
 IF [#e==1] THEN M130 L1 "C:\EMI\T2Printer\T2.EXE RESET" ; if error reset printer
 IF [#e==1] THEN M200 "Marking Error, press <Cycle Start> to ignore and continue."
 G0 X-#H Y-#J A-#L
 G90
;*** End Marking Code ***
G0 X217.9003 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X217.9003 Y-1.5000
G1 X217.9003 Y-1.1060
G94F#D
G1 X217.9003 Y1.2500
/M16
G94
G0 Z2.5000
G0 X217.9003 Y1.1060 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X217.9003 Y1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X217.9003 Y1.5000
G1 X217.9003 Y1.1060
G94F#D
G1 X217.9003 Y-1.1064
G94F#F
G1 X217.9003 Y-1.5000
G1 X217.9003 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X212.4378 Y0.0706 A0.0000
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X212.3253 Y0.0289
G1 X212.3280 Y-0.0416
G1 X212.3588 Y-0.1052
G1 X212.4125 Y-0.1509
G1 X212.4802 Y-0.1712
G1 X212.5503 Y-0.1626
G1 X212.6110 Y-0.1265
G1 X212.6520 Y-0.0691
G1 X212.6665 Y0.0000
G1 X212.6661 Y0.0129
G1 X212.6464 Y0.0808
G1 X212.6011 Y0.1349
G1 X212.5379 Y0.1663
G1 X212.4673 Y0.1697
G1 X212.4014 Y0.1443
G1 X212.3512 Y0.0946
G1 X212.3253 Y0.0289
/M16
G94
G0 Z2.5000
G0 X207.1040 Y-1.1060
G1 Z1.6000
G0 Z2.5000
G0 X207.1040 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X207.1040 Y-1.5000
G1 X207.1040 Y-1.1060
G94F#D
G1 X207.1040 Y1.2500
/M16
G94
G0 Z2.5000
G0 X208.3362 Y1.2325 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X208.8932 Y1.7895
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X208.6148 Y1.5111
G1 X208.3362 Y1.2325
G94F#D
G1 X207.1086 Y0.0049
G1 X207.1071 Y0.0031
G1 X207.1058 Y0.0010
G1 X207.1048 Y-0.0014
G1 X207.1042 Y-0.0039
G1 X207.1040 Y-0.0062
G1 X207.1040 Y-1.1064
G94F#F
G1 X207.1040 Y-1.5000
G1 X207.1040 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X206.9130 Y-1.1060 A0.0000
G1 Z1.6000
G0 Z2.5000
/M16
;*** Begin Marking Code ***
 G91
 G0 X#H Y#J A#L
 M46 ; lower marking head
 M120 "c:\EMI\marking.txt"
 M123 ;2323 2M32
 M120 "c:\EMI\dummy.txt"
 if ![#4201 || #4202] then M130 L1 "C:\EMI\T2Printer\T2.exe"
 M47 ; raise marking head
 #[e] = #50033 ; copy error input 33 to variable #e
 IF [#e==1] THEN M130 L1 "C:\EMI\T2Printer\T2.EXE RESET" ; if error reset printer
 IF [#e==1] THEN M200 "Marking Error, press <Cycle Start> to ignore and continue."
 G0 X-#H Y-#J A-#L
 G90
;*** End Marking Code ***
G0 X206.9130 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X206.9130 Y-1.5000
G1 X206.9130 Y-1.1060
G94F#D
G1 X206.9130 Y1.2500
/M16
G94
G0 Z2.5000
G0 X206.9130 Y1.1060 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X206.9130 Y1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X206.9130 Y1.5000
G1 X206.9130 Y1.1060
G94F#D
G1 X206.9130 Y-1.1064
G94F#F
G1 X206.9130 Y-1.5000
G1 X206.9130 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X201.4505 Y0.0706 A0.0000
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X201.3380 Y0.0289
G1 X201.3406 Y-0.0416
G1 X201.3714 Y-0.1052
G1 X201.4252 Y-0.1509
G1 X201.4928 Y-0.1712
G1 X201.5629 Y-0.1626
G1 X201.6236 Y-0.1265
G1 X201.6647 Y-0.0691
G1 X201.6792 Y0.0000
G1 X201.6787 Y0.0129
G1 X201.6591 Y0.0808
G1 X201.6138 Y0.1349
G1 X201.5505 Y0.1663
G1 X201.4800 Y0.1697
G1 X201.4141 Y0.1443
G1 X201.3639 Y0.0946
G1 X201.3380 Y0.0289
/M16
G94
G0 Z2.5000
G0 X196.1167 Y-1.1060
G1 Z1.6000
G0 Z2.5000
G0 X196.1167 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X196.1167 Y-1.5000
G1 X196.1167 Y-1.1060
G94F#D
G1 X196.1167 Y1.2500
/M16
G94
G0 Z2.5000
G0 X197.3489 Y1.2325 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X197.9059 Y1.7895
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X197.6275 Y1.5111
G1 X197.3489 Y1.2325
G94F#D
G1 X196.1213 Y0.0049
G1 X196.1198 Y0.0031
G1 X196.1184 Y0.0010
G1 X196.1174 Y-0.0014
G1 X196.1169 Y-0.0039
G1 X196.1167 Y-0.0062
G1 X196.1167 Y-1.1064
G94F#F
G1 X196.1167 Y-1.5000
G1 X196.1167 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X195.9257 Y-1.1060 A0.0000
G1 Z1.6000
G0 Z2.5000
/M16
;*** Begin Marking Code ***
 G91
 G0 X#H Y#J A#L
 M46 ; lower marking head
 M120 "c:\EMI\marking.txt"
 M123 ;2323 2M32
 M120 "c:\EMI\dummy.txt"
 if ![#4201 || #4202] then M130 L1 "C:\EMI\T2Printer\T2.exe"
 M47 ; raise marking head
 #[e] = #50033 ; copy error input 33 to variable #e
 IF [#e==1] THEN M130 L1 "C:\EMI\T2Printer\T2.EXE RESET" ; if error reset printer
 IF [#e==1] THEN M200 "Marking Error, press <Cycle Start> to ignore and continue."
 G0 X-#H Y-#J A-#L
 G90
;*** End Marking Code ***
G0 X195.9257 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X195.9257 Y-1.5000
G1 X195.9257 Y-1.1060
G94F#D
G1 X195.9257 Y1.2500
/M16
G94
G0 Z2.5000
G0 X195.9257 Y1.1060 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X195.9257 Y1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X195.9257 Y1.5000
G1 X195.9257 Y1.1060
G94F#D
G1 X195.9257 Y-1.1064
G94F#F
G1 X195.9257 Y-1.5000
G1 X195.9257 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X190.4632 Y0.0706 A0.0000
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X190.3506 Y0.0289
G1 X190.3533 Y-0.0416
G1 X190.3841 Y-0.1052
G1 X190.4379 Y-0.1509
G1 X190.5055 Y-0.1712
G1 X190.5756 Y-0.1626
G1 X190.6363 Y-0.1265
G1 X190.6774 Y-0.0691
G1 X190.6919 Y0.0000
G1 X190.6914 Y0.0129
G1 X190.6717 Y0.0808
G1 X190.6264 Y0.1349
G1 X190.5632 Y0.1663
G1 X190.4927 Y0.1697
G1 X190.4267 Y0.1443
G1 X190.3766 Y0.0946
G1 X190.3506 Y0.0289
/M16
G94
G0 Z2.5000
G0 X185.1294 Y-1.1060
G1 Z1.6000
G0 Z2.5000
G0 X185.1294 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X185.1294 Y-1.5000
G1 X185.1294 Y-1.1060
G94F#D
G1 X185.1294 Y1.2500
/M16
G94
G0 Z2.5000
G0 X186.3615 Y1.2325 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X186.9185 Y1.7895
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X186.6401 Y1.5111
G1 X186.3615 Y1.2325
G94F#D
G1 X185.1339 Y0.0049
G1 X185.1324 Y0.0031
G1 X185.1311 Y0.0010
G1 X185.1301 Y-0.0014
G1 X185.1295 Y-0.0039
G1 X185.1294 Y-0.0062
G1 X185.1294 Y-1.1064
G94F#F
G1 X185.1294 Y-1.5000
G1 X185.1294 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X184.9384 Y-1.1060 A0.0000
G1 Z1.6000
G0 Z2.5000
/M16
;*** Begin Marking Code ***
 G91
 G0 X#H Y#J A#L
 M46 ; lower marking head
 M120 "c:\EMI\marking.txt"
 M123 ;2323 2M32
 M120 "c:\EMI\dummy.txt"
 if ![#4201 || #4202] then M130 L1 "C:\EMI\T2Printer\T2.exe"
 M47 ; raise marking head
 #[e] = #50033 ; copy error input 33 to variable #e
 IF [#e==1] THEN M130 L1 "C:\EMI\T2Printer\T2.EXE RESET" ; if error reset printer
 IF [#e==1] THEN M200 "Marking Error, press <Cycle Start> to ignore and continue."
 G0 X-#H Y-#J A-#L
 G90
;*** End Marking Code ***
G0 X184.9384 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X184.9384 Y-1.5000
G1 X184.9384 Y-1.1060
G94F#D
G1 X184.9384 Y1.2500
/M16
G94
G0 Z2.5000
G0 X184.9384 Y1.1060 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X184.9384 Y1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X184.9384 Y1.5000
G1 X184.9384 Y1.1060
G94F#D
G1 X184.9384 Y-1.1064
G94F#F
G1 X184.9384 Y-1.5000
G1 X184.9384 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X179.4759 Y0.0706 A0.0000
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X179.3633 Y0.0289
G1 X179.3660 Y-0.0416
G1 X179.3968 Y-0.1052
G1 X179.4505 Y-0.1509
G1 X179.5182 Y-0.1712
G1 X179.5883 Y-0.1626
G1 X179.6490 Y-0.1265
G1 X179.6900 Y-0.0691
G1 X179.7046 Y0.0000
G1 X179.7041 Y0.0129
G1 X179.6844 Y0.0808
G1 X179.6391 Y0.1349
G1 X179.5759 Y0.1663
G1 X179.5053 Y0.1697
G1 X179.4394 Y0.1443
G1 X179.3893 Y0.0946
G1 X179.3633 Y0.0289
/M16
G94
G0 Z2.5000
G0 X174.1420 Y-1.1060
G1 Z1.6000
G0 Z2.5000
G0 X174.1420 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X174.1420 Y-1.5000
G1 X174.1420 Y-1.1060
G94F#D
G1 X174.1420 Y1.2500
/M16
G94
G0 Z2.5000
G0 X175.3742 Y1.2325 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X175.9312 Y1.7895
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X175.6528 Y1.5111
G1 X175.3742 Y1.2325
G94F#D
G1 X174.1466 Y0.0049
G1 X174.1451 Y0.0031
G1 X174.1438 Y0.0010
G1 X174.1428 Y-0.0014
G1 X174.1422 Y-0.0039
G1 X174.1420 Y-0.0062
G1 X174.1420 Y-1.1064
G94F#F
G1 X174.1420 Y-1.5000
G1 X174.1420 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X173.9510 Y-1.1060 A0.0000
G1 Z1.6000
G0 Z2.5000
/M16
;*** Begin Marking Code ***
 G91
 G0 X#H Y#J A#L
 M46 ; lower marking head
 M120 "c:\EMI\marking.txt"
 M123 ;2323 2M32
 M120 "c:\EMI\dummy.txt"
 if ![#4201 || #4202] then M130 L1 "C:\EMI\T2Printer\T2.exe"
 M47 ; raise marking head
 #[e] = #50033 ; copy error input 33 to variable #e
 IF [#e==1] THEN M130 L1 "C:\EMI\T2Printer\T2.EXE RESET" ; if error reset printer
 IF [#e==1] THEN M200 "Marking Error, press <Cycle Start> to ignore and continue."
 G0 X-#H Y-#J A-#L
 G90
;*** End Marking Code ***
G0 X173.9510 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X173.9510 Y-1.5000
G1 X173.9510 Y-1.1060
G94F#D
G1 X173.9510 Y1.2500
/M16
G94
G0 Z2.5000
G0 X173.9510 Y1.1060 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X173.9510 Y1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X173.9510 Y1.5000
G1 X173.9510 Y1.1060
G94F#D
G1 X173.9510 Y-1.1064
G94F#F
G1 X173.9510 Y-1.5000
G1 X173.9510 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X168.4885 Y0.0706 A0.0000
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X168.3760 Y0.0289
G1 X168.3786 Y-0.0416
G1 X168.4095 Y-0.1052
G1 X168.4632 Y-0.1509
G1 X168.5309 Y-0.1712
G1 X168.6009 Y-0.1626
G1 X168.6616 Y-0.1265
G1 X168.7027 Y-0.0691
G1 X168.7172 Y0.0000
G1 X168.7167 Y0.0129
G1 X168.6971 Y0.0808
G1 X168.6518 Y0.1349
G1 X168.5885 Y0.1663
G1 X168.5180 Y0.1697
G1 X168.4521 Y0.1443
G1 X168.4019 Y0.0946
G1 X168.3760 Y0.0289
/M16
G94
G0 Z2.5000
G0 X163.1547 Y-1.1060
G1 Z1.6000
G0 Z2.5000
G0 X163.1547 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X163.1547 Y-1.5000
G1 X163.1547 Y-1.1060
G94F#D
G1 X163.1547 Y1.2500
/M16
G94
G0 Z2.5000
G0 X164.3869 Y1.2325 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X164.9439 Y1.7895
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X164.6655 Y1.5111
G1 X164.3869 Y1.2325
G94F#D
G1 X163.1593 Y0.0049
G1 X163.1578 Y0.0031
G1 X163.1564 Y0.0010
G1 X163.1555 Y-0.0014
G1 X163.1549 Y-0.0039
G1 X163.1547 Y-0.0062
G1 X163.1547 Y-1.1064
G94F#F
G1 X163.1547 Y-1.5000
G1 X163.1547 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X162.9637 Y-1.1060 A0.0000
G1 Z1.6000
G0 Z2.5000
/M16
;*** Begin Marking Code ***
 G91
 G0 X#H Y#J A#L
 M46 ; lower marking head
 M120 "c:\EMI\marking.txt"
 M123 ;2323 2M32
 M120 "c:\EMI\dummy.txt"
 if ![#4201 || #4202] then M130 L1 "C:\EMI\T2Printer\T2.exe"
 M47 ; raise marking head
 #[e] = #50033 ; copy error input 33 to variable #e
 IF [#e==1] THEN M130 L1 "C:\EMI\T2Printer\T2.EXE RESET" ; if error reset printer
 IF [#e==1] THEN M200 "Marking Error, press <Cycle Start> to ignore and continue."
 G0 X-#H Y-#J A-#L
 G90
;*** End Marking Code ***
G0 X162.9637 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X162.9637 Y-1.5000
G1 X162.9637 Y-1.1060
G94F#D
G1 X162.9637 Y1.2500
/M16
G94
G0 Z2.5000
G0 X162.9637 Y1.1060 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X162.9637 Y1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X162.9637 Y1.5000
G1 X162.9637 Y1.1060
G94F#D
G1 X162.9637 Y-1.1064
G94F#F
G1 X162.9637 Y-1.5000
G1 X162.9637 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X157.5012 Y0.0706 A0.0000
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X157.3887 Y0.0289
G1 X157.3913 Y-0.0416
G1 X157.4221 Y-0.1052
G1 X157.4759 Y-0.1509
G1 X157.5435 Y-0.1712
G1 X157.6136 Y-0.1626
G1 X157.6743 Y-0.1265
G1 X157.7154 Y-0.0691
G1 X157.7299 Y0.0000
G1 X157.7294 Y0.0129
G1 X157.7097 Y0.0808
G1 X157.6645 Y0.1349
G1 X157.6012 Y0.1663
G1 X157.5307 Y0.1697
G1 X157.4648 Y0.1443
G1 X157.4146 Y0.0946
G1 X157.3887 Y0.0289
/M16
G94
G0 Z2.5000
G0 X152.1674 Y-1.1060
G1 Z1.6000
G0 Z2.5000
G0 X152.1674 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X152.1674 Y-1.5000
G1 X152.1674 Y-1.1060
G94F#D
G1 X152.1674 Y1.2500
/M16
G94
G0 Z2.5000
G0 X153.3996 Y1.2325 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X153.9565 Y1.7895
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X153.6782 Y1.5111
G1 X153.3996 Y1.2325
G94F#D
G1 X152.1720 Y0.0049
G1 X152.1704 Y0.0031
G1 X152.1691 Y0.0010
G1 X152.1681 Y-0.0014
G1 X152.1676 Y-0.0039
G1 X152.1674 Y-0.0062
G1 X152.1674 Y-1.1064
G94F#F
G1 X152.1674 Y-1.5000
G1 X152.1674 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X151.9764 Y-1.1060 A0.0000
G1 Z1.6000
G0 Z2.5000
/M16
;*** Begin Marking Code ***
 G91
 G0 X#H Y#J A#L
 M46 ; lower marking head
 M120 "c:\EMI\marking.txt"
 M123 ;2323 2M32
 M120 "c:\EMI\dummy.txt"
 if ![#4201 || #4202] then M130 L1 "C:\EMI\T2Printer\T2.exe"
 M47 ; raise marking head
 #[e] = #50033 ; copy error input 33 to variable #e
 IF [#e==1] THEN M130 L1 "C:\EMI\T2Printer\T2.EXE RESET" ; if error reset printer
 IF [#e==1] THEN M200 "Marking Error, press <Cycle Start> to ignore and continue."
 G0 X-#H Y-#J A-#L
 G90
;*** End Marking Code ***
G0 X151.9764 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X151.9764 Y-1.5000
G1 X151.9764 Y-1.1060
G94F#D
G1 X151.9764 Y1.2500
/M16
G94
G0 Z2.5000
G0 X151.9764 Y1.1060 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X151.9764 Y1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X151.9764 Y1.5000
G1 X151.9764 Y1.1060
G94F#D
G1 X151.9764 Y-1.1064
G94F#F
G1 X151.9764 Y-1.5000
G1 X151.9764 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X146.5139 Y0.0706 A0.0000
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X146.4013 Y0.0289
G1 X146.4040 Y-0.0416
G1 X146.4348 Y-0.1052
G1 X146.4886 Y-0.1509
G1 X146.5562 Y-0.1712
G1 X146.6263 Y-0.1626
G1 X146.6870 Y-0.1265
G1 X146.7281 Y-0.0691
G1 X146.7426 Y0.0000
G1 X146.7421 Y0.0129
G1 X146.7224 Y0.0808
G1 X146.6771 Y0.1349
G1 X146.6139 Y0.1663
G1 X146.5433 Y0.1697
G1 X146.4774 Y0.1443
G1 X146.4273 Y0.0946
G1 X146.4013 Y0.0289
/M16
G94
G0 Z2.5000
G0 X141.1800 Y-1.1060
G1 Z1.6000
G0 Z2.5000
G0 X141.1800 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X141.1800 Y-1.5000
G1 X141.1800 Y-1.1060
G94F#D
G1 X141.1800 Y1.2500
/M16
G94
G0 Z2.5000
G0 X142.4122 Y1.2325 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X142.9692 Y1.7895
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X142.6908 Y1.5111
G1 X142.4122 Y1.2325
G94F#D
G1 X141.1846 Y0.0049
G1 X141.1831 Y0.0031
G1 X141.1818 Y0.0010
G1 X141.1808 Y-0.0014
G1 X141.1802 Y-0.0039
G1 X141.1800 Y-0.0062
G1 X141.1800 Y-1.1064
G94F#F
G1 X141.1800 Y-1.5000
G1 X141.1800 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X140.9890 Y-1.1060 A0.0000
G1 Z1.6000
G0 Z2.5000
/M16
;*** Begin Marking Code ***
 G91
 G0 X#H Y#J A#L
 M46 ; lower marking head
 M120 "c:\EMI\marking.txt"
 M123 ;2323 2M13
 M120 "c:\EMI\dummy.txt"
 if ![#4201 || #4202] then M130 L1 "C:\EMI\T2Printer\T2.exe"
 M47 ; raise marking head
 #[e] = #50033 ; copy error input 33 to variable #e
 IF [#e==1] THEN M130 L1 "C:\EMI\T2Printer\T2.EXE RESET" ; if error reset printer
 IF [#e==1] THEN M200 "Marking Error, press <Cycle Start> to ignore and continue."
 G0 X-#H Y-#J A-#L
 G90
;*** End Marking Code ***
G0 X140.9890 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X140.9890 Y-1.5000
G1 X140.9890 Y-1.1060
G94F#D
G1 X140.9890 Y1.2500
/M16
G94
G0 Z2.5000
G0 X139.2582 Y1.2325 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X138.7012 Y1.7895
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X138.9796 Y1.5111
G1 X139.2582 Y1.2325
G94F#D
G1 X140.9845 Y-0.4938
G1 X140.9860 Y-0.4956
G1 X140.9873 Y-0.4977
G1 X140.9883 Y-0.5001
G1 X140.9889 Y-0.5026
G1 X140.9890 Y-0.5049
G1 X140.9890 Y-1.1065
G94F#F
G1 X140.9890 Y-1.5000
G1 X140.9890 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X140.2688 Y0.0484 A0.0000
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X140.1757 Y-0.0274
G1 X140.2010 Y-0.0933
G1 X140.2507 Y-0.1435
G1 X140.3164 Y-0.1694
G1 X140.3870 Y-0.1667
G1 X140.4505 Y-0.1359
G1 X140.4963 Y-0.0822
G1 X140.5166 Y-0.0145
G1 X140.5080 Y0.0556
G1 X140.4719 Y0.1163
G1 X140.4145 Y0.1573
G1 X140.3454 Y0.1719
G1 X140.3324 Y0.1714
G1 X140.2646 Y0.1517
G1 X140.2104 Y0.1064
G1 X140.1790 Y0.0432
G1 X140.1757 Y-0.0274
/M16
G94
G0 Z2.5000
G0 X130.7688 Y0.0484
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X130.6757 Y-0.0274
G1 X130.7010 Y-0.0933
G1 X130.7507 Y-0.1435
G1 X130.8164 Y-0.1694
G1 X130.8870 Y-0.1667
G1 X130.9505 Y-0.1359
G1 X130.9963 Y-0.0822
G1 X131.0166 Y-0.0145
G1 X131.0080 Y0.0556
G1 X130.9719 Y0.1163
G1 X130.9145 Y0.1573
G1 X130.8454 Y0.1719
G1 X130.8324 Y0.1714
G1 X130.7646 Y0.1517
G1 X130.7104 Y0.1064
G1 X130.6790 Y0.0432
G1 X130.6757 Y-0.0274
/M16
G94
G0 Z2.5000
G0 X130.1897 Y-1.1060
G1 Z1.6000
G0 Z2.5000
G0 X130.1897 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X130.1897 Y-1.5000
G1 X130.1897 Y-1.1060
G94F#D
G1 X130.1897 Y1.2500
/M16
G94
G0 Z2.5000
G0 X130.1897 Y1.1060 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X130.1897 Y1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X130.1897 Y1.5000
G1 X130.1897 Y1.1060
G94F#D
G1 X130.1897 Y-1.1064
G94F#F
G1 X130.1897 Y-1.5000
G1 X130.1897 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X129.9987 Y-1.1060 A0.0000
G1 Z1.6000
G0 Z2.5000
/M16
;*** Begin Marking Code ***
 G91
 G0 X#H Y#J A#L
 M46 ; lower marking head
 M120 "c:\EMI\marking.txt"
 M123 ;2323 2M13
 M120 "c:\EMI\dummy.txt"
 if ![#4201 || #4202] then M130 L1 "C:\EMI\T2Printer\T2.exe"
 M47 ; raise marking head
 #[e] = #50033 ; copy error input 33 to variable #e
 IF [#e==1] THEN M130 L1 "C:\EMI\T2Printer\T2.EXE RESET" ; if error reset printer
 IF [#e==1] THEN M200 "Marking Error, press <Cycle Start> to ignore and continue."
 G0 X-#H Y-#J A-#L
 G90
;*** End Marking Code ***
G0 X129.9987 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X129.9987 Y-1.5000
G1 X129.9987 Y-1.1060
G94F#D
G1 X129.9987 Y1.2500
/M16
G94
G0 Z2.5000
G0 X128.2678 Y1.2325 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X127.7108 Y1.7895
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X127.9892 Y1.5111
G1 X128.2678 Y1.2325
G94F#D
G1 X129.9941 Y-0.4938
G1 X129.9957 Y-0.4956
G1 X129.9970 Y-0.4977
G1 X129.9980 Y-0.5001
G1 X129.9985 Y-0.5026
G1 X129.9987 Y-0.5049
G1 X129.9987 Y-1.1065
G94F#F
G1 X129.9987 Y-1.5000
G1 X129.9987 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X129.2784 Y0.0484 A0.0000
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X129.1854 Y-0.0274
G1 X129.2107 Y-0.0933
G1 X129.2604 Y-0.1435
G1 X129.3261 Y-0.1694
G1 X129.3967 Y-0.1667
G1 X129.4602 Y-0.1359
G1 X129.5060 Y-0.0822
G1 X129.5263 Y-0.0145
G1 X129.5177 Y0.0556
G1 X129.4816 Y0.1163
G1 X129.4242 Y0.1573
G1 X129.3550 Y0.1719
G1 X129.3421 Y0.1714
G1 X129.2743 Y0.1517
G1 X129.2201 Y0.1064
G1 X129.1887 Y0.0432
G1 X129.1854 Y-0.0274
/M16
G94
G0 Z2.5000
G0 X119.7784 Y0.0484
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X119.6854 Y-0.0274
G1 X119.7107 Y-0.0933
G1 X119.7604 Y-0.1435
G1 X119.8261 Y-0.1694
G1 X119.8967 Y-0.1667
G1 X119.9602 Y-0.1359
G1 X120.0060 Y-0.0822
G1 X120.0263 Y-0.0145
G1 X120.0177 Y0.0556
G1 X119.9816 Y0.1163
G1 X119.9242 Y0.1573
G1 X119.8550 Y0.1719
G1 X119.8421 Y0.1714
G1 X119.7743 Y0.1517
G1 X119.7201 Y0.1064
G1 X119.6887 Y0.0432
G1 X119.6854 Y-0.0274
/M16
G94
G0 Z2.5000
G0 X119.1994 Y-1.1060
G1 Z1.6000
G0 Z2.5000
G0 X119.1994 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X119.1994 Y-1.5000
G1 X119.1994 Y-1.1060
G94F#D
G1 X119.1994 Y1.2500
/M16
G94
G0 Z2.5000
G0 X119.1994 Y1.1060 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X119.1994 Y1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X119.1994 Y1.5000
G1 X119.1994 Y1.1060
G94F#D
G1 X119.1994 Y-1.1064
G94F#F
G1 X119.1994 Y-1.5000
G1 X119.1994 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X119.0084 Y-1.1060 A0.0000
G1 Z1.6000
G0 Z2.5000
/M16
;*** Begin Marking Code ***
 G91
 G0 X#H Y#J A#L
 M46 ; lower marking head
 M120 "c:\EMI\marking.txt"
 M123 ;2323 2M13
 M120 "c:\EMI\dummy.txt"
 if ![#4201 || #4202] then M130 L1 "C:\EMI\T2Printer\T2.exe"
 M47 ; raise marking head
 #[e] = #50033 ; copy error input 33 to variable #e
 IF [#e==1] THEN M130 L1 "C:\EMI\T2Printer\T2.EXE RESET" ; if error reset printer
 IF [#e==1] THEN M200 "Marking Error, press <Cycle Start> to ignore and continue."
 G0 X-#H Y-#J A-#L
 G90
;*** End Marking Code ***
G0 X119.0084 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X119.0084 Y-1.5000
G1 X119.0084 Y-1.1060
G94F#D
G1 X119.0084 Y1.2500
/M16
G94
G0 Z2.5000
G0 X117.2775 Y1.2325 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X116.7205 Y1.7895
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X116.9989 Y1.5111
G1 X117.2775 Y1.2325
G94F#D
G1 X119.0038 Y-0.4938
G1 X119.0053 Y-0.4956
G1 X119.0067 Y-0.4977
G1 X119.0077 Y-0.5001
G1 X119.0082 Y-0.5026
G1 X119.0084 Y-0.5049
G1 X119.0084 Y-1.1065
G94F#F
G1 X119.0084 Y-1.5000
G1 X119.0084 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X118.2881 Y0.0484 A0.0000
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X118.1951 Y-0.0274
G1 X118.2204 Y-0.0933
G1 X118.2701 Y-0.1435
G1 X118.3358 Y-0.1694
G1 X118.4063 Y-0.1667
G1 X118.4699 Y-0.1359
G1 X118.5157 Y-0.0822
G1 X118.5360 Y-0.0145
G1 X118.5273 Y0.0556
G1 X118.4913 Y0.1163
G1 X118.4338 Y0.1573
G1 X118.3647 Y0.1719
G1 X118.3518 Y0.1714
G1 X118.2840 Y0.1517
G1 X118.2298 Y0.1064
G1 X118.1984 Y0.0432
G1 X118.1951 Y-0.0274
/M16
G94
G0 Z2.5000
G0 X108.7881 Y0.0484
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X108.6951 Y-0.0274
G1 X108.7204 Y-0.0933
G1 X108.7701 Y-0.1435
G1 X108.8358 Y-0.1694
G1 X108.9063 Y-0.1667
G1 X108.9699 Y-0.1359
G1 X109.0157 Y-0.0822
G1 X109.0360 Y-0.0145
G1 X109.0273 Y0.0556
G1 X108.9913 Y0.1163
G1 X108.9338 Y0.1573
G1 X108.8647 Y0.1719
G1 X108.8518 Y0.1714
G1 X108.7840 Y0.1517
G1 X108.7298 Y0.1064
G1 X108.6984 Y0.0432
G1 X108.6951 Y-0.0274
/M16
G94
G0 Z2.5000
G0 X108.2091 Y-1.1060
G1 Z1.6000
G0 Z2.5000
G0 X108.2091 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X108.2091 Y-1.5000
G1 X108.2091 Y-1.1060
G94F#D
G1 X108.2091 Y1.2500
/M16
G94
G0 Z2.5000
G0 X108.2091 Y1.1060 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X108.2091 Y1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X108.2091 Y1.5000
G1 X108.2091 Y1.1060
G94F#D
G1 X108.2091 Y-1.1064
G94F#F
G1 X108.2091 Y-1.5000
G1 X108.2091 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X108.0181 Y-1.1060 A0.0000
G1 Z1.6000
G0 Z2.5000
/M16
;*** Begin Marking Code ***
 G91
 G0 X#H Y#J A#L
 M46 ; lower marking head
 M120 "c:\EMI\marking.txt"
 M123 ;2323 2M14
 M120 "c:\EMI\dummy.txt"
 if ![#4201 || #4202] then M130 L1 "C:\EMI\T2Printer\T2.exe"
 M47 ; raise marking head
 #[e] = #50033 ; copy error input 33 to variable #e
 IF [#e==1] THEN M130 L1 "C:\EMI\T2Printer\T2.EXE RESET" ; if error reset printer
 IF [#e==1] THEN M200 "Marking Error, press <Cycle Start> to ignore and continue."
 G0 X-#H Y-#J A-#L
 G90
;*** End Marking Code ***
G0 X108.0181 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X108.0181 Y-1.5000
G1 X108.0181 Y-1.1060
G94F#D
G1 X108.0181 Y1.2500
/M16
G94
G0 Z2.5000
G0 X108.0181 Y1.1060 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X108.0181 Y1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X108.0181 Y1.5000
G1 X108.0181 Y1.1060
G94F#D
G1 X108.0181 Y-1.1064
G94F#F
G1 X108.0181 Y-1.5000
G1 X108.0181 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X102.5556 Y0.0706 A0.0000
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X102.4430 Y0.0289
G1 X102.4457 Y-0.0416
G1 X102.4765 Y-0.1052
G1 X102.5303 Y-0.1509
G1 X102.5979 Y-0.1712
G1 X102.6680 Y-0.1626
G1 X102.7287 Y-0.1265
G1 X102.7698 Y-0.0691
G1 X102.7843 Y0.0000
G1 X102.7838 Y0.0129
G1 X102.7641 Y0.0808
G1 X102.7188 Y0.1349
G1 X102.6556 Y0.1663
G1 X102.5851 Y0.1697
G1 X102.5191 Y0.1443
G1 X102.4690 Y0.0946
G1 X102.4430 Y0.0289
/M16
G94
G0 Z2.5000
G0 X97.2188 Y-1.1060
G1 Z1.6000
G0 Z2.5000
G0 X97.2188 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X97.2188 Y-1.5000
G1 X97.2188 Y-1.1060
G94F#D
G1 X97.2188 Y1.2500
/M16
G94
G0 Z2.5000
G0 X98.9496 Y1.2325 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X99.5066 Y1.7895
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X99.2282 Y1.5111
G1 X98.9496 Y1.2325
G94F#D
G1 X97.2233 Y-0.4938
G1 X97.2218 Y-0.4956
G1 X97.2205 Y-0.4977
G1 X97.2195 Y-0.5001
G1 X97.2189 Y-0.5026
G1 X97.2188 Y-0.5049
G1 X97.2188 Y-1.1065
G94F#F
G1 X97.2188 Y-1.5000
G1 X97.2188 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X97.0278 Y-1.1060 A0.0000
G1 Z1.6000
G0 Z2.5000
/M16
;*** Begin Marking Code ***
 G91
 G0 X#H Y#J A#L
 M46 ; lower marking head
 M120 "c:\EMI\marking.txt"
 M123 ;2323 2M14
 M120 "c:\EMI\dummy.txt"
 if ![#4201 || #4202] then M130 L1 "C:\EMI\T2Printer\T2.exe"
 M47 ; raise marking head
 #[e] = #50033 ; copy error input 33 to variable #e
 IF [#e==1] THEN M130 L1 "C:\EMI\T2Printer\T2.EXE RESET" ; if error reset printer
 IF [#e==1] THEN M200 "Marking Error, press <Cycle Start> to ignore and continue."
 G0 X-#H Y-#J A-#L
 G90
;*** End Marking Code ***
G0 X97.0278 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X97.0278 Y-1.5000
G1 X97.0278 Y-1.1060
G94F#D
G1 X97.0278 Y1.2500
/M16
G94
G0 Z2.5000
G0 X97.0278 Y1.1060 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X97.0278 Y1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X97.0278 Y1.5000
G1 X97.0278 Y1.1060
G94F#D
G1 X97.0278 Y-1.1064
G94F#F
G1 X97.0278 Y-1.5000
G1 X97.0278 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X91.5653 Y0.0706 A0.0000
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X91.4527 Y0.0289
G1 X91.4554 Y-0.0416
G1 X91.4862 Y-0.1052
G1 X91.5399 Y-0.1509
G1 X91.6076 Y-0.1712
G1 X91.6777 Y-0.1626
G1 X91.7384 Y-0.1265
G1 X91.7794 Y-0.0691
G1 X91.7940 Y0.0000
G1 X91.7935 Y0.0129
G1 X91.7738 Y0.0808
G1 X91.7285 Y0.1349
G1 X91.6653 Y0.1663
G1 X91.5947 Y0.1697
G1 X91.5288 Y0.1443
G1 X91.4787 Y0.0946
G1 X91.4527 Y0.0289
/M16
G94
G0 Z2.5000
G0 X86.2284 Y-1.1060
G1 Z1.6000
G0 Z2.5000
G0 X86.2284 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X86.2284 Y-1.5000
G1 X86.2284 Y-1.1060
G94F#D
G1 X86.2284 Y1.2500
/M16
G94
G0 Z2.5000
G0 X87.9593 Y1.2325 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X88.5163 Y1.7895
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X88.2379 Y1.5111
G1 X87.9593 Y1.2325
G94F#D
G1 X86.2330 Y-0.4938
G1 X86.2315 Y-0.4956
G1 X86.2302 Y-0.4977
G1 X86.2292 Y-0.5001
G1 X86.2286 Y-0.5026
G1 X86.2284 Y-0.5049
G1 X86.2284 Y-1.1065
G94F#F
G1 X86.2284 Y-1.5000
G1 X86.2284 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X86.0374 Y-1.1060 A0.0000
G1 Z1.6000
G0 Z2.5000
/M16
;*** Begin Marking Code ***
 G91
 G0 X#H Y#J A#L
 M46 ; lower marking head
 M120 "c:\EMI\marking.txt"
 M123 ;2323 2M14
 M120 "c:\EMI\dummy.txt"
 if ![#4201 || #4202] then M130 L1 "C:\EMI\T2Printer\T2.exe"
 M47 ; raise marking head
 #[e] = #50033 ; copy error input 33 to variable #e
 IF [#e==1] THEN M130 L1 "C:\EMI\T2Printer\T2.EXE RESET" ; if error reset printer
 IF [#e==1] THEN M200 "Marking Error, press <Cycle Start> to ignore and continue."
 G0 X-#H Y-#J A-#L
 G90
;*** End Marking Code ***
G0 X86.0374 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X86.0374 Y-1.5000
G1 X86.0374 Y-1.1060
G94F#D
G1 X86.0374 Y1.2500
/M16
G94
G0 Z2.5000
G0 X86.0374 Y1.1060 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X86.0374 Y1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X86.0374 Y1.5000
G1 X86.0374 Y1.1060
G94F#D
G1 X86.0374 Y-1.1064
G94F#F
G1 X86.0374 Y-1.5000
G1 X86.0374 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X80.5749 Y0.0706 A0.0000
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X80.4624 Y0.0289
G1 X80.4650 Y-0.0416
G1 X80.4959 Y-0.1052
G1 X80.5496 Y-0.1509
G1 X80.6173 Y-0.1712
G1 X80.6873 Y-0.1626
G1 X80.7480 Y-0.1265
G1 X80.7891 Y-0.0691
G1 X80.8036 Y0.0000
G1 X80.8031 Y0.0129
G1 X80.7835 Y0.0808
G1 X80.7382 Y0.1349
G1 X80.6749 Y0.1663
G1 X80.6044 Y0.1697
G1 X80.5385 Y0.1443
G1 X80.4883 Y0.0946
G1 X80.4624 Y0.0289
/M16
G94
G0 Z2.5000
G0 X75.2381 Y-1.1060
G1 Z1.6000
G0 Z2.5000
G0 X75.2381 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X75.2381 Y-1.5000
G1 X75.2381 Y-1.1060
G94F#D
G1 X75.2381 Y1.2500
/M16
G94
G0 Z2.5000
G0 X76.9690 Y1.2325 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X77.5260 Y1.7895
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X77.2476 Y1.5111
G1 X76.9690 Y1.2325
G94F#D
G1 X75.2427 Y-0.4938
G1 X75.2412 Y-0.4956
G1 X75.2398 Y-0.4977
G1 X75.2389 Y-0.5001
G1 X75.2383 Y-0.5026
G1 X75.2381 Y-0.5049
G1 X75.2381 Y-1.1065
G94F#F
G1 X75.2381 Y-1.5000
G1 X75.2381 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X75.0471 Y-1.1060 A0.0000
G1 Z1.6000
G0 Z2.5000
/M16
;*** Begin Marking Code ***
 G91
 G0 X#H Y#J A#L
 M46 ; lower marking head
 M120 "c:\EMI\marking.txt"
 M123 ;2323 2M31
 M120 "c:\EMI\dummy.txt"
 if ![#4201 || #4202] then M130 L1 "C:\EMI\T2Printer\T2.exe"
 M47 ; raise marking head
 #[e] = #50033 ; copy error input 33 to variable #e
 IF [#e==1] THEN M130 L1 "C:\EMI\T2Printer\T2.EXE RESET" ; if error reset printer
 IF [#e==1] THEN M200 "Marking Error, press <Cycle Start> to ignore and continue."
 G0 X-#H Y-#J A-#L
 G90
;*** End Marking Code ***
G0 X75.0471 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X75.0471 Y-1.5000
G1 X75.0471 Y-1.1060
G94F#D
G1 X75.0471 Y1.2500
/M16
G94
G0 Z2.5000
G0 X73.8162 Y1.2324 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X73.2592 Y1.7895
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X73.5376 Y1.5111
G1 X73.8162 Y1.2324
G94F#D
G1 X75.0425 Y0.0061
G1 X75.0440 Y0.0043
G1 X75.0454 Y0.0022
G1 X75.0464 Y-0.0002
G1 X75.0469 Y-0.0027
G1 X75.0471 Y-0.0050
G1 X75.0471 Y-1.1064
G94F#F
G1 X75.0471 Y-1.5000
G1 X75.0471 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X74.3408 Y0.0655 A0.0000
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X74.2322 Y0.0145
G1 X74.2408 Y-0.0556
G1 X74.2769 Y-0.1163
G1 X74.3343 Y-0.1573
G1 X74.4034 Y-0.1719
G1 X74.4164 Y-0.1714
G1 X74.4842 Y-0.1517
G1 X74.5384 Y-0.1064
G1 X74.5698 Y-0.0432
G1 X74.5731 Y0.0274
G1 X74.5477 Y0.0933
G1 X74.4980 Y0.1435
G1 X74.4324 Y0.1694
G1 X74.3618 Y0.1667
G1 X74.2983 Y0.1359
G1 X74.2525 Y0.0822
G1 X74.2322 Y0.0145
/M16
G94
G0 Z2.5000
G0 X64.8408 Y0.0655
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X64.7322 Y0.0145
G1 X64.7408 Y-0.0556
G1 X64.7769 Y-0.1163
G1 X64.8343 Y-0.1573
G1 X64.9034 Y-0.1719
G1 X64.9164 Y-0.1714
G1 X64.9842 Y-0.1517
G1 X65.0384 Y-0.1064
G1 X65.0698 Y-0.0432
G1 X65.0731 Y0.0274
G1 X65.0477 Y0.0933
G1 X64.9980 Y0.1435
G1 X64.9324 Y0.1694
G1 X64.8618 Y0.1667
G1 X64.7983 Y0.1359
G1 X64.7525 Y0.0822
G1 X64.7322 Y0.0145
/M16
G94
G0 Z2.5000
G0 X64.2478 Y-1.1060
G1 Z1.6000
G0 Z2.5000
G0 X64.2478 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X64.2478 Y-1.5000
G1 X64.2478 Y-1.1060
G94F#D
G1 X64.2478 Y1.2500
/M16
G94
G0 Z2.5000
G0 X64.2478 Y1.1060 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X64.2478 Y1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X64.2478 Y1.5000
G1 X64.2478 Y1.1060
G94F#D
G1 X64.2478 Y-1.1064
G94F#F
G1 X64.2478 Y-1.5000
G1 X64.2478 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X64.0568 Y-1.1060 A0.0000
G1 Z1.6000
G0 Z2.5000
/M16
;*** Begin Marking Code ***
 G91
 G0 X#H Y#J A#L
 M46 ; lower marking head
 M120 "c:\EMI\marking.txt"
 M123 ;2323 2M31
 M120 "c:\EMI\dummy.txt"
 if ![#4201 || #4202] then M130 L1 "C:\EMI\T2Printer\T2.exe"
 M47 ; raise marking head
 #[e] = #50033 ; copy error input 33 to variable #e
 IF [#e==1] THEN M130 L1 "C:\EMI\T2Printer\T2.EXE RESET" ; if error reset printer
 IF [#e==1] THEN M200 "Marking Error, press <Cycle Start> to ignore and continue."
 G0 X-#H Y-#J A-#L
 G90
;*** End Marking Code ***
G0 X64.0568 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X64.0568 Y-1.5000
G1 X64.0568 Y-1.1060
G94F#D
G1 X64.0568 Y1.2500
/M16
G94
G0 Z2.5000
G0 X62.8259 Y1.2324 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X62.2689 Y1.7895
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X62.5473 Y1.5111
G1 X62.8259 Y1.2324
G94F#D
G1 X64.0522 Y0.0061
G1 X64.0537 Y0.0043
G1 X64.0550 Y0.0022
G1 X64.0560 Y-0.0002
G1 X64.0566 Y-0.0027
G1 X64.0568 Y-0.0050
G1 X64.0568 Y-1.1064
G94F#F
G1 X64.0568 Y-1.5000
G1 X64.0568 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X63.3505 Y0.0655 A0.0000
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X63.2418 Y0.0145
G1 X63.2505 Y-0.0556
G1 X63.2865 Y-0.1163
G1 X63.3440 Y-0.1573
G1 X63.4131 Y-0.1719
G1 X63.4260 Y-0.1714
G1 X63.4938 Y-0.1517
G1 X63.5480 Y-0.1064
G1 X63.5794 Y-0.0432
G1 X63.5827 Y0.0274
G1 X63.5574 Y0.0933
G1 X63.5077 Y0.1435
G1 X63.4420 Y0.1694
G1 X63.3715 Y0.1667
G1 X63.3079 Y0.1359
G1 X63.2621 Y0.0822
G1 X63.2418 Y0.0145
/M16
G94
G0 Z2.5000
G0 X53.8505 Y0.0655
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X53.7418 Y0.0145
G1 X53.7505 Y-0.0556
G1 X53.7865 Y-0.1163
G1 X53.8440 Y-0.1573
G1 X53.9131 Y-0.1719
G1 X53.9260 Y-0.1714
G1 X53.9938 Y-0.1517
G1 X54.0480 Y-0.1064
G1 X54.0794 Y-0.0432
G1 X54.0827 Y0.0274
G1 X54.0574 Y0.0933
G1 X54.0077 Y0.1435
G1 X53.9420 Y0.1694
G1 X53.8715 Y0.1667
G1 X53.8079 Y0.1359
G1 X53.7621 Y0.0822
G1 X53.7418 Y0.0145
/M16
G94
G0 Z2.5000
G0 X53.2574 Y-1.1060
G1 Z1.6000
G0 Z2.5000
G0 X53.2574 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X53.2574 Y-1.5000
G1 X53.2574 Y-1.1060
G94F#D
G1 X53.2574 Y1.2500
/M16
G94
G0 Z2.5000
G0 X53.2574 Y1.1060 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X53.2574 Y1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X53.2574 Y1.5000
G1 X53.2574 Y1.1060
G94F#D
G1 X53.2574 Y-1.1064
G94F#F
G1 X53.2574 Y-1.5000
G1 X53.2574 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X53.0664 Y-1.1060 A0.0000
G1 Z1.6000
G0 Z2.5000
/M16
;*** Begin Marking Code ***
 G91
 G0 X#H Y#J A#L
 M46 ; lower marking head
 M120 "c:\EMI\marking.txt"
 M123 ;2323 2M31
 M120 "c:\EMI\dummy.txt"
 if ![#4201 || #4202] then M130 L1 "C:\EMI\T2Printer\T2.exe"
 M47 ; raise marking head
 #[e] = #50033 ; copy error input 33 to variable #e
 IF [#e==1] THEN M130 L1 "C:\EMI\T2Printer\T2.EXE RESET" ; if error reset printer
 IF [#e==1] THEN M200 "Marking Error, press <Cycle Start> to ignore and continue."
 G0 X-#H Y-#J A-#L
 G90
;*** End Marking Code ***
G0 X53.0664 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X53.0664 Y-1.5000
G1 X53.0664 Y-1.1060
G94F#D
G1 X53.0664 Y1.2500
/M16
G94
G0 Z2.5000
G0 X51.8355 Y1.2324 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X51.2786 Y1.7895
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X51.5569 Y1.5111
G1 X51.8355 Y1.2324
G94F#D
G1 X53.0618 Y0.0061
G1 X53.0634 Y0.0043
G1 X53.0647 Y0.0022
G1 X53.0657 Y-0.0002
G1 X53.0663 Y-0.0027
G1 X53.0664 Y-0.0050
G1 X53.0664 Y-1.1064
G94F#F
G1 X53.0664 Y-1.5000
G1 X53.0664 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X52.3601 Y0.0655 A0.0000
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X52.2515 Y0.0145
G1 X52.2601 Y-0.0556
G1 X52.2962 Y-0.1163
G1 X52.3536 Y-0.1573
G1 X52.4227 Y-0.1719
G1 X52.4357 Y-0.1714
G1 X52.5035 Y-0.1517
G1 X52.5577 Y-0.1064
G1 X52.5891 Y-0.0432
G1 X52.5924 Y0.0274
G1 X52.5671 Y0.0933
G1 X52.5174 Y0.1435
G1 X52.4517 Y0.1694
G1 X52.3811 Y0.1667
G1 X52.3176 Y0.1359
G1 X52.2718 Y0.0822
G1 X52.2515 Y0.0145
/M16
G94
G0 Z2.5000
G0 X42.8601 Y0.0655
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X42.7515 Y0.0145
G1 X42.7601 Y-0.0556
G1 X42.7962 Y-0.1163
G1 X42.8536 Y-0.1573
G1 X42.9227 Y-0.1719
G1 X42.9357 Y-0.1714
G1 X43.0035 Y-0.1517
G1 X43.0577 Y-0.1064
G1 X43.0891 Y-0.0432
G1 X43.0924 Y0.0274
G1 X43.0671 Y0.0933
G1 X43.0174 Y0.1435
G1 X42.9517 Y0.1694
G1 X42.8811 Y0.1667
G1 X42.8176 Y0.1359
G1 X42.7718 Y0.0822
G1 X42.7515 Y0.0145
/M16
G94
G0 Z2.5000
G0 X42.2671 Y-1.1060
G1 Z1.6000
G0 Z2.5000
G0 X42.2671 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X42.2671 Y-1.5000
G1 X42.2671 Y-1.1060
G94F#D
G1 X42.2671 Y1.2500
/M16
G94
G0 Z2.5000
G0 X42.2671 Y1.1060 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X42.2671 Y1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X42.2671 Y1.5000
G1 X42.2671 Y1.1060
G94F#D
G1 X42.2671 Y-1.1064
G94F#F
G1 X42.2671 Y-1.5000
G1 X42.2671 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X42.0761 Y-1.1060 A0.0000
G1 Z1.6000
G0 Z2.5000
/M16
;*** Begin Marking Code ***
 G91
 G0 X#H Y#J A#L
 M46 ; lower marking head
 M120 "c:\EMI\marking.txt"
 M123 ;2323 2M31
 M120 "c:\EMI\dummy.txt"
 if ![#4201 || #4202] then M130 L1 "C:\EMI\T2Printer\T2.exe"
 M47 ; raise marking head
 #[e] = #50033 ; copy error input 33 to variable #e
 IF [#e==1] THEN M130 L1 "C:\EMI\T2Printer\T2.EXE RESET" ; if error reset printer
 IF [#e==1] THEN M200 "Marking Error, press <Cycle Start> to ignore and continue."
 G0 X-#H Y-#J A-#L
 G90
;*** End Marking Code ***
G0 X42.0761 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X42.0761 Y-1.5000
G1 X42.0761 Y-1.1060
G94F#D
G1 X42.0761 Y1.2500
/M16
G94
G0 Z2.5000
G0 X40.8452 Y1.2324 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X40.2882 Y1.7895
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X40.5666 Y1.5111
G1 X40.8452 Y1.2324
G94F#D
G1 X42.0715 Y0.0061
G1 X42.0730 Y0.0043
G1 X42.0743 Y0.0022
G1 X42.0753 Y-0.0002
G1 X42.0759 Y-0.0027
G1 X42.0761 Y-0.0050
G1 X42.0761 Y-1.1064
G94F#F
G1 X42.0761 Y-1.5000
G1 X42.0761 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X41.3698 Y0.0655 A0.0000
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X41.2612 Y0.0145
G1 X41.2698 Y-0.0556
G1 X41.3058 Y-0.1163
G1 X41.3633 Y-0.1573
G1 X41.4324 Y-0.1719
G1 X41.4453 Y-0.1714
G1 X41.5131 Y-0.1517
G1 X41.5673 Y-0.1064
G1 X41.5987 Y-0.0432
G1 X41.6020 Y0.0274
G1 X41.5767 Y0.0933
G1 X41.5270 Y0.1435
G1 X41.4613 Y0.1694
G1 X41.3908 Y0.1667
G1 X41.3272 Y0.1359
G1 X41.2815 Y0.0822
G1 X41.2612 Y0.0145
/M16
G94
G0 Z2.5000
G0 X31.8698 Y0.0655
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X31.7612 Y0.0145
G1 X31.7698 Y-0.0556
G1 X31.8058 Y-0.1163
G1 X31.8633 Y-0.1573
G1 X31.9324 Y-0.1719
G1 X31.9453 Y-0.1714
G1 X32.0131 Y-0.1517
G1 X32.0673 Y-0.1064
G1 X32.0987 Y-0.0432
G1 X32.1020 Y0.0274
G1 X32.0767 Y0.0933
G1 X32.0270 Y0.1435
G1 X31.9613 Y0.1694
G1 X31.8908 Y0.1667
G1 X31.8272 Y0.1359
G1 X31.7815 Y0.0822
G1 X31.7612 Y0.0145
/M16
G94
G0 Z2.5000
G0 X31.2767 Y-1.1060
G1 Z1.6000
G0 Z2.5000
G0 X31.2767 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X31.2767 Y-1.5000
G1 X31.2767 Y-1.1060
G94F#D
G1 X31.2767 Y1.2500
/M16
G94
G0 Z2.5000
G0 X31.2767 Y1.1060 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X31.2767 Y1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X31.2767 Y1.5000
G1 X31.2767 Y1.1060
G94F#D
G1 X31.2767 Y-1.1064
G94F#F
G1 X31.2767 Y-1.5000
G1 X31.2767 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X31.0857 Y-1.1060 A0.0000
G1 Z1.6000
G0 Z2.5000
/M16
;*** Begin Marking Code ***
 G91
 G0 X#H Y#J A#L
 M46 ; lower marking head
 M120 "c:\EMI\marking.txt"
 M123 ;2323 2M31
 M120 "c:\EMI\dummy.txt"
 if ![#4201 || #4202] then M130 L1 "C:\EMI\T2Printer\T2.exe"
 M47 ; raise marking head
 #[e] = #50033 ; copy error input 33 to variable #e
 IF [#e==1] THEN M130 L1 "C:\EMI\T2Printer\T2.EXE RESET" ; if error reset printer
 IF [#e==1] THEN M200 "Marking Error, press <Cycle Start> to ignore and continue."
 G0 X-#H Y-#J A-#L
 G90
;*** End Marking Code ***
G0 X31.0857 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X31.0857 Y-1.5000
G1 X31.0857 Y-1.1060
G94F#D
G1 X31.0857 Y1.2500
/M16
G94
G0 Z2.5000
G0 X29.8549 Y1.2324 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X29.2979 Y1.7895
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X29.5763 Y1.5111
G1 X29.8549 Y1.2324
G94F#D
G1 X31.0812 Y0.0061
G1 X31.0827 Y0.0043
G1 X31.0840 Y0.0022
G1 X31.0850 Y-0.0002
G1 X31.0856 Y-0.0027
G1 X31.0857 Y-0.0050
G1 X31.0857 Y-1.1064
G94F#F
G1 X31.0857 Y-1.5000
G1 X31.0857 Y-1.6181
/M16
G94
G0 Z2.5000
G0 X30.3794 Y0.0655 A0.0000
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X30.2708 Y0.0145
G1 X30.2794 Y-0.0556
G1 X30.3155 Y-0.1163
G1 X30.3729 Y-0.1573
G1 X30.4420 Y-0.1719
G1 X30.4550 Y-0.1714
G1 X30.5228 Y-0.1517
G1 X30.5770 Y-0.1064
G1 X30.6084 Y-0.0432
G1 X30.6117 Y0.0274
G1 X30.5864 Y0.0933
G1 X30.5367 Y0.1435
G1 X30.4710 Y0.1694
G1 X30.4004 Y0.1667
G1 X30.3369 Y0.1359
G1 X30.2911 Y0.0822
G1 X30.2708 Y0.0145
/M16
G94
G0 Z2.5000
G0 X20.8794 Y0.0655
G1 Z1.6000
/M15
G1 Z1.5000
G94F#D
G1 X20.7708 Y0.0145
G1 X20.7794 Y-0.0556
G1 X20.8155 Y-0.1163
G1 X20.8729 Y-0.1573
G1 X20.9420 Y-0.1719
G1 X20.9550 Y-0.1714
G1 X21.0228 Y-0.1517
G1 X21.0770 Y-0.1064
G1 X21.1084 Y-0.0432
G1 X21.1117 Y0.0274
G1 X21.0864 Y0.0933
G1 X21.0367 Y0.1435
G1 X20.9710 Y0.1694
G1 X20.9004 Y0.1667
G1 X20.8369 Y0.1359
G1 X20.7911 Y0.0822
G1 X20.7708 Y0.0145
/M16
G94
G0 Z2.5000
G0 X20.2864 Y-1.1060
G1 Z1.6000
G0 Z2.5000
G0 X20.2864 Y-1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X20.2864 Y-1.5000
G1 X20.2864 Y-1.1060
G94F#D
G1 X20.2864 Y1.2500
/M16
G94
G0 Z2.5000
G0 X20.2864 Y1.1060 A90.0000
G1 Z1.6000
G0 Z2.5000
G0 X20.2864 Y1.8937
G1 Z1.6000
/M14
G1 Z1.5000
G94F#F
G1 X20.2864 Y1.5000
G1 X20.2864 Y1.1060
G94F#D
G1 X20.2864 Y-1.1064
G94F#F
G1 X20.2864 Y-1.5000
G1 X20.2864 Y-1.6181
/M16
G94
M25 ;Retract Torch
M201 "Remove Part if Needed"
centroid467
Posts: 263
Joined: Thu Apr 14, 2022 2:46 pm
Acorn CNC Controller: No
Allin1DC CNC Controller: No
Oak CNC controller: No
CNC Control System Serial Number: none
DC3IOB: No
CNC12: No
CNC11: No
CPU10 or CPU7: No

Re: Counting and Logging Cut Pieces

Post by centroid467 »

Hello,

M function codes M120, M121, M123, M127, and M223 will be your friends here. Look at chapter 13 of the CNC12 Mill manual for more details on usage.

I would use M121 to open and create the log files to avoid the possibility of overwriting. You could use M122 to record the current position after cutting is completed to have a record of that. I would also use M127 to timestamp each record in the log file.

M123 or M223 can be used to write a variable's value to the file. M223 uses formatted strings but there are some things that would be better off using M123.

A sample snippet could go like this:

Code: Select all

#300 = "job name" ; Create a string user variable with the name of the job
#101 = 1 ; Variable to increment every time a part is cut

M121 "#300_log.txt" ; create or open the log file for the job, only needed once at the beginning unless the program opens other files

;The following block would be repeated for each part in the job

M123 L1 ;Part 
M123 L1 P[#101] ; cut at 
M127
M123 L1 ;Location: 
M122 /X
GarrettJ
Posts: 3
Joined: Wed Feb 14, 2024 2:34 pm
Acorn CNC Controller: No
Plasma CNC Controller: No
AcornSix CNC Controller: No
Allin1DC CNC Controller: No
Hickory CNC Controller: No
Oak CNC controller: No
CNC Control System Serial Number: none
DC3IOB: No
CNC12: Yes
CNC11: No
CPU10 or CPU7: No

Re: Counting and Logging Cut Pieces

Post by GarrettJ »

I will certainly look into this!

Thank you very much.
Post Reply