We'er a job shop. We can run most parts in several different machines dependent on what's running. The issue with tool numbers is you never know what tool pockets are open. So you end up making extensive program edits. This is risky and time consuming. I got this idea. Make all the "T's" and "H's" macro variables. So all you have to do is plug your tools in whatever pockets are open then just edit the variables at the start of the program. This takes care of all the "H's,"T's" and "T" perps with a single number change. In this example there are (23) tools. For every tool you would need update the tool number "T", length offset number "H" and the tool prep. That makes (69) edits through out this program. Miss an "H" or a "T" you can crash.

So what do you think? You have a better way? I'd love to hear it.

Like this:
%
O1

( FORMAT: FA_450_REV_D_TOOL_MACRO.PST )

(4" INDEXBLE )
#101=81(<--- TOOL NUMBER)
()
(2.5 TWINBORE )
#102=92(<--- TOOL NUMBER)
()
(5/32 .1562 SOLID CARBIDE DRILL )
#103=69(<--- TOOL NUMBER)
()
(6.2MM .244 SOLID CARBIDE DRILL )
#104=70(<--- TOOL NUMBER)
()
(5/16 .3125 SOLID CARBIDE DRILL )
#105=66(<--- TOOL NUMBER)
()
(11/32 .3437 SOLID CARBIDE DRILL )
#106=71(<--- TOOL NUMBER)
()
(.368 END MILL )
#107=75(<--- TOOL NUMBER)
()
(10.2MM ..4015 SOLID CARBIDE DRILL )
#108=72(<--- TOOL NUMBER)
()
(1/2 .500 SOLID CARBIDE DRILL )
#109=90(<--- TOOL NUMBER)
()
(11/16 .6875 SOLID CARBIDE DRILL )
#110=88(<--- TOOL NUMBER)
()
(3/4 .750 SOLID CARBIDE DRILL )
#111=82(<--- TOOL NUMBER)
()
(.937 ACME SPADE BLADE )
#112=76(<--- TOOL NUMBER)
()
(3/4 .750 SPOT DRILL )
#113=79(<--- TOOL NUMBER)
()
(PRECISION CUTTING TOOL INC. # 30418 FORM TOOL )
#114=77(<--- TOOL NUMBER)
()
(.251 #A-11916 REAMER )
#115=83(<--- TOOL NUMBER)
()
(.379 REAMER )
#116=94(<--- TOOL NUMBER)
()
(3/4-16 SAE PORT /W1.03 CBORE )
#117=96(<--- TOOL NUMBER)
()
(1-1/16-12 SAE PORT )
#118=91(<--- TOOL NUMBER)
()
(3/8-16 TAP )
#119=80(<--- TOOL NUMBER)
()
(M12-1.75 TAP )
#120=97(<--- TOOL NUMBER)
()
(3/4-16 TAP )
#121=74(<--- TOOL NUMBER)
()
(CARMEX MT0375C10 12UN MT7 .375 12 PITCH THREAD MILL )
#122=99(<--- TOOL NUMBER)
()
(90DEG ENGRAVING TOOL )
#123=21(<--- TOOL NUMBER)
()

N1G0G90G10L2P1X0Y0Z0
N2G0G90G10L2P2X0Y0Z0
N3G0G90G10L2P3X0Y0Z0
N4G0G90G10L2P4X0Y0Z0
N5G0G90G10L2P5X0Y0Z0
N6G0G90G10L2P6X0Y0Z0
N7G90G40G20G17G80G94
N8M82
N9M16
N10T#101
N11M6
N12M16
( OPERATION 1: CONTOUR )
( 4" INDEXBLE )
(B270)
N14G56G90G0G17X2.38Y4.75B270.S716M3
N15H#101Z12.
N16M8
N17M82
N18T#102
N19Z4.5
N20G1Z4.28F35.8
N21Y-1.75
N22G0Z4.5
( OPERATION 2: CONTOUR )
N23G90G0X2.38Y4.75
N24G1Z4.25F35.8
N25Y-4.75
N26G0Z4.5
N27M9
N28G91G28Z0.
N29G28Y0.
N30M1
N31M6
N32M16
( OPERATION 3: HOLES )
( 2.5 TWINBORE )
N33G56G90G0X2.38Y0.B270.S800M3
N34H#102Z12.
N35M8
N36M82
N37T#103
N38Z4.625
N39G81G99X2.38Y0.Z3.75R4.625F2.5
N40G80
N41M9
N42G91G28Z0.
N43G28Y0.
N44M1
N45M6
N46M16
( OPERATION 4: HOLES )
( 5/32 .1562 SOLID CARBIDE DRILL )
(B180)
N47G55G90G0X1.34Y-2.84B180.S4889M3
N48H#103Z4.
N49M8
N50M82
N51T#104
N52Z.25
N53G81G99X1.34Y-2.84Z-.5284R.25F29.33
N54G80
N55M9
N56G91G28Z0.
N57G28Y0.
N58M1
N59M6
N60M16
( OPERATION 5: HOLES )
( 6.2MM .244 SOLID CARBIDE DRILL )
N61G55G90G0X0.Y1.8B180.S3912M3
N62H#104Z4.
N63M8
N64M82
N65T#105
N66Z.25
N67G81G99X0.Y1.8Z-.4864R.25F19.56
N68G80
N69M9
N70G91G28Z0.
N71G28Y0.
N72M1
N73M6
N74M16
( OPERATION 6: HOLES )
( 5/16 .3125 SOLID CARBIDE DRILL )
N75G55G90G0X-2.91Y-2.07B180.S3056M3
N76H#105Z4.
N77M8
N78M82
N79T#106
N80Z.25
N81G81G99X-2.91Y-2.07Z-1.4619R.25F18.34
N82Y1.9
N83G80
( OPERATION 7: HOLES )
N84G90G0X2.91Y-2.07
N85G81G99X2.91Y-2.07Z-1.0269R.25F18.34
N86Y1.9
N87X0.Y3.2
N88Y-3.2
N89G80
N90M9
N91G91G28Z0.
N92G28Y0.
N93M1
N94M6
N95M16
( OPERATION 8: HOLES )
( 11/32 .3437 SOLID CARBIDE DRILL )
N96G55G90G0X-2.31Y-2.13B180.S2594M3
N97H#106Z4.
N98M8
N99M82
N100T#107
N101Z.25
N102G81G99X-2.31Y-2.13Z-.5724R.25F15.57
N103X2.31Y1.96
N104G80
N105M9
N106G91G28Z0.
N107G28Y0.
N108M1
N109M6
N110M16
( OPERATION 9: HOLES )
( .368 END MILL )
N111G55G90G0X-2.31Y-2.13B180.S2594M3
N112H#107Z4.
N113M8
N114M82
N115T#108
N116Z.25
N117G81G99X-2.31Y-2.13Z-.51R.25F15.57
N118X2.31Y1.96
N119G80
N120M9
N121G91G28Z0.
N122G28Y0.
N123M1
N124M6
N125M16
( OPERATION 10: HOLES )
( 10.2MM ..4015 SOLID CARBIDE DRILL )
(B270)
N126G56G90G0X1.38Y1.75B270.S2378M3
N127H#108Z12.
N128M8
N129M82
N130T#109
N131Z4.5
N132G81G99X1.38Y1.75Z2.6294R4.5F23.78
N133Y-1.75
N134X3.38
N135Y1.75
N136G80
N137M9
N138G91G28Z0.
N139G28Y0.
N140M1
N141M6
N142M16
( OPERATION 11: HOLES )
( 1/2 .500 SOLID CARBIDE DRILL )
(B180)
N143G55G90G0X-1.Y-1.98B180.S1910M3
N144H#109Z4.
N145M8
N146M82
N147T#110
N148Z.25
N149G81G99X-1.Y-1.98Z-.891R.25F15.28
N150G80
N151M9
N152G91G28Z0.
N153G28Y0.
N154M1
N155M6
N156M16
( OPERATION 12: HOLES )
( 11/16 .6875 SOLID CARBIDE DRILL )
N157G55G90G0X1.34Y-2.19B180.S1389M3
N158H#110Z4.
N159M8
N160M82
N161T#111
N162Z.25
N163G81G99X1.34Y-2.19Z-1.3051R.25F16.67
N164G80
N165M9
N166G91G28Z0.
N167G28Y0.
N168M1
N169M6
N170M16
( OPERATION 13: HOLES )
( 3/4 .750 SOLID CARBIDE DRILL )
N171G55G90G0X2.34Y.92B180.S1273M3
N172H#111Z4.
N173M8
N174M82
N175T#112
N176Z.25
N177G81G99X2.34Y.92Z-1.6365R.25F12.73
N178G80
N179M9
N180G91G28Z0.
N181G28Y0.
N182M1
N183M6
N184M16
( OPERATION 14: HOLES )
( .937 ACME SPADE BLADE )
(B90)
N185G57G90G0X-1.38Y0.B90.S611M3
N186H#112Z12.
N187M8
N188M82
N189T#113
N190Z4.0209
N191G81G99X-1.38Y0.Z2.4244R4.0209F11.61
N192G80
N193M9
N194G91G28Z0.
N195G28Y0.
N196M1
N197M6
N198M16
( OPERATION 15: HOLES )
( 3/4 .750 SPOT DRILL )
(B180)
N199G55G90G0X-2.31Y-2.13B180.S917M3
N200H#113Z4.
N201M8
N202M82
N203T#114
N204Z.25
N205G81G99X-2.31Y-2.13Z-.1975R.25F9.17
N206X2.31Y1.96
N207G80
( OPERATION 16: HOLES )
N208G90G0X-2.91Y-2.07
N209G81G99X-2.91Y-2.07Z-.1975R.25F9.17
N210Y1.9
N211X0.Y3.2
N212Y-3.2
N213X2.91Y-2.07
N214Y1.9
N215G80
N216G0Z12.
( OPERATION 17: HOLES )
(B270)
N217G90G56G0X1.38Y1.75B270.S917M3
N218H#113Z12.
N219Z4.5
N220G81G99X1.38Y1.75Z3.9941R4.5F9.17
N221Y-1.75
N222X3.38
N223Y1.75
N224G80
N225M9
N226G91G28Z0.
N227G28Y0.
N228M1
N229M6
N230M16
( OPERATION 18: HOLES )
( PRECISION CUTTING TOOL INC. # 30418 FORM TOOL )
(B180)
N231G55G90G0X2.34Y.92B180.S682M3
N232H#114Z4.
N233M8
N234M82
N235T#115
N236Z.25
N237G81G99X2.34Y.92Z-.7R.25F10.23
N238G80
N239M9
N240G91G28Z0.
N241G28Y0.
N242M1
N243M6
N244M16
( OPERATION 19: HOLES )
( .251 #A-11916 REAMER )
N245G55G90G0X0.Y1.8B180.S800M3
N246H#115Z4.
N247M8
N248M82
N249T#116
N250Z.25
N251G81G99X0.Y1.8Z-.439R.25F4.
N252G80
N253M9
N254G91G28Z0.
N255G28Y0.
N256M1
N257M6
N258M16
( OPERATION 20: HOLES )
( .379 REAMER )
N259G55G90G0X-2.31Y-2.13B180.S2023M3
N260H#116Z4.
N261M8
N262M82
N263T#117
N264Z.25
N265G81G99X-2.31Y-2.13Z-.5R.25F24.
N266X2.31Y1.96
N267G80
N268M9
N269G91G28Z0.
N270G28Y0.
N271M1
N272M6
N273M16
( OPERATION 21: CONTOUR )
( 3/4-16 SAE PORT /W1.03 CBORE )
N274G55G90G0X1.34Y-2.19B180.S1388M3
N275H#117Z4.
N276M8
N277M82
N278T#118
N279Z.25
N280G1F12.5
N281Z-.8F1.25
N282Z-.9275F8.34S927
N283G4P259
N284G0Z.25
N285M9
N286G91G28Z0.
N287G28Y0.
N288M1
N289M6
N290M16
( OPERATION 22: CONTOUR )
( 1-1/16-12 SAE PORT )
(B90)
N291G57G90G0X-1.38Y0.B90.S975M3
N292H#118Z12.
N293M8
N294M82
N295T#119
N296Z4.021
N297G1F8.7
N298Z2.744
N299Z2.595F5.28S578
N300G4P415
N301G0Z4.021
N302M9
N303G91G28Z0.
N304G28Y0.
N305M1
N306M6
N307M16
( OPERATION 23: HOLES )
( 3/8-16 TAP )
(B180)
N308G55G90G0X-2.91Y-2.07B180.
N309H#119Z4.
N310M8
N311M82
N312T#120
N313Z.25
N314S202M3
N315G84.2G95G99X-2.91Y-2.07Z-.92R.25F.0625
N316Y1.9
N317X0.Y3.2
N318Y-3.2
N319X2.91Y-2.07
N320Y1.9
N321G80G94
N322M9
N323G91G28Z0.
N324G28Y0.
N325M1
N326M6
N327M16
( OPERATION 24: HOLES )
( M12-1.75 TAP )
(B270)
N328G56G90G0X1.38Y1.75B270.
N329H#120Z12.
N330M8
N331M82
N332T#121
N333Z4.5
N334S202M3
N335G84.2G95G99X1.38Y1.75Z2.8922R4.5F.0689
N336Y-1.75
N337X3.38
N338Y1.75
N339G80G94
N340M9
N341G91G28Z0.
N342G28Y0.
N343M1
N344M6
N345M16
( OPERATION 25: HOLES )
( 3/4-16 TAP )
(B180)
N346G55G90G0X1.34Y-2.19B180.
N347H#121Z4.
N348M8
N349M82
N350T#122
N351Z.25
N352S127M3
N353G84.2G95G99X1.34Y-2.19Z-.8135R.25F.0625
N354G80G94
N355M9
N356G91G28Z0.
N357G28Y0.
N358M1
N359M6
N360M16
( OPERATION 26: THREADING )
( CARMEX MT0375C10 12UN MT7 .375 12 PITCH THREAD MILL )
(B90)
N361G57G90G0X-1.38Y0.B90.S3074M3
N362H#122Z12.
N363M8
N364M82
N365T#123
N366Z4.021
N367G91
N368Z-1.1971
N369G1X.2505F9.4
N370G41X.05D0
N371G3X-.3005Y.3337Z.0201I-.3005J.0316
N372Z.0833J-.3337
N373X-.3005Y-.3337Z.0202J-.3021
N374G40G1X.05
N375X.2505
N376G0Z-.1234
N377G1X.2505
N378G41X.05
N379G3X-.3005Y.3438Z.0199I-.3005J.0405
N380Z.0833J-.3438
N381X-.3005Y-.3438Z.02J-.3033
N382G40G1X.05
N383X.2505
N384G90G0Z4.021
N385X-2.38
N386G91
N387Z-1.1971
N388G1X.2505
N389G41X.05
N390G3X-.3005Y.3337Z.0201I-.3005J.0316
N391Z.0833J-.3337
N392X-.3005Y-.3337Z.0202J-.3021
N393G40G1X.05
N394X.2505
N395G0Z-.1234
N396G1X.2505
N397G41X.05
N398G3X-.3005Y.3438Z.0199I-.3005J.0405
N399Z.0833J-.3438
N400X-.3005Y-.3438Z.02J-.3033
N401G40G1X.05
N402X.2505
N403G90G0Z4.021
N404M9
N405G91G28Z0.
N406G28Y0.
N407M1
N408M6
N409M16
( OPERATION 27: CONTOUR )
( 90DEG ENGRAVING TOOL )
(B270)
N410G56G90G0X2.2857Y-1.6786B270.S5000M3
N411H#123Z12.
N412M8
N413M82
N414T#101
N415Z4.5
N416G1Z4.245F10.
N417X2.3066Y-1.8359
N418X2.3821Y-1.6856
N419X2.4577Y-1.8359
N420X2.4785Y-1.6786
N421G0Z4.5
N422M9
N423G91G28Z0.
N424G28Y0.
N425G28Y0X0B0
N426M01
N427M70
N428(TOOL COUNTER SUB CALL)
N429M98P6082
N430M30
%