top of page
Writer's pictureMike Lynch

Another way to get arguments into a custom macro

For part family applications, one way to provide arguments (input variables) for the custom macro is to list them right at the beginning of the custom macro program. We normally use common variable (#100 series) along with a nice documenting message to explain the meaning of the variable. Consider, for example, this part family custom macro:

  • O0003 (Spacer ring)

  • #101=4.5 (HOLE DIA)

  • #102=6.0 (OUTSIDE DIA)

  • #103=5.25 (BOLT CIRCLE DIA)

  • #104=1.0 (THICKNESS)

  • #105=0.125 (SLOT DEPTH)


  • N005 T01 M06 (1/2 end mill)

  • (Constants for milling operation)

  • #110=#102/2 + 0.35 (Outside clearance)

  • #111=#101/2 - 0.35 (Inside clearance)

  • N010 G54 G90 S800 M03 T02

  • N015 G00 X0 Y-#110

  • N020 G43 H01 Z-#105

  • N025 G01 Y-#111 F4.0

  • N030 G00 Z0.1

  • N035 X#110 Y0

  • N040 Z-#105

  • N045 G01 X#111

  • N050 G00 Z0.1

  • N055 X0 Y#110

  • N060 Z-#105

  • N065 G01 Y#111

  • N070 G00 Z0.1

  • N075 X-#110 Y0

  • N080 Z-#105

  • N085 G01 X-#111

  • N090 G00 Z0.1

  • N195 G91 G28 Z0 M19

  • N100 M01

  • N105 T02 M06 (1/4 drill)

  • #112=#103/2 (Bolt circle radius)

  • N110 G54 G90 S1300 M03 T01

  • N115 G00 X0 Y-#112

  • N120 G43 H02 Z0.1

  • N125G81R-[#105-.1]Z-[#104+0.11]F3.5 G98

  • N130 X#112 Y0

  • N135 X0 Y#112

  • N140 X-#112 Y0

  • N145 G80

  • N150 G91 G28 Z0 M19

  • N155 M30

All of the arguments needed for the program are specified right at the beginning with common variables - and the accompanying message makes it clear as to what each argument represents. Again, this is a common method for getting arguments into a part family custom macro.


Consider adding one more criteria to this application. What if the workpiece material varies from job to job. Maybe sometimes this workpiece is made from aluminum - other times it is made from steel - yet other times it is made from brass, or copper, or nickel. You could of course, add some additional arguments to specify feeds and speeds for each tool, but these values would have to be changed every time a new material is to be machined. Here is another way to handle this problem.


We can set up a series of special cutting conditions custom macros (actually called as subprograms) that specify all cutting conditions needed for the material. For example, this might be the custom macro for steel:

  • O1001 (Cutting conditions for steel workpiece)

  • #121=800 (Speed for end mill)

  • #122=4.0 (Feedrate for end mill)

  • #123=1300 (Speed for drill)

  • #124=3.5 (Feedrate for drill)

  • M99

  • And here is the custom macro for an aluminum workpiece:

  • O1002 (Cutting conditions for aluminum workpiece)

  • #121=2800 (Speed for end mill)

  • #122=12.0 (Feedrate for end mill)

  • #123=3400 (Speed for drill)

  • #124=14.0 (Feedrate for drill)

  • M99

You can easily create as many cutting conditions custom macros as you have materials to machine. The main program, of course, must be modified to reflect this new criteria:

  • O0003 (Spacer ring)

  • #101=4.5 (HOLE DIA)

  • #102=6.0 (OUTSIDE DIA)

  • #103=5.25 (BOLT CIRCLE DIA)

  • #104=1.0 (THICKNESS)

  • #105=0.125 (SLOT DEPTH)


  • (O1001: STEEL, O1002: ALUMINUM, O1003: BRASS)

  • M98 P1001 (Get cutting conditions for steel workpiece)


  • N005 T01 M06 (1/2 end mill)

  • (Constants for milling operation)

  • #110=#102/2 + 0.35 (Outside clearance)

  • #111=#101/2 - 0.35 (Inside clearance)

  • N010 G54 G90 S#121 M03 T02

  • N015 G00 X0 Y-#110

  • N020 G43 H01 Z-#105

  • N025 G01 Y-#111 F#122

  • N030 G00 Z0.1

  • N035 X#110 Y0

  • N040 Z-#105

  • N045 G01 X#111

  • N050 G00 Z0.1

  • N055 X0 Y#110

  • N060 Z-#105

  • N065 G01 Y#111

  • N070 G00 Z0.1

  • N075 X-#110 Y0

  • N080 Z-#105

  • N085 G01 X-#111

  • N090 G00 Z0.1

  • N195 G91 G28 Z0 M19

  • N100 M01

  • N105 T02 M06 (1/4 drill)

  • #112=#103/2 (Bolt circle radius)

  • N110 G54 G90 S#123 M03 T01

  • N115 G00 X0 Y-#112

  • N120 G43 H02 Z0.1

  • N125G81R-[#105-.1]Z-[#104+0.11] F#124 G98

  • N130 X#112 Y0

  • N135 X0 Y#112

  • N140 X-#112 Y0

  • N145 G80

  • N150 G91 G28 Z0 M19

  • N155 M30

452 views0 comments

Recent Posts

See All

Commentaires


bottom of page