• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            eryar

            PipeCAD - Plant Piping Design Software.
            RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
            posts - 603, comments - 590, trackbacks - 0, articles - 0

            PDMS PML二次開發(fā)-Pipe Flow Indicator


            AVEVA PDMS中管路流向顯示程序:

            pipe flow

             

            PML程序源代碼如下:

            ---------------------------------------------------------------------------------
            --
            -- (c) Copyright 2010 to Current Year 
            -- Shanghai Hoto Petrochemical Engineering Co., Ltd
            -- eryar All rights reserved.
            --
            --  File:          pipeflow.pmlfrm
            --  Type:          Form Definition
            --  Group:         General Application
            --  Keyword:       GEN
            --  Module:        DESIGN
            --
            -- Author:          eryar@163.com
            -- Created:         2010-09-17 15:15
            --
            -- Description:     Indicate pipe media flow direction.
            --
            ---------------------------------------------------------------------------------
            setup form 
            !!pipeflow
                    
            !This.FormTitle         =       'Pipe Flow Indicator'
                    
            !This.Cancelcall        =       '!This.close()'
                    
            !This.FormRevision      =       '1.0v'
             
                    frame .pipeFlowFrame
                            button  .bCE    
            'CE'   
                            para    .ceName                 at      xmax            ymin    width 
            16 line 1
             
                            toggle  .turn   
            'On/Off'        at      xmax            ymin                    
                    exit
                            
            exit
             
            ---------------------------------------------------------------------------------
            --
            -- Method:      pipeflow()
            --
            -- Description:  
            --
            -- Method Type: Function/Procedure
            -- Arguments:
            --   [#] [R/RW] [Data Type] [Description]
            -- Return:
            --   [Data Type] [Description]
            --
            ---------------------------------------------------------------------------------
            define method .pipeflow()
                    
            !this.bCE.callback      =       '!this.getCE()'
                    
            !this.turn.callback     =       '!this.apply()'
            endmethod
            ---------------------------------------------------------------------------------
            --
            -- Method:      getCE()
            --
            -- Description:  get current element for indicate pipe media flow
            --
            -- Method Type: Function/Procedure
            -- Arguments:
            --   [#] [R/RW] [Data Type] [Description]
            -- Return:
            --   [Data Type] [Description]
            --
            ---------------------------------------------------------------------------------
            define method .getCE()
                    
            --
                    
            !currentElement =       ce
                    
            !elementName    =       !currentElement.Name
                    
            !this.ceName.val=       !elementName
             
            endmethod
            ---------------------------------------------------------------------------------
            --
            -- Method:      apply()
            --
            -- Description:  
            --
            -- Method Type: Function/Procedure
            -- Arguments:
            --   [#] [R/RW] [Data Type] [Description]
            -- Return:
            --   [Data Type] [Description]
            --
            ---------------------------------------------------------------------------------
            define method .apply()
                    
            -- remember where we came in
                    
            !memory =       ce
                    
                    
            -- turn on pipe media flow
                    
            if(!this.turn.val) then
                            
            -- collect all branches 
                            var 
            !branches collect all bran for $!this.ceName.val
                            
                            
            do !i index !branches
                                    
            -- handle every branch
                                    
            !branch =       !branches[$!i].dbref()
                                    
            !hPos   =       !branch.hPosition
                                    
            !tPos   =       !branch.tPosition
                                    
            !hDir   =       !branch.hDirection
                                    
            !tDir   =       !branch.tDirection
                                    
            !hBore  =       !branch.hBore
                                    
            !tDir   =       !tDir.Opposite()
                                    
            !arrow  =       !hBore.real() * 2
             
                                    
            -- add two aid arrow at head and tail
                                    AID ARROW AT $
            !hPos DIR $!hDir HEIGHT $!arrow PROPORTION 0.35
                                    AID ARROW AT $
            !tPos DIR $!tDir HEIGHT $!arrow PROPORTION 0.35
             
                                    
            -- add aid arrow on elbow
                                    var 
            !elbows collect all elbow for $!branch
                                    
            do !j index !elbows
                                            
            !elbow          =       !elbows[$!j].dbref()
                                            
            !arrive         =       !elbow.Arrive
                                            
            !leave          =       !elbow.Leave
                                            $
            !elbow
                                            var 
            !arrivePos  P$!<arrive>     position wrt world
                                            handle (
            2,201)
                                                    
            -- element does not have attribute PPOS
                                                    skip
                                            endhandle
                                            var 
            !leavePos   P$!<leave>      position wrt world
                                            handle (
            2,201)
                                                    
            -- element does not have attribute PPOS
                                                    skip
                                            endhandle
                                            var 
            !arriveDir  P$!<arrive>     direction wrt world
                                            var 
            !leaveDir   P$!<leave>      direction wrt world
                                            
            !arriveDir      =       !arriveDir.Direction().Opposite().string()
                                            
            --
                                            AID ARROW AT $
            !arrivePos DIR $!arriveDir  HEIGHT $!arrow PROPORTION 0.35
                                            AID ARROW AT $
            !leavePos  DIR $!leaveDir   HEIGHT $!arrow PROPORTION 0.35
                                    enddo
             
                                    
            -- add aid arrow on valve
                                    var 
            !valves collect all valve for $!branch
                                    
            do !h index !valves
                                            
            !valve  =       !valves[$!h].dbref()
                                            
            !vPos   =       !valve.Position
                                            
            --
                                            AID ARROW AT $
            !vPos DIR $!arriveDir  HEIGHT $!hBore PROPORTION 0.8
                                    enddo
             
                                    
            -- add aid arrow on tubi
                                    var 
            !tubes collect all tubi for $!branch
                                    
            do !k index !tubes
                                            
            !tube   =       !tubes[$!k].dbref()
                                            
            !itsLen =       !tube.itLength
                                            
            !itsPos =       !tube.itPosition
                                    enddo
                            enddo
                    
            else
                            
            -- turn off pipe media flow, clear all aid arrow
                            AID CLEAR ALL
                    endif
             
                    
            -- go back 
                    
            !!ce    =       !memory
            endmethod
            ---------------------------------------------------------------------------------
            --
            -- Method:      close()
            --
            -- Description:  
            --
            -- Method Type: Function/Procedure
            -- Arguments:
            --   [#] [R/RW] [Data Type] [Description]
            -- Return:
            --   [Data Type] [Description]
            --
            ---------------------------------------------------------------------------------
            define method .close()
                    
            -- after close the form, clear all aid arrow
                    AID CLEAR ALL
            endmethod
            ---------------------------------------------------------------------------------
            人妻精品久久久久中文字幕| 日韩人妻无码精品久久久不卡| 国产精品青草久久久久福利99| 久久午夜电影网| 亚洲AⅤ优女AV综合久久久| 亚洲av日韩精品久久久久久a| 国产亚洲美女精品久久久久狼| 久久久久噜噜噜亚洲熟女综合 | 一级做a爰片久久毛片看看| 亚洲AV乱码久久精品蜜桃| 伊人久久综在合线亚洲2019| 久久精品综合网| 久久精品国产亚洲7777| 久久国产精品无码HDAV| 国产精品亚洲综合久久| 国产国产成人久久精品| 精品综合久久久久久888蜜芽| 色悠久久久久久久综合网| 久久不射电影网| 久久精品人人做人人妻人人玩| 久久久无码精品亚洲日韩蜜臀浪潮| 色综合合久久天天综合绕视看| 久久综合久久自在自线精品自| 一本一本久久aa综合精品| 久久综合亚洲鲁鲁五月天| 2021最新久久久视精品爱| 亚洲国产成人久久一区WWW| 久久精品国产99久久久香蕉| 777久久精品一区二区三区无码| 成人妇女免费播放久久久| 国产精品无码久久综合| 久久精品人人做人人爽97 | 欧洲成人午夜精品无码区久久 | 久久99亚洲网美利坚合众国| 亚洲精品综合久久| 亚洲国产成人精品91久久久 | 国产成人久久激情91| 久久国产欧美日韩精品| 久久精品国产精品国产精品污 | 亚洲精品无码久久毛片| 麻豆精品久久久久久久99蜜桃|