• <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 閱讀(3191) 評論(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| 日韩亚洲国产综合久久久| 久久久久久久波多野结衣高潮 | 亚洲精品乱码久久久久久自慰 | 久久久精品人妻无码专区不卡 | 久久香蕉超碰97国产精品| 国产午夜免费高清久久影院| 亚洲狠狠久久综合一区77777| 久久丝袜精品中文字幕| 91久久精品91久久性色| 青青热久久国产久精品| 久久久久亚洲Av无码专| 久久综合伊人77777| 国产69精品久久久久9999| 亚洲AV无码久久精品色欲| 青青久久精品国产免费看| 国产精品内射久久久久欢欢| 久久精品国产第一区二区三区| 久久久中文字幕日本| 91精品国产综合久久香蕉| 99久久99这里只有免费费精品 | 久久夜色精品国产亚洲| 久久综合给合久久国产免费| 精品久久久一二三区| 久久久免费观成人影院| 国产福利电影一区二区三区,免费久久久久久久精 | 久久精品毛片免费观看| 久久精品国产亚洲AV忘忧草18| 国产成人香蕉久久久久| 嫩草影院久久99| 国产成人精品久久亚洲| 一本大道久久a久久精品综合| avtt天堂网久久精品| 久久国产高清字幕中文| 久久99国产精一区二区三区 | 日产精品久久久久久久| 久久人人爽人人爽人人片AV东京热 | 亚洲国产精品成人久久蜜臀| 久久精品无码专区免费|