Jump to content

Welcome to eMastercam

Register now to participate in the forums, access the download area, buy Mastercam training materials, post processors and more. This message will be removed once you have signed in.

Use your display name or email address to sign in:

How hard will it be to create a custom macro?


Recommended Posts

Hello Guys,

 

I maybe given this task today, so I was wondering how hard will it be to create a custom macro to serialize a part 1 through 1000 on a Tornos Screw machine? I will be milling it and I have a y axis. I never wrote a macro before so it will be all new to me so be easy on me please.

 

THanks

 

Rob

Link to comment
Share on other sites

to me MACROS are very similar to BASIC language, with different punctuation.

i have seen this serializing macro work 20 years ago when i was a noob. (ok more of a noob)

 

there should be code available where you don't need to re invent the wheel.

i would also be interested to archive the code for my records

Link to comment
Share on other sites

Here is my serial macro I use in Okuma's. It could be easily updated for Fanuc. It uses incremental moves for each letter. You position to the bottom left point of the first number then you call the macro. At the end of each letter it positions to the lower left start point for the next letter. The beginning of the macro is the math function to take a 7 place serial number in variable VC5 and break it up into ones, tens, etc in local variables. There is also a variable for depth control. It adds to the serial count at the end of the macro. If the operator needs to rerun a piece he just sets the one variable to the needed serial number and it continues to count from there. I think these are .3 inch tall numbers, I just scales them using NCplot for different applications.

 

OENGJ
NSTRT


IF [VC5 LT 9999999] NVCHK 
NALM1 VUACM[1]='RESET SERIAL'
     VDOUT[992]=1234
NVCHK

MILS=FIX[VC5/1000000]
HNTH=FIX[[VC5-MILS*1000000]/100000] 
TNTH=FIX[[VC5-MILS*1000000-HNTH*100000]/10000]
THOU=FIX[[VC5-MILS*1000000-HNTH*100000-TNTH*10000]/1000]
HUNS=FIX[[VC5-MILS*1000000-HNTH*100000-TNTH*10000-THOU*1000]/100]
TENS=FIX[[VC5-MILS*1000000-HNTH*100000-TNTH*10000-THOU*1000-HUNS*100]/10]
WNES=FIX[VC5-MILS*1000000-HNTH*100000-TNTH*10000-THOU*1000-HUNS*100-TENS*10]




NLTR1

IF [MILS NE 1] NLSK1
CALL ONEN1
NLSK1
IF [MILS NE 2] NLSK2
CALL ONEN2
NLSK2
IF [MILS NE 3] NLSK3 
CALL ONEN3
NLSK3
IF [MILS NE 4] NLSK4 
CALL ONEN4
NLSK4
IF [MILS NE 5] NLSK5
CALL ONEN5
NLSK5
IF [MILS NE 6] NLSK6 
CALL ONEN6
NLSK6
IF [MILS NE 7] NLSK7 
CALL ONEN7
NLSK7
IF [MILS NE 8] NLSK8 
CALL ONEN8
NLSK8
IF [MILS NE 9] NLSK9 
CALL ONEN9
NLSK9
IF [MILS NE 0] NLSK10 
CALL ONEN0
NLSK10

NLTR2

IF [HNTH NE 1] NLSK11
CALL ONEN1
NLSK11
IF [HNTH NE 2] NLSK12
CALL ONEN2
NLSK12
IF [HNTH NE 3] NLSK13 
CALL ONEN3
NLSK13
IF [HNTH NE 4] NLSK14 
CALL ONEN4
NLSK14
IF [HNTH NE 5] NLSK15
CALL ONEN5
NLSK15
IF [HNTH NE 6] NLSK16 
CALL ONEN6
NLSK16
IF [HNTH NE 7] NLSK17 
CALL ONEN7
NLSK17
IF [HNTH NE 8] NLSK18 
CALL ONEN8
NLSK18
IF [HNTH NE 9] NLSK19 
CALL ONEN9
NLSK19
IF [HNTH NE 0] NLSK20 
CALL ONEN0
NLSK20

NLTR3

IF [TNTH NE 1] NLSK21
CALL ONEN1
NLSK21
IF [TNTH NE 2] NLSK22
CALL ONEN2
NLSK22
IF [TNTH NE 3] NLSK23 
CALL ONEN3
NLSK23
IF [TNTH NE 4] NLSK24 
CALL ONEN4
NLSK24
IF [TNTH NE 5] NLSK25
CALL ONEN5
NLSK25
IF [TNTH NE 6] NLSK26 
CALL ONEN6
NLSK26
IF [TNTH NE 7] NLSK27 
CALL ONEN7
NLSK27
IF [TNTH NE 8] NLSK28 
CALL ONEN8
NLSK28
IF [TNTH NE 9] NLSK29 
CALL ONEN9
NLSK29
IF [TNTH NE 0] NLSK30 
CALL ONEN0
NLSK30

