Aitrtech
Published

Refining the Macro

These tips will help you optimize the structure of your part family custom macro.

Share

In the past three columns, I have provided suggestions for developing part family custom macros. I’ll conclude this series by discussing a few more techniques to help you tweak and 
optimize the structure.

Minimize program execution time. In my recommended structure, a lot of data must be active before the machining portion of your program can be executed. This data includes variables related to part definition, cutting conditions, cutting tools and system constants. In addition, any error trapping also must be done. All of this can lead to a lengthy pause during program execution. 

Since the related (common) variables will remain active until the power is turned off, all of the variable assignment and error trapping commands need only be executed once, unless running a different workpiece. 

Here is technique that will eliminate the pause in all but the first execution. It keys on a part number variable included in the part definition program to see if it has changed since the last time the program was executed.

O0001 (Ring turning center program)
G65 P1000 C1.0 (Get current value of #100)
IF [#500EQ#100] GOTO 1 (Test if variable settings are needed)
M98 P1000 (Call part definition program)
M98 P8001 (Call system constraints program)
M98 P8003 (Call cutting conditions program)
M98 P8004 (Call tool selection program)
M98 P8002 (Call error trapping program)
#500=#100

N1 (Side one, process one – rough face and turn)
M98 P8031 

N2 (Side one, process two – rough bore)
M98 P8032

N3 (Side one, process three – finish bore thru and face)
M98 P8033

N4 (Side one, process four – finish turn)
M98 P8034

M30 (End of program)

The G65 command gets the part number value from the part definition program (O1000) and stores it in common variable #100. This value is then compared to the value of #500, and if they differ (meaning a different workpiece is being run), all the variable assignment and error trapping commands are executed. Then #500 is set to #100 so the next time the program is run for the same part, the time-consuming commands are skipped.

Use a template part definition program. This helps out the person creating part definition programs and ensures that all data is entered.

O1000 (Part definition program)
#100=#0 (Part number)
IF [#3EQ1.0] GOTO 99
#101=#0 (Material specification – 1018 or 1045)
#102=#0 (Inside diameter)
#103=#0 (Outside diameter)
#104=#0 (Bolt circle diameter)
#105=#0 (Thickness)
#106=#0 (Slot depth)
#107=#0 (Slot width)
#108=#0 (Hole diameter)
N99 M99 

Note that all variables are set to vacant (#0). A test for vacancy can be done in the error trapping program to ensure that each mandatory variable has been assigned a value.
Error-trap suspected problems. At the very least, confirm that all input variables have been assigned a value. Here is an example for the previous part definition program:

O8002
#1=100 (Counter)
N1 IF [#1GT108] GOTO 50 (Start loop to test input variables)
IF [#[#1] NE #0] GOTO 5 (Test current variable)
#3000=100 (Data missing)
N5 #1=#1+1 (Step counter)
GOTO 1 (Go back to test)
N50 (More error trapping here)
M99

You can also test for a variety of potential input mistakes, such as a bolt circle diameter (#104) that is larger than the outside diameter (#103). 

Try to eliminate raw material size specification. Last month, we addressed minimizing the amount of process-specific information in input data, including cutting conditions related to different materials. Your custom macro also must “know” the size of the raw material to be machined, but, as with other process-related information, try to keep raw material size 
specification out of the part definition program since this information is not on the blueprint. Hopefully, there is some logic related to how raw material size is determined. Build this logic into your custom macro(s).

Try to eliminate program zero assignment. Similarly, do your best to minimize the task of program zero assignment. For a round ring held in a V-block vice, for example, the XY program zero point (center of ring) location can be calculated with simple trigonometric functions, and the appropriate fixture offset registers can be updated from within the part family program. This eliminates the task of program zero assignment.

Acquire
The World According To
Airtech
UPM Additive Solutions
World Machine Tool Survey
QualiChem Metalworking Fluids
JTEKT
VERISURF
Hurco
715 Series - 5-axis complete machining
IMTS+
Paperless Parts

Related Content

CNC Tech Talks

A Higbee Thread Milling Custom Macro

Higbee threads provide a full thread form at the very start of the thread. The sharp edge is removed during the machining process.

Read More
CNC Tech Talks

Strange But True: Odd Things That Happen With CNCs

These oddities in the way a CNC naturally behaves can help explain some rather unusual situations that may occur during machining.

Read More
CNC Tech Talks

The Best Point of Reference for Program Zero Assignment Entries

Correctly specified program zero assignment and coordinate position values enable the CNC to determine how far to move the cutting tool during each positioning motion.

Read More
Basics

4 Commonly Misapplied CNC Features

Misapplication of these important CNC features will result in wasted time, wasted or duplicated effort and/or wasted material.

Read More

Read Next

Workforce Development

Inside Machineosaurus: Unique Job Shop with Dinosaur-Named CNC Machines, Four-Day Workweek & High-Precision Machining

Take a tour of Machineosaurus, a Massachusetts machine shop where every CNC machine is named after a dinosaur! 

Read More
Sponsored

The Future of High Feed Milling in Modern Manufacturing

Achieve higher metal removal rates and enhanced predictability with ISCAR’s advanced high-feed milling tools — optimized for today’s competitive global market.

Read More
Automation

IMTS 2024: Trends & Takeaways From the Modern Machine Shop Editorial Team

The Modern Machine Shop editorial team highlights their takeaways from IMTS 2024 in a video recap.

Read More
3D printing machine trainings