So, I have two pins screwed into the table. I have a parallel clamped in a vise, and the vise is up against the pins. I park the probe a quarter inch off a corner of the parallel, and the program takes off and does an alignment.
Once it does that, it takes hits at either end of the parallel, and then compares their locations. It prompts the operator to nudge the vise one way or the other, until the two hits are within .01 of each other. and the face of the parallel is parallel to the front of the CMM to within that amount. I can then use the corner of the parallel to eyeball the squareness of my star probe. Still kind of a pain to get things lined up, but I have a reference to go by that I know is close to square with the table.
CHECK/0.3,1 PREHIT/0.3 COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO, PLACE PROBE DIRECTLY ABOVE CORNER OF PARALLEL AS PER PHOTO. READPOINT =FEAT/POINT,CARTESIAN THEO/<46.45789,15.9962,-23.53323>,<0,0,1> ACTL/<46.09008,15.75631,-29.26277>,<0,0,1> READPOINT/ READPOINT ALIGNMENT=ALIGNMENT/START,RECALL:STARTUP,LIST=YES ALIGNMENT/TRANS,XAXIS,READPOINT ALIGNMENT/TRANS,YAXIS,READPOINT ALIGNMENT/TRANS,ZAXIS,READPOINT ALIGNMENT/END MODE/DCC CLEARP/ZPLUS,0.5,ZPLUS,0,ON TOP OF PARALLEL=FEAT/POINT,CARTESIAN THEO/<-0.32839,0.37363,-0.35387>,<0,0,1> ACTL/<-0.32847,0.37347,-0.39224>,<0,0,1> MEAS/POINT,1 MOVE/CLEARPLANE HIT/BASIC,NORMAL,<-0.32839,0.37363,-0.35387>,<0,0,1>,<-0.32847,0.37347,-0.39224>,USE THEO=YES ENDMEAS/ END OF PARALLEL=FEAT/POINT,CARTESIAN THEO/<-0.68733,-0.09977,-0.53108>,<0,0,1> ACTL/<-0.68733,-0.11659,-0.60743>,<0,0,1> MEAS/POINT,1 MOVE/CLEARPLANE HIT/BASIC,NORMAL,<-0.68733,-0.09977,-0.53108>,<0,-1,0>,<-0.68733,-0.11659,-0.60743>,USE THEO=YES ENDMEAS/ INIT ALIGN =ALIGNMENT/START,RECALL:READPOINT ALIGNMENT,LIST=YES ALIGNMENT/TRANS,ZAXIS,TOP OF PARALLEL ALIGNMENT/TRANS,YAXIS,END OF PARALLEL ALIGNMENT/END MOVE/CLEARPLANE FRONT OF PARALLEL=FEAT/CONTACT/VECTOR POINT,CARTESIAN THEO/<0,6,-0.15>,<1,0,0> ACTL/<-0.00949,6.00002,-0.15001>,<1,0,0> TARG/<0,6,-0.15>,<1,0,0> SNAP=NO SHOW FEATURE PARAMETERS=NO SHOW CONTACT PARAMETERS=NO MAIN ALIGNMENT=ALIGNMENT/START,RECALL:INIT ALIGN,LIST=YES ALIGNMENT/TRANS,ZAXIS,TOP OF PARALLEL ALIGNMENT/TRANS,XAXIS,FRONT OF PARALLEL ALIGNMENT/TRANS,YAXIS,FRONT OF PARALLEL ALIGNMENT/END STARTLOOP =LABEL/ MOVE/CLEARPLANE LEFT SIDE =FEAT/CONTACT/VECTOR POINT,CARTESIAN THEO/<0,-5.5,-0.15>,<1,0,0> ACTL/<0.00126,-5.49996,-0.15001>,<1,0,0> TARG/<0,-5.5,-0.15>,<1,0,0> SNAP=NO SHOW FEATURE PARAMETERS=NO SHOW CONTACT PARAMETERS=NO MOVE/CLEARPLANE RIGHT SIDE =FEAT/CONTACT/VECTOR POINT,CARTESIAN THEO/<0,5.5,-0.15>,<1,0,0> ACTL/<0.00374,5.49999,-0.15001>,<1,0,0> TARG/<0,5.5,-0.15>,<1,0,0> SNAP=NO SHOW FEATURE PARAMETERS=NO SHOW CONTACT PARAMETERS=NO RECALL/ALIGNMENT,INTERNAL,STARTUP DIM LOC1= LOCATION OF POINT LEFT SIDE UNITS=IN ,$ GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH HALF ANGLE=NO AX NOMINAL +TOL -TOL MEAS OUTTOL DEV X 46.45789 0.00000 0.00000 46.08185 0.37604 -0.37604 <-------- END OF DIMENSION LOC1 $$ NO, THE NEXT LINE OF CODE EXTRACTS THE "MEAS' VALUE. FOR THE DIMENSION OF THE HIT ON THE LEFT END OF THE PARALLEL. THE ONE AFTER THAT PLUGS THAT VALUE INTO THE NOMINAL FOR THE DIMENSION FOR THE RIGHT SIDE. THEN WE PULL THE DEVIATION FOR THAT DIMENSION INTO A VARIABLE AND CHECK TO SEE IF IT IS WITHIN PLUS OR MINUS .01. IF IT ISN'T, THEN WE CHECK TO SEE IF IT IS MINUS OR PLUS AND PROMPT THE OPERATOR TO MOVE THE REAR OF THE VISE A "SMIDGE" IN THE APPROPRIATE DIRECTION. ASSIGN/LEFT_POINT=LOC1.X.MEAS DIM LOC2= LOCATION OF POINT RIGHT SIDE UNITS=IN ,$ GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH HALF ANGLE=NO AX NOMINAL +TOL -TOL MEAS OUTTOL DEV X LEFT_POINT 0.00000 0.00000 46.08432 0.00247 0.00247 --------> END OF DIMENSION LOC2 ASSIGN/DIFFERENCE=LOC2.X.DEV IF/(DIFFERENCE > -.010) AND (DIFFERENCE < .010) COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO, PARALLEL IS SQUARE TO WITHIN .020. ENDING PROGRAM. PROGRAM/END END_IF/ ELSE_IF/DIFFERENCE < 0 COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO, "DIFFERENCE IS :" + DIFFERENCE + ", PLEASE NUDGE REAR OF VISE TO THE Y PLUS" END_ELSEIF/ ELSE_IF/DIFFERENCE > 0 COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO, "DIFFERENCE IS :" + DIFFERENCE + ", PLEASE NUDGE REAR OF VISE TO THE Y MINUS" END_ELSEIF/ GOTO/STARTLOOP