DECL/INTGR,IND,I,J,K
DECL/REAL,SPREAD,BEST_SPREAD,HI_POINT,LOW_POINT,CURRENT
DECL/CHAR,20,PLANE_PTS[36],MEASURE_PTS[72]
DOLOOP=ASSIGN/1
IND=ASSIGN/1
I=ASSIGN/1
DO/DOLOOP,1,18,1
DO/IND,1,4,1
LABEL=ASSIGN/CONCAT(‘STRUT-’,STR(DOLOOP),’-’,STR(IND))
CURRENT=OBTAIN/FA(@LABEL),5
MEASURE_PTS[I]=ASSIGN/LABEL
I=ASSIGN/I+1
IF/(CURRENT .GT. HI_POINT)
HI_POINT=ASSIGN/CURRENT
ENDIF
IF/(CURRENT .LT. LOW_POINT)
LOW_POINT=ASSIGN/CURRENT
ENDIF
ENDDO
ENDDO
SPREAD=ASSIGN/HI_POINT-LOW_POINT
IF/(SPREAD .LE. 0.012)
JUMPTO/(SKIP_PLANE)
ENDIF
DOLOOP=ASSIGN/1
IND=ASSIGN/1
I=ASSIGN/1
DO/DOLOOP,1,18,1
DO/IND,1,2,1
LABEL=ASSIGN/CONCAT(‘ZERO_PT-’,STR(DOLOOP),’-’,STR(IND))
PLANE_PTS[I]=ASSIGN/LABEL
I=ASSIGN/I+1
ENDDO
ENDDO
I=ASSIGN/1
J=ASSIGN/I+1
K=ASSIGN/J+1
IND=ASSIGN/1
HI_POINT=ASSIGN/0
LOW_POINT=ASSIGN/0
SPREAD=ASSIGN/0
BEST_SPREAD=ASSIGN/1
F(BEST_PLN)=FEAT/PLANE,CART, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 1.0000
F(TEST_PLN)=FEAT/PLANE,CART, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 1.0000
T(PT_DIST)=TOL/DISTB,NOMINL,0.0000,-0.1000,0.1000,PT2PT,MINDECL/REAL,DISTANCE[72]
DO/I,1,34,1
J=ASSIGN/I+1
DO/J,J,35,1
K=ASSIGN/J+1
DO/K,K,36,1
CONST/PLANE,F(TEST_PLN),BF,FA(@PLANE_PTS[I]),FA(@PLANE_PTS[J]),FA(@PLANE_PTS[K])
IND=ASSIGN/1
DO/IND,1,72,1
EVAL/FA(TEST_PLN),FA(@MEASURE_PTS[IND]),T(PT_DIST)
$$ DISTANCE[IND]=OBTAIN/TA(PT_DIST),4
CURRENT=OBTAIN/TA(PT_DIST),4
$$ CONST/LINE,F(PERP_LINE),PERPTO,FA(TEST_PLN),THRU,FA(@MEA SURE_PTS[IND])
$$ *** NEED VECTOR SIGN HERE *** $$
IF/(CURRENT .GT. HI_POINT)
HI_POINT=ASSIGN/CURRENT
ENDIF
IF/(CURRENT .LT. LOW_POINT)
LOW_POINT=ASSIGN/CURRENT
ENDIF
SPREAD=ASSIGN/HI_POINT-LOW_POINT
IF/(SPREAD .LE. BEST_SPREAD)
BEST_SPREAD=ASSIGN/SPREAD
CONST/PLANE,F(BEST_PLN),BF,FA(@PLANE_PTS[I]),FA(@PLANE_PTS[J]),FA(@PLANE_PTS[K])
ENDIF
ENDDO
ENDDO
ENDDO
ENDDO
DECL/INTGR,IND,I,J,K
DECL/REAL,SPREAD,BEST_SPREAD,HI_POINT,LOW_POINT,CURRENT
DECL/CHAR,20,PLANE_PTS[36],MEASURE_PTS[72]
DOLOOP=ASSIGN/1
IND=ASSIGN/1
I=ASSIGN/1
DO/DOLOOP,1,18,1
DO/IND,1,4,1
LABEL=ASSIGN/CONCAT(‘STRUT-’,STR(DOLOOP),’-’,STR(IND))
CURRENT=OBTAIN/FA(@LABEL),5
MEASURE_PTS[I]=ASSIGN/LABEL
I=ASSIGN/I+1
IF/(CURRENT .GT. HI_POINT)
HI_POINT=ASSIGN/CURRENT
ENDIF
IF/(CURRENT .LT. LOW_POINT)
LOW_POINT=ASSIGN/CURRENT
ENDIF
ENDDO
ENDDO
SPREAD=ASSIGN/HI_POINT-LOW_POINT
IF/(SPREAD .LE. 0.012)
JUMPTO/(SKIP_PLANE)
ENDIF
DOLOOP=ASSIGN/1
IND=ASSIGN/1
I=ASSIGN/1
DO/DOLOOP,1,18,1
DO/IND,1,2,1
LABEL=ASSIGN/CONCAT(‘ZERO_PT-’,STR(DOLOOP),’-’,STR(IND))
PLANE_PTS[I]=ASSIGN/LABEL
I=ASSIGN/I+1
ENDDO
ENDDO
I=ASSIGN/1
J=ASSIGN/I+1
K=ASSIGN/J+1
IND=ASSIGN/1
HI_POINT=ASSIGN/0
LOW_POINT=ASSIGN/0
SPREAD=ASSIGN/0
BEST_SPREAD=ASSIGN/1
F(BEST_PLN)=FEAT/PLANE,CART, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 1.0000
F(TEST_PLN)=FEAT/PLANE,CART, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 1.0000
T(PT_DIST)=TOL/DISTB,NOMINL,0.0000,-0.1000,0.1000,PT2PT,MINDECL/REAL,DISTANCE[72]
DO/I,1,34,1
J=ASSIGN/I+1
DO/J,J,35,1
K=ASSIGN/J+1
DO/K,K,36,1
CONST/PLANE,F(TEST_PLN),BF,FA(@PLANE_PTS[I]),FA(@PLANE_PTS[J]),FA(@PLANE_PTS[K])
IND=ASSIGN/1
DO/IND,1,72,1
EVAL/FA(TEST_PLN),FA(@MEASURE_PTS[IND]),T(PT_DIST)
$$ DISTANCE[IND]=OBTAIN/TA(PT_DIST),4
CURRENT=OBTAIN/TA(PT_DIST),4
$$ CONST/LINE,F(PERP_LINE),PERPTO,FA(TEST_PLN),THRU,FA(@MEA SURE_PTS[IND])
IF/(CURRENT .GT. HI_POINT)
HI_POINT=ASSIGN/CURRENT
ENDIF
IF/(CURRENT .LT. LOW_POINT)
LOW_POINT=ASSIGN/CURRENT
ENDIF
SPREAD=ASSIGN/HI_POINT-LOW_POINT
IF/(SPREAD .LE. BEST_SPREAD)
BEST_SPREAD=ASSIGN/SPREAD
CONST/PLANE,F(BEST_PLN),BF,FA(@PLANE_PTS[I]),FA(@PLANE_PTS[J]),FA(@PLANE_PTS[K])
ENDIF
ENDDO
ENDDO
ENDDO
ENDDO