Over the coming series of articles I will be covering the various areas that make up a typical DMIS program. I will try to cover the most important aspects of each area giving the reader an understanding of each along with any tips and tricks I have picked up during my years of DMIS programming and teaching. This first installment aims to give you an overview of the basic structure of a program and highlight the areas that any programmer should consider including in their inspection process.
DMIS programs should be designed to be as portable as possible in order for them to be used on different DMIS compatible CMM’s. This means that all aspects of the programs’ operation must be defined by the program and not assume that the CMM will take responsibility for any setting or operation. A typical DMIS program will include the following areas:

Machine Setup; usually means setting the current working units (UNITS) along with feeds, speeds, search distances, etc. At the very least a programmer should set probe back off (RETRCT), pre-hit distance (APPRCH), search distance (SEARCH), machine move and measurement speed (POSVEL & MESVEL),  machine move and measurement acceleration (POSACL & MESACL). If you will be using CNC (AUTO) mode you will also need to set clearance (CLEAR) and depth (DEPTH). If you do not explicitly embed these settings in the program the process will use whatever settings are present on a particular machine at run time. In extreme cases this can be dangerous or at the very least return inconsistent results.

Setup Instructions; usually in the form of text output (TEXT) or in some systems by showing pictures using prompts (PROMPT) that will guide the CMM user through the process of mounting fixtures or parts.

Data Input; is where the user would enter information that will be stored with the results for traceability. Input is usually things like; Operator, Shift Number, Part Serial Number, etc. The information is usually obtained using program prompts (PROMPT).

Manual Setup; is an optional procedure and uses the various DMIS alignment statements (DATDEFDATSETTRANSROTATE) to setup a part datum. Manual datums should be kept as simple as possible to reduce operator error. Manual datums should not be relied upon and should always be followed by an automatic datum.

Automatic Setup; is compulsory unless you have a part locating fixture that has already been qualified and is being used as the datum reference. Even if a part location is being used it is advisable to visit key features before proceeding with part inspection to check that the part is located correctly. Like manual setups automatic ones employ the various DMIS alignment statements (DATDEFDATSETTRANSROTATE) to setup a part datum. A setup of some kind must be employed in order to rotate the and locate the reference system to preassigned part features in order to provide a reference from which measurements will be reported.

Measurement; usually forms the bulk of most programs and covers a host of DMIS statements. Some measurements will be found using a single point (FEAT/POINT-MEAS/POINT-ENDMES) while others will involve complex datum or constructed manipulations (ROTATE or TRANS or CONST) in order to arrive at particular solution.

Output; is the action of reporting the features found in the measurement section. Output is sometimes left until the end of a program while in other programs it is performed following each measurement procedure.

Machine Cleanup; can be as simple as parking the machine or may be a series of actions such as printing a report, archiving data, changing tips, etc.

In future articles I will expand on each of these areas and provide tips and tricks related to each.

Stephen Horsfall specializes in DMIS programming, training and consulting and is the author of ‘Step by Step DMIS Programming’. He can be at contacted at steve.horsfall@cmmts.com.