• <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二次開發-Pipe Flow Indicator

            Posted on 2012-05-20 20:18 eryar 閱讀(3174) 評論(0)  編輯 收藏 引用 所屬分類: 4.AVEVA Solution

            PDMS PML二次開發-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久久国产宗和精品1上映| 成人久久久观看免费毛片| 久久国产精品一区| 亚洲精品美女久久久久99小说| 久久久午夜精品福利内容| 精品无码久久久久久尤物| 久久狠狠色狠狠色综合| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 久久久久免费看成人影片| 97久久精品午夜一区二区| 久久伊人中文无码| 四虎国产精品免费久久久| 日韩电影久久久被窝网| 91久久婷婷国产综合精品青草| 亚洲欧美日韩久久精品| 热99re久久国超精品首页| 久久夜色精品国产亚洲| 国产一区二区精品久久凹凸 | 久久精品国产一区二区三区不卡| 久久精品国产亚洲av麻豆图片| 91久久九九无码成人网站| 亚洲中文字幕无码一久久区| 欧美亚洲另类久久综合婷婷| 91精品国产91久久久久久| 久久一日本道色综合久久| 国产精品亚洲综合久久| 久久久久香蕉视频| 激情五月综合综合久久69| 久久精品一区二区国产| 99国产欧美精品久久久蜜芽| 日产精品久久久久久久| 久久精品国产亚洲AV蜜臀色欲| 手机看片久久高清国产日韩| 久久丝袜精品中文字幕| 国产视频久久| 国产精品综合久久第一页| 国产99久久九九精品无码| 久久久精品日本一区二区三区| 激情五月综合综合久久69| 久久亚洲国产成人精品无码区| 一级女性全黄久久生活片免费|