999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

VB編程在管線排水量計算中的應用

2019-04-24 03:23:14李兆崔張為華席曉宋章亮
中國科技縱橫 2019年5期

李兆崔 張為華 席曉 宋章亮

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

關鍵詞:排水量;VB編程;爆管

中圖分類號:TU832 文獻標識碼:A 文章編號:1671-2064(2019)05-0032-04

1 概述

一般對管道進行維修、維護要對管道內部水進行排空。在管線設計中,對此也做了充分的考慮。理論上,對管線內部水都能通過預設排水閥進行排空。對于管線排水,通常排水需要關閥最上游的閥門和最下游的閥門。關閉上游是為了水庫的水不能補入。關下游閥門是為了不干撓影響下游的用水網絡。

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

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

2 計算排水量VB編程參數

與排水有關的管線參數,一是主管道直徑,排水管直徑。管道的樁號與高程。考慮閘閥對放水段的區隔要明確閘閥的樁號。因為排水要開啟排水閥,要明確排水閥的樁號和高程,排水閥不特殊說明,均安裝在管道的最下部。考慮自流排水要明確排水井的井口高度,如果設有排水管要明確排水管的管底高程。關于這個參數可實地測量以求準確。同時要參考地面參數,便是地面的里程與地面高程。以上數據在管道設計資料中均有體現。無論自流排水還是泵抽排水在實踐中要考慮與就近的排水系統相聯接。要避免發生對周圍莊稼作物等造成澇災。對重要部位,對設計排水要進行專項設計和論證。要嚴格按照排水的結論成果操作排水。

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

3 VB程序設計

程序設計思路。讀收表格中的管道參數。進行繪制管線、地面線、水面線。算出水平線以下的管道面積。折算成水量長度。

利用VB開發的計算程序如下:

第一步,運行VB6.0[1]。

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

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

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

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") '創建EXCEL對象

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

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

Set xlSheet = xlBook.Worksheets("sheet1") '設置活動工作表

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 '賦值到數組

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

Next i

k = 1

For i = 1 To w '賦值到數組

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

Next i

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

X = 0

For i = 0 To j - 2 '操作E數組

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數組

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

程序編制完成后可進行編譯生成可執行文件保存。該可執行文可以運行演示,程序中TEXT1-TEXT2可以輸入相應比例。點擊COMMANDBUTTON后便可進行相應的程序計算。

本程序調試通過,程序運行結果見圖2、3。

4 結語

排水計算軟件經過我公司一年多的試用完善,已基本滿足工作需要。該程序有如下優點:

(1)工作效率極大提高。很方便快捷得到所需要的排水數據。

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

(3)程序的通用性強。只需要修改表格便可以得到對應的相應計算結果。

參考文獻

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

[2] 龔沛曾,陸慰民,楊志強.Visual Basic程序設計簡明教程[M].北京:高等教育出版社,2003.

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

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

主站蜘蛛池模板: 欧美视频在线不卡| 亚洲成A人V欧美综合| 在线日韩日本国产亚洲| 成人va亚洲va欧美天堂| 青草精品视频| 欧美国产视频| 中文字幕啪啪| 色婷婷久久| 国产国产人成免费视频77777 | 在线视频一区二区三区不卡| 青青草一区二区免费精品| а∨天堂一区中文字幕| 国产成人高清在线精品| 97视频精品全国免费观看 | 人人澡人人爽欧美一区| 国产精品亚洲日韩AⅤ在线观看| 国产精品久久久久无码网站| 97国内精品久久久久不卡| 久久国产香蕉| 中文字幕不卡免费高清视频| 成人一级黄色毛片| 日韩精品高清自在线| 精久久久久无码区中文字幕| 精品99在线观看| 精品欧美一区二区三区在线| 国产尹人香蕉综合在线电影| 六月婷婷精品视频在线观看| 亚洲日韩精品综合在线一区二区 | 亚洲va精品中文字幕| 色天天综合| 在线观看免费黄色网址| 国模私拍一区二区| 亚洲日韩久久综合中文字幕| 97亚洲色综久久精品| 在线国产毛片手机小视频| 日韩不卡高清视频| 欧美综合区自拍亚洲综合天堂| 幺女国产一级毛片| 2022国产91精品久久久久久| 成人亚洲国产| 国产手机在线ΑⅤ片无码观看| 亚洲三级影院| 欧美劲爆第一页| 久久精品国产在热久久2019| 91亚瑟视频| 久久精品国产精品青草app| 热这里只有精品国产热门精品| 最新国产成人剧情在线播放| 久久99精品久久久大学生| 99热这里都是国产精品| 美女被操91视频| 成人国产精品网站在线看| 毛片免费高清免费| www亚洲天堂| 欧美亚洲一区二区三区在线| 国产精品手机视频| 老司国产精品视频91| 亚洲中文字幕97久久精品少妇| 极品尤物av美乳在线观看| 国产精品网址在线观看你懂的| 欧美成人在线免费| 伊人欧美在线| 欧美日韩资源| 青草精品视频| 欧美日韩精品在线播放| 91久久夜色精品| 久久99热这里只有精品免费看| 欧美性猛交xxxx乱大交极品| 欧美中文字幕无线码视频| 午夜视频在线观看区二区| 亚洲精品国产成人7777| 国产精品国产三级国产专业不 | 国产精品主播| 国产1区2区在线观看| 中文成人在线| 国模私拍一区二区三区| 伊人精品成人久久综合| 四虎成人免费毛片| 亚洲成aⅴ人在线观看| 亚洲不卡影院| 伊人久久婷婷五月综合97色| 色视频久久|