You are on page 1of 5

TRACE OFF

INCH BORE
!todate = '00-00-00'
!todate = !!shidate(!todate)
!todate = !todate.replace('/', '-').trim() + '.TXT'

--VAR !PIPELST COLL ALL BOX FOR /COG_VOLUME


--!infile=OBJECT FILE('c:/temp/cog/list.txt')
--!PIPELST=!INFILE.READFILE()
--VAR !PIPELST COLL ALL PIPE WITH ISNAMED EQ TRUE AND MATCHW(NAME OF
SITE,'*STUDY*') EQ FALSE AND MATCHW(NAME OF SITE,'*PN*') EQ FALSE AND DBNUM LE 5000
and PURP OF SITE EQ 'L' or PURP OF SITE EQ 'K'
--VAR !PIPELST COLL ALL PIPE WITH PURP OF SITE EQ 'L' AND ISNAMED EQ TRUE AND
MATCHW(NAME OF SITE,'*PN*') EQ TRUE AND DBNUM LE 5000
--VAR !PIPELST COLL ALL PIPE WITH PURP OF SITE EQ 'L' AND ISNAMED EQ TRUE for ce
--VAR !PIPELST EVAL(NAME) FOR ALL PIPE with MATCHW(NAME,'*FPU*') EQ TRUE FOR CE
--VAR !PIPELST EVAL(NAME) FOR ALL PIPE FOR CE

var !items coll all site with (matchw(name,'*N') eq true OR matchw(name,'*5') eq


true or matchw(name,'*6') eq true or matchw(name,'*S') eq true OR matchw(name,'*C')
eq true OR matchw(name,'*T') eq true OR matchw(name,'*B') eq true) and dbnum LT
3000

VAR !TOTAL (ARRAYSIZE (!PIPELST))


