{ The program "ACCURACY_ADVISOR" may not be resold or included in other } { packages. } { The program "ACCURACY_ADVISOR" may be used only by those receiving the } { original files. } { Copying and subsequent distribution to a third party is forbidden. } { Darren Litherland takes no responsibility for errors resulting from } { the use or misuse of the software. } { All use of this software is the responsiblity of the recipient. } { CATEGORY: ME10 Dimensions/Geometry } { COMPANY: Darren Litherland } { AUTHOR: Darren Litherland } { CONTACT OPTION: me10@nethut.net } { VIDEO MODE: (Native ME10) } { MONITOR RESOLUTION: n/a } { MACRO TITLE: Accuracy_advisor } { DESC: Dimension and geometry analysis } { MACRO VERSION: 1.1a } { VERSION DESCRIPTION: 1.1a Small fixes for web distribution/support. } { 1.1 Bug fix - corrupt display on GEOM/Box analysis} { DATE: 1999.07.11 } { APPLICATION: ME10 8.7/9.0 } { OPSYS: HP-UX 9.x/10.x Windows95/NT } { KEYWORDS: accuracy_advisor aa } {*************************************************************************} LET GACCURC 2 {LINES: 2 dec. places, ARCS, CIRCLES etc.: 3 dec. places} LET EXCLUDE_CENTER_LINE_COLOR "0,0,0" LET ACCURACY_HELP_FLAG 0 LET ACCURACY_BAD_LIMIT 30 DEFINE LGHTYEL RGB_COLOR 1 1 .55555 END_DEFINE DEFINE TABDDEY RGB_COLOR .2222 .2222 .2222 END_DEFINE DEFINE TABDREY RGB_COLOR .4444 .4444 .4444 END_DEFINE DEFINE TABGREY RGB_COLOR .6666 .6666 .6666 END_DEFINE DEFINE TABLREY RGB_COLOR .8888 .8888 .8888 END_DEFINE DEFINE TABBLUE RGB_COLOR 0 0 .5 END_DEFINE DEFINE ACCURACY_ADVISOR TABLE_STATUS "Accuracy_dtab" MAP END_DEFINE DEFINE AA ACCURACY_ADVISOR END_DEFINE CREATE_LTAB 'Accuracy_ltab' DEFINE MAKE_ACCURACY_TABLE LOCAL TSL LOCAL C LOCAL PROG_TSL {CREATE_LTAB 'Accuracy_ltab'} LET TSL (FONT_HEIGHT+1) LET PROG_TSL TSL IF (TSL<14) LET PROG_TSL 14 END_IF TABLE_LAYOUT 'Accuracy_dtab' 'Accuracy_ltab' TABGREY TABGREY WIDTH 28 ROWS 0 FRAME_WIDTH 3 HORIZONTAL TABGREY SOLID VERTICAL TABGREY SOLID TITLE_LAYOUT (INT (TSL*1.6)) '1234567890123456789012|45|78' 3 '2 ' (INT (TSL*1.6)) '3 | | | ' (INT (TSL*1.6)) '4 | ' (INT (TSL*1.6)) '5 | ' (INT (TSL*1.6)) '6 | ' 3 '7 ' (INT (TSL*1.6)) '8 | | | ' PROG_TSL '9 ' TSL '10 ' END COLUMN_LAYOUT (INT (TSL*1.5)) ' ' END TABLE_TITLE 'Accuracy_dtab' BLACK TABGREY BOX 1 1 10 5 WHITE TABBLUE LEFT "Accuracy Advisor" 'MOVE_ACCURACY_TABLE_HELP' 1 1 BLACK TABGREY CENTER "@s21" 'LET Accuracy_help_flag 1 UAT' 1 2 BLACK TABGREY CENTER "@s22" 'CANCEL_ACCURACY_HELP' 1 3 BLACK TABGREY CENTER "@s1" "LET ACCURACY_SELECT ALL UAT ACCURACY_MACRO_HELP" 3 1 BLACK TABGREY LEFT "@s2" "LET ACCURACY_SELECT BOX UAT ACCURACY_MACRO_HELP" 3 2 BLACK TABGREY CENTER "@s3" "LET ACCURACY_SELECT ALL LET ADJUST_TEST 0 UAT CHECK_DIMS_HELP" 3 3 BLACK TABGREY LEFT "@s4" "LET ACCURACY_SELECT BOX LET ADJUST_TEST 0 UAT CHECK_DIMS_HELP" 3 4 LEFT "@s5" "SHOW_GOOD_GEOMETRY_ACCURACY_HELP" 4 1 LEFT "@s6" "SHOW_OK_GEOMETRY_ACCURACY_HELP" 5 1 LEFT "@s7" "SHOW_BAD_GEOMETRY_ACCURACY_HELP" 6 1 LEFT "@s8" "SHOW_GOOD_DIM_ACCURACY_HELP" 4 2 LEFT "@s9" "SHOW_OK_DIM_ACCURACY_HELP" 5 2 LEFT "@s10" "SHOW_BAD_DIM_ACCURACY_HELP" 6 2 BLACK TABGREY CENTER "Adjust" 'GET_ADJUST_VAL_HELP "Adjust only"' 8 1 BLACK TABGREY CENTER "Info" 'GET_ADJUST_VAL_HELP "Full info"' 8 2 BLACK TABGREY CENTER "Reset" "RESET_ACCURACY_DISPLAY_HELP" 8 3 BLACK TABGREY CENTER "@s13" "UPDATE_ACCURACY_UNITS_HELP 1" 8 4 BLUE TABGREY CENTER "@s14" "" 9 1 BLACK TABGREY LEFT "@s15" "" 10 1 WRITE_LTAB "Accuracy_ltab" TITLE 1 "GEOM" WRITE_LTAB "Accuracy_ltab" TITLE 2 "Box" WRITE_LTAB "Accuracy_ltab" TITLE 3 "DIMS" WRITE_LTAB "Accuracy_ltab" TITLE 4 "Box" HIGHLIGHT_LTAB "Accuracy_ltab" TITLE 1 MARK HIGHLIGHT_LTAB "Accuracy_ltab" TITLE 3 MARK WRITE_LTAB "Accuracy_ltab" TITLE 21 "?" WRITE_LTAB "Accuracy_ltab" TITLE 22 "X" HIGHLIGHT_LTAB "Accuracy_ltab" TITLE 21 MARK HIGHLIGHT_LTAB "Accuracy_ltab" TITLE 22 MARK END UPDATE_ACCURACY_UNITS 0 END_DEFINE CREATE_LTAB "Accuracy_ltab" DEFINE MOVE_ACCURACY_TABLE TABLE_STATUS "Accuracy_dtab" MOVE END_DEFINE DEFINE CANCEL_ACCURACY RESET_ACCURACY_DISPLAY WRITE_LTAB "Accuracy_ltab" TITLE 14 "" WRITE_LTAB "Accuracy_ltab" TITLE 15 "" TABLE_STATUS "Accuracy_dtab" UNMAP UNMAP_ADJ_TAB DELETE INFOS "Accuracy_info_arrow" END POP_DOWN_LTAB "Accuracy_info_ltab"' END_DEFINE DEFINE GET_VIEWPORT_COLOR LOCAL N LOCAL SPC LOCAL CURR_COL LOCAL VP1 LOCAL VP2 LOCAL VPF LOCAL LAST_VPCOL INQ_ENV 0 IF (NOT POS (INQ 301) "DEMO") INQ_ENV 3 LET CURR_COL (INQ 201) INQ_ENV 1 LET VP1 (STR (INQ 101)) LET VP2 (STR (INQ 102)) LET VPF ((GETENV "METMPDIR")+"/vp.dat") SAVE_VIEWPORT DEL_OLD VPF OPEN_INFILE 1 VPF OPEN_OUTFILE 2 DEL_OLD (VPF+"2") READ_FILE 1 VPCOL LOOP READ_FILE 1 VPCOL EXIT_IF (VPCOL="END-OF-FILE") IF (NOT POS VPCOL "CREATE_VIEWPORT") LET VPCOL (LAST_VPCOL+" "+VPCOL) ELSE LET LAST_VPCOL VPCOL END_IF WRITE_FILE 2 VPCOL END_LOOP CLOSE_FILE 1 CLOSE_FILE 2 OPEN_INFILE 1 (VPF+"2") LOOP READ_FILE 1 VPCOL EXIT_IF ((POS VPCOL VP1) AND (POS VPCOL VP2)) EXIT_IF (VPCOL="END-OF-FILE") END_LOOP CLOSE_FILE 1 IF (VPCOL<>"END-OF-FILE") IF ((POS VPCOL "RGB_COLOR")=17) LET VPCOL (SUBSTR (VPCOL+" ") 27 40) LET N 1 LET SPC 0 LOOP IF ((SUBSTR VPCOL N 1)=" ") LET SPC (SPC+1) END_IF EXIT_IF (SPC=3) LET N (N+1) END_LOOP LET VPCOL (SUBSTR VPCOL 1 N) ELSE LET VPCOL (SUBSTR (VPCOL+" ") 17 30) LET VPCOL (SUBSTR VPCOL 1 ((POS VPCOL " ")-1)) END_IF EXECUTE_STRING IMMEDIATE ("COLOR "+VPCOL) INQ_ENV 3 LET VPCOL (INQ 201) RGB_COLOR CURR_COL END_IF ELSE LET VPCOL BLACK END_IF END_DEFINE DEFINE MAKE_ADJUST_TABLES LOCAL C LOCAL TSL GET_VIEWPORT_COLOR CREATE_LTAB "Adjust_ltab" LET TSL (FONT_HEIGHT+1) TRAP_ERROR DELETE_TABLE "Adjust_dtab1" LET C (CHECK_ERROR) TABLE_LAYOUT 'Adjust_dtab1' 'Adjust_ltab' WHITE BLACK WIDTH 5 ROWS 1 FRAME_WIDTH 0 HORIZONTAL BLACK SOLID COLUMN_LAYOUT (TSL*3) ' ' END TABLE_COLUMN 'Adjust_dtab1' COLUMN 1 1 FORMAT 10 GREEN RGB_COLOR VPCOL LEFT '@v3' END TRAP_ERROR DELETE_TABLE "Adjust_dtab2" LET C (CHECK_ERROR) TABLE_LAYOUT 'Adjust_dtab2' 'Adjust_ltab' WHITE BLACK WIDTH 5 ROWS 1 FRAME_WIDTH 0 HORIZONTAL BLACK SOLID COLUMN_LAYOUT (TSL*3) ' ' END TABLE_COLUMN 'Adjust_dtab2' COLUMN 1 2 FORMAT 10 GREEN RGB_COLOR VPCOL LEFT '@v4' END INQ_TABLE "Adjust_dtab1" LET ADP ((INQ 102)-(INQ 101)) LET XADP ((X_OF ADP)/1.5) LET YADP ((Y_OF ADP)/1.5) END_DEFINE MAKE_ADJUST_TABLES DEFINE UNMAP_ADJ_TAB TABLE_STATUS "Adjust_dtab1" UNMAP TABLE_STATUS "Adjust_dtab2" UNMAP END_DEFINE DEFINE UAT UNMAP_ADJ_TAB END_DEFINE DEFINE MOVE_ADJUST_TABLE PARAMETER P1 PARAMETER P2 PARAMETER DIMA PARAMETER ADJUST_VAL LOCAL TSL LOCAL AP1 LOCAL AP2 LOCAL AP3 LOCAL AP4 LOCAL AP5 LOCAL XP1 LOCAL XP2 LOCAL XP3 LOCAL XP4 LOCAL XP5 LOCAL YP1 LOCAL YP2 LOCAL YP3 LOCAL YP4 LOCAL YP5 LOCAL CTRP LOCAL NP1 LOCAL NP2 LET CTRP P2 LET TSL (FONT_HEIGHT+1) CONV_COORD_PIX P1 LET P1 PIX_COORD CONV_COORD_PIX P2 LET P2 PIX_COORD MAKE_ADJUST_TABLES LET NP1 (P1+(PNT_RA 24 DIMA)) LET NP2 (P2-(PNT_RA 24 DIMA)) IF ((DIMTYP<>DIM_RADIUS) AND (DIMTYP<>DIM_DIAMETER)) IF ((LEN (P2-P1))>(LEN (NP2-NP1))) LET DIMA (-DIMA) END_IF TRAP_ERROR CHANGE_TABLE_SIZE "Adjust_dtab1" (P1+(PNT_RA 24 DIMA)-(PNT_XY XADP YADP)) (P1+(PNT_RA 24 DIMA)+(PNT_XY XADP YADP)) LET C (CHECK_ERROR) IF (C=0) TABLE_STATUS "Adjust_dtab1" MAP END_IF WRITE_LTAB "Adjust_ltab" 1 3 ("UNMAP_ADJ_TAB STRETCH DEL_OLD MOVE TWO_PTS 0,0 "+(STR (PNT_RA ADJUST_VAL DIMA))) END_IF TRAP_ERROR CHANGE_TABLE_SIZE "Adjust_dtab2" (P2-(PNT_RA 24 DIMA)+(PNT_XY XADP YADP)) (P2-(PNT_RA 24 DIMA)-(PNT_XY XADP YADP)) LET C (CHECK_ERROR) IF (C=0) TABLE_STATUS "Adjust_dtab2" MAP END_IF UPDATE_SCREEN LET AP0 (PNT_XY (ROUND XADP) (ROUND YADP)) LET AP1 (AP0-(PNT_RA TSL DIMA)) LET AP2 (AP0+(PNT_RA TSL DIMA)) LET AP3 (AP0+(PNT_RA (TSL*.7) (DIMA+90))) LET AP4 (AP0+(PNT_RA (TSL*.7) (DIMA-90))) LET AP5 (AP0+(PNT_RA (TSL*.3) DIMA)) LET XP1 (X_OF AP1) LET YP1 (Y_OF AP1) LET XP2 (X_OF AP2) LET YP2 (Y_OF AP2) LET XP3 (X_OF AP3) LET YP3 (Y_OF AP3) LET XP4 (X_OF AP4) LET YP4 (Y_OF AP4) LET XP5 (X_OF AP5) LET YP5 (Y_OF AP5) WRITE_LTAB "Adjust_ltab" 1 1 (CHR 255+ CHR XP1+CHR YP1+CHR XP2+CHR YP2 +CHR 255+CHR XP3+CHR YP3+CHR XP2+CHR YP2+CHR XP4+CHR YP4 +CHR XP5+CHR YP5+CHR XP3+CHR YP3) LET AP1 (AP0+(PNT_RA TSL DIMA)) LET AP2 (AP0-(PNT_RA TSL DIMA)) LET AP3 (AP0+(PNT_RA (TSL*.7) (DIMA-90))) LET AP4 (AP0+(PNT_RA (TSL*.7) (DIMA+90))) LET AP5 (AP0-(PNT_RA (TSL*.3) DIMA)) LET XP1 (X_OF AP1) LET YP1 (Y_OF AP1) LET XP2 (X_OF AP2) LET YP2 (Y_OF AP2) LET XP3 (X_OF AP3) LET YP3 (Y_OF AP3) LET XP4 (X_OF AP4) LET YP4 (Y_OF AP4) LET XP5 (X_OF AP5) LET YP5 (Y_OF AP5) WRITE_LTAB "Adjust_ltab" 1 2 (CHR 255+ CHR XP1+CHR YP1+CHR XP2+CHR YP2 +CHR 255+CHR XP3+CHR YP3+CHR XP2+CHR YP2+CHR XP4+CHR YP4 +CHR XP5+CHR YP5+CHR XP3+CHR YP3) IF ((DIMTYP<>DIM_RADIUS) AND (DIMTYP<>DIM_DIAMETER)) WRITE_LTAB "Adjust_ltab" 1 4 ("UNMAP_ADJ_TAB STRETCH DEL_OLD MOVE TWO_PTS "+(STR (PNT_RA ADJUST_VAL DIMA))+" 0,0") ELSE INQ_ELEM CTRP LET P2 CTRP LET CTRP (INQ 101) WRITE_LTAB "Adjust_ltab" 1 4 ("UNMAP_ADJ_TAB MODIFY DEL_OLD SCALE CENTER "+(STR CTRP)+" "+(STR ADJUST_VAL)+" "+(STR P2)) END_IF END_DEFINE DEFINE ACC_REPLACE_TEXT PARAMETER T1 PARAMETER T2 PARAMETER T3 LOCAL L1 LOCAL P1 LOCAL L LET L " " LOOP LET P1 (POS T3 T1) EXIT_IF (P1=0) LET L1 (LEN T1) LET T3 (TRIM ((SUBSTR T3 1 (P1-1))+T2+(SUBSTR (T3+L) (P1+L1) 50))) END_LOOP LET REPLACED T3 END_DEFINE DEFINE PROGRESS_METER LET N 1 LOOP MENU (CHR 255+CHR 0+CHR 5+CHR 5+CHR N) "" 19 1 UPDATE_SCREEN WAIT .2 LET N (N+2) EXIT_IF (N>=20) END_LOOP END_DEFINE DEFINE AUTO_DIM_MACRO LOCAL P1 LOCAL P2 INQ_ENV 7 LET P1 (INQ 101) LET P2 (INQ 102) DELETE_CURRENT_INFO ADD_CURRENT_INFO "Accuracy_dimensions" DA_DIM_LINE P1 P2 P2 CHANGE_CURRENT_INFO "Accuracy_dimensions" "" LET ADJUST_TEST 0 CHECK_DIMS DISPLAY "Well??" DELETE INFOS "Accuracy_dimensions" UPDATE_SCREEN END_DEFINE DEFINE WHICH_SECTOR PARAMETER P3 LOCAL P1 LOCAL P2 LOCAL CP INQ_ENV 1 LET P1 (INQ 101) {Pixel lower-left} LET P2 (INQ 102) {Pixel upper-right} LET CP (P1+((P2-P1)/2)) IF ((X_OF P3)>=(X_OF CP)) LET XS -1 END_IF IF ((X_OF P3)<(X_OF CP)) LET XS 1 END_IF IF ((Y_OF P3)>=(Y_OF CP)) LET YS -1 END_IF IF ((Y_OF P3)<(Y_OF CP)) LET YS 1 END_IF END_DEFINE LET ADJUST_TEST 0 LET ACCURACY_SELECT ALL LET GOODN 0 LET BADN 0 LET OKN 0 LET DIMGOODN 0 LET DIMBADN 0 LET DIMOKN 0 DEFINE UPDATE_ACCURACY_TABLE PARAMETER TYP LOCAL GA LOCAL BA LOCAL OA LOCAL GTOT LOCAL DGA LOCAL DBA LOCAL DOA LOCAL DTOT LET GTOT (GOODN+BADN+OKN) LET DTOT (DIMGOODN+DIMBADN+DIMOKN) IF (GTOT=0) LET GTOT 1 END_IF IF (DTOT=0) LET DTOT 1 END_IF LET GA (ROUND (100*(GOODN/GTOT))) LET BA (ROUND (100*(BADN/GTOT))) LET OA (ROUND (100*(OKN/GTOT))) LET DGA (ROUND (100*(DIMGOODN/DTOT))) LET DBA (ROUND (100*(DIMBADN/DTOT))) LET DOA (ROUND (100*(DIMOKN/DTOT))) IF (TYP="GEOM") WRITE_LTAB "Accuracy_ltab" TITLE 5 (" Good "+(STR GA)+"%") COLOR_LTAB "Accuracy_ltab" TITLE 5 IF (BA<=ACCURACY_BAD_LIMIT) BLACK GREEN ELSE BLACK TABGREY END_IF WRITE_LTAB "Accuracy_ltab" TITLE 6 (" OK "+(STR OA)+"%") COLOR_LTAB "Accuracy_ltab" TITLE 6 BLACK TABGREY WRITE_LTAB "Accuracy_ltab" TITLE 7 (" Bad "+(STR BA)+"%") COLOR_LTAB "Accuracy_ltab" TITLE 7 IF (BA>ACCURACY_BAD_LIMIT) BLACK RED ELSE BLACK TABGREY END_IF ELSE WRITE_LTAB "Accuracy_ltab" TITLE 8 (" Good "+(STR DGA)+"%") COLOR_LTAB "Accuracy_ltab" TITLE 8 IF (DBA<=ACCURACY_BAD_LIMIT) BLACK GREEN ELSE BLACK TABGREY END_IF WRITE_LTAB "Accuracy_ltab" TITLE 9 (" OK "+(STR DOA)+"%") COLOR_LTAB "Accuracy_ltab" TITLE 9 BLACK TABGREY WRITE_LTAB "Accuracy_ltab" TITLE 10 (" Bad "+(STR DBA)+"%") COLOR_LTAB "Accuracy_ltab" TITLE 10 IF (DBA>ACCURACY_BAD_LIMIT) BLACK RED ELSE BLACK TABGREY END_IF END_IF END_DEFINE DEFINE UPDATE_ACCURACY_UNITS PARAMETER CHNG IF (CHNG=1) INQ_ENV 6 LET ENHET (INQ 2) IF ((STR ENHET)="1") UNITS CM ELSE_IF ((STR ENHET)="10") UNITS METERS ELSE_IF ((STR ENHET)="1000") UNITS KM ELSE_IF ((STR ENHET)="1000000") UNITS UM ELSE_IF ((STR ENHET)="0.001") UNITS INCHES ELSE_IF ((STR ENHET)="25.4") UNITS FEET ELSE_IF ((STR ENHET)="304.8") UNITS YARDS ELSE_IF ((STR ENHET)="914.4") UNITS MILES ELSE_IF ((STR ENHET)="1609344") UNITS UINCHES ELSE_IF ((STR ENHET)="2.54e-005") UNITS MM ELSE_IF ((STR ENHET)="2.54e-05") UNITS MM END_IF END_IF INQ_ENV 6 LET ENHET (INQ 2) WRITE_LTAB "Accuracy_ltab" TITLE 13 IF ((STR ENHET)="1") "MM" ELSE_IF ((STR ENHET)="10") "CM" ELSE_IF ((STR ENHET)="1000") "METERS" ELSE_IF ((STR ENHET)="1000000") "KM" ELSE_IF ((STR ENHET)="0.001") "UM" ELSE_IF ((STR ENHET)="25.4") "INCHES" ELSE_IF ((STR ENHET)="304.8") "FEET" ELSE_IF ((STR ENHET)="914.4") "YARDS" ELSE_IF ((STR ENHET)="1609344") "MILES" ELSE_IF ((STR ENHET)="2.54e-005") "UINCHES" ELSE_IF ((STR ENHET)="2.54e-05") "UINCHES" END_IF END_DEFINE DEFINE RESET_ACCURACY_DISPLAY LOCAL C SHOW GLOBAL ALL ON TRAP_ERROR DELETE INFOS "Accuracy_info_arrow" END LET C (CHECK_ERROR) TABLE_STATUS "Adjust_dtab1" UNMAP TABLE_STATUS "Adjust_dtab2" UNMAP TABLE_STATUS "Accuracy_info_dtab" UNMAP END_DEFINE DEFINE SHOW_GOOD_DIM_ACCURACY UNMAP_ADJ_TAB SHOW GLOBAL DIMENSIONS ALL TABDDEY SHOW GLOBAL INFOS "dim check info: GOOD" ON END_DEFINE DEFINE SHOW_BAD_DIM_ACCURACY UNMAP_ADJ_TAB SHOW GLOBAL DIMENSIONS ALL TABDDEY SHOW GLOBAL INFOS "dim check info: BAD" RED END_DEFINE DEFINE SHOW_OK_DIM_ACCURACY UNMAP_ADJ_TAB SHOW GLOBAL DIMENSIONS ALL TABDDEY SHOW GLOBAL INFOS "dim check info: OK" CYAN END_DEFINE DEFINE SHOW_GOOD_GEOMETRY_ACCURACY UNMAP_ADJ_TAB SHOW GLOBAL GEO ALL TABDDEY SHOW GLOBAL INFOS "accuracy info: GOOD" ON END_DEFINE DEFINE SHOW_BAD_GEOMETRY_ACCURACY UNMAP_ADJ_TAB SHOW GLOBAL GEO ALL TABDDEY SHOW GLOBAL INFOS "accuracy info: BAD" RED END_DEFINE DEFINE SHOW_OK_GEOMETRY_ACCURACY UNMAP_ADJ_TAB SHOW GLOBAL GEO ALL TABDDEY SHOW GLOBAL INFOS "accuracy info: OK" CYAN END_DEFINE DEFINE WRITE_INQ_ELEM LOCAL PNUM LOCAL P1 LOCAL P2 LOCAL C LOCAL PNAME LOCAL N LOCAL PB1 LOCAL NN LOCAL N LOCAL NTOT LOCAL NTOTN LOCAL BA LOCAL EA LOCAL R LOCAL PROGX TRAP_ERROR LET C (CHECK_ERROR) INQ_SELECTED_ELEM GLOBAL GEO IF (ACCURACY_SELECT=ALL) ALL ELSE BOX READ PNT "Indicate bottom left-hand corner for selection" BLHC READ PNT "Indicate top right-hand corner for selection" RUBBER_BOX BLHC TRHC BLHC TRHC END_IF WRITE_LTAB "Accuracy_ltab" TITLE 15 "(Pre)processing...." UPDATE_SCREEN LET NTOT (INQ 14) LET SELECTED_NTOT NTOT CREATE_LTAB "Inq_elem_ltab" PARTS_LIST TREE LTAB "plist_ltab" LET NTOTN 1 LET NN 1 LOOP LET PNUM (READ_LTAB "plist_ltab" NN 1) EXIT_IF (PNUM="") IF (NOT POS PNUM "[symbol]") LET PB1 (POS PNUM "~") LET PNUM (SUBSTR (PNUM+" ") PB1 20) LET PB1 (POS PNUM " ") LET PNUM (SUBSTR PNUM 1 (PB1-2)) EDIT_PART PNUM INQ_PART "." LET PNAME (INQ 301) IF ((NOT POS PNAME "ssembly detail") AND ((INQ 2)=0)) INQ_SELECTED_ELEM GEO IF (ACCURACY_SELECT=ALL) ALL ELSE BLHC TRHC END_IF LET NUM_ELEM (INQ 14) LET N 1 LOOP IF ((INQ 403)=LINE) LET P1 (INQ 101) LET P2 (INQ 102) WRITE_LTAB "Inq_elem_ltab" NTOTN 1 (STR (INQ 403)) WRITE_LTAB "Inq_elem_ltab" NTOTN 2 (STR (INQ 201)) WRITE_LTAB "Inq_elem_ltab" NTOTN 3 (STR P1) WRITE_LTAB "Inq_elem_ltab" NTOTN 4 (STR P2) ELSE_IF (((INQ 403)=ARC) OR ((INQ 403)=CIRCLE) OR ((INQ 403)=FILLET)) LET C (INQ 101) LET R (INQ 3) LET BA (INQ 4) LET EA (INQ 5) LET P3 (C+(PNT_RA R (BA+((EA-BA)/1.499999999)))) WRITE_LTAB "Inq_elem_ltab" NTOTN 1 (STR (INQ 403)) WRITE_LTAB "Inq_elem_ltab" NTOTN 2 (STR (INQ 201)) WRITE_LTAB "Inq_elem_ltab" NTOTN 3 (STR EA) WRITE_LTAB "Inq_elem_ltab" NTOTN 4 (STR BA) WRITE_LTAB "Inq_elem_ltab" NTOTN 5 (STR R) WRITE_LTAB "Inq_elem_ltab" NTOTN 6 (STR C) ELSE WRITE_LTAB "Inq_elem_ltab" NTOTN 1 (STR (INQ 403)) END_IF EXIT_IF (N>NUM_ELEM) IF ((NTOTN/NTOT)<1) LET PROGX (27*FONT_WIDTH*(NTOTN/NTOT)) WRITE_LTAB "Accuracy_ltab" TITLE 14 (CHR 255+ CHR 2+CHR 2+CHR PROGX +CHR 2 + CHR 2+CHR 3+CHR PROGX +CHR 3 + CHR 2+CHR 4+CHR PROGX +CHR 4 + CHR 2+CHR 5+CHR PROGX +CHR 5 + CHR 2+CHR 6+CHR PROGX +CHR 6 + CHR 2+CHR 7+CHR PROGX +CHR 7 + CHR 2+CHR 8+CHR PROGX +CHR 8 + CHR 2+CHR 9+CHR PROGX +CHR 9 + CHR 2+CHR 10+CHR PROGX +CHR 10 + CHR 2+CHR 11+CHR PROGX +CHR 11 + CHR 2+CHR 12+CHR PROGX +CHR 12) UPDATE_SCREEN END_IF INQ_NEXT_ELEM LET N (N+1) LET NTOTN (NTOTN+1) END_LOOP END_IF END_IF LET NN (NN+1) END_LOOP EDIT_PART TOP END_DEFINE DEFINE CHECK_DIMS LOCAL P1 LOCAL FEETVAL LOCAL FEETTEST LOCAL INCHVAL LOCAL FEETPOS LOCAL INCHPOS LOCAL DIMVAL LOCAL TEST LOCAL ENHET LOCAL DIMA LOCAL DIMTEXT LOCAL ADJUST_VAL LOCAL N LOCAL POSP LOCAL UPPTOL LOCAL LOWTOL LOCAL NROWS LOCAL C LOCAL ERRVAL LOCAL POSP INQ_ENV 6 LET ENHET (INQ 2) WRITE_LTAB "Accuracy_ltab" TITLE 8 "" WRITE_LTAB "Accuracy_ltab" TITLE 9 "" WRITE_LTAB "Accuracy_ltab" TITLE 10 "" COLOR_LTAB "Accuracy_ltab" TITLE 8 BLACK TABGREY COLOR_LTAB "Accuracy_ltab" TITLE 9 BLACK TABGREY COLOR_LTAB "Accuracy_ltab" TITLE 10 BLACK TABGREY UPDATE_SCREEN INQ_SELECTED_ELEM GLOBAL DIMENSIONS IF (ACCURACY_SELECT=ALL) ALL ELSE_IF (ACCURACY_SELECT=BOX) IF (ADJUST_TEST=0) READ PNT "Indicate bottom left-hand corner for selection" BLHC READ PNT "Indicate top right-hand corner for selection" RUBBER_BOX BLHC TRHC END_IF BOX BLHC TRHC END_IF WRITE_LTAB "Accuracy_ltab" TITLE 15 "Analysing dimensions..." UPDATE_SCREEN DISPLAY_NO_WAIT "Checking dimension accuracy...." SHOW GLOBAL {DIMENSIONS} ALL TABDREY CHANGE_ELEM_INFO "dim check info:*" "" GLOBAL ALL LET NROWS (INQ 14) LET DIMGOODN 0 LET DIMOKN 0 LET DIMBADN 0 LET N 1 LOOP EXIT_IF (N>NROWS) LET DIMTEXT (INQ 306) IF ((DIMTEXT<>" ") AND (NOT POS DIMTEXT "(") AND (DIMTEXT<>"R") AND (NOT POS DIMTEXT "G")) LET DIMVAL (INQ 3) TRAP_ERROR LET TEST (VAL DIMTEXT) LET C 0 IF (C=0) LET DIMVAL (DIMVAL/ENHET) LET POSP (POS DIMTEXT ",") IF (POSP=0) LET POSP (POS DIMTEXT ".") END_IF LET ACC_LEV 2 {=100 normally} IF (POSP>0) LET DIMTEXT ((SUBSTR DIMTEXT 1 (POSP-1))+"."+(SUBSTR DIMTEXT (POSP+1) ((LEN DIMTEXT)-POSP))) LET ACC_LEV (1+POSP) END_IF LET ACC_LEV (10**ACC_LEV) LET DIMTEXT (STR (VAL DIMTEXT*ACC_LEV)) LET DIMTEXT (VAL DIMTEXT) LET DIMTEXT (INT DIMTEXT) LET DIMVAL (DIMVAL*ACC_LEV) LET P3 ((INQ 101)+(PNT_XY .001 .001)) IF ((STR DIMTEXT)<>(STR DIMVAL)) LET ADJUST_VAL ((DIMTEXT-DIMVAL)/ACC_LEV) IF ((ABS ADJUST_VAL)>.00000001) SHOW GLOBAL P3 RED ADD_ELEM_INFO "dim check info: BAD" GLOBAL P3 END IF (((INQ 403)=DIM_LINE) OR ((INQ 403)=DIM_CHAIN)) LET DIMA (ANG ((INQ 103)-(INQ 102))) ADD_ELEM_INFO ("dim check info: Adjustment angle: "+(STR DIMA)) GLOBAL P3 END ELSE_IF (((INQ 403)=DIM_DATUM_SHORT) OR ((INQ 403)=DIM_DATUM_LONG)) LET DIMA (ANG ((INQ 105)-(INQ 104))) ADD_ELEM_INFO ("dim check info: Adjustment angle: "+(STR DIMA)) GLOBAL P3 END ELSE_IF ((INQ 403)=DIM_COORD) LET DIMA (ANG ((INQ 103)-(INQ 102))) ADD_ELEM_INFO ("dim check info: Adjustment angle: "+(STR DIMA)) GLOBAL P3 END END_IF ADD_ELEM_INFO ("dim check info: Error: "+(STR ADJUST_VAL)) GLOBAL P3 END LET DIMBADN (DIMBADN+1) LET UPPTOL (STR (INQ 302)) LET LOWTOL (STR (INQ 303)) IF ((UPPTOL<>"") AND (UPPTOL<>'"mm')) LET POSP (POS UPPTOL ",") IF (POSP>0) LET UPPTOL ((SUBSTR UPPTOL 1 (POSP-1))+"."+ (TRIM (SUBSTR (UPPTOL+" ") (POSP+1) 10))) END_IF IF (POS UPPTOL "+") LET UPPTOL (TRIM (SUBSTR (UPPTOL+" ") 2 10)) END_IF IF (POS LOWTOL "+") LET LOWTOL (TRIM (SUBSTR (LOWTOL+" ") 2 10)) END_IF IF (POS UPPTOL "þ") LET UPPTOL (TRIM (SUBSTR (UPPTOL+" ") 2 10)) LET LOWTOL ("-"+(TRIM (SUBSTR (UPPTOL+" ") 1 10))) ELSE LET POSP (POS LOWTOL ",") IF (POSP>0) LET LOWTOL ((SUBSTR LOWTOL 1 (POSP-1))+"."+(TRIM (SUBSTR (LOWTOL+" ") (POSP+1) 10))) END_IF END_IF LET ERRVAL ( 1*ADJUST_VAL) IF ((ERRVAL<(VAL UPPTOL)) AND (ERRVAL>(VAL LOWTOL))) ADD_ELEM_INFO ("dim check info: Within tolerance: "+UPPTOL+" "+LOWTOL) GLOBAL P3 END ELSE ADD_ELEM_INFO ("dim check info: Outside tolerance: "+UPPTOL+" "+LOWTOL) GLOBAL P3 END END_IF END_IF ELSE SHOW GLOBAL P3 CYAN ADD_ELEM_INFO "dim check info: OK" GLOBAL P3 END LET DIMOKN (DIMOKN+1) END_IF ELSE SHOW GLOBAL (INQ 101) GREEN ADD_ELEM_INFO "dim check info: GOOD" GLOBAL P3 END LET DIMGOODN (DIMGOODN+1) END_IF END_IF END_IF LET PROGX (27*FONT_WIDTH*(N/NROWS)) WRITE_LTAB "Accuracy_ltab" TITLE 14 (CHR 255+ CHR 2+CHR 2+CHR PROGX +CHR 2 + CHR 2+CHR 3+CHR PROGX +CHR 3 + CHR 2+CHR 4+CHR PROGX +CHR 4 + CHR 2+CHR 5+CHR PROGX +CHR 5 + CHR 2+CHR 6+CHR PROGX +CHR 6 + CHR 2+CHR 7+CHR PROGX +CHR 7 + CHR 2+CHR 8+CHR PROGX +CHR 8 + CHR 2+CHR 9+CHR PROGX +CHR 9 + CHR 2+CHR 10+CHR PROGX +CHR 10 + CHR 2+CHR 11+CHR PROGX +CHR 11 + CHR 2+CHR 12+CHR PROGX +CHR 12) UPDATE_SCREEN LET N (N+1) INQ_NEXT_ELEM END_LOOP WRITE_LTAB "Accuracy_ltab" TITLE 14 "" WRITE_LTAB "Accuracy_ltab" TITLE 15 "" UPDATE_ACCURACY_TABLE "DIMS" END_DEFINE DEFINE ACCURACY_MACRO LOCAL P1 LOCAL P2 LOCAL P3 LOCAL C LOCAL ELTYP LOCAL ELCOL LOCAL PNAME LOCAL TIME0 LOCAL TIME1 LOCAL TIMEX LOCAL N LOCAL PB1 LOCAL WARNTEST LOCAL PROGX LOCAL NN LOCAL NTOT LOCAL NTOTN LOCAL ELCOL LOCAL R LOCAL C LOCAL BA LOCAL EA LOCAL ELTYP WRITE_LTAB "Accuracy_ltab" TITLE 5 "" WRITE_LTAB "Accuracy_ltab" TITLE 6 "" WRITE_LTAB "Accuracy_ltab" TITLE 7 "" COLOR_LTAB "Accuracy_ltab" TITLE 5 BLACK TABGREY COLOR_LTAB "Accuracy_ltab" TITLE 6 BLACK TABGREY COLOR_LTAB "Accuracy_ltab" TITLE 7 BLACK TABGREY UPDATE_SCREEN WRITE_INQ_ELEM LET NROWS (LTAB_ROWS "Inq_elem_ltab") IF (NROWS>1) ENABLE_BREAK LET NTOT SELECTED_NTOT SHOW GLOBAL {GEO} ALL TABDREY CHANGE_ELEM_INFO "accuracy info:*" "" GLOBAL GEO ALL LET WARNTEST 0 LET BADN 0 LET OKN 0 LET GOODN 0 LET NN 1 LET NTOTN 0 LET TIME0 (TIME) LET TIME1 (TIME) LOOP LET ELTYP (READ_LTAB "Inq_elem_ltab" NN 1) EXIT_IF (ELTYP="") IF (ELTYP="LINE") LET ELCOL (READ_LTAB "Inq_elem_ltab" NN 2) LET P1 (VAL (READ_LTAB "Inq_elem_ltab" NN 3)) LET P2 (VAL (READ_LTAB "Inq_elem_ltab" NN 4)) LET P3 (P1+((P2-P1)*.01)) IF (ELCOL<>EXCLUDE_CENTER_LINE_COLOR) LET L (LEN (P2-P1)) IF ((STR (ROUND (L*(10**GACCURC))))=(STR (L*(10**GACCURC)))) TRAP_ERROR SHOW GLOBAL P3 ON ADD_ELEM_INFO "accuracy info: GOOD" GLOBAL P3 END LET GOODN (GOODN+1) LET C (CHECK_ERROR) ELSE_IF ((POS (STR L) "99999999") OR (POS (STR L) "00000000")) TRAP_ERROR SHOW GLOBAL P3 CYAN ADD_ELEM_INFO "accuracy info: OK" GLOBAL P3 END LET OKN (OKN+1) LET C (CHECK_ERROR) ELSE TRAP_ERROR SHOW GLOBAL P3 RED ADD_ELEM_INFO "accuracy info: BAD" GLOBAL P3 END LET BADN (BADN+1) LET C (CHECK_ERROR) END_IF END_IF ELSE_IF ((ELTYP="ARC") OR (ELTYP="CIRCLE") OR (ELTYP="FILLET")) LET ELCOL (READ_LTAB "Inq_elem_ltab" NN 2) LET BA (VAL (READ_LTAB "Inq_elem_ltab" NN 3)) LET EA (VAL (READ_LTAB "Inq_elem_ltab" NN 4)) LET R (VAL (READ_LTAB "Inq_elem_ltab" NN 5)) LET C (VAL (READ_LTAB "Inq_elem_ltab" NN 6)) LET P3 (C+(PNT_RA R (BA+((EA-BA)/1.499999999)))) IF (ELCOL<>EXCLUDE_CENTER_LINE_COLOR) IF ((STR (ROUND (R*10*(10**GACCURC))))=(STR (R*10*(10**GACCURC)))) TRAP_ERROR SHOW GLOBAL P3 ON ADD_ELEM_INFO "accuracy info: GOOD" GLOBAL P3 END LET GOODN (GOODN+1) LET C (CHECK_ERROR) ELSE_IF ((POS (STR R) "99999999") OR (POS (STR R) "00000000")) TRAP_ERROR SHOW GLOBAL P3 CYAN ADD_ELEM_INFO "accuracy info: OK" GLOBAL P3 END LET OKN (OKN+1) LET C (CHECK_ERROR) ELSE TRAP_ERROR SHOW GLOBAL P3 RED ADD_ELEM_INFO "accuracy info: BAD" GLOBAL P3 END LET BADN (BADN+1) LET C (CHECK_ERROR) END_IF END_IF END_IF LET NN (NN+1) LET NTOTN (NTOTN+1) IF (((NTOTN/NTOT)>.2) OR (WARNTEST=1)) IF ((FRACT (NTOTN/3))=0) LET TIME1 (TIME) LET PROGX (27*FONT_WIDTH*NTOTN/NTOT) WRITE_LTAB "Accuracy_ltab" TITLE 14 (CHR 255+ CHR 2+CHR 2+CHR PROGX +CHR 2 + CHR 2+CHR 3+CHR PROGX +CHR 3 + CHR 2+CHR 4+CHR PROGX +CHR 4 + CHR 2+CHR 5+CHR PROGX +CHR 5 + CHR 2+CHR 6+CHR PROGX +CHR 6 + CHR 2+CHR 7+CHR PROGX +CHR 7 + CHR 2+CHR 8+CHR PROGX +CHR 8 + CHR 2+CHR 9+CHR PROGX +CHR 9 + CHR 2+CHR 10+CHR PROGX +CHR 10 + CHR 2+CHR 11+CHR PROGX +CHR 11 + CHR 2+CHR 12+CHR PROGX +CHR 12) WRITE_LTAB "Accuracy_ltab" TITLE 15 ("Time remaining (s): "+(STR ((INT ((NTOT*(TIME1-TIME0)/NTOTN)-(TIME1-TIME0))+1)))) UPDATE_SCREEN END_IF ELSE_IF (NTOTN=20) LET TIME1 (TIME) WRITE_LTAB "Accuracy_ltab" TITLE 15 ("Time remaining (s): "+(STR ((INT ((NTOT*(TIME1-TIME0)/NTOTN)-(TIME1-TIME0))+1)))) UPDATE_SCREEN DISPLAY ("Estimated time remaining (s): "+(STR ((INT ((NTOT*(TIME1-TIME0)/NTOTN)-(TIME1-TIME0))+1)))) DISPLAY_NO_WAIT "" LET TIMEX (TIME) LET TIME0 (TIME0+TIMEX-TIME1) LET WARNTEST 1 END_IF EXIT_IF ((NTOTN/NTOT)>=1) END_LOOP END_IF EDIT_PART TOP WRITE_LTAB "Accuracy_ltab" TITLE 14 "" WRITE_LTAB "Accuracy_ltab" TITLE 15 "" UPDATE_ACCURACY_TABLE "GEOM" END_DEFINE DEFINE GET_ADJUST_VAL PARAMETER WHAT LOCAL P1 LOCAL P2 LOCAL P3 LOCAL POSP LOCAL INFOTEST LOCAL DIMPOS LOCAL C LOCAL DIMVAL LOCAL TSL LOCAL DIMTYP LOCAL Y LOCAL ADJUST_VAL LOCAL N LOCAL ACCURACY_INFO LOCAL L LOCAL DP1 LOCAL DP2 LOCAL DY LOCAL DIMA LOCAL PSC LOCAL CARRY_ON TRAP_ERROR DELETE INFOS "Accuracy_info_arrow" END POP_DOWN_LTAB 'Accuracy_info_ltab' TABLE_STATUS "Adjust_dtab1" UNMAP TABLE_STATUS "Adjust_dtab2" UNMAP LET C (CHECK_ERROR) LET TSL (FONT_HEIGHT+1) INQ_PART "." LET PSC (INQ 4) LOOP LOOP IF (WHAT="Full info") READ PNT "Identify dimension or geometry for accuracy information" P1 ELSE READ PNT "Identify BAD dimension for adjustment" P1 END_IF INQ_ELEM P1 LET DIMTYP (INQ 403) EXIT_IF (((DIMTYP=LINE) OR (DIMTYP=CIRCLE) OR (DIMTYP=ARC) OR (DIMTYP=FILLET)) AND (WHAT="Full info")) EXIT_IF (POS (STR DIMTYP) "DIM") BEEP END_LOOP IF (POS (STR DIMTYP) "DIM") LET DIMPOS (INQ 101) IF (WHAT="Adjust only") LET ADJUST_VAL (INQ 900) LOOP EXIT_IF (POS ADJUST_VAL "Error:") EXIT_IF (ADJUST_VAL="END-OF-LIST") IF (POS ADJUST_VAL "Adjustment angle: ") LET DIMA (VAL (SUBSTR (ADJUST_VAL+" ") 35 30)) END_IF LET ADJUST_VAL (INQ 901) END_LOOP IF (ADJUST_VAL<>"END-OF-LIST") LET ADJUST_VAL (VAL (SUBSTR (ADJUST_VAL+" ") 24 30)) RECALL_BUFFER ON STORE_IN_RECALL_BUFFER (STR ADJUST_VAL) IF ((DIMTYP=DIM_LINE) OR (DIMTYP=DIM_CHAIN)) MOVE_ADJUST_TABLE (INQ 103) (INQ 102) DIMA ADJUST_VAL ELSE_IF ((DIMTYP=DIM_DATUM_SHORT) OR (DIMTYP=DIM_DATUM_LONG)) MOVE_ADJUST_TABLE (INQ 105) (INQ 104) DIMA ADJUST_VAL ELSE_IF (DIMTYP=DIM_COORD) MOVE_ADJUST_TABLE (INQ 103) (INQ 102) DIMA ADJUST_VAL ELSE_IF ((DIMTYP=DIM_RADIUS) OR (DIMTYP=DIM_DIAMETER)) LET P1 (INQ 102) INQ_ELEM P1 LET DIMA (ANG (P1-(INQ 101))) LET DIMTEXT (INQ 306) LET POSP (POS DIMTEXT ",") IF (POSP>0) LET DIMTEXT ((SUBSTR DIMTEXT 1 (POSP-1))+"."+(SUBSTR DIMTEXT (POSP+1) ((LEN DIMTEXT)-POSP))) END_IF LET DIMTEXT (VAL DIMTEXT) LET DIMVAL (INQ 3) IF (DIMTYP=DIM_DIAMETER) LET DIMVAL (DIMVAL*2) END_IF LET ADJUST_VAL (DIMTEXT/DIMVAL) MOVE_ADJUST_TABLE (INQ 101) P1 DIMA ADJUST_VAL END_IF ELSE GET_ADJUST_VAL "Adjust only" END_IF ELSE MAKE_ACCURACY_TABLE LET ACCURACY_INFO (INQ 900) LET INFOTEST 1 LET N 1 LOOP EXIT_IF (ACCURACY_INFO="END-OF-LIST") IF ((POS ACCURACY_INFO "dim check") OR (POS ACCURACY_INFO "accuracy info")) LET L " " IF (POS ACCURACY_INFO "Error: ") LET ADJUST_VAL (VAL (SUBSTR (ACCURACY_INFO+" ") 24 30)) WRITE_LTAB "Accuracy_info_ltab" N 2 ADJUST_VAL END_IF IF (POS ACCURACY_INFO "Adjustment angle: ") LET ADJUST_VAL (VAL (SUBSTR (ACCURACY_INFO+" ") 35 30)) WRITE_LTAB "Accuracy_info_ltab" N 2 ADJUST_VAL END_IF LET POSP (POS ACCURACY_INFO ":") LET ACCURACY_INFO (TRIM (SUBSTR (ACCURACY_INFO+L) (POSP+1) 100)) LET INFOTEST 1 WRITE_LTAB "Accuracy_info_ltab" N 1 ACCURACY_INFO IF (POS ACCURACY_INFO "BAD") COLOR_LTAB "Accuracy_info_ltab" ROW N RED BLACK ELSE_IF (POS ACCURACY_INFO "OK") COLOR_LTAB "Accuracy_info_ltab" ROW N CYAN BLACK ELSE_IF (POS ACCURACY_INFO "GOOD") COLOR_LTAB "Accuracy_info_ltab" ROW N GREEN BLACK ELSE_IF (POS ACCURACY_INFO "Within") COLOR_LTAB "Accuracy_info_ltab" ROW N BLACK GREEN ELSE_IF (POS ACCURACY_INFO "Outside") COLOR_LTAB "Accuracy_info_ltab" ROW N BLACK RED ELSE COLOR_LTAB "Accuracy_info_ltab" ROW N WHITE BLACK END_IF LET N (N+1) END_IF LET ACCURACY_INFO (INQ 901) END_LOOP IF (INFOTEST=1) CONV_COORD_PIX DIMPOS WHICH_SECTOR PIX_COORD LET DP1 (PNT_XY (30*XS) (30*YS)) LET DP2 (PNT_XY 0 YS) LET P2 (PIX_COORD+DP1) LET DIMVAL (STR (INQ 306)) IF (POS (INQ 306) "0") LET DIMVAL (SUBSTR DIMVAL 1 ((POS DIMVAL "0")-1)+"³") END_IF IF (POS (INQ 306) "3") ACC_REPLACE_TEXT "3" '"' DIMVAL LET DIMVAL REPLACED END_IF IF (POS (INQ 306) "4") ACC_REPLACE_TEXT "4" "'" DIMVAL LET DIMVAL REPLACED END_IF WRITE_LTAB "Accuracy_info_ltab" TITLE 1 ("DIM VALUE: "+DIMVAL) IF (((STR (INQ 302))<>"") AND (NOT POS (STR (INQ 302)) "~")) WRITE_LTAB "Accuracy_info_ltab" TITLE 1 ("DIM VALUE: "+DIMVAL+" "+(INQ 302)) END_IF IF ((STR (INQ 303))<>"") WRITE_LTAB "Accuracy_info_ltab" TITLE 1 ("DIM VALUE: "+DIMVAL+" "+(INQ 302)+"/"+(INQ 303)) END_IF LOOP POP_DOWN_LTAB "Accuracy_info_ltab" CHANGE_TABLE_SIZE "Accuracy_info_dtab" P2 (P2+(PNT_XY (FONT_WIDTH*38*XS) (N*YS*(INT (1.5*TSL))))) INQ_TABLE "Accuracy_info_dtab" LET DY (Y_OF ((INQ 104)-(INQ 103))) EXIT_IF ((FRACT (DY/(INT ((1.5*TSL)))))=0) CHANGE_TABLE_SIZE "Accuracy_info_dtab" (P2+DP1) (P2+DP1+(PNT_XY (FONT_WIDTH*38*XS) (N*(INT (1.5*TSL*YS))))) LET P2 (P2+DP2) END_LOOP POP_UP_LTAB "Accuracy_info_ltab" UPDATE_SCREEN CONV_PIX_COORD P2 ADD_CURRENT_INFO "Accuracy_info_arrow" LEADER_ARROW LEADSIZE ARROW_TYPE LEADER_LINE TABGREY COORD_PIX DIMPOS END WHITE CHANGE_CURRENT_INFO "Accuracy_info_arrow" "" LET Y "Yes" LOOP READ PNT STRING "Click on any point in window to continue..." CARRY_ON EXIT_IF ((TYPE CARRY_ON)=PNT) EXIT_IF (CARRY_ON="Yes") END_LOOP DELETE INFOS "Accuracy_info_arrow" END POP_DOWN_LTAB 'Accuracy_info_ltab' ELSE DISPLAY_NO_WAIT "No accuracy info available!" WAIT 2 END_IF END_IF ELSE READ_GEOM_ACCURACY_INFO P1 END_IF END_LOOP END_DEFINE DEFINE READ_GEOM_ACCURACY_INFO PARAMETER P1 LOCAL N LOCAL ACCURACY_INFO LOCAL POSP LOCAL TSL LOCAL L LOCAL LL LOCAL PSC LOCAL DX LOCAL DY LOCAL DIMTYP LOCAL DP1 LOCAL DP2 LOCAL D LOCAL C LOCAL Y MAKE_ACCURACY_TABLE LET TSL (FONT_HEIGHT+1) INQ_PART "." LET PSC (INQ 4) TRAP_ERROR INQ_PART DETAIL P1 LET D (CHECK_ERROR) IF (D=0) INQ_PART P1 LET D ((INQ 4)/PSC) END_IF INQ_ELEM P1 LET DIMTYP (INQ 403) LET ACCURACY_INFO (INQ 900) LOOP EXIT_IF (POS ACCURACY_INFO "accuracy info:") EXIT_IF (ACCURACY_INFO="END-OF-LIST") LET ACCURACY_INFO (INQ 901) END_LOOP IF (ACCURACY_INFO="END-OF-LIST") LET ACCURACY_INFO "UKNOWN" END_IF COLOR_LTAB "Accuracy_info_ltab" 1 1 WHITE BLACK COLOR_LTAB "Accuracy_info_ltab" 2 1 WHITE BLACK COLOR_LTAB "Accuracy_info_ltab" 3 1 WHITE BLACK COLOR_LTAB "Accuracy_info_ltab" 4 1 WHITE BLACK COLOR_LTAB "Accuracy_info_ltab" 5 1 WHITE BLACK COLOR_LTAB "Accuracy_info_ltab" 6 1 WHITE BLACK LET POSP (POS ACCURACY_INFO ":") LET L " " LET ACCURACY_INFO (TRIM (SUBSTR (ACCURACY_INFO+L) (POSP+1) 100)) WRITE_LTAB "Accuracy_info_ltab" 1 1 ("Accuracy: "+ACCURACY_INFO) WRITE_LTAB "Accuracy_info_ltab" 1 2 ACCURACY_INFO IF (POS ACCURACY_INFO "BAD") COLOR_LTAB "Accuracy_info_ltab" 1 1 RED BLACK ELSE_IF (POS ACCURACY_INFO "OK") COLOR_LTAB "Accuracy_info_ltab" 1 1 CYAN BLACK ELSE_IF (POS ACCURACY_INFO "GOOD") COLOR_LTAB "Accuracy_info_ltab" 1 1 GREEN BLACK END_IF IF (DIMTYP=LINE) LET DX (X_OF (((INQ 102)-(INQ 101)))/D) LET DY (Y_OF (((INQ 102)-(INQ 101)))/D) WRITE_LTAB "Accuracy_info_ltab" 3 1 ("Horizontal: "+(STR DX)) WRITE_LTAB "Accuracy_info_ltab" 3 2 DX WRITE_LTAB "Accuracy_info_ltab" 4 1 ("Vertical: "+(STR DY)) WRITE_LTAB "Accuracy_info_ltab" 4 2 DY MEASURE_LENGTH P1 LET LL (INQ 2) WRITE_LTAB "Accuracy_info_ltab" TITLE 1 ("LINE Length: "+(STR (LL/D))) WRITE_LTAB "Accuracy_info_ltab" 2 1 ("Length: "+(STR (LL/D))) WRITE_LTAB "Accuracy_info_ltab" 2 2 LL LET N 5 ELSE_IF (DIMTYP=ARC) WRITE_LTAB "Accuracy_info_ltab" TITLE 1 ("ARC Radius: "+(STR ((INQ 3)/D))) WRITE_LTAB "Accuracy_info_ltab" 2 1 ("Radius: "+(STR ((INQ 3)/D))) WRITE_LTAB "Accuracy_info_ltab" 2 2 ((INQ 3)/D) WRITE_LTAB "Accuracy_info_ltab" 3 1 ("Start ang: "+(STR (INQ 4))) WRITE_LTAB "Accuracy_info_ltab" 3 2 (INQ 4) WRITE_LTAB "Accuracy_info_ltab" 4 1 ("End ang: "+(STR (INQ 5))) WRITE_LTAB "Accuracy_info_ltab" 4 2 (INQ 5) LET N 5 ELSE_IF (DIMTYP=FILLET) WRITE_LTAB "Accuracy_info_ltab" TITLE 1 ("FILLET Radius: "+(STR ((INQ 3)/D))) WRITE_LTAB "Accuracy_info_ltab" 2 1 ("Radius: "+(STR ((INQ 3)/D))) WRITE_LTAB "Accuracy_info_ltab" 2 2 ((INQ 3)/D) WRITE_LTAB "Accuracy_info_ltab" 3 1 ("Start ang: "+(STR (INQ 4))) WRITE_LTAB "Accuracy_info_ltab" 3 2 (INQ 4) WRITE_LTAB "Accuracy_info_ltab" 4 1 ("End ang: "+(STR (INQ 5))) WRITE_LTAB "Accuracy_info_ltab" 4 2 (INQ 5) LET N 5 ELSE_IF (DIMTYP=CIRCLE) WRITE_LTAB "Accuracy_info_ltab" TITLE 1 ("CIRCLE Radius: "+(STR ((INQ 3)/D))) WRITE_LTAB "Accuracy_info_ltab" 2 1 ("Radius: "+(STR ((INQ 3)/D))) WRITE_LTAB "Accuracy_info_ltab" 2 2 ((INQ 3)/D) LET N 3 END_IF COLOR_LTAB "Accuracy_info_ltab" 2 1 WHITE BLACK COLOR_LTAB "Accuracy_info_ltab" 3 1 WHITE BLACK COLOR_LTAB "Accuracy_info_ltab" 4 1 WHITE BLACK COLOR_LTAB "Accuracy_info_ltab" 5 1 WHITE BLACK CONV_COORD_PIX P1 WHICH_SECTOR PIX_COORD LET DP1 (PNT_XY (30*XS) (30*YS)) LET DP2 (PNT_XY 0 YS) LET P2 (PIX_COORD+DP1) LOOP POP_DOWN_LTAB "Accuracy_info_ltab" CHANGE_TABLE_SIZE "Accuracy_info_dtab" P2 (P2+(PNT_XY (FONT_WIDTH*38*XS) (N*YS*(INT (1.5*TSL))))) INQ_TABLE "Accuracy_info_dtab" LET DY (Y_OF ((INQ 104)-(INQ 103))) EXIT_IF ((FRACT (DY/(INT ((1.5*TSL)))))=0) CHANGE_TABLE_SIZE "Accuracy_info_dtab" (P2+DP1) (P2+DP1+(PNT_XY (FONT_WIDTH*38*XS) (N*(INT (1.5*TSL*YS))))) LET P2 (P2+DP2) END_LOOP POP_UP_LTAB "Accuracy_info_ltab" UPDATE_SCREEN CONV_PIX_COORD P2 ADD_CURRENT_INFO "Accuracy_info_arrow" LEADER_ARROW LEADSIZE ARROW_TYPE LEADER_LINE TABGREY COORD_PIX P1 END WHITE CHANGE_CURRENT_INFO "Accuracy_info_arrow" "" LET Y "Yes" LOOP READ PNT STRING "Click on any point in window to continue..." CARRY_ON EXIT_IF ((TYPE CARRY_ON)=PNT) EXIT_IF (CARRY_ON="Yes") END_LOOP DELETE INFOS "Accuracy_info_arrow" END POP_DOWN_LTAB 'Accuracy_info_ltab' END_DEFINE DEFINE MAKE_ACCURACY_INFO_TABLE LOCAL TSL LET TSL (FONT_HEIGHT+1) CREATE_LTAB 'Accuracy_info_ltab' TABLE_LAYOUT 'Accuracy_info_dtab' 'Accuracy_info_ltab' TABGREY TABGREY WIDTH 38 ROWS 3 FRAME_WIDTH 1 HORIZONTAL TABGREY DOTTED VERTICAL TABGREY SOLID TITLE_LAYOUT (INT (TSL*1.5)) '12345678901234567890123456789012345|78' END COLUMN_LAYOUT (INT (TSL*1.5)) ' ' END TABLE_TITLE 'Accuracy_info_dtab' WHITE BLUE CENTER "@s1" 'TABLE_STATUS "Accuracy_info_dtab" MOVE' 1 1 BLACK RGB_COLOR .6666 .6666 .6666 CENTER "@s2" 'DELETE INFOS "Accuracy_info_arrow" END POP_DOWN_LTAB "Accuracy_info_ltab"' 1 2 END TABLE_COLUMN 'Accuracy_info_dtab' COLUMN 1 1 FORMAT 50 LEFT 'ENTER @q2' END WRITE_LTAB 'Accuracy_info_ltab' TITLE 2 "X" HIGHLIGHT_LTAB 'Accuracy_info_ltab' TITLE 2 MARK END_DEFINE MAKE_ACCURACY_INFO_TABLE DEFINE CONV_COORD_PIX PARAMETER C3 LOCAL P1 LOCAL DPX LOCAL P2 LOCAL DPY LOCAL C1 LOCAL DCX LOCAL C2 LOCAL DCY LOCAL FRACTCX LOCAL FRACTCY INQ_ENV 1 LET P1 (INQ 101) {Pixel lower-left} LET P2 (INQ 102) {Pixel upper-right} INQ_ENV 2 LET C1 (INQ 101) {Coord lower-left} LET C2 (INQ 102) {Coord upper-right} LET DPX ((X_OF P2)-(X_OF P1)) LET DPY ((Y_OF P2)-(Y_OF P1)) LET DCX ((X_OF C2)-(X_OF C1)) LET DCY ((Y_OF C2)-(Y_OF C1)) LET FRACTCX (((X_OF C3)-(X_OF C1))/DCX) LET FRACTCY (((Y_OF C3)-(Y_OF C1))/DCY) LET PIX_COORD (P1+(PNT_XY (FRACTCX*DPX) (FRACTCY*DPY))) LET LEADSIZE (PSC*15*(DCX/DPX)) END_DEFINE DEFINE CONV_PIX_COORD PARAMETER P3 LOCAL P1 LOCAL DPX LOCAL P2 LOCAL DPY LOCAL C1 LOCAL DCX LOCAL C2 LOCAL DCY LOCAL FRACTPX LOCAL FRACTPY INQ_ENV 1 {LET P3 (INQ 103)} LET P1 (INQ 101) {Pixel lower-left} LET P2 (INQ 102) {Pixel upper-right} INQ_ENV 2 LET C1 (INQ 101) {Coord lower-left} LET C2 (INQ 102) {Coord upper-right} LET DPX ((X_OF P2)-(X_OF P1)) LET DPY ((Y_OF P2)-(Y_OF P1)) LET DCX ((X_OF C2)-(X_OF C1)) LET DCY ((Y_OF C2)-(Y_OF C1)) LET FRACTPX (((X_OF P3)-(X_OF P1))/DPX) LET FRACTPY (((Y_OF P3)-(Y_OF P1))/DPY) LET COORD_PIX (C1+(PNT_XY (FRACTPX*DCX) (FRACTPY*DCY))) END_DEFINE MAKE_ACCURACY_TABLE TABLE_STATUS 'Accuracy_dtab' MOVE 150,300 {*************************************************************************} {*********** Help system *************************************************} {*************************************************************************} DEFINE ACCURACY_HELP PARAMETER HELP_TOPIK LOCAL P1 LOCAL P2 LOCAL P3 LOCAL TSL LOCAL Y1 LOCAL Y2 LOCAL DX LOCAL T1 LOCAL T2 LOCAL T3 LOCAL T4 LOCAL L LOCAL GRLL LOCAL GRUR LOCAL N LET ACCURACY_HELP_FLAG 0 LET T1 "" LET T2 "" LET T3 "" LET T4 "" LET TSL (FONT_HEIGHT+1) INQ_ENV 1 LET P1 (INQ 103) LET P3 P1 CREATE_LTAB "Help_ltab" TABLE_COLUMN 'Help_dtab' COLUMN 1 1 FORMAT 50 BLUE LGHTYEL LEFT 'TABLE_STATUS "Help_dtab" UNMAP' END IGNORE_BREAK IF (HELP_TOPIK="ACCURACY_MACRO") IF (ACCURACY_SELECT=ALL) LET T1 'Analyses accuracy of lines and circles. ' LET T2 'GOOD=own colour, OK=cyan, BAD=red. ' LET T3 'If the analysis will take too long you ' LET T4 'can choose to stop and instead use "BOX"' LET L ((LEN T1)+2) LET P2 (P1+(PNT_XY (FONT_WIDTH*L) (TSL*-4))) ELSE_IF (ACCURACY_SELECT=BOX) LET T1 "Analysis is limited to the boxed" LET T2 "area you select. In most cases " LET T3 "this will save a lot of time. " LET L ((LEN T1)+2) LET P2 (P1+(PNT_XY (FONT_WIDTH*L) (TSL*-3))) END_IF ELSE_IF (HELP_TOPIK="CHECK_DIMS") IF (ACCURACY_SELECT=ALL) LET T1 'Analyses dimension num./actual accuracy.' LET T2 'GOOD=own colour, OK=cyan, BAD=red. ' LET T3 'This option selects the entire drawing. ' LET L ((LEN T3)+2) LET P1 (P1-(PNT_XY (FONT_WIDTH*L) (TSL*3))) LET P2 P3 ELSE_IF (ACCURACY_SELECT=BOX) LET T1 "Analysis is limited to the boxed" LET T2 "area you select. In most cases " LET T3 "this will save a lot of time. " LET L ((LEN T3)+2) LET P1 (P1-(PNT_XY (FONT_WIDTH*L) (TSL*3))) LET P2 P3 END_IF ELSE_IF (HELP_TOPIK="SHOW_GOOD_GEOMETRY_ACCURACY") LET T1 'Highlights the "GOOD" geometry in its ' LET T2 'own colour and subdues the rest. ' LET T3 '"GOOD" geometry is that measuring for ' LET T4 'example 163 or 1.875 (arcs/circles) ' LET L ((LEN T1)+2) LET P2 (P1+(PNT_XY (FONT_WIDTH*L) (TSL*-4))) ELSE_IF (HELP_TOPIK="SHOW_OK_GEOMETRY_ACCURACY") LET T1 'Highlights the "OK" geometry in CYAN' LET T2 'CYAN and subdues the rest. ' LET T3 '"OK" geometry is that measuring for ' LET T4 'example 1.999999999 or 2.0000000001 ' LET L ((LEN T1)+2) LET P2 (P1+(PNT_XY (FONT_WIDTH*L) (TSL*-4))) ELSE_IF (HELP_TOPIK="SHOW_BAD_GEOMETRY_ACCURACY") LET T1 'Highlights the "BAD" geometry in RED ' LET T2 'and subdues the rest. ' LET T3 '"BAD" geometry is that measuring for' LET T4 'example 2.0004827613 or 1.992390388 ' LET L ((LEN T1)+2) LET P2 (P1+(PNT_XY (FONT_WIDTH*L) (TSL*-4))) ELSE_IF (HELP_TOPIK="SHOW_GOOD_DIM_ACCURACY") LET T1 'Highlights the "GOOD" dimensions in their' LET T2 'own colour and subdues the rest. ' LET T3 '"GOOD" dimensions are those describing ' LET T4 'geometry exactly. eg. 1,275 for 1.275mm. ' LET L ((LEN T1)+2) LET P1 (P1-(PNT_XY (FONT_WIDTH*L) (TSL*4))) LET P2 P3 ELSE_IF (HELP_TOPIK="SHOW_OK_DIM_ACCURACY") LET T1 'Highlights the "OK" dimensions in CYAN' LET T2 'and subdues the rest. ' LET T3 '"OK" dimensions are those describing ' LET T4 'geometry with exactly. ' LET L ((LEN T1)+2) LET P1 (P1-(PNT_XY (FONT_WIDTH*L) (TSL*4))) LET P2 P3 ELSE_IF (HELP_TOPIK="SHOW_BAD_DIM_ACCURACY") LET T1 'Highlights the "BAD" geometry in RED ' LET T2 'and subdues the rest. ' LET T3 '"BAD" geometry is that measuring for ' LET T4 'example 2.0004827613 or 1.992390388 ' LET L ((LEN T1)+2) LET P1 (P1-(PNT_XY (FONT_WIDTH*L) (TSL*4))) LET P2 P3 ELSE_IF (HELP_TOPIK="CANCEL_ACCURACY") LET T1 "Closes this menu" LET L ((LEN T1)+2) LET P1 (P1-(PNT_XY (FONT_WIDTH*L) (TSL*1))) LET P2 P3 ELSE_IF (HELP_TOPIK="GET_ADJUST_VAL") IF (PARA="Adjust only") LET T1 'Pick a "BAD" dimension and you will be ' LET T2 'prompted with arrows what you can do to ' LET T3 'correct the geometry. "Radial" geometries' LET T4 'are automatically adjusted but "linear" ' WRITE_LTAB "Help_ltab" 5 1 'geometries must be stretched manually ' LET L ((LEN T1)+2) LET P2 (P1+(PNT_XY (FONT_WIDTH*L) (TSL*5))) ELSE LET T1 'Pick a valid element and information about' LET T2 'the accuracy will be displayed. BREAK and' LET T3 'you can read this data and use it for ' LET T4 'manual operations. ' LET L ((LEN T1)+2) LET P2 (P1+(PNT_XY (FONT_WIDTH*L) (TSL*4))) END_IF ELSE_IF (HELP_TOPIK="RESET_ACCURACY_DISPLAY") LET T1 "Resets the display to show geometry " LET T2 "and dimensions in their true colours." LET T3 "Adjust tables are also removed " LET L ((LEN T1)+2) LET P1 (P1-(PNT_XY (FONT_WIDTH*L) (TSL*-3))) LET P2 P3 ELSE_IF (HELP_TOPIK="UPDATE_ACCURACY_UNITS") LET T1 "In order for the Advisor to work " LET T2 "correctly the current units must be" LET T3 "set according to the dimensions on " LET T4 "the drawing. " LET L ((LEN T1)+2) LET P1 (P1-(PNT_XY (FONT_WIDTH*L) (TSL*-4))) LET P2 P3 ELSE_IF (HELP_TOPIK="MOVE_ACCURACY_TABLE_HELP") LET T1 'X X' LET T2 ' ' LET T3 ' ' LET T4 ' Accuracy Advisor for CoCreate ME10 ' WRITE_LTAB "Help_ltab" 5 1 ' Version 1.0 June 1999 ' WRITE_LTAB "Help_ltab" 6 1 ' ' WRITE_LTAB "Help_ltab" 7 1 ' Developed by Darren Litherland ' WRITE_LTAB "Help_ltab" 8 1 ' (Accuracy Advisor Homepage) ' WRITE_LTAB "Help_ltab" 9 1 ' ' {12345678901234567890123456789012345678901234567890} WRITE_LTAB "Help_ltab" 10 1 ' Click here to move this ' WRITE_LTAB "Help_ltab" 11 1 ' help table ' WRITE_LTAB "Help_ltab" 12 1 ' ' WRITE_LTAB "Help_ltab" 13 1 ' [1/4] [Next] ' WRITE_LTAB "Help_ltab" 14 1 ' ' WRITE_LTAB "Help_ltab" 15 1 ' Features of ACCURACY ADVISOR are: ' WRITE_LTAB "Help_ltab" 16 1 ' ' WRITE_LTAB "Help_ltab" 17 1 ' POP-UP HELP: You are using it now! ' WRITE_LTAB "Help_ltab" 18 1 ' ON-SCREEN-ADVICE Hit an arrow and modify ' WRITE_LTAB "Help_ltab" 19 1 ' TABLE-GEOMETRY LINKS Tables point at things! ' WRITE_LTAB "Help_ltab" 20 1 ' PROGRESS METER See macro progress graphically ' WRITE_LTAB "Help_ltab" 21 1 ' ' WRITE_LTAB "Help_ltab" 22 1 ' "Accuracy Advisor" helps you to find errors in ' WRITE_LTAB "Help_ltab" 23 1 ' both geometry and dimensioning. ' WRITE_LTAB "Help_ltab" 24 1 ' ' WRITE_LTAB "Help_ltab" 25 1 ' [Prev] ' WRITE_LTAB "Help_ltab" 26 1 ' [2/4] [Next] ' WRITE_LTAB "Help_ltab" 27 1 ' ' WRITE_LTAB "Help_ltab" 28 1 ' Use it to check your drawings before manufacture ' WRITE_LTAB "Help_ltab" 29 1 ' and avoid those annoying situations where you ' WRITE_LTAB "Help_ltab" 30 1 ' just cannot get your assemblies together. ' WRITE_LTAB "Help_ltab" 31 1 ' ' WRITE_LTAB "Help_ltab" 32 1 ' To check geometry run "GEOM" or "Box". ' WRITE_LTAB "Help_ltab" 33 1 ' To check dimensions run "DIMS" or "Box". ' WRITE_LTAB "Help_ltab" 34 1 ' ' WRITE_LTAB "Help_ltab" 35 1 ' The GOOD, OK or BAD LINES, DIMS etc. will be ' WRITE_LTAB "Help_ltab" 36 1 ' highlighted in GREEN, CYAN and RED respectively. ' WRITE_LTAB "Help_ltab" 37 1 ' ' WRITE_LTAB "Help_ltab" 38 1 ' [Prev] ' WRITE_LTAB "Help_ltab" 39 1 ' [3/4] [Next] ' WRITE_LTAB "Help_ltab" 40 1 ' ' WRITE_LTAB "Help_ltab" 41 1 ' When complete, you can investigate errors by ' WRITE_LTAB "Help_ltab" 42 1 ' picking "Info" and reading what the situation is ' WRITE_LTAB "Help_ltab" 43 1 ' for the elements analysed. ' WRITE_LTAB "Help_ltab" 44 1 ' ' WRITE_LTAB "Help_ltab" 45 1 ' If necessary, you can use "Adjust" to actually ' WRITE_LTAB "Help_ltab" 46 1 ' correct the errors in the drawing. Simply use ' WRITE_LTAB "Help_ltab" 47 1 ' "Adjust", pick a dimension, select the appropri- ' WRITE_LTAB "Help_ltab" 48 1 ' ate adjustment arrow and then modify the geom- ' WRITE_LTAB "Help_ltab" 49 1 ' try as required. ' WRITE_LTAB "Help_ltab" 50 1 ' ' WRITE_LTAB "Help_ltab" 51 1 ' [Prev] ' WRITE_LTAB "Help_ltab" 52 1 ' [4/4] [Home] ' LET N 1 LOOP WRITE_LTAB "Help_ltab" N 2 'TABLE_STATUS "Help_dtab" MOVE' EXIT_IF (N=50) LET N (N+1) END_LOOP WRITE_LTAB "Help_ltab" 1 2 'TABLE_STATUS "Help_dtab" UNMAP' WRITE_LTAB "Help_ltab" 4 2 'BROWSE_URL "http://www.nethut.net/me10/accad_2/accuracy_advisor_frame.htm"' WRITE_LTAB "Help_ltab" 5 2 'BROWSE_URL "http://www.nethut.net/me10/accad_2/accuracy_advisor_frame.htm"' WRITE_LTAB "Help_ltab" 6 2 'BROWSE_URL "http://www.nethut.net/me10/accad_2/accuracy_advisor_frame.htm"' WRITE_LTAB "Help_ltab" 7 2 'BROWSE_URL "http://www.nethut.net/me10/accad_2/accuracy_advisor_frame.htm"' WRITE_LTAB "Help_ltab" 8 2 'BROWSE_URL "http://www.nethut.net/me10/accad_2/accuracy_advisor_frame.htm"' WRITE_LTAB "Help_ltab" 9 2 'BROWSE_URL "http://www.nethut.net/me10/accad_2/accuracy_advisor_frame.htm"' WRITE_LTAB "Help_ltab" 13 2 'SCROLL_LTAB "Help_ltab" 14' WRITE_LTAB "Help_ltab" 25 2 'SCROLL_LTAB "Help_ltab" 1 ' WRITE_LTAB "Help_ltab" 26 2 'SCROLL_LTAB "Help_ltab" 27' WRITE_LTAB "Help_ltab" 38 2 'SCROLL_LTAB "Help_ltab" 14' WRITE_LTAB "Help_ltab" 39 2 'SCROLL_LTAB "Help_ltab" 40' WRITE_LTAB "Help_ltab" 51 2 'SCROLL_LTAB "Help_ltab" 27' WRITE_LTAB "Help_ltab" 52 2 'SCROLL_LTAB "Help_ltab" 1 ' ENABLE_BREAK LET L 51 LET P2 (P1+(PNT_XY (FONT_WIDTH*L) (TSL*-13))) TABLE_COLUMN 'Help_dtab' COLUMN 1 1 FORMAT 50 BLUE LGHTYEL LEFT '@v2' END COLOR_LTAB "Help_ltab" 17 1 BLACK LGHTYEL COLOR_LTAB "Help_ltab" 18 1 BLACK LGHTYEL COLOR_LTAB "Help_ltab" 19 1 BLACK LGHTYEL COLOR_LTAB "Help_ltab" 20 1 BLACK LGHTYEL HIGHLIGHT_LTAB "Help_ltab" 1 1 ON HIGHLIGHT_LTAB "Help_ltab" 13 1 ON HIGHLIGHT_LTAB "Help_ltab" 26 1 ON HIGHLIGHT_LTAB "Help_ltab" 39 1 ON HIGHLIGHT_LTAB "Help_ltab" 52 1 ON ELSE LET L 5 LET P2 (P1+(PNT_XY (FONT_WIDTH*L) (TSL*-1))) LET T1 "" LET T2 "" LET T3 "" LET T4 "" END_IF WRITE_LTAB "Help_ltab" 1 1 T1 WRITE_LTAB "Help_ltab" 2 1 T2 WRITE_LTAB "Help_ltab" 3 1 T3 WRITE_LTAB "Help_ltab" 4 1 T4 INQ_ENV 10 LET GRLL (INQ 101) LET GRUR (INQ 102) LET DX ((X_OF P1)-(X_OF GRLL)) IF (DX<0) LET P1 (P1-(PNT_XY DX 0)) LET P2 (P2-(PNT_XY DX 0)) END_IF LET DX ((X_OF P2)-(X_OF GRUR)) IF (DX>0) LET P1 (P1-(PNT_XY DX 0)) LET P2 (P2-(PNT_XY DX 0)) END_IF TABLE_STATUS "Help_dtab" UNMAP LET N 0 LOOP LET P1 (P1-(PNT_XY 0 1)) LET P2 (P2-(PNT_XY 0 1)) CHANGE_TABLE_SIZE "Help_dtab" P1 P2 INQ_TABLE "Help_dtab" LET Y1 (Y_OF (INQ 103)) LET Y2 (Y_OF (INQ 104)) EXIT_IF ((FRACT ((Y2-Y1)/TSL))=0) EXIT_IF (N=10) LET N (N+1) END_LOOP TABLE_STATUS "Help_dtab" MAP ENABLE_BREAK IF (HELP_TOPIK<>"MOVE_ACCURACY_TABLE_HELP") DISPLAY "You are presently in Help mode" TABLE_STATUS "Help_dtab" UNMAP END_IF ENABLE_BREAK END_DEFINE DEFINE ACCURACY_MACRO_HELP IF (ACCURACY_HELP_FLAG=1) ACCURACY_HELP "ACCURACY_MACRO" ELSE ACCURACY_MACRO END_IF END_DEFINE DEFINE CHECK_DIMS_HELP IF (ACCURACY_HELP_FLAG=1) ACCURACY_HELP "CHECK_DIMS" ELSE CHECK_DIMS END_IF END_DEFINE DEFINE CANCEL_ACCURACY_HELP IF (ACCURACY_HELP_FLAG=1) ACCURACY_HELP "CANCEL_ACCURACY" ELSE CANCEL_ACCURACY END_IF END_DEFINE DEFINE SHOW_GOOD_GEOMETRY_ACCURACY_HELP IF (ACCURACY_HELP_FLAG=1) ACCURACY_HELP "SHOW_GOOD_GEOMETRY_ACCURACY" ELSE SHOW_GOOD_GEOMETRY_ACCURACY END_IF END_DEFINE DEFINE SHOW_OK_GEOMETRY_ACCURACY_HELP IF (ACCURACY_HELP_FLAG=1) ACCURACY_HELP "SHOW_OK_GEOMETRY_ACCURACY" ELSE SHOW_OK_GEOMETRY_ACCURACY END_IF END_DEFINE DEFINE SHOW_BAD_GEOMETRY_ACCURACY_HELP IF (ACCURACY_HELP_FLAG=1) ACCURACY_HELP "SHOW_BAD_GEOMETRY_ACCURACY" ELSE SHOW_BAD_GEOMETRY_ACCURACY END_IF END_DEFINE DEFINE SHOW_GOOD_DIM_ACCURACY_HELP IF (ACCURACY_HELP_FLAG=1) ACCURACY_HELP "SHOW_GOOD_DIM_ACCURACY" ELSE SHOW_GOOD_DIM_ACCURACY END_IF END_DEFINE DEFINE SHOW_OK_DIM_ACCURACY_HELP IF (ACCURACY_HELP_FLAG=1) ACCURACY_HELP "SHOW_OK_DIM_ACCURACY" ELSE SHOW_OK_DIM_ACCURACY END_IF END_DEFINE DEFINE SHOW_BAD_DIM_ACCURACY_HELP IF (ACCURACY_HELP_FLAG=1) ACCURACY_HELP "SHOW_BAD_DIM_ACCURACY" ELSE SHOW_BAD_DIM_ACCURACY END_IF END_DEFINE DEFINE MOVE_ACCURACY_TABLE_HELP IF (ACCURACY_HELP_FLAG=1) ACCURACY_HELP "MOVE_ACCURACY_TABLE_HELP" ELSE MOVE_ACCURACY_TABLE END_IF END_DEFINE DEFINE GET_ADJUST_VAL_HELP PARAMETER PARA IF (ACCURACY_HELP_FLAG=1) ACCURACY_HELP "GET_ADJUST_VAL" ELSE GET_ADJUST_VAL PARA END_IF END_DEFINE DEFINE RESET_ACCURACY_DISPLAY_HELP IF (ACCURACY_HELP_FLAG=1) ACCURACY_HELP "RESET_ACCURACY_DISPLAY" ELSE RESET_ACCURACY_DISPLAY END_IF END_DEFINE DEFINE UPDATE_ACCURACY_UNITS_HELP PARAMETER PARA IF (ACCURACY_HELP_FLAG=1) ACCURACY_HELP "UPDATE_ACCURACY_UNITS" ELSE UPDATE_ACCURACY_UNITS PARA END_IF END_DEFINE DEFINE MAKE_HELP_TABLE LOCAL TSL LOCAL NROWS LOCAL C LET TSL (FONT_HEIGHT+1) TRAP_ERROR DELETE_TABLE "Help_dtab" LET C (CHECK_ERROR) LET NROWS (LTAB_ROWS "Help_ltab") TABLE_LAYOUT 'Help_dtab' 'Help_ltab' TABDREY LGHTYEL WIDTH 30 ROWS 2 HORIZONTAL LGHTYEL SOLID COLUMN_LAYOUT TSL ' ' END TABLE_COLUMN 'Help_dtab' COLUMN 1 1 FORMAT 50 BLUE LGHTYEL LEFT 'TABLE_STATUS "Help_dtab" UNMAP' END END_DEFINE CREATE_LTAB "Help_ltab" MAKE_HELP_TABLE