Getting Started With CMM Programming
If you are trying to learn PC-DMIS for the first time, the official training material from Hexagon is the starting point, but it is not the full picture. The Pc Dmis Training Manual that comes bundled with the software covers the basics of feature creation, alignment, and reporting. It will get you from zero to a working part program in a few days if you work through it sequentially. That said, it leaves out several things that actually matter on the shop floor, so I am going to walk through what you need beyond the manual. The manual is organized around the graphical interface. You learn how to place circles, planes, and cylinders. You learn about auto-levels, 3-2 alignments, and how to build a basic report. It walks through the commands in a logical order and gives you sample programs to open and modify. I spent about three days going through the beginner module with a fresh install, and by the end I could run a simple flatness check on a calibration block. That was useful. It was also completely insufficient for anything beyond tutorial parts. What the manual does not cover in detail is real-world alignment strategy. It teaches you how to make a 3-2 alignment, but it does not explain why you would choose a specific datuming sequence when your part has worn edges or when the part is sitting on a dirty plate. It mentions best practices in passing but does not drill into the decision-making process. You have to figure that out from experience or from someone who has already made the mistakes.
Building Your First Real Part Program
Start by touching off your part. Measure the actual geometry, not the theoretical CAD model, and use those measured values to define your part coordinate system. The default settings in PC-DMIS will give you nominal positions from the CAD file. If you just run the program with nominal hits, your results will be garbage because the part is not exactly where the model says it is. This is the number one mistake I see with new programmers. Here is the practical sequence I follow every time: First, establish a flat reference plane by measuring at least three points across the part surface. Use a circle feature with five hits minimum and a proper search radius. Second, pick a linear feature to orient the X or Y axis. A long slot or two parallel edges work best. Third, measure another feature to lock the second axis. Fourth, translate the origin to a meaningful location on the part, usually a hole or intersection point. This is your primary alignment.
After that, you can add secondary features if you need rotation control or if the part has multiple datum targets that define orientation differently than your primary datums. Auto-level features come into play when you are measuring features on different planes without repositioning the part. They are useful but introduce another layer of transformation that can hide errors if you do not understand what they are doing mathematically.
Get the Full Details
A Specific Problem That the Manual Does Not Address
Last year I was programming a part with a series of threaded holes going through a casting. The manual would have you use a standard circle measurement for each hole. On paper this works fine. In practice, the cast holes had burrs around the entrance from the machining process and the part surface was slightly uneven. Every time I ran the program, PC-DMIS would miss the actual bore or hit the burr and throw off the circle center. The alignment drifted between programs and the feature report showed inconsistent results. The fix was to switch from auto-find-circle to a manual circle measurement with a significantly smaller search radius and to add a pre-hit and post-hit that I calibrated for the stylus and part material. I also measured the bore deeper into the hole where the burrs did not reach. I defined a smaller sweep angle for the circle search and increased the number of hits to eight instead of the default five. This took about ten minutes to set up per hole but eliminated the erratic behavior entirely. The manual has a section on search radius but it does not connect it to burr elimination as a practical workflow step.
Alignment Strategy Deep Dive
Most beginners treat alignments as a box-checking exercise. Level to plane A, rotate to line B, origin to point C. Done. Move on. This approach fails when the part does not match the drawing perfectly, which is almost always the case. Castings, forgings, and even machined parts have variation. Your alignment needs to account for that variation without masking real defects. One thing the training manual does not emphasize enough is the difference between nominally correct alignments and functionally correct alignments. A nominally correct alignment uses the exact theoretical positions from the CAD model. A functionally correct alignment uses measured positions adjusted by the actual part orientation. For production inspection, functionally correct is usually what you want because it tells you whether the part will assemble, not whether the program runs without errors. Another nuance that trips people up is the concept of true position vs. concentricity. PC-DMIS reports both, and they are not the same. True position measures the actual feature center relative to the datum reference frame and reports the positional deviation. Concentricity requires multiple sectors and a different calculation method. Beginners often use concentricity when true position would be more appropriate and then get confused by the results. The manual mentions both terms but does not clearly explain when to use which.
Scripting and Automation
Once you are comfortable with manual feature placement, the next step is learning the scripting language. PC-DMIS uses a Basic-like scripting environment that lets you create loops, conditional logic, and parameterized programs. This is where you move from writing one-off part programs to building reusable templates. I have programs that automatically measure the same family of parts by adjusting dimensions based on a single input value. The time savings are significant for high-mix production environments. The manual includes a scripting chapter but it is shallow. It shows how to assign a variable and print it to the output window. It does not teach you how to debug a script when something goes wrong. I learned scripting mostly by breaking things and reading error messages. The command window output in PC-DMIS is not always clear about where an error originated, especially in nested loops. One workaround is to break complex scripts into smaller functions and test each one independently before combining them.
Common Pitfalls and How to Avoid Them
Stylus calibration is probably the most critical skill and the one most often rushed. A misaligned probe tip will produce systematic errors that propagate through every measurement. Calibrate your tips using at least three orientations and verify with a known standard before running any part program. If your calibration vector angles are too close together, the sphere correction becomes unreliable. I try to keep my tip orientations at least 60 degrees apart whenever possible. Feature tolerance specification is another area where beginners make costly errors. PC-DMIS allows you to set tolerances at multiple levels: feature level, alignment level, and global level. The software uses the tightest tolerance it encounters unless you explicitly override it. This means a single mis-specified tolerance can reject a perfectly good part or accept a bad one depending on how the evaluation runs. Always double-check your tolerance assignments before running a full program. Take two minutes to review the output from a single feature measurement and confirm the pass/fail criteria match your drawing callouts. Repeatability issues often come down to part placement rather than software problems. If your part sits on a fixture plate with inconsistent contact points, your measurements will vary between runs. I use pins and clamp the part the same way every time. On the rare occasion where I cannot fix the fixture situation, I add a repeat check measurement after each alignment to verify that the part has not moved during the program cycle.
Performance Considerations
Large part programs with many measured features can take a long time to execute, especially on older machines or when using high-resolution scan modes. Reducing the number of measurement points to the minimum required for statistical validity is a common optimization. For a circle, five hits is usually sufficient. For a plane, three hits. Adding extra hits beyond that adds time without meaningfully improving accuracy unless you are doing statistical analysis on the feature itself. Scan mode versus point mode is another decision point. Scanning gives you more data and can detect form errors like roundness or flatness deviations, but it takes significantly longer and generates larger output files. For routine production inspection where you only need to check dimensions against tolerance, point mode is faster and usually adequate. I reserve scanning for first-article inspections or when investigating a quality concern.
Where to Find Additional Resources
The official Hexagon Academy offers structured courses that go beyond the manual. These are paid programs but they cover advanced topics like CAD comparison, dynamic probing, and statistical process control integration. There are also third-party forums and YouTube channels with practical tutorials that address real-world scenarios the manual omits. Community forums tend to have more actionable advice because the posters are working programmers dealing with actual shop floor problems rather than textbook examples. The manual itself is available through the PC-DMIS installation directory and can also be accessed from the Hexagon support portal. I recommend keeping it open while you work through your first few programs but not treating it as the sole reference. The gap between what the manual teaches and what you actually need to know on the floor is where most of the learning happens.