One issue I have found with Portable Arm inspection is with the Point AutoTrigger. It creates a Cylindrical Zone of measurement. This is nice but, the length of the zone is infinite. With an infinite Length zone the operator can... and will accidentally take a point off of the part and except the bad hit.
The code below looks at the points and checks to see it the error from one point to the next is greater than a given value. If it is, the operator is asked if he would like to re-run the feature"in this case a plane".
This gives the operator the ability to spend a few seconds to re run the feature verses the whole part or alternatively just dump bad data into your quality information system. Its a simple code but, I thought someone might find it useful.![Smile]()
The code below looks at the points and checks to see it the error from one point to the next is greater than a given value. If it is, the operator is asked if he would like to re-run the feature"in this case a plane".
This gives the operator the ability to spend a few seconds to re run the feature verses the whole part or alternatively just dump bad data into your quality information system. Its a simple code but, I thought someone might find it useful.

Code:
ASSIGN/BOSS_3_R1=10 BOSS_3_REDO=LABEL/ POINT AUTOTRIGGER/ON, ON, 1 BOSS_3_1 =FEAT/CONTACT/VECTOR POINT/DEFAULT,POLAR THEO/<BOSS_3_R1,0,0>,<0,0,1> ACTL/<10,0,0>,<0,0,1> TARG/<BOSS_3_R1,0,0>,<0,0,1> SNAP=NO SHOW FEATURE PARAMETERS=NO SHOW CONTACT PARAMETERS=YES AVOIDANCE MOVE=BOTH,DISTANCE=20 SHOW HITS=NO BOSS_3_2 =FEAT/CONTACT/VECTOR POINT/DEFAULT,POLAR THEO/<BOSS_3_R1,90,0>,<0,0,1> ACTL/<10,90,0>,<0,0,1> TARG/<BOSS_3_R1,90,0>,<0,0,1> SNAP=NO SHOW FEATURE PARAMETERS=NO SHOW CONTACT PARAMETERS=YES AVOIDANCE MOVE=BOTH,DISTANCE=20 SHOW HITS=NO BOSS_3_3 =FEAT/CONTACT/VECTOR POINT/DEFAULT,POLAR THEO/<BOSS_3_R1,180,0>,<0,0,1> ACTL/<10,180,0>,<0,0,1> TARG/<BOSS_3_R1,180,0>,<0,0,1> SNAP=NO SHOW FEATURE PARAMETERS=NO SHOW CONTACT PARAMETERS=YES AVOIDANCE MOVE=BOTH,DISTANCE=20 SHOW HITS=NO BOSS_3_4 =FEAT/CONTACT/VECTOR POINT/DEFAULT,POLAR THEO/<BOSS_3_R1,270,0>,<0,0,1> ACTL/<10,270,0>,<0,0,1> TARG/<BOSS_3_R1,270,0>,<0,0,1> SNAP=NO SHOW FEATURE PARAMETERS=NO SHOW CONTACT PARAMETERS=YES AVOIDANCE MOVE=BOTH,DISTANCE=20 SHOW HITS=NO BOSS_3_5 =FEAT/CONTACT/VECTOR POINT/DEFAULT,POLAR THEO/<0,90,0>,<0,0,1> ACTL/<0,0,0>,<0,0,1> TARG/<0,90,0>,<0,0,1> SNAP=NO SHOW FEATURE PARAMETERS=NO SHOW CONTACT PARAMETERS=YES AVOIDANCE MOVE=BOTH,DISTANCE=20 SHOW HITS=NO BOSS_3_PLN =FEAT/PLANE,CARTESIAN,TRIANGLE,NO THEO/<0,0,0>,<0,0,1> ACTL/<0,0,0>,<0,0,1> CONSTR/PLANE,BF,BOSS_3_1,BOSS_3_2,BOSS_3_3,BOSS_3_4,BOSS_3_5,, OUTLIER_REMOVAL/OFF,3 FILTER/OFF,WAVELENGTH=0 ASSIGN/BOSS_3_T1=BOSS_3_1.Z.ACTL ASSIGN/BOSS_3_T2=BOSS_3_2.Z.ACTL ASSIGN/BOSS_3_T3=BOSS_3_3.Z.ACTL ASSIGN/BOSS_3_T4=BOSS_3_4.Z.ACTL ASSIGN/BOSS_3_T5=BOSS_3_5.Z.ACTL IF_GOTO/BOSS_3_T1-BOSS_3_T2>=0.5 OR BOSS_3_T1-BOSS_3_T2<=-0.5,GOTO = BOSS_3_NOTE IF_GOTO/BOSS_3_T2-BOSS_3_T3>=0.5 OR BOSS_3_T2-BOSS_3_T3<=-0.5,GOTO = BOSS_3_NOTE IF_GOTO/BOSS_3_T3-BOSS_3_T4>=0.5 OR BOSS_3_T3-BOSS_3_T4<=-0.5,GOTO = BOSS_3_NOTE IF_GOTO/BOSS_3_T4-BOSS_3_T5>=0.5 OR BOSS_3_T4-BOSS_3_T5<=-0.5,GOTO = BOSS_3_NOTE IF_GOTO/BOSS_3_T5-BOSS_3_T1>=0.5 OR BOSS_3_T5-BOSS_3_T1<=-0.5,GOTO = BOSS_3_NOTE GOTO/BOSS_3_OK BOSS_3_NOTE=LABEL/ BOSS_3_INPUT =COMMENT/YESNO,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO, THE ERROR FROM POINT TO POINT IS GREATER THEN 0.5MM PUSH YES TO RERUN POINTS OR NO TO EXCEPT THE ERROR IF_GOTO/BOSS_3_INPUT.INPUT=="YES",GOTO = BOSS_3_REDO BOSS_3_OK =LABEL/