亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        VB編程在管線排水量計(jì)算中的應(yīng)用

        2019-04-24 03:23:14李兆崔張為華席曉宋章亮
        中國(guó)科技縱橫 2019年5期
        關(guān)鍵詞:排水量

        李兆崔 張為華 席曉 宋章亮

        摘 要:大口徑單管供運(yùn)行過程中,管線一旦被機(jī)械損傷漏水,甚至爆管,需要快速動(dòng)作維修。在關(guān)閥后的維修一般需要抽水這一重要的工序,而這道工序的時(shí)間長(zhǎng)短決定著搶修成敗的關(guān)鍵。故需要準(zhǔn)確計(jì)算排水量的多少,以確定泵的類型,求得排水用時(shí)。本文采用計(jì)算機(jī)自動(dòng)計(jì)算的辦法,算出排水量的多少,為決策排水模式選用,也為預(yù)先設(shè)計(jì)排水工程具有重要的參考價(jià)值。

        關(guān)鍵詞:排水量;VB編程;爆管

        中圖分類號(hào):TU832 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-2064(2019)05-0032-04

        1 概述

        一般對(duì)管道進(jìn)行維修、維護(hù)要對(duì)管道內(nèi)部水進(jìn)行排空。在管線設(shè)計(jì)中,對(duì)此也做了充分的考慮。理論上,對(duì)管線內(nèi)部水都能通過預(yù)設(shè)排水閥進(jìn)行排空。對(duì)于管線排水,通常排水需要關(guān)閥最上游的閥門和最下游的閥門。關(guān)閉上游是為了水庫(kù)的水不能補(bǔ)入。關(guān)下游閥門是為了不干撓影響下游的用水網(wǎng)絡(luò)。

        為了排空所處位置的管內(nèi)水,譬如該處管爆,或該點(diǎn)故障。首先從故障點(diǎn)所在的管線段逆管線流向追蹤,得到上游第一個(gè)排水閥門后即停止,然后以得到的閥門為出發(fā)點(diǎn)向管線下游追蹤,得到另一個(gè)排水閥門。分別用故障點(diǎn),對(duì)比兩個(gè)閥門,選擇合適的一個(gè),然后再分別向外找到最近的兩個(gè)閘閥并關(guān)閉。最后是從選定的排水閥進(jìn)行自流排水或抽排。

        而在實(shí)際的運(yùn)行中,需要工程師參考圖紙,憑借經(jīng)驗(yàn),統(tǒng)籌考慮,選定方案。而通過該軟件可把整個(gè)管線圖放在一張圖中,并通過任意點(diǎn)擊放水點(diǎn)可自動(dòng)算出排水方量,同時(shí)也依次得出相臨兩個(gè)閥間的排水量。并畫出放水后管內(nèi)水位線,可直接觀察到管道放水最后的效果。便于直接投放顯示,以供實(shí)踐中決策排水的方案。

        2 計(jì)算排水量VB編程參數(shù)

        與排水有關(guān)的管線參數(shù),一是主管道直徑,排水管直徑。管道的樁號(hào)與高程??紤]閘閥對(duì)放水段的區(qū)隔要明確閘閥的樁號(hào)。因?yàn)榕潘_啟排水閥,要明確排水閥的樁號(hào)和高程,排水閥不特殊說明,均安裝在管道的最下部??紤]自流排水要明確排水井的井口高度,如果設(shè)有排水管要明確排水管的管底高程。關(guān)于這個(gè)參數(shù)可實(shí)地測(cè)量以求準(zhǔn)確。同時(shí)要參考地面參數(shù),便是地面的里程與地面高程。以上數(shù)據(jù)在管道設(shè)計(jì)資料中均有體現(xiàn)。無論自流排水還是泵抽排水在實(shí)踐中要考慮與就近的排水系統(tǒng)相聯(lián)接。要避免發(fā)生對(duì)周圍莊稼作物等造成澇災(zāi)。對(duì)重要部位,對(duì)設(shè)計(jì)排水要進(jìn)行專項(xiàng)設(shè)計(jì)和論證。要嚴(yán)格按照排水的結(jié)論成果操作排水。

        對(duì)于該參數(shù)數(shù)據(jù)由于因管線不同而不同,采用常用辦公表格EXCEL作為軟件輸入的數(shù)據(jù)來源。按照要求的格式輸入,存放在要求的目錄之下。由程序直接讀取。

        3 VB程序設(shè)計(jì)

        程序設(shè)計(jì)思路。讀收表格中的管道參數(shù)。進(jìn)行繪制管線、地面線、水面線。算出水平線以下的管道面積。折算成水量長(zhǎng)度。

        利用VB開發(fā)的計(jì)算程序如下:

        第一步,運(yùn)行VB6.0[1]。

        第二步,畫控件。如圖1所示,畫TEXTBOK控件四個(gè),對(duì)應(yīng)的橫比、縱比、樁號(hào)與橫比的積、高程與縱比的積。(縱橫比默認(rèn)值是1,兩個(gè)積值自動(dòng)生成,用于觀測(cè)和引用)。根據(jù)管線的不同可選用不同的比例。畫LABEL標(biāo)簽控件四個(gè),作為TEXTBOK的說明。畫COMMANDBUTTON控件四個(gè),一是顯示管道圖示,二是清屏。用于對(duì)顯示圖的清空。三是對(duì)計(jì)算成果輸出到文件DOC中。四是對(duì)圖示輸出到CAD。由于管道一般都無法在一張圖中顯示,左上角加設(shè)了一個(gè)的水平滾動(dòng)條和一個(gè)豎直滾動(dòng)條可用于對(duì)成圖的漫游觀察。

        第三步,分別以雙擊COMMANDBUTTON便進(jìn)入編程界面,主體程序如圖1:

        第三步,分別以雙擊COMMANDBUTTON便進(jìn)入編程界面,主體程序如下:

        Dim xlApp As Excel.Application

        Dim xlBook As Excel.Workbook

        Dim xlSheet As Excel.Worksheet

        Dim a(500) As Double

        Dim b(500) As Double

        Dim a1(500) As Double

        Dim b1(500) As Double

        Dim a2(500) As Double

        Dim b2(500) As Double

        Dim c(2000) As Double

        Dim d(2000) As Double

        Dim e(550) As Double

        Dim f(550) As Double

        Dim g(550) As Double

        Dim h(550) As Double

        Dim u(500) As Double

        Dim v(500) As Double

        Dim u1(150) As Double

        Dim v1(150) As Double

        Dim u2(150) As Double

        Dim v2(150) As Double

        Private Sub Command2_Click()

        Picture1.Cls

        End Sub

        Private Sub Command6_Click()

        If Text1 = flase Then Text1 = 1

        If Text2 = flase Then Text2 = 1

        Set xlApp = CreateObject("Excel.Application") '創(chuàng)建EXCEL對(duì)象

        Set xlBook = xlApp.Workbooks.Open("c:\water.xls") '打開已經(jīng)存在的EXCEL工件簿文件

        xlApp.Visible = True '設(shè)置EXCEL對(duì)象可見(或不可見)

        Set xlSheet = xlBook.Worksheets("sheet1") '設(shè)置活動(dòng)工作表

        w = xlSheet.Cells(1, 8) + xlSheet.Cells(1, 11)

        For i = 2 To xlSheet.Cells(1, 8) + 1

        a(i - 1) = xlSheet.Cells(i, 1) '.................... ..................

        b(i - 1) = xlSheet.Cells(i, 2)

        Next

        For i = 2 To xlSheet.Cells(1, 9) + 1

        c(i - 1) = xlSheet.Cells(i, 3) '..................... .................

        d(i - 1) = xlSheet.Cells(i, 4)

        Next

        For i = 1 To xlSheet.Cells(1, 8) - 1

        Picture1.Line (a(i) * Text1, 20000 - (b(i) - xlSheet.Cells(2, 7) / 2) * Text2 * 100)-(a(i + 1) * Text1, 20000 - (b(i + 1) - xlSheet.Cells(2, 7) / 2) * Text2 * 100)

        Picture1.Line (a(i) * Text1, 20000 - b(i) * Text2 * 100)-(a(i + 1) * Text1, 20000 - b(i + 1) * Text2 * 100)

        Picture1.Line (a(i) * Text1, 20000 - (b(i) + xlSheet.Cells(2, 7) / 2) * Text2 * 100)-(a(i + 1) * Text1, 20000 - (b(i + 1) + xlSheet.Cells(2, 7) / 2) * Text2 * 100)

        Next i

        For i = 2 To xlSheet.Cells(1, 11) + 1

        u1(i - 1) = xlSheet.Cells(i, 5) '................... ...................

        Next

        For j = 0 To xlSheet.Cells(1, 11)

        For k = xlSheet.Cells(1, 8) To 2 Step -1

        If u1(j) <= a(k) Then v1(j) = b(k) - (a(k) - u1(j)) * (b(k) - b(k - 1)) / (a(k) - a(k - 1))

        Next

        Next j

        For l = 1 To xlSheet.Cells(1, 11)

        Picture1.Circle ((u1(l) * Text1), (20000 - v1(l) * Text2 * 100)), 50 * Text2

        Next l

        For i = 1 To xlSheet.Cells(1, 8)

        a1(i) = a(i)

        b1(i) = b(i)

        Next i

        For j = 1 To xlSheet.Cells(1, 11)

        a1(j + xlSheet.Cells(1, 8)) = u1(j)

        b1(j + xlSheet.Cells(1, 8)) = v1(j)

        Next j

        For i = w To 2 Step -1 '排序

        For j = 1 To i - 1

        If (a1(j) > a1(j + 1)) Then

        t = a1(j): s = b1(j)

        a1(j) = a1(j + 1): b1(j) = b1(j + 1)

        a1(j + 1) = t: b1(j + 1) = s

        End If

        Next j

        Next i

        For i = 2 To xlSheet.Cells(1, 12) + 1

        g(i - 1) = xlSheet.Cells(i, 6) '.................. ....................

        Next

        For j = 1 To xlSheet.Cells(1, 12)

        For k = xlSheet.Cells(1, 8) To 2 Step -1

        If g(j) < a(k) Then h(j) = b(k) - (a(k) - g(j)) * (b(k) - b(k - 1)) / (a(k) - a(k - 1))

        Next

        Next j

        For l = 1 To xlSheet.Cells(1, 12)

        Picture1.Circle ((g(l) * Text1), (20000 - (h(l) - (xlSheet.Cells(2, 7) / 2 + xlSheet.Cells(2, 10) / 2)) * Text2 * 100)), (xlSheet.Cells(2, 10)) * 50 * Text2

        Next l

        For i = 1 To xlSheet.Cells(1, 9) - 1

        Picture1.Line (c(i) * Text1, 20000 - d(i) * Text2 * 100)-(c(i + 1) * Text1, 20000 - d(i + 1) * Text2 * 100)

        Next i

        End Sub

        Private Sub Form_Load()

        Picture1.Move 0, 0

        HScroll1.ZOrder 0

        VScroll1.ZOrder 0

        End Sub

        Private Sub HScroll1_Change()

        Picture1.Left = -(HScroll1.Value / HScroll1.Max) * Picture1.Width

        End Sub

        Private Sub HScroll1_Scroll()

        Picture1.Left = -(HScroll1.Value / HScroll1.Max) * Picture1.Width

        End Sub

        Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

        e(0) = Text3 / Text1

        f(0) = Text4 / Text2

        u(0) = Text3 / Text1

        v(0) = Text4 / Text2

        Call zz

        End Sub

        Private Sub VScroll1_Change()

        Picture1.Top = -(VScroll1.Value / VScroll1.Max) * Picture1.Height

        End Sub

        Private Sub VScroll1_Scroll()

        Picture1.Top = -(VScroll1.Value / VScroll1.Max) * Picture1.Height

        End Sub

        Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

        Cls

        Text3 = X

        Text4 = (20000 - Y) / 100

        End Sub

        Sub zz()

        w = xlSheet.Cells(1, 8) + xlSheet.Cells(1, 11)

        j = 1

        For i = w To 1 Step -1 '賦值到數(shù)組

        If a1(i) <= e(0) Then e(j) = a1(i): f(j) = b1(i): j = j + 1 '把A(i)小于指定點(diǎn)的數(shù)組內(nèi)容賦到E(J)

        Next i

        k = 1

        For i = 1 To w '賦值到數(shù)組

        If a1(i) > u(0) Then u(k) = a1(i): v(k) = b1(i): k = k + 1 '把A(i)大于指定點(diǎn)的數(shù)組內(nèi)容賦到U(K),如果

        Next i

        Picture1.ForeColor = RGB(255, 0, 0) '紅色

        X = 0

        For i = 0 To j - 2 '操作E數(shù)組

        If f(i + 1) < f(i) Then f(i + 1) = f(i)

        If f(i + 1) >= f(i) And f(i + 2) >= f(i + 1) Then f(i + 1) = f(i)

        If f(i + 1) >= f(i) And f(i + 2) >= f(i + 1) And f(i + 3) >= f(i + 2) Then f(i + 1) = f(i)

        Picture1.Line (e(i + 1) * Text1, 20000 - (f(i + 1) - xlSheet.Cells(2, 7) / 2) * Text2 * 100)-(e(i) * Text1, 20000 - (f(i) - xlSheet.Cells(2, 7) / 2) * Text2 * 100)

        Next i

        For i = 0 To k - 2 '操作U數(shù)組

        If v(i + 1) < v(i) Then v(i + 1) = v(i)

        If v(i + 1) >= v(i) And v(i + 2) >= v(i + 1) Then v(i + 1) = v(i)

        If v(i + 1) >= v(i) And v(i + 2) >= v(i + 1) And v(i + 3) >= v(i + 2) Then v(i + 1) = v(i)

        Picture1.Line (u(i + 1) * Text1, 20000 - (v(i + 1) - xlSheet.Cells(2, 7) / 2) * Text2 * 100)-(u(i) * Text1, 20000 - (v(i) - xlSheet.Cells(2, 7) / 2) * Text2 * 100)

        Next i

        For i = j + k - 1 To j + 1 Step -1

        k1 = a1(i - 1)

        q1 = b1(i - 1)

        a1(i) = k1

        b1(i) = q1

        Next i

        a1(j) = e(0)

        If a1(j + 1) = a1(j - 1) Then b1(j) = b1(j - 1)

        If a1(j + 1) <> a1(j - 1) Then b1(j) = b1(j - 1) + (a1(j) - a1(j - 1)) * (b1(j + 1) - b1(j - 1)) / (a1(j + 1) - a1(j - 1))

        i = 1

        a2(j) = e(0)

        b2(j) = f(0)

        For m = j - 1 To 1 Step -1

        a2(i) = e(m)

        b2(i) = f(m)

        i = i + 1

        Next m

        i = i + 1

        For n = 1 To k

        a2(i) = u(n)

        b2(i) = v(n)

        i = i + 1

        Next n

        For i = 1 To j + k - 1

        Picture1.Print a1(i); b1(i); a2(i); b2(i)

        Next i

        Y1 = 0

        Y2 = 0

        For i = 2 To j + k - 1

        If b1(i - 1) >= b2(i - 1) And b1(i) >= b2(i) Then Y1 = Int((b1(i - 1) - b2(i - 1) + (b1(i) - b2(i))) * (a2(i) - a2(i - 1)) / 2) + Y1

        If b1(i - 1) < b2(i - 1) And b1(i) < b2(i) Then Y1 = Y1

        If b1(i - 1) > b2(i - 1) And b1(i) < b2(i) Then Y1 = Int((a2(i) - a2(i - 1)) * (b1(i - 1) - b2(i - 1)) / (b1(i - 1) - b2(i - 1) + b2(i) - b1(i))) + Y1

        If b1(i - 1) < b2(i - 1) And b1(i) > b2(i) Then Y1 = Int((a2(i) - a2(i - 1)) * (b1(i) - b2(i)) / (b2(i - 1) - b1(i - 1) - b2(i) + b1(i))) + Y1

        For i1 = 1 To xlSheet.Cells(1, 11)

        If a1(i) = u1(i1) Then u2(X1) = Y1: X1 = X1 + 1

        Next i1

        Next i

        Picture1.Print ""

        For i = 2 To j + k - 1

        If b1(i - 1) + xlSheet.Cells(2, 7) / 2 * 2 >= b2(i - 1) And b1(i) + 2 * xlSheet.Cells(2, 7) / 2 >= b2(i) Then Y2 = Int((b1(i - 1) + 2 * xlSheet.Cells(2, 7) / 2 - b2(i - 1) + b1(i) + 2 * xlSheet.Cells(2, 7) / 2 - b2(i)) * (a2(i) - a2(i - 1)) / 2) + Y2 If b1(i - 1) + xlSheet.Cells(2, 7) / 2 * 2 < b2(i - 1) And b1(i) + 2 * xlSheet.Cells(2, 7) / 2 < b2(i) Then Y2 = Y2

        If b1(i - 1) + xlSheet.Cells(2, 7) / 2 * 2 > b2(i - 1) And b1(i) + 2 * xlSheet.Cells(2, 7) / 2 < b2(i) Then Y2 = Int((a2(i) - a2(i - 1)) * (b1(i - 1) + 2 * xlSheet.Cells(2, 7) / 2 - b2(i - 1)) / (b1(i - 1) - b2(i - 1) + b2(i) - b1(i))) + Y2

        If b1(i - 1) + xlSheet.Cells(2, 7) / 2 * 2 < b2(i - 1) And b1(i) + 2 * xlSheet.Cells(2, 7) / 2 > b2(i) Then Y2 = Int((a2(i) - a2(i - 1)) * (b1(i) + 2 * xlSheet.Cells(2, 7) / 2 - b2(i)) / (b1(i) - b2(i) + b2(i - 1) - b1(i - 1))) + Y2

        For i1 = 1 To xlSheet.Cells(1, 11)

        If a1(i) = u1(i1) Then v2(X2) = Y2: X2 = X2 + 1

        Next i1

        Next i

        For i = 1 To xlSheet.Cells(1, 11)

        Picture1.Print (v2(i) - u2(i)) - (v2(i - 1) - u2(i - 1))

        Next i

        Picture1.Print Y2 - Y1

        End Sub

        程序編制完成后可進(jìn)行編譯生成可執(zhí)行文件保存。該可執(zhí)行文可以運(yùn)行演示,程序中TEXT1-TEXT2可以輸入相應(yīng)比例。點(diǎn)擊COMMANDBUTTON后便可進(jìn)行相應(yīng)的程序計(jì)算。

        本程序調(diào)試通過,程序運(yùn)行結(jié)果見圖2、3。

        4 結(jié)語

        排水計(jì)算軟件經(jīng)過我公司一年多的試用完善,已基本滿足工作需要。該程序有如下優(yōu)點(diǎn):

        (1)工作效率極大提高。很方便快捷得到所需要的排水?dāng)?shù)據(jù)。

        (2)提高了準(zhǔn)確性。較手工計(jì)算,準(zhǔn)確性提高,避免了不必要的誤差。

        (3)程序的通用性強(qiáng)。只需要修改表格便可以得到對(duì)應(yīng)的相應(yīng)計(jì)算結(jié)果。

        參考文獻(xiàn)

        [1] 張晉西.Visual Basic與AutoCAD二次開發(fā)[M].北京:清華大學(xué)出版社,2000.

        [2] 龔沛曾,陸慰民,楊志強(qiáng).Visual Basic程序設(shè)計(jì)簡(jiǎn)明教程[M].北京:高等教育出版社,2003.

        [3] 程建華.小區(qū)排水總圖計(jì)算機(jī)輔助設(shè)計(jì)計(jì)算的方法及程序[J]給水排水,1997,23(5):39-44.

        [4] 李兆崔,劉福臣.VB編程在鋼管彎頭制作中的應(yīng)用[J]華東公路,2013,203(6):90-93.

        猜你喜歡
        排水量
        板土交界處裂隙發(fā)育與化學(xué)注漿時(shí)間對(duì)一維電滲固結(jié)的影響
        通過三峽升船機(jī)的船舶排水量校驗(yàn)技術(shù)
        考慮撓度的船舶排水量計(jì)算新方法
        俄羅斯新型航母排水量將不少于7萬噸
        軍事文摘(2018年6期)2018-06-13 02:27:04
        排水盲管間距對(duì)隧道排水量與隧道所受應(yīng)力影響的研究
        蘇州市七浦塘陽(yáng)澄湖樞紐基坑排水量計(jì)算及水泵選型
        載重線海圖限制下凈載重量的計(jì)算*
        關(guān)于稱重試驗(yàn)重心縱向坐標(biāo)計(jì)算方法的分析
        里下河地區(qū)典型年澇水外排分析
        治淮(2014年2期)2014-02-27 09:55:56
        “海狼”核潛艇
        国产精品美女久久久久久| av一区二区三区观看| 成人av在线久色播放| 国产日产欧洲系列| 国内精品久久久久久久久齐齐| 亚洲va成无码人在线观看| 久草中文在线这里只有精品| 亚洲av乱码一区二区三区按摩| 国产肉丝袜在线观看| 国产精品色内内在线播放| 久久一区二区视频在线观看| 国内精品视频一区二区三区八戒| 精品亚洲欧美无人区乱码| 亚洲精品成人国产av| 日本免费精品免费视频| 国产精品办公室沙发| 天天爽天天爽天天爽| 麻豆久久久国内精品| 亚洲中文字幕精品久久吃奶| 丰满少妇高潮惨叫久久久一 | 精品国产一品二品三品| 久久精品国产色蜜蜜麻豆国语版 | 国产自拍av在线观看视频| 亚洲日韩成人av无码网站| 激情人妻在线视频| 免费女女同黄毛片av网站| 高h小月被几个老头调教| 女人做爰高潮呻吟17分钟| 国产精品亚洲专区无码不卡| 亚洲最新精品一区二区| 日韩欧美亚洲综合久久影院ds| 国产av成人精品播放| 亚洲一级天堂作爱av| 亚洲av乱码一区二区三区林ゆな| 成人免费网站视频www| 538在线视频| 大香焦av一区二区三区| 蜜桃麻豆www久久囤产精品| 女同性恋精品一区二区三区| 亚洲不卡av一区二区三区四区| 99精品人妻无码专区在线视频区|