;>>> RemoveDuplicateTextObjects.gxm ;>>> Cleans up your drawing of unwanted duplicated text objects. ;>>> Written by: Vincent Ferrara 2006 ;************************************************** ;>>> Description: ;>>> FIrstly select the area of the drawing you whish to process. ;>>> Secondly you have the option of removing these objects or leave them in the last selection list. ;>>> This macro will filter out duplicate text objects that are identical in every way. ; /MSP,++,MO; /VLC,; /DEL; /LIST,1,-1; ; .SELECT; /SEL,Select Text Lines to process ...; /CEL,F,T,!,A,!,L,!; /VIN,0,$VAL; /IF,$I(0)[LE]1,/GTO,END; /VIN,1,$I(0)+1; /VIN,3,0; /VIN,4,0; /VIN,23,1; /PMT,3,'[ESC] to Cancel',#; /SYS,T,H,/VIN,10,$VAL; /SYS,T,M,/VIN,11,$VAL; /SYS,T,S,/VIN,12,$VAL; /SYS,T,D,/VIN,13,$VAL; /VRL,1,$I(10)*3600+$I(11)*60+$I(12)+($I(13)/100); ; .LOOP; /IF,$DERR[EQ]-2,/GTO,END; /VIN,1,$I(1)-1; /IF,$I(1)[EQ]1,/GTO,END; /VIN,3,100-(($I(1)/$I(0))*100); /SYS,T,H,/VIN,14,$VAL; /SYS,T,M,/VIN,15,$VAL; /SYS,T,S,/VIN,16,$VAL; /SYS,T,D,/VIN,17,$VAL; /VRL,2,$I(14)*3600+$I(15)*60+$I(16)+($I(17)/100); /VIN,20,$R(2)-$R(1); /VRL,3,$I(20)/60; /VIN,21,$R(3); /VRL,4,$R(3)-$I(21); /VIN,22,$R(4)*60; /VIN,30,$I(0)-$I(1); /VRL,7,$I(30)/$I(20); /VIN,23,(100-$I(3))/($I(3)/$I(20)); /VRL,5,$I(23)/60; /VIN,24,$R(5); /VRL,6,$R(5)-$I(24); /VIN,25,$R(6)*60; /PMT,1,'Processing ',$I(30),' out of ',$I(0),' Text objects (',,$I(3),' %),%65,'Duplicate Text Lines found:_',[,$I(4),],#; /PMT,2,'Time taken > ',$I(21),' min ',$I(22),' sec ',,$R(7),' Text objects/sec',%65,'Time remaining > ',$I(24),' min ',#; /IF,$I(24)[LT]1,/PMT,2,'Time taken > ',$I(21),' min ',$I(22),' sec ',,$R(7),' Text objects/sec',%65,'Time remaining > ',$I(25),' sec',#; /EEX,$I(1),P,1,A,/STR,C,$PNTX,$PNTY,#,/VST,20,$STR; Reference point /EEX,$I(1),V,1,A,/VST,1,$STR; X-scale /EEX,$I(1),V,2,A,/VST,2,$STR; Y-scale /EEX,$I(1),V,3,A,/VST,3,$STR; Rotation /EEX,$I(1),V,4,A,/VST,4,$STR; Slant /EEX,$I(1),V,5,A,/VST,5,$STR; Between-Character Spacing /EEX,$I(1),V,6,A,/VST,6,$STR; Font Name /EEX,$I(1),V,7,A,/VST,7,$STR; Between-Line Spacing /EEX,$I(1),V,8,A,/VST,8,$STR; String /EEX,$I(1),V,9,A,/VST,9,$STR; Length of String /EEX,$I(1),V,10,A,/VST,10,$STR; Justification /EEX,$I(1),V,11,A,/VST,11,$STR; Number of Lines /EEX,$I(1),Y,!,/VST,12,$STR; Layer /EEX,$I(1),C,!,/VST,13,$VAL; Color /EEX,$I(1),T,!,/VST,14,$VAL; Line type /EEX,$I(1),W,!,/VST,15,$VAL; Line width /STR,C,$S(1),$S(2),$S(3),$S(4),$S(5),$S(6),$S(7),$S(8),$S(9),$S(10),$S(11),$S(12),$S(13),$S(14),$S(15),#,/VST,16,$STR; /VIN,2,$I(1); ; .COMPARE; /VIN,2,($I(2)-1); /IF,$I(2)[EQ]0,/GTO,LOOP; /EEX,$I(2),P,1,A,/STR,C,$PNTX,$PNTY,#,/VST,21,$STR; Reference point /IF,$S(20)[NE]$S(21),/GTO,COMPARE; /EEX,$I(2),V,1,A,/VST,1,$STR; X-scale /EEX,$I(2),V,2,A,/VST,2,$STR; Y-scale /EEX,$I(2),V,3,A,/VST,3,$STR; Rotation /EEX,$I(2),V,4,A,/VST,4,$STR; Slant /EEX,$I(2),V,5,A,/VST,5,$STR; Between-Character Spacing /EEX,$I(2),V,6,A,/VST,6,$STR; Font Name /EEX,$I(2),V,7,A,/VST,7,$STR; Between-Line Spacing /EEX,$I(2),V,8,A,/VST,8,$STR; String /EEX,$I(2),V,9,A,/VST,9,$STR; Length of String /EEX,$I(2),V,10,A,/VST,10,$STR; Justification /EEX,$I(2),V,11,A,/VST,11,$STR; Number of Lines /EEX,$I(2),Y,!,/VST,12,$STR; Layer /EEX,$I(2),C,!,/VST,13,$VAL; Color /EEX,$I(2),T,!,/VST,14,$VAL; Line type /EEX,$I(2),W,!,/VST,15,$VAL; Line width /STR,C,$S(1),$S(2),$S(3),$S(4),$S(5),$S(6),$S(7),$S(8),$S(9),$S(10),$S(11),$S(12),$S(13),$S(14),$S(15),#,/VST,17,$STR; /IF,$S(16)[EQ]$S(17),/LIST,1,$I(1),/GTO,DONE; /GTO,COMPARE; ; .DONE; /VIN,4,$LIST(1); /GTO,LOOP; ; .END; /IF,$I(4)[EQ]0,/BEEP; /PMT,1,'Duplicate Text Lines found:_',[,$I(4),],#; /PMT,2,'Time taken > ',$I(21),' min ',$I(22),' sec ',,$R(7),' Text objects/sec',#; /IF,$I(4)[EQ]0,/PMT,3,'[RET] to Try Again [ESC] Cancel',#,/CIN; /IF,$I(4)[EQ]0,/IF,$VAL[EQ]-1,/GTO,SELECT; /IF,$I(4)[EQ]0,/IF,$VAL[EQ]-2,/GTO,EXIT; /PMT,3,'[RET] to Remove from Drawing [ESC] to Store in Last Selected List',#,/CIN; /IF,$VAL[EQ]-1,ER,$LIST(1),!,RD; /IF,$VAL[EQ]-2,SE,$LIST(1),!; ; .EXIT; /MSP,--,PU;