NLTR4

IF [THOU NE 1] NLSK31
CALL ONEN1
NLSK31
IF [THOU NE 2] NLSK32
CALL ONEN2
NLSK32
IF [THOU NE 3] NLSK33 
CALL ONEN3
NLSK33
IF [THOU NE 4] NLSK34 
CALL ONEN4
NLSK34
IF [THOU NE 5] NLSK35
CALL ONEN5
NLSK35
IF [THOU NE 6] NLSK36 
CALL ONEN6
NLSK36
IF [THOU NE 7] NLSK37 
CALL ONEN7
NLSK37
IF [THOU NE 8] NLSK38 
CALL ONEN8
NLSK38
IF [THOU NE 9] NLSK39 
CALL ONEN9
NLSK39
IF [THOU NE 0] NLSK40 
CALL ONEN0
NLSK40

NLTR5

IF [HUNS NE 1] NLSK41
CALL ONEN1
NLSK41
IF [HUNS NE 2] NLSK42
CALL ONEN2
NLSK42
IF [HUNS NE 3] NLSK43 
CALL ONEN3
NLSK43
IF [HUNS NE 4] NLSK44 
CALL ONEN4
NLSK44
IF [HUNS NE 5] NLSK45
CALL ONEN5
NLSK45
IF [HUNS NE 6] NLSK46 
CALL ONEN6
NLSK46
IF [HUNS NE 7] NLSK47 
CALL ONEN7
NLSK47
IF [HUNS NE 8] NLSK48 
CALL ONEN8
NLSK48
IF [HUNS NE 9] NLSK49 
CALL ONEN9
NLSK49
IF [HUNS NE 0] NLSK50 
CALL ONEN0
NLSK50

NLTR6

IF [TENS NE 1] NLSK51
CALL ONEN1
NLSK51
IF [TENS NE 2] NLSK52
CALL ONEN2
NLSK52
IF [TENS NE 3] NLSK53 
CALL ONEN3
NLSK53
IF [TENS NE 4] NLSK54 
CALL ONEN4
NLSK54
IF [TENS NE 5] NLSK55
CALL ONEN5
NLSK55
IF [TENS NE 6] NLSK56 
CALL ONEN6
NLSK56
IF [TENS NE 7] NLSK57 
CALL ONEN7
NLSK57
IF [TENS NE 8] NLSK58 
CALL ONEN8
NLSK58
IF [TENS NE 9] NLSK59 
CALL ONEN9
NLSK59
IF [TENS NE 0] NLSK60 
CALL ONEN0
NLSK60

NLTR7

IF [WNES NE 1] NLSK61
CALL ONEN1
NLSK61
IF [WNES NE 2] NLSK62
CALL ONEN2
NLSK62
IF [WNES NE 3] NLSK63 
CALL ONEN3
NLSK63
IF [WNES NE 4] NLSK64 
CALL ONEN4
NLSK64
IF [WNES NE 5] NLSK65
CALL ONEN5
NLSK65
IF [WNES NE 6] NLSK66 
CALL ONEN6
NLSK66
IF [WNES NE 7] NLSK67 
CALL ONEN7
NLSK67
IF [WNES NE 8] NLSK68 
CALL ONEN8
NLSK68
IF [WNES NE 9] NLSK69 
CALL ONEN9
NLSK69
IF [WNES NE 0] NLSK70 
CALL ONEN0
NLSK70
VC5=VC5+1
RTS


