• <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

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

            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
            ---------------------------------------------------------------------------------
            久久中文字幕无码专区| 国产精品视频久久久| 久久精品国产精品亚洲下载| 一本一道久久a久久精品综合| 久久人爽人人爽人人片AV| 伊人久久精品线影院| 久久久久久亚洲精品影院| 午夜久久久久久禁播电影| 国内精品免费久久影院| 狠狠色婷婷久久一区二区| 久久精品国产欧美日韩| 97精品依人久久久大香线蕉97 | 一本色综合久久| 久久久噜噜噜www成人网| 欧美亚洲国产精品久久| 精品久久久久久无码专区不卡| 亚洲愉拍99热成人精品热久久| 久久久久久久综合日本亚洲| 久久国产色AV免费看| 日韩AV毛片精品久久久| 伊人色综合久久天天| 一本色道久久综合亚洲精品| 久久久免费观成人影院| 久久久久成人精品无码中文字幕| 亚洲国产成人精品无码久久久久久综合| 久久久久久久97| 综合人妻久久一区二区精品| 无码任你躁久久久久久| 精品无码久久久久久久久久| 色综合久久久久网| jizzjizz国产精品久久| 国产人久久人人人人爽| 人妻精品久久久久中文字幕69| 国产精品久久久久久久久软件| 久久精品国产亚洲AV影院| 综合久久国产九一剧情麻豆| 中文字幕无码久久精品青草 | 久久91精品国产91| 久久青青草视频| 漂亮人妻被中出中文字幕久久| 色99久久久久高潮综合影院|