Hi,
Interestingly, a friend who has a pantographic engraving machine told me that they are still used in industry for engraving serial numbers because that's one non-repetitive operation that CNC isn't good at.
Rubbish, if you ask me. You could easily write a macro to engrave a serial number.
Here's an outline of what I suggest based on what I do to engrave hour numbers on sundials
Preparatory work:
Create ten subroutine files, each of which engraves a digit from 0 to 9 at the current XY position, then ends in an M99. This is easily done with, for instance, the Write wizard. Just run it ten times, once per digit, edit the output to add the M99, save to the subroutines folder. Call the files something like mydigit0.tap to mydigit9.tap
If the digits are bigger or smaller than you need for some items, you can always wrap the invokation inside a G51/G50 pair.
Decide on an unused DRO number to be used for serial numbers. You could add it to your screens so that you can see and set it, if you wished.
Initialise it. (I don't know how to make its value persist from session to session, but I expect it can be done. Even if DROs can't be made persistent, tool and work offsets can so you could treat the current serial number as a tool or fixture offset. Perhaps someone else can help with this issue.)
Write a macro along the lines of:
Dim serial as integer, i as integer, digit as integer
serial=GetUserDRO(nnn) +1
Call SetUserDRO(nnn, serial)
OpenTeachFile("EngraveSerial.tap") 'Create a batch file with the M98 commands in.
Call Code("(Engrave serial number " & serial & ")" )
For i=1 to 4 'or however many digits long your serial numbers are
digit=serial MOD 10
serial = serial/10
Call Code ("G0 X" & <some function of i> ) 'Position each digit.
Call Code ("M98 (mydigit" & digit & ".tap) L1")
Next i
Call Code ("M30")
Call CloseTeachFile()
Call LoadTeachFile()
..That's it. At the end of your main part file, put in code to position the tool at the serial field, zero the X and Y axes, then invoke the macro.
It will create EngraveSerial.tap, then load it. So the GCode display will look something like:
(Engrave serial number 1234)
G0 X21
M98 (mydigit4.tap) L1
G0 X14
M98 (mydigit3.tap) L1
G0 X7
M98 (mydigit2.tap) L1
G0 X0
M98 (mydigit1.tap) L1
M30
Note that, as written, this engraves the digits in order from least significant to most significant. It depends on the X and Y values having been set to 0 before the macro was invoked. You could do this with G52 or G68 (with a non-zero angle). This seems inelegant. Maybe there's a better way.
Hope this helps
Chris