ONEN1
(1)
G91
G1Z-.05-VC6F8.0
X0.125F15.0
G0Z.05+VC6
X-0.0625Y0
G1Z-.05-VC6F8.0
Y0.25F15.0
X-0.0625Y-0.0625
G0Z.05+VC6
X0.1771Y-0.1875
G90
RTS
ONEN2
(2)
G91
X0.125Y0
G1Z-.05-VC6F8.0
X-0.125F15.0
Y0.0625
G2X0.0625Y0.0625I0.0625J0
G3X-0.0625Y0.0625I0J0.0625
G0Z.05+VC6
X0.1771Y-0.1875
G90
RTS
ONEN3
(3)
G91
X0Y0.1875
G1Z-.05-VC6F8.0
G2X0.0625Y-0.0625I0.0625J0F15.0
G1X-0.0156
X0.0156
G2X-0.0625Y-0.0625I0J-0.0625
G0Z.05+VC6
X0.1771Y-0.0625
G90
RTS
ONEN4
(4)
G91
X0.0468Y0.25
G1Z-.05-VC6F8.0
X-0.0468Y-0.1406F15.0
X0.1562
G0Z.05+VC6
X-0.0468Y0.0937
G1Z-.05-VC6F8.0
Y-0.2031F15.0
G0Z.05+VC6
X0.0677Y0
G90
RTS
ONEN5
(5)
G91
X0.1094Y0.25
G1Z-.05-VC6F8.0
X-0.0782F15.0
X-0.0312Y-0.125
X0.0625
G2X-0.0625Y-0.0625I0J-0.0625
G0Z.05+VC6
X0.1771Y-0.0625
G90
RTS
ONEN6
(6)
G91
X0.125Y0.1875
G1Z-.05-VC6F8.0
G3X-0.125Y0I-0.0625J0F15.0
G1Y-0.125
G3X0.0625Y0.0625I0.0625J0
X-0.0625Y-0.0625I0J-0.0625
G0Z.05+VC6
X0.1771Y-0.0625
G90
RTS
ONEN7
(7)
G91
X0Y0.25
G1Z-.05-VC6F8.0
X0.1406F15.0
X-0.0782Y-0.25
G0Z.05+VC6
X0.1302Y0
G90
RTS
ONEN8
(8)
G91
X0.0625Y0.125
G1Z-.05-VC6F8.0
G3X0Y-0.125I0J-0.0625F15.0
X0Y0.125I0J0.0625
G2X0Y0.125I0J0.0625
X0Y-0.125I0J-0.0625
G0Z.05+VC6
X0.1146Y-0.125
G90
RTS
ONEN9
(9)
G91
X0Y0.0625
G1Z-.05-VC6F8.0
G3X0.125Y0I0.0625J0F15.0
G1Y0.125
G2X-0.125Y0I-0.0625J0
X0.125Y0I0.0625J0
G0Z.05+VC6
X0.0521Y-0.1875
G90
RTS
ONEN0
(0)
G91
X0Y0.0625
G1Z-.05-VC6F8.0
Y0.125F15.0
G2X0.125Y0I0.0625J0
G1Y-0.125
G2X-0.125Y0I-0.0625J0
G1X0.125Y0.125
G0Z.05+VC6
X0.0521Y-0.1875
G90
RTS







  • Like 3
Link to comment
Share on other sites
  • 2 weeks later...

here is a B Macro serialization pgm, that This forum hooked me up with, works great on our KIW HMC Fanuc 16 control,

 

%

:8200

(SET FEEDRATE FOR PROGRAM)

