* Delete unused details,symbols,views,sets, (C) Ema 2002 LM:30.05.2002 INTERNAL INTEGER I FORMAT 3,N,ER,J,K,L,STK,END,TYP,VI,SHT,WSP,PLN,SYM,SET,STK1, % III(3)FORMAT 3,SHOW REAL SCALE,ANG,TR(2),CLIP(4) CHAR*35 CEMA INIT ' DELETE UNUSED DET,SYMB,VIEWS,SETS',M(3)INIT % 'VIEW YES' 'SET YES' 'DET YES' PROC LOAD GUEACT 0,ER LABEL MENU MENU 'DELETE',M(1),M(2),M(3),'EXIT' MSG 'SEL MENU, YES:START, NO:EXIT '//CEMA MENU,YES,NO LET I=IRET-1 IF(KODE EQ NO)EXIT IF(KODE EQ YES)THEN GO1 BLOCKIF(KODE EQ MENU)THEN IF(I EQ 0)THEN MENU IF(I EQ 4)EXIT BLOCKIF(M(I)(6:8)EQ 'YES')THEN LET M(I)(6:8)=' NO' ELSE LET M(I)(6:8)='YES' ENDIF ENDIF BRANCH MENU ************************ Delete Empty Views *********************** LABEL GO1 IF(M(1)(6:8)EQ ' NO')THEN GO2 LET I=0 DO LOAD GISVI1 1,0,0,I,VI,END,ER LOAD GIRVIE 1,VI,SHT,WSP,TYP,PLN,J, % SCALE,SYM,ANG,TR,CLIP,SHOW,ER BLOCKIF(END EQ 0)THEN LET J=0 LET N=0 LET K=0 LOAD GISELB 1,PLN,0,K,J,ER LOAD GISELB 1,PLN,K,N,J,ER BLOCKIF(N EQ 0)AND(J NE 0)THEN LET ER=1 LOAD GIVRAS 1,VI,ER IF(ER NE 0)LET I=VI IF(ER EQ 0)LET I=0 IF(ER EQ 0)LET III(1)=III(1)+1 ELSE LET I=VI ENDIF ENDIF WHILE(END EQ 0) ************************ Delete Empty Sets ************************ LABEL GO2 IF(M(2)(6:8)EQ ' NO')THEN GO3 LET I=0 DO LOAD GISSET 1,I,SET,END,ER BLOCKIF(END EQ 0)THEN LET J=0 LET N=0 LOAD GISELS 1,SET,0,N,J,ER BLOCKIF(N EQ 0)AND(J NE 0)THEN LET ER=1 LOAD GIERAS 1,SET,ER IF(ER NE 0)LET I=SET IF(ER EQ 0)LET I=0 IF(ER EQ 0)LET III(2)=III(2)+1 ELSE LET I=SET ENDIF ENDIF WHILE(END EQ 0) ************************ Delete Unused Details and Symbols ******** LABEL GO3 IF(M(3)(6:8)EQ ' NO')THEN GO4 LET I=0 LOAD GUSINI 4,STK,ER DO LOAD GISWSP 1,I,J,TYP,END,ER BLOCKIF(TYP EQ 2)OR(TYP EQ 3)OR(TYP EQ 4)THEN LOAD GIROCC 1,J,STK1,ER BLOCKIF(STK1 EQ 0)OR(ER NE 0)THEN LOAD GUSPUS STK,J,N,ER ELSE LET N=0 LOAD GUSINF STK1,I,N,ER IF(N EQ 0)LOAD GUSPUS STK,J,N,ER ENDIF ENDIF LET I=J WHILE(END EQ 0) LET N=0 LOAD GUSINF STK,I,N,ER LET III(3)=N IF(N NE 0)AND(ER EQ 0)LOAD GISRAS 1,STK,0,ER LET I=0 LOAD GUSINI 4,STK,ER DO LOAD GISWSP 1,I,J,TYP,END,ER BLOCKIF(TYP EQ 2)OR(TYP EQ 3)OR(TYP EQ 4)THEN LOAD GIROCC 1,J,STK1,ER BLOCKIF(STK1 EQ 0)OR(ER NE 0)THEN LOAD GUSPUS STK,J,N,ER ELSE LET N=0 LOAD GUSINF STK1,I,N,ER IF(N EQ 0)LOAD GUSPUS STK,J,N,ER ENDIF ENDIF LET I=J WHILE(END EQ 0) LET N=0 LOAD GUSINF STK,I,N,ER LET III(3)=III(3)-N LET I=0 DO LOAD GISSYM 1,I,J,END,ER BLOCKIF(END EQ 0)THEN LOAD GIERAS 1,J,ER IF(ER NE 0)LET I=J IF(ER EQ 0)LET III(3)=III(3)+1 ENDIF WHILE(END EQ 0) ************************ end ************************************ LABEL GO4 LET M(1)(6:8)=CHCONV(III(1)) LET M(2)(6:8)=CHCONV(III(2)) LET M(3)(6:8)=CHCONV(III(3)) MENU 'DELETED',M(1),M(2),M(3) MSG 'YES:EXIT '//CEMA YES MENU END