DO !A FROM 1 TO (ARRAYSIZE (!PIPELST))
WRITE |PROCESSING $!A OUT OF $!TOTAL|
CE $!PIPELST[$!A]
!PNAM = NAMN
-- To assign the plot file name
VAR !DSGDRG namn
IF OCCURS(|$!DSGDRG|,|"|) EQ 1 THEN
!DSGDRG = !DSGDRG.REPLACE(|"|,||)
ENDIF
IF OCCURS(|$!DSGDRG|,|/|) EQ 1 THEN
!DSGDRG = !DSGDRG.REPLACE(|/|,||)
IF OCCURS(|$!DSGDRG|,|/|) EQ 1 THEN
!DSGDRG = !DSGDRG.REPLACE(|/|,||)
ENDIF
ENDIF
VAR !ISONO |$!DSGDRG|
IF (|$!ISONO| EQ |unset|) THEN
GOLABEL /NEXTFILE
ENDIF
VAR !FILENAME |$!ISONO|
!filename = !filename.replace('_','-')
!filename = !filename.replace('/','-')
!sitnam = namn of SITE
!ANAM = SUBSTR(!SITNAM,2,2)
!FPIPE = SUBSTR(!SITNAM,4,1)
!oufile2 = object file('C:\TEMP\COG\PIPEWEIERROR.LOG')
!oufile2.open('append')
if ('$!FPIPE' EQ 'F') THEN
!oufile1 = object file('C:\TEMP\COG\$!FILENAME-FUT')
!oufile1.open('over')
ELSE

-- OUTPUT FILENAME IS HERE


!oufile = object file('C:\TEMP\COG\PipeCOG_withArrLea_$!todate')
!oufile.open('append')
ENDIF

--HEADER OUTPUT FILE


!oufile.writerecord(| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Centre of Gravity|)
!oufile.writerecord(|Line Number ~ Spec ~ WBS ~ Type ~ Description ~
Size1(inch) ~ Size2(inch) ~ Quantity ~ Unit Weight(kg) ~ Total Weight(kg) ~ COG ~
Arrive Coord ~ Leave Coord ~ Status|)

--VAR !BRANMEM COLL ALL BRAN MEM with TYPE NE 'ATTA' AND TYPE NE 'INST' AND
TYPE NE 'WELD' AND TYPE NE 'GASK' EXCLUSIVE WITHIN VOL CE
VAR !BRANMEM COLL ALL BRAN MEM with TYPE NE 'ATTA' AND TYPE NE 'INST' AND
TYPE NE 'WELD' AND TYPE NE 'GASK' FOR CE
DO !I FROM 1 TO (ARRAYSIZE (!BRANMEM))
CE $!BRANMEM[$!I]
$(
if (matchw('$!sitnam','*STUDY*') EQ TRUE) THEN
SKIP
ENDIF

var !mto mtoc


if(|$!mto| EQ 'OFF') THEN
WRITE |Some components have MTOC off in this pipe $!PIPELST[$!A]|
!OUFILE2.WRITERECORD(|Some components have MTOC off in this pipe $!
PIPELST[$!A]|)
SKIP
ENDIF
$)
!PIPSPEC = NAME OF SPEC OF SPRE
HANDLE(2,115)(2,107)
WRITE |$!PNAM SPEC REF PROBLEM|
!OUFILE2.WRITERECORD(|$!PNAM SPEC REF PROBLEM|)
SKIP
ENDHANDLE

--if (matchw('$!ZONnam','*FUTURE') EQ TRUE) OR (matchw('$!Pnam','*FTR')


EQ TRUE)THEN
if ('$!FPIPE' EQ 'F') THEN
!FFLAG = |YES|
ELSE
!FFLAG = |NO|
ENDIF
!SPWLNAM = NAME OF SPWL OF SPRE

VAR !TYPE TYPE


VAR !ISONO |$!PLOTFILE|
HANDLE ANY
VAR !ISONO |unset|
ENDHANDLE
VAR !DTXR DTXR
HANDLE ANY
VAR !DTXR |DETAIL NOT FOUND|
ENDHANDLE
-- VAR !MTXX MTXX
-- HANDLE ANY
-- VAR !MTXX |MATERIAL NOT FOUND|
-- ENDHANDLE
PREC VAR 2 DP VAR !ARRSZ PA BORE
handle(2,201)
WRITE |$!FILENAME .....|
--skip
endhandle
PREC VAR 2 DP VAR !LEASZ PL BORE
HANDLE ANY
VAR !LEASZ |$!ARRSZ|
IF (|$!TYPE| EQ |TUBI|) THEN
PREC VAR 1 DP VAR !QTY ITLE OF $!BRANMEM[$!I]
-- PREC VAR 1 DP VAR !QTY ($!QTY / 1000)
ELSE
VAR !LEASZ |PROB|
ENDIF
ENDHANDLE

IF (|$!TYPE| EQ |TUBI|) THEN


PREC VAR 1 DP VAR !QTY ITLE OF $!BRANMEM[$!I]
!TQTY = !QTY.REAL()
if (!TQTY lt 1) then
WRITE |$!PIPELST[$!A] has 0 mm spools .....|
!OUFILE2.WRITERECORD(|$!PIPELST[$!A] has 0 mm spools .....|)
skip
endif
VAR !TWEIGHT UWEIGHT OF CMPREF OF SPREF

HANDLE(2,222) (2,201) (2,102) (2,114) (2,107)


-- SKIP
!OUFILE2.WRITERECORD(|$!BRANMEM[$!I] UNIT WEIGHT NOT SET|)
!CWEIGHT = 1
ENDHANDLE

-- !CWEIGHT = (UWEIGHT OF CMPREF OF SPREF) * (!TQTY)


IF (OCCURS('$!TWEIGHT','(') EQ 1) THEN
!TWEIGHT = !TWEIGHT.AFTER('(').BEFORE(')')
ENDIF
IF OCCURS(|$!SPWLNAM|,|220800|) EQ 1 THEN
!CWEIGHT = (!TWEIGHT.REAL() / 1000) * (!TQTY)
HANDLE(2,441)
!OUFILE2.WRITERECORD(|$!BRANMEM[$!I] UNIT WEIGHT NOT SET|)
!CWEIGHT = 1
ENDHANDLE
ELSE
!CWEIGHT = !TWEIGHT.REAL() * (!TQTY)
HANDLE(2,441)
!OUFILE2.WRITERECORD(|$!BRANMEM[$!I] UNIT WEIGHT NOT SET|)
!CWEIGHT = 1
ENDHANDLE
ENDIF

!cuweight = !TWEIGHT.REAL()
HANDLE(2,441)
!OUFILE2.WRITERECORD(|$!BRANMEM[$!I] UNIT WEIGHT NOT SET|)
!CUWEIGHT = 0
ENDHANDLE
ELSE
VAR !COWEIGHT CWEIGHT OF CMPREF OF SPREF

HANDLE(2,222) (2,201) (2,102) (2,114) (2,107) (2,441) (2,751)


-- SKIP
!OUFILE2.WRITERECORD(|$!BRANMEM[$!I] UNIT WEIGHT NOT SET|)
!CWEIGHT = 1
ENDHANDLE

!CWEIGHT = !COWEIGHT.AFTER('(').BEFORE(')').real()

HANDLE(2,441) (2,751)
!OUFILE2.WRITERECORD(|$!BRANMEM[$!I] UNIT WEIGHT NOT SET|)
!CWEIGHT = 1
ENDHANDLE

!cuweight = !cweight

ENDIF
IF ((|$!TYPE| EQ |TEE|) OR (|$!TYPE| EQ |OLET|)) THEN
VAR !LEASZ P3 BORE
HANDLE ANY
VAR !LEASZ P2 BORE
ENDHANDLE
VAR !ARR ARRIVE
IF (|$!ARR| EQ |3|) THEN
VAR !ARRSZ P1 BORE
ENDIF
VAR !ARRCR P1 POS
VAR !LEACR P2 POS
ENDIF
IF (|$!TYPE| NE |TUBI|) THEN
VAR !COFG GCOFG WRT /*
HANDLE ANY
WRITE |$!FILENAME .....|
-- SKIP
ENDHANDLE
VAR !QTY (1)
VAR !ARRCR P1 POS
VAR !LEACR P2 POS
ELSE
VAR !REFNO REFNO
CE $!REFNO
VAR !PLPOS PL POS WRT /*
HANDLE ANY
VAR !PLPOS HPOS WRT /*
HANDLE(2,201)
WRITE |$!PNAM SPEC REF PROBLEM|
SKIP
ENDHANDLE
ENDHANDLE
!J = ($!I + 1)
VAR !PANEXPOS PA POS OF NEXT WRT /*
HANDLE(2,252)
VAR !PANEXPOS PA POS OF $!BRANMEM[$!J] WRT /*
ELSEHANDLE(2,201)
VAR !PANEXPOS TPOS WRT /*
ELSEHANDLE(2,113)
VAR !NEWTP TYPE
IF (|$!NEWTP| EQ |BRAN|) THEN
VAR !PANEXPOS PA POS OF $!BRANMEM[$!J] WRT /*
HANDLE(2,752)
VAR !PANEXPOS TPOS WRT /*
ENDHANDLE
ELSE
VAR !PANEXPOS TPOS OF OWN WRT /*
ENDIF
ELSEHANDLE ANY
VAR !PANEXPOS TPOS OF OWN WRT /*
ENDHANDLE
!MIDPOINT = !PLPOS.POSITION().MIDPOINT(!PANEXPOS.POSITION())
VAR !COFG |$!MIDPOINT|
!COFG = !COFG.BEFORE(| WRT|)
VAR !ARRCR |$!PLPOS|
VAR !LEACR |$!PANEXPOS|
ENDIF
-- WRITEFILE $!COFGFILE |$!ISONO ~ $!ANAM ~ $!TYPE ~ $!ARRSZ ~ $!
LEASZ ~ $!DTXR ~ $!QTY ~ $!COFG ~ $!CWEIGHT|
IF($!FFLAG EQ FALSE) THEN
!oufile.writerecord(|$!PNAM ~ $!PIPSPEC ~ $!ANAM ~ $!TYPE ~ $!DTXR ~ $!
ARRSZ ~ $!LEASZ ~ $!QTY ~ $!CUWEIGHT ~ $!CWEIGHT~ $!COFG ~ $!ARRCR ~ $!LEACR|)
ELSE
!oufile1.writerecord(|$!PNAM ~ $!PIPSPEC ~ $!ANAM ~ $!TYPE ~ $!DTXR ~
$!ARRSZ ~ $!LEASZ ~ $!QTY ~ $!CUWEIGHT ~ $!CWEIGHT~ $!COFG|)
ENDIF
ENDDO
-- CLOSEFILE $!COFGFILE

if ('$!FPIPE' EQ 'F') THEN


!oufile1.close()
ELSE
!oufile.close()
ENDIF
!oufile2.close()
LABEL /NEXTFILE
ENDDO

You might also like