IF[#9EQ#0]GOTO1

F#9

N1

(DEFAULT DEPTH TO .005 IF NOT SPECIFIED)

IF[#7NE#0]GOTO5

#7=.005

N5

(DEFAULT SPACING TO .2 IF NOT SPECIFIED)

IF[#21NE#0]GOTO10

#21=.2

N10

(SCALE FACTOR)

IF[#11NE#0]GOTO15

#11=.25

N15

#140=#11/.25

(DEFAULT Z IS 0)

IF[#26NE#0]GOTO20

#26=0

N20

(ERROR COMPENSATION VARIABLE)

#149=.001

(FIND NUMBER OF DIGITS)

IF[#19EQ0]GOTO25

#120=FIX[[LN[#19]/2.3026]+1]

N25

IF[#3NE#0]THEN#120=#3

IF[#120NE#0]GOTO30

IF[#19EQ0]THEN#120=1.

N30

#121=1

#122=1

WHILE[#121LE[#120-1]]DO1

#122=FIX[[#122*10]+#149]

#121=FIX[[#121+1]+#149]

END1

(MOVE TO POSITION)

G0G90

X#24Y#25(MOVE TO START X AND Y POSITION)

Z[#26+0.5](MOVE TO SAFE Z POINT)

(START LOOP)

#102=0

N100

G0G90X[#24+[#21*#102]]Y#25

G91

(COUNT DIGITS)

IF[#102LE[#120-1]]GOTO200

G0G91G28Z0

M99

N200

#102=FIX[[#102+1]+#149]

(ISOLATE DIGIT)

#101=FIX[[#19/#122]+#149]

#19=#19-FIX[[#101*#122]+#149]

#122=FIX[[#122/10]+#149]

(CUT DIGIT)

G0G90Z[#26+.05]

IF[#101EQ0]GOTO10

IF[#101EQ1]GOTO11

IF[#101EQ2]GOTO12

IF[#101EQ3]GOTO13

IF[#101EQ4]GOTO14

IF[#101EQ5]GOTO15

IF[#101EQ6]GOTO16

IF[#101EQ7]GOTO17

IF[#101EQ8]GOTO18

IF[#101EQ9]GOTO19

N10(ZERO)

G91G0X-[#140*.0004]Y[#140*.1076]

G90G1Z[#26-#7]

G91G1X[#140*.0176]

G2X[#140*.0374]Y-[#140*.0194]I-[#140*.0021]J-[#140*.05]

X[#140*.0164]Y-[#140*.0417]I-[#140*.0488]J-[#140*.0432]

G1X-[#140*.0009]Y-[#140*.1012]

G2X-[#140*.0157]Y-[#140*.0372]I-[#140*.0527]J[#140*.0004]

X-[#140*.0372]Y-[#140*.0157]I-[#140*.0375]J[#140*.0371]

G1X-[#140*.0353]

G2X-[#140*.0372]Y[#140*.0157]I[#140*.0004]J[#140*.0528]

X-[#140*.0157]Y[#140*.0372]I[#140*.0371]J[#140*.0376]

G1Y[#140*.1059]

G2X[#140*.0157]Y[#140*.0389]I[#140*.0585]J-[#140*.001]

X[#140*.0372]Y[#140*.0175]I[#140*.0382]J-[#140*.033]

G1X[#140*.0177]

G90G0Z[#26+.05]

GOTO100

N11(ONE)

G91G0X-[#140*.0359]Y[#140*.0719]

G90G1Z[#26-#7]

G91X[#140*.0357]Y[#140*.0361]

Y-[#140*.2156]

X-[#140*.0357]

X[#140*.0718]

G90G0Z[#26+.05]

GOTO100

N12(TWO)

G91G0X-[#140*.071]Y[#140*.0531]

G90G1Z[#26-#7]

G91G2X[#140*.0157]Y[#140*.0375]I[#140*.0535]J-[#140*.0004]

X[#140*.0377]Y[#140*.0159]I[#140*.0379]J-[#140*.0371]

G1X[#140*.0352]

G2X[#140*.0375]Y-[#140*.0159]I-[#140*.0005]J-[#140*.0531]

X[#140*.0159]Y-[#140*.0375]I-[#140*.0373]J-[#140*.038]

X-[#140*.0164]Y-[#140*.0383]I-[#140*.0527]J-[#140*.0001]

G1X-[#140*.1256]Y-[#140*.1213]

X[#140*.142]

G90G0Z[#26+.05]

GOTO100

N13(THREE)

G91G0X-[#140*.0605]Y[#140*.0917]

G90G1Z[#26-#7]

G91G2X[#140*.0362]Y[#140*.0159]I[#140*.0366]J-[#140*.0341]

G1X[#140*.034]

G2X[#140*.0357]Y-[#140*.0159]I-[#140*.0006]J-[#140*.0494]

X[#140*.0151]Y-[#140*.0379]I-[#140*.04]J-[#140*.0379]

X-[#140*.0151]Y-[#140*.0379]I-[#140*.0552]

X-[#140*.0357]Y-[#140*.0159]I-[#140*.0363]J[#140*.0335]

X[#140*.0357]Y-[#140*.0159]I-[#140*.0006]J-[#140*.0494]

X[#140*.0151]Y-[#140*.0379]I-[#140*.04]J-[#140*.0379]

X-[#140*.0151]Y-[#140*.0374]I-[#140*.0546]J[#140*.0002]

X-[#140*.0357]Y-[#140*.0159]I-[#140*.0363]J[#140*.0335]

G1X-[#140*.034]

G2X-[#140*.0362]Y[#140*.0154]I[#140*.0002]J[#140*.0505]

G90G0Z[#26+.05]

GOTO100

N14(FOUR)

G91G0X[#140*.0353]Y-[#140*.1059]

G90G1Z[#26-#7]

G91Y[#140*.2117]

X-[#140*.1059]Y-[#140*.1411]

X[#140*.1412]

G90G0Z[#26+.05]

GOTO100

N15(FIVE)

G91G0X[#140*.0714]Y[#140*.1071]

G90G1Z[#26-#7]

G91X-[#140*.1428]

Y-[#140*.0714]

X[#140*.0895]

G2X[#140*.0374]Y-[#140*.0159]I-[#140*.0005]J-[#140*.0531]

X[#140*.0159]Y-[#140*.0374]I-[#140*.0372]J-[#140*.0379]

G1Y-[#140*.0358]

G2X-[#140*.0159]Y-[#140*.0378]I-[#140*.0537]J[#140*.0003]

X-[#140*.0374]Y-[#140*.0159]I-[#140*.0379]J[#140*.0372]

G1X-[#140*.0357]

G2X-[#140*.0379]Y[#140*.0159]I[#140*.0002]J[#140*.0536]

X-[#140*.0159]Y[#140*.0374]I[#140*.0372]J[#140*.0379]

G90G0Z[#26+.05]

GOTO100

N16(SIX)

G91G0X[#140*.0555]Y[#140*.091]

G90G1Z[#26-#7]

G91G3X-[#140*.0379]Y[#140*.0155]I-[#140*.0376]J-[#140*.038]

G1X-[#140*.0352]

G3X-[#140*.0377]Y-[#140*.0159]I[#140*.0002]J-[#140*.053]

X-[#140*.0157]Y-[#140*.0375]I[#140*.0378]J-[#140*.0379]

G1Y-[#140*.1062]

G3X[#140*.0157]Y-[#140*.0377]I[#140*.0533]J[#140*.0001]

X[#140*.0377]Y-[#140*.0157]I[#140*.0378]J[#140*.0376]

G1X[#140*.0352]

G3X[#140*.0375]Y[#140*.0157]I-[#140*.0004]J[#140*.0535]

X[#140*.0159]Y[#140*.0377]I-[#140*.0371]J[#140*.0379]

G1Y[#140*.0352]

G3X-[#140*.0159]Y[#140*.0375]I-[#140*.0531]J-[#140*.0005]

X-[#140*.0375]Y[#140*.0159]I-[#140*.038]J-[#140*.0372]

G1X-[#140*.0352]

G3X-[#140*.0377]Y-[#140*.0159]I[#140*.0002]J-[#140*.053]

X-[#140*.0157]Y-[#140*.0375]I[#140*.0378]J-[#140*.0379]

G90G0Z[#26+.05]

GOTO100

N17(SEVEN)

G91G0X-[#140*.0714]Y[#140*.1071]

G90G1Z[#26-#7]

G91X[#140*.1428]

X-[#140*.1071]Y-[#140*.2142]

G90G0Z[#26+.05]

GOTO100

N18(EIGHT)

G91G0X0.Y[#140*.1061]

G90G1Z[#26-#7]

G91X[#140*.0176]

G2X[#140*.0373]Y-[#140*.016]I-[#140*.0004]J-[#140*.0525]

X[#140*.0157]Y-[#140*.0374]I-[#140*.0378]J-[#140*.0378]

X-[#140*.0157]Y-[#140*.0372]I-[#140*.0528]J[#140*.0004]

X-[#140*.0373]Y-[#140*.0157]I-[#140*.0376]J[#140*.0371]

G1X-[#140*.0352]

G3X-[#140*.0373]Y-[#140*.0164]I[#140*.0005]J-[#140*.0519]

X-[#140*.0157]Y-[#140*.0383]I[#140*.0398]J-[#140*.0386]

X[#140*.0159]Y-[#140*.0361]I[#140*.05]J[#140*.0004]

X[#140*.0375]Y-[#140*.0151]I[#140*.0377]J[#140*.0395]

G1X[#140*.0348]

G3X[#140*.0373]Y[#140*.0151]I-[#140*.0001]J[#140*.0539]

X[#140*.0157]Y[#140*.0361]I-[#140*.0346]J[#140*.0365]

X-[#140*.016]Y[#140*.0383]I-[#140*.0551]J-[#140*.0004]

X-[#140*.037]Y[#140*.0164]I-[#140*.0378]J-[#140*.0356]

G1X-[#140*.0352]

G2X-[#140*.0373]Y[#140*.0157]I[#140*.0003]J[#140*.0528]

X-[#140*.0157]Y[#140*.0372]I[#140*.0371]J[#140*.0376]

X[#140*.0157]Y[#140*.0374]I[#140*.0535]J-[#140*.0004]

X[#140*.0373]Y[#140*.016]I[#140*.0377]J-[#140*.0365]

G1X[#140*.0176]

G90G0Z[#26+.05]

GOTO100

N19(NINE)

G91G0X-[#140*.0555]Y-[#140*.091]

G90G1Z[#26-#7]

G91G3X[#140*.0379]Y-[#140*.0155]I[#140*.0376]J[#140*.038]

G1X[#140*.0352]

G3X[#140*.0375]Y[#140*.0157]I-[#140*.0004]J[#140*.0535]

X[#140*.0159]Y[#140*.0377]I-[#140*.0371]J[#140*.0379]

G1Y[#140*.1062]

G3X-[#140*.0159]Y[#140*.0375]I-[#140*.0532]J-[#140*.0005]

X-[#140*.0375]Y[#140*.0159]I-[#140*.038]J-[#140*.0372]

G1X-[#140*.0352]

G3X-[#140*.0377]Y-[#140*.0159]I[#140*.0002]J-[#140*.053]

X-[#140*.0157]Y-[#140*.0375]I[#140*.0378]J-[#140*.0379]

G1Y-[#140*.0352]

G3X[#140*.0157]Y-[#140*.0377]I[#140*.0533]J[#140*.0001]

X[#140*.0377]Y-[#140*.0157]I[#140*.0378]J[#140*.0376]

G1X[#140*.0352]

G3X[#140*.0375]Y[#140*.0157]I-[#140*.0004]J[#140*.0535]

X[#140*.0159]Y[#140*.0377]I-[#140*.0371]J[#140*.0379]

G90G0Z[#26+.05]

GOTO100

M99

%

Link to comment
Share on other sites
  • 2 years later...

Hello Guys,

 

I maybe given this task today, so I was wondering how hard will it be to create a custom macro to serialize a part 1 through 1000 on a Tornos Screw machine? I will be milling it and I have a y axis. I never wrote a macro before so it will be all new to me so be easy on me please.

 

THanks

 

Rob

Here is a serialization macro that I wrote about 4-5 years ago. You will have to post each number incrementally and creat a subprogram in the 8100's for each number. If you want to use a different offset for you starting s/n just change #2098 to desired variable.

 

O8116( S/N MACRO )

( USE OFFSET 98 FOR SERIAL # )

( 00.0001 WILL ENGRAVE 1 )

( 1ST NUMBER )

#138=[#2098*.1]

#140=FIX[#138]

#141=#140+8100.

( 2ND NUMBER )

#138=[#140*10]

#139=FIX[#2098]

#140=#139-#138

#142=#140+8100.

( 3RD NUMBER )

#138=[#139*10]

#139=FIX[#2098*10]

#140=#139-#138

#143=#140+8100.

( 4TH NUMBER )

#138=[#139*10]

#139=FIX[#2098*100]

#140=#139-#138

#144=#140+8100.

( 5TH NUMBER )

#138=[#139*10]

#139=FIX[#2098*1000]

#140=#139-#138

#145=#140+8100.

( 6TH NUMBER )

#138=[#139*10]

#139=FIX[#2098*10000]

#140=#139-#138

#146=#140+8100.

( ARGUMENT )

IF[#141GT8100.]GOTO1

IF[#142GT8100.]GOTO2

IF[#143GT8100.]GOTO3

IF[#144GT8100.]GOTO4

IF[#145GT8100.]GOTO5

IF[#146GT8100.]GOTO6

GOTO100

N1M98P#141

N2M98P#142

N3M98P#143

N4M98P#144

N5M98P#145

N6M98P#146

N100M99

Link to comment
Share on other sites
  • 2 years later...
On 30.7.2012 at 9:37 PM, YoDoug® said:

Here is my serial macro I use in Okuma's. It could be easily updated for Fanuc. It uses incremental moves for each letter. You position to the bottom left point of the first number then you call the macro. At the end of each letter it positions to the lower left start point for the next letter. The beginning of the macro is the math function to take a 7 place serial number in variable VC5 and break it up into ones, tens, etc in local variables. There is also a variable for depth control. It adds to the serial count at the end of the macro. If the operator needs to rerun a piece he just sets the one variable to the needed serial number and it continues to count from there. I think these are .3 inch tall numbers, I just scales them using NCplot for different applications.

 

 


OENGJ
NSTRT


IF [VC5 LT 9999999] NVCHK 
NALM1 VUACM[1]='RESET SERIAL'
     VDOUT[992]=1234
NVCHK

MILS=FIX[VC5/1000000]
HNTH=FIX[[VC5-MILS*1000000]/100000] 
TNTH=FIX[[VC5-MILS*1000000-HNTH*100000]/10000]
THOU=FIX[[VC5-MILS*1000000-HNTH*100000-TNTH*10000]/1000]
HUNS=FIX[[VC5-MILS*1000000-HNTH*100000-TNTH*10000-THOU*1000]/100]
TENS=FIX[[VC5-MILS*1000000-HNTH*100000-TNTH*10000-THOU*1000-HUNS*100]/10]
WNES=FIX[VC5-MILS*1000000-HNTH*100000-TNTH*10000-THOU*1000-HUNS*100-TENS*10]




NLTR1

IF [MILS NE 1] NLSK1
CALL ONEN1
NLSK1
IF [MILS NE 2] NLSK2
CALL ONEN2
NLSK2
IF [MILS NE 3] NLSK3 
CALL ONEN3
NLSK3
IF [MILS NE 4] NLSK4 
CALL ONEN4
NLSK4
IF [MILS NE 5] NLSK5
CALL ONEN5
NLSK5
IF [MILS NE 6] NLSK6 
CALL ONEN6
NLSK6
IF [MILS NE 7] NLSK7 
CALL ONEN7
NLSK7
IF [MILS NE 8] NLSK8 
CALL ONEN8
NLSK8
IF [MILS NE 9] NLSK9 
CALL ONEN9
NLSK9
IF [MILS NE 0] NLSK10 
CALL ONEN0
NLSK10

NLTR2

IF [HNTH NE 1] NLSK11
CALL ONEN1
NLSK11
IF [HNTH NE 2] NLSK12
CALL ONEN2
NLSK12
IF [HNTH NE 3] NLSK13 
CALL ONEN3
NLSK13
IF [HNTH NE 4] NLSK14 
CALL ONEN4
NLSK14
IF [HNTH NE 5] NLSK15
CALL ONEN5
NLSK15
IF [HNTH NE 6] NLSK16 
CALL ONEN6
NLSK16
IF [HNTH NE 7] NLSK17 
CALL ONEN7
NLSK17
IF [HNTH NE 8] NLSK18 
CALL ONEN8
NLSK18
IF [HNTH NE 9] NLSK19 
CALL ONEN9
NLSK19
IF [HNTH NE 0] NLSK20 
CALL ONEN0
NLSK20

NLTR3

IF [TNTH NE 1] NLSK21
CALL ONEN1
NLSK21
IF [TNTH NE 2] NLSK22
CALL ONEN2
NLSK22
IF [TNTH NE 3] NLSK23 
CALL ONEN3
NLSK23
IF [TNTH NE 4] NLSK24 
CALL ONEN4
NLSK24
IF [TNTH NE 5] NLSK25
CALL ONEN5
NLSK25
IF [TNTH NE 6] NLSK26 
CALL ONEN6
NLSK26
IF [TNTH NE 7] NLSK27 
CALL ONEN7
NLSK27
IF [TNTH NE 8] NLSK28 
CALL ONEN8
NLSK28
IF [TNTH NE 9] NLSK29 
CALL ONEN9
NLSK29
IF [TNTH NE 0] NLSK30 
CALL ONEN0
NLSK30

NLTR4

IF [THOU NE 1] NLSK31
CALL ONEN1
NLSK31
IF [THOU NE 2] NLSK32
CALL ONEN2
NLSK32
IF [THOU NE 3] NLSK33 
CALL ONEN3
NLSK33
IF [THOU NE 4] NLSK34 
CALL ONEN4
NLSK34
IF [THOU NE 5] NLSK35
CALL ONEN5
NLSK35
IF [THOU NE 6] NLSK36 
CALL ONEN6
NLSK36
IF [THOU NE 7] NLSK37 
CALL ONEN7
NLSK37
IF [THOU NE 8] NLSK38 
CALL ONEN8
NLSK38
IF [THOU NE 9] NLSK39 
CALL ONEN9
NLSK39
IF [THOU NE 0] NLSK40 
CALL ONEN0
NLSK40

NLTR5

IF [HUNS NE 1] NLSK41
CALL ONEN1
NLSK41
IF [HUNS NE 2] NLSK42
CALL ONEN2
NLSK42
IF [HUNS NE 3] NLSK43 
CALL ONEN3
NLSK43
IF [HUNS NE 4] NLSK44 
CALL ONEN4
NLSK44
IF [HUNS NE 5] NLSK45
CALL ONEN5
NLSK45
IF [HUNS NE 6] NLSK46 
CALL ONEN6
NLSK46
IF [HUNS NE 7] NLSK47 
CALL ONEN7
NLSK47
IF [HUNS NE 8] NLSK48 
CALL ONEN8
NLSK48
IF [HUNS NE 9] NLSK49 
CALL ONEN9
NLSK49
IF [HUNS NE 0] NLSK50 
CALL ONEN0
NLSK50

NLTR6

IF [TENS NE 1] NLSK51
CALL ONEN1
NLSK51
IF [TENS NE 2] NLSK52
CALL ONEN2
NLSK52
IF [TENS NE 3] NLSK53 
CALL ONEN3
NLSK53
IF [TENS NE 4] NLSK54 
CALL ONEN4
NLSK54
IF [TENS NE 5] NLSK55
CALL ONEN5
NLSK55
IF [TENS NE 6] NLSK56 
CALL ONEN6
NLSK56
IF [TENS NE 7] NLSK57 
CALL ONEN7
NLSK57
IF [TENS NE 8] NLSK58 
CALL ONEN8
NLSK58
IF [TENS NE 9] NLSK59 
CALL ONEN9
NLSK59
IF [TENS NE 0] NLSK60 
CALL ONEN0
NLSK60

NLTR7

IF [WNES NE 1] NLSK61
CALL ONEN1
NLSK61
IF [WNES NE 2] NLSK62
CALL ONEN2
NLSK62
IF [WNES NE 3] NLSK63 
CALL ONEN3
NLSK63
IF [WNES NE 4] NLSK64 
CALL ONEN4
NLSK64
IF [WNES NE 5] NLSK65
CALL ONEN5
NLSK65
IF [WNES NE 6] NLSK66 
CALL ONEN6
NLSK66
IF [WNES NE 7] NLSK67 
CALL ONEN7
NLSK67
IF [WNES NE 8] NLSK68 
CALL ONEN8
NLSK68
IF [WNES NE 9] NLSK69 
CALL ONEN9
NLSK69
IF [WNES NE 0] NLSK70 
CALL ONEN0
NLSK70
VC5=VC5+1
RTS


ONEN1
(1)
G91
G1Z-.05-VC6F8.0
X0.125F15.0
G0Z.05+VC6
X-0.0625Y0
G1Z-.05-VC6F8.0
Y0.25F15.0
X-0.0625Y-0.0625
G0Z.05+VC6
X0.1771Y-0.1875
G90
RTS
ONEN2
(2)
G91
X0.125Y0
G1Z-.05-VC6F8.0
X-0.125F15.0
Y0.0625
G2X0.0625Y0.0625I0.0625J0
G3X-0.0625Y0.0625I0J0.0625
G0Z.05+VC6
X0.1771Y-0.1875
G90
RTS
ONEN3
(3)
G91
X0Y0.1875
G1Z-.05-VC6F8.0
G2X0.0625Y-0.0625I0.0625J0F15.0
G1X-0.0156
X0.0156
G2X-0.0625Y-0.0625I0J-0.0625
G0Z.05+VC6
X0.1771Y-0.0625
G90
RTS
ONEN4
(4)
G91
X0.0468Y0.25
G1Z-.05-VC6F8.0
X-0.0468Y-0.1406F15.0
X0.1562
G0Z.05+VC6
X-0.0468Y0.0937
G1Z-.05-VC6F8.0
Y-0.2031F15.0
G0Z.05+VC6
X0.0677Y0
G90
RTS
ONEN5
(5)
G91
X0.1094Y0.25
G1Z-.05-VC6F8.0
X-0.0782F15.0
X-0.0312Y-0.125
X0.0625
G2X-0.0625Y-0.0625I0J-0.0625
G0Z.05+VC6
X0.1771Y-0.0625
G90
RTS
ONEN6
(6)
G91
X0.125Y0.1875
G1Z-.05-VC6F8.0
G3X-0.125Y0I-0.0625J0F15.0
G1Y-0.125
G3X0.0625Y0.0625I0.0625J0
X-0.0625Y-0.0625I0J-0.0625
G0Z.05+VC6
X0.1771Y-0.0625
G90
RTS
ONEN7
(7)
G91
X0Y0.25
G1Z-.05-VC6F8.0
X0.1406F15.0
X-0.0782Y-0.25
G0Z.05+VC6
X0.1302Y0
G90
RTS
ONEN8
(8)
G91
X0.0625Y0.125
G1Z-.05-VC6F8.0
G3X0Y-0.125I0J-0.0625F15.0
X0Y0.125I0J0.0625
G2X0Y0.125I0J0.0625
X0Y-0.125I0J-0.0625
G0Z.05+VC6
X0.1146Y-0.125
G90
RTS
ONEN9
(9)
G91
X0Y0.0625
G1Z-.05-VC6F8.0
G3X0.125Y0I0.0625J0F15.0
G1Y0.125
G2X-0.125Y0I-0.0625J0
X0.125Y0I0.0625J0
G0Z.05+VC6
X0.0521Y-0.1875
G90
RTS
ONEN0
(0)
G91
X0Y0.0625
G1Z-.05-VC6F8.0
Y0.125F15.0
G2X0.125Y0I0.0625J0
G1Y-0.125
G2X-0.125Y0I-0.0625J0
G1X0.125Y0.125
G0Z.05+VC6
X0.0521Y-0.1875
G90
RTS







 

 

Hello, is this Macro also for a continuos serial ?

THX Sarah

continuous
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.

Join us!

eMastercam - your online source for all things Mastercam.

Together, we are the strongest Mastercam community on the web with over 56,000 members, and our online store offers a wide selection of training materials for all applications and skill levels.

Follow us

×
×
  • Create New...