• Hi,

    I need to check the centre-line spacings between a multitude of pipe runs on a number of piperacks.

    Is there a way of doing this without measuring each pipe route or running clasher?

    (I'm working for a client who has stipulated late on in a project that we run lines set distances apart from each other.)

    Cheers,

    Dave.
  • ID@
    VAR !REF REF
    MM BORE
    VAR !APSPEC PSPEC OF PIPE
    VAR !ALBOO LBORE
    !ABO = !ALBOO.REAL()
    VAR !AP PL OD
    !PL = !AP.REAL() / 2

    IF(INTH GE 0) THEN
    !AINSUL = INTH / 2
    ELSEIF(INTHEQ 0) THEN
    !AINSUL = 0
    ENDIF

    ID@
    VAR !BREF REF
    ALPHA REQ CLEAR
    MM BORE
    VAR !BPSPEC PSPEC OF PIPE
    VAR !BLBOO LBORE
    !BBO = !BLBOO.REAL()
    VAR !BP PL OD
    !BPL = !BP.REAL() / 2

    IF(INTH GE 0) THEN
    !BINSUL = INTH / 2
    ELSEIF(INTHEQ 0) THEN
    !BINSUL = 0
    ENDIF

    IF(MATCHWILD(NAME OF SPREF OF $!REF,'*B*')EQ T)THEN
    !ARATING = '150'
    ELSEIF(MATCHWILD(NAME OF SPREF OF $!REF,'*D*')EQ T)THEN
    !ARATING = '300'
    ELSEIF(MATCHWILD(NAME OF SPREF OF $!REF,'*F*')EQ T)THEN
    !ARATING = '600'
    ELSEIF(MATCHWILD(NAME OF SPREF OF $!REF,'*G*')EQ T)THEN
    !ARATING = '900'
    ELSEIF(MATCHWILD(NAME OF SPREF OF $!REF,'*H*')EQ T)THEN
    !ARATING = '1500'
    ELSEIF(MATCHWILD(NAME OF SPREF OF $!REF,'*J*')EQ T)THEN
    !ARATING = '2500'
    ELSE
    !ARATING = ''
    ENDIF

    VAR !A COLL ALL SPCO WITH SPRA PBOR EQ $!ALBOO AND (MATCHW(STYPE,'*Flange*') EQ T) AND (MATCHW(STYPE,'*Reducing*') EQ F) AND (MATCHW(STYPE,'*Blind*') EQ F) AND (MATCHW(DTXR,'*$!ARATING*') EQ T) FOR $!APSPEC
    DO !B FROM 1 TO !A.SIZE()
    $!A[$!B]
    !APARAMF = PARAM[7]
    !APARAM = PARAM[7] / 2
    ENDDO

    !APIPE = $!APARAM + $!AINSUL

    IF(MATCHWILD(NAME OF SPREF OF $!BREF,'*B*')EQ T)THEN
    !BRATING = '150'
    ELSEIF(MATCHWILD(NAME OF SPREF OF $!BREF,'*D*')EQ T)THEN
    !BRATING = '300'
    ELSEIF(MATCHWILD(NAME OF SPREF OF $!BREF,'*F*')EQ T)THEN
    !BRATING = '600'
    ELSEIF(MATCHWILD(NAME OF SPREF OF $!BREF,'*G*')EQ T)THEN
    !BRATING = '900'
    ELSEIF(MATCHWILD(NAME OF SPREF OF $!BREF,'*H*')EQ T)THEN
    !BRATING = '1500'
    ELSEIF(MATCHWILD(NAME OF SPREF OF $!BREF,'*J*')EQ T)THEN
    !BRATING = '2500'
    ELSE
    !BRATING = ''
    ENDIF

    VAR !C COLL ALL SPCO WITH SPRA PBOR EQ $!BLBOO AND (MATCHW(STYPE,'*Flange*') EQ T) AND (MATCHW(STYPE,'*Reducing*') EQ F) AND (MATCHW(STYPE,'*Blind*') EQ F) AND (MATCHW(DTXR,'*$!BRATING*') EQ T) FOR $!BPSPEC
    DO !D FROM 1 TO !C.SIZE()
    $!C[$!D]
    !BPARAMF = PARAM[7]
    !BPARAM = PARAM[7] / 2
    ENDDO
    !BPIPE = $!BPARAM + $!BINSUL

    !CLEAREANCE = !this.clearDIST.val

    !space = $!APIPE + $!CLEAREANCE + $!BPIPE

    !SPC =!SPACE.REAL()
    !THIS.DIST.VAL = |$!SPC|
    ALPHA REQ CLEAR
    $P Actual $!space
    $P Round off $!SPC