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

        ?

        基于AutoCAD VBA的滴灌系統(tǒng)設(shè)計(jì)軟件的開發(fā)

        2010-07-17 01:37:46項(xiàng)輝宇蘇德榮
        關(guān)鍵詞:基本參數(shù)界面軟件

        ?!P, 項(xiàng)輝宇, 蘇德榮

        (1.北京工商大學(xué) 機(jī)械工程學(xué)院, 北京 100048;2.北京林業(yè)大學(xué) 教育部森林培育與保護(hù)重點(diǎn)實(shí)驗(yàn)室, 北京 100083)

        滴灌系統(tǒng)關(guān)鍵技術(shù)是把滴灌帶鋪于地下,結(jié)合水利、材料、控制等其它專業(yè)技術(shù),構(gòu)成一個(gè)大田膜下滴灌系統(tǒng),可有效節(jié)約用水,使農(nóng)田水利化. 本文主要探討在AutoCAD VBA(visual basic for application,簡稱VBA)環(huán)境下開發(fā)具有開放性的滴灌系統(tǒng)設(shè)計(jì)軟件,該軟件完全參照滴灌系統(tǒng)設(shè)計(jì)手冊設(shè)計(jì).

        通過軟件的查詢功能,設(shè)計(jì)人員可查詢各種參數(shù)數(shù)據(jù). 部分參數(shù)表可供設(shè)計(jì)人員根據(jù)當(dāng)?shù)刈魑锾卣鬟M(jìn)行添加和刪除. 設(shè)計(jì)人員只需填寫和選擇基本的數(shù)據(jù),即生成該設(shè)計(jì)的必要參數(shù)文檔,供設(shè)計(jì)人員參考和選型. 通過文本和Excel,用戶可以記錄并保存所需的某些參數(shù).

        VBA最早建立在Microsoft的Office 97中,易用且功能強(qiáng)大. 常用的繪圖軟件AutoCAD自R14.01版本開始就支持VBA作為二次開發(fā)工具. VBA最大特點(diǎn)和最大優(yōu)點(diǎn)在于兩個(gè)方面:第一,與VB有著幾乎相同的開發(fā)環(huán)境和語法,具備功能強(qiáng)大和易于掌握的特點(diǎn);第二,在于它的for Application功能,針對性強(qiáng),它駐留在主程序的內(nèi)部,使其結(jié)構(gòu)精簡,且代碼運(yùn)行效率高,使語言的引擎在技術(shù)上與開發(fā)環(huán)境分離. 它的功能在很大程度上依賴于它的客戶顯露的Automation接口[1].

        VBA作為一個(gè)集成的開發(fā)環(huán)境,它提供了高質(zhì)量的用戶化編程能力,能夠使AutoCAD數(shù)據(jù)與其它的VBA應(yīng)用程序,如Microsoft Excel軟件,直接共享,實(shí)現(xiàn)無縫連接,交換數(shù)據(jù)非常方便. 在Auto CAD環(huán)境下的VBA開發(fā),需要安裝CAD,VB及Excel等軟件[2].

        1 界面設(shè)計(jì)

        1.1 主界面

        本設(shè)計(jì)面向用戶為滴灌系統(tǒng)的設(shè)計(jì)人員,所以設(shè)計(jì)界面應(yīng)符合設(shè)計(jì)邏輯,符合用戶習(xí)慣. 圖1為軟件界面. 圖2為軟件功能模塊界面,此界面主要分為4部分:1)參考資料;2)灌溉制度及基本參數(shù);3)水力計(jì)算;4)文檔管理.

        圖1 軟件界面Fig.1 Userface

        圖2 軟件功能模塊Fig.2 Modules of software

        通過第一部分,用戶可獲得設(shè)計(jì)的基本知識(shí),基本參數(shù),該部分中作物/植物項(xiàng)可供用戶自己創(chuàng)建和添加當(dāng)?shù)刈魑锏膮?shù). 通過第二部分,用戶根據(jù)提示輸入已選好的基本參數(shù)計(jì)算出灌溉周期、灌溉時(shí)間以及灌溉頻率等參數(shù). 通過第三部分計(jì)算,用戶可以得到毛管、支管、干管等必要的設(shè)計(jì)參數(shù),幫助設(shè)計(jì)人員完成設(shè)備的選擇、管路的鋪設(shè)等設(shè)計(jì). 第四部分實(shí)現(xiàn)對文檔的管理,是該軟件開放性、個(gè)性化的體現(xiàn).

        1.2 各級(jí)界面的設(shè)計(jì)

        用戶通過點(diǎn)擊界面上的各個(gè)功能鍵,進(jìn)入相應(yīng)功能,該功能簡單明了.

        在第一部分設(shè)計(jì)資料中,主要為兩級(jí)的窗體,即點(diǎn)擊功能鍵→具體功能界面,點(diǎn)擊各個(gè)命令→相應(yīng)的參數(shù)表或圖像. 圖3為滴頭查詢界面.

        圖3 滴頭查詢界面Fig.3 Knowledge of drip

        第二、第三部分主要為計(jì)算界面,即當(dāng)設(shè)計(jì)人員輸入已知參數(shù)時(shí)計(jì)算出相應(yīng)的關(guān)鍵設(shè)計(jì)參數(shù). 圖4為基本參數(shù)計(jì)算界面.

        圖4 基本參數(shù)界面Fig.4 Interface for necessary parameter

        第四部分是實(shí)現(xiàn)用戶對所得參數(shù)文檔的保存和編輯,文檔形式有文本和Excel兩種,這兩種操作較為常用,這里不再介紹.

        2 程序設(shè)計(jì)

        2.1 CAD界面上添加菜單

        將VBA程序添加到CAD菜單中,設(shè)計(jì)人員可以通過點(diǎn)擊菜單快速啟動(dòng)該程序,免去了一些不必要的麻煩. 具體的思路是通過在VBA開發(fā)界面的AutoCAD對象下的“This drawing”下添加程序段,以使當(dāng)CAD界面啟動(dòng)時(shí)在CAD模板中添加一個(gè)菜單鍵到工具欄中,當(dāng)點(diǎn)擊該啟動(dòng)鍵時(shí)啟動(dòng)標(biāo)準(zhǔn)模塊下的宏,通過該宏調(diào)用主程序,從而啟動(dòng)該程序. 啟動(dòng)后如圖1,程序如下:

        Option Explicit

        Sub AddASubMenu()

        Dim currMenuGroup As AcadMenuGroup

        Set currMenuGroup=ThisDrawing.

        Application.MenuGroups.Item(0)

        Dim newMenu As AcadPopupMenu

        Set newMenu=currMenuGroup.Menus.

        Add("MyMen" & Chr(Asc("&")) & "u")

        ′添加菜單項(xiàng)

        Dim macro As String

        Macro=Chr(vbKeyEscape)+Chr(vbKey_Escape) ′相當(dāng)于按下兩次Esc鍵

        Dim menuItemOpen As AcadPopup

        _MenuItem

        Set menuItemOpen=newMenu.

        AddMenuItem(newMenu.Count+1,

        Chr(Asc("&")) & "林大", macro & "-vbarun" + Chr(32) + "main_1.dvb!UFO.

        comDialog" + Chr(32))

        ′在菜單欄上顯示菜單

        newMenu.InsertInMenuBar (ThisDrawing.

        Application.MenuBar.Count + 1)

        End Sub

        2.2 主體功能

        2.2.1實(shí)現(xiàn)查詢功能

        圖5 水質(zhì)查詢Fig.5 Knowledge of water quality

        設(shè)計(jì)時(shí)需要對各種資料進(jìn)行查詢,通過軟件查詢簡單、明了. 主要設(shè)計(jì)有兩種查詢方式:一是將所需的資料做成圖片的形式,通過滾動(dòng)條拉動(dòng)圖片的方式,可以將較大圖片放入其中加以查詢. 圖5是通過該圖片查詢水質(zhì)參數(shù)的界面. 二是通過列表的方式查詢,當(dāng)點(diǎn)擊所選種類或型號(hào)時(shí),自動(dòng)彈出屬于該種類或型號(hào)相關(guān)項(xiàng)目的各種參數(shù). 圖6為管材的查詢對話框,用戶通過選擇所需的管材時(shí)得知其壁厚、內(nèi)徑等參數(shù).

        圖6 管材查詢對話框Fig.6 Interface for pipe material

        2.2.2添加和刪除參數(shù),實(shí)現(xiàn)開放功能

        不同地域的作物、種植條件和各種參數(shù)信息是不同的.

        1) 用戶需要對信息存取和創(chuàng)建,需要數(shù)據(jù)庫,本文設(shè)計(jì)為對文本文件的存取和創(chuàng)建. 通過open語句,如:

        Open "path" for input As # number

        對文本進(jìn)行讀取.

        Open "path" for output As # number

        創(chuàng)建文本.

        Open "path" for Append As # number

        將數(shù)據(jù)添加到文本.

        當(dāng)輸入指定格式的數(shù)據(jù)后,若為已有植物種類時(shí)可在已存在的文本中按規(guī)定的格式添加;若為新的植物名稱則需要?jiǎng)?chuàng)建新的文本,并按規(guī)定格式保存數(shù)據(jù),以備用戶以后讀取用.

        Open "D:林大林大開發(fā)-VBA農(nóng)作物溫室" & indata(0) & ".txt" for Output As # 8

        Print #8 ,indata(0)

        Close #8

        Open "D:林大林大開發(fā)-VBA農(nóng)作物溫室作物" & indata(0) & ".txt" For Output

        As # 9

        Print # 9,indata(1) & " " & indata(2)

        _ & " " & indata(3)

        Close # 9

        此段程序?qū)⑼瓿蓪λ斎胄畔⒁晕谋痉绞降拇鎯?chǔ),其中通過數(shù)組將所輸入的作物名稱及參數(shù)加以分類,然后進(jìn)行存儲(chǔ). 此外當(dāng)遇到輸入錯(cuò)誤即格式與要求的不同時(shí),應(yīng)能提示錯(cuò)誤,并要求用戶重新輸入. 這里是將數(shù)據(jù)分配到數(shù)組中,通過檢查數(shù)組中的數(shù)據(jù)來檢查格式的正確與否,相符時(shí)輸入,否則清零重輸,如圖7.

        圖7 出錯(cuò)時(shí)提示錯(cuò)誤Fig.7 Remind user when error

        2) 刪除功能的實(shí)現(xiàn). 當(dāng)輸入的數(shù)據(jù)有誤或需要?jiǎng)h除某些數(shù)據(jù)時(shí),就需要對數(shù)據(jù)進(jìn)行刪除. 不僅要?jiǎng)h除界面中的數(shù)據(jù),還要把文件中的數(shù)據(jù)刪除并保存,以供下次使用. 應(yīng)用Open和Kill命令的組合,首先逐行讀取文件并與要?jiǎng)h除的數(shù)據(jù)行進(jìn)行比較,不一樣的數(shù)據(jù)行就通過Open重新創(chuàng)建文件,并輸入該行,若一樣則跳過. 這樣最后再應(yīng)用Kill命令刪除原文本,就創(chuàng)建了一個(gè)新文本,該文本不含已刪除的數(shù)據(jù)行. 從而實(shí)現(xiàn)了對數(shù)據(jù)的刪除與保存,如圖8.

        圖8 刪除操作Fig.8 Delete selected parameter

        第一部分的其他功能大致與此類同,不做過多贅述.

        3) 水利計(jì)算功能. 通過前面的查表功能可以得到基本參數(shù),在此功能中輸入基本參數(shù),點(diǎn)擊計(jì)算鍵計(jì)算出主要參數(shù).

        將參數(shù)通過文本框輸入后,賦值給變量進(jìn)行計(jì)算,結(jié)果傳遞并輸出到文本框. 此外還要對錯(cuò)誤的輸入進(jìn)行提示. 本設(shè)計(jì)中限制了用戶輸入只能輸入數(shù)字且為正數(shù),主要是通過Keypress事件中添加程序段來實(shí)現(xiàn)的. 程序如下:

        If KeyAscii >= 48 And KeyAscii ? 57 Then

        ElseIf KeyAscii = Asc(".") Then

        Else

        KeyAscii = 0

        End If

        由于KeyAscii返回的是鍵盤所按鍵的Asc碼,所以通過控制數(shù)字和小數(shù)點(diǎn)的Asc碼,就可以實(shí)現(xiàn)只能輸入數(shù)字的功能.

        此外對于已經(jīng)計(jì)算得出的結(jié)果,需要保存,此處為文本方式和電子表格方式,文本方式的讀取與存儲(chǔ)不再贅述. 保存文件時(shí),應(yīng)用了CommonDialog 控件對文本保存路徑加以設(shè)置,以便用戶以后的查詢. 首先設(shè)置CommomDialog的各屬性,通過調(diào)用標(biāo)準(zhǔn)模塊下的Sub程序?qū)崿F(xiàn)[3].

        Public sub comsave()

        With CommonDialog

        .DialogTitle = "保存文本文件"

        .Filter = "文本文件(*.txt)|*.txt|所有文件 (*.*)|*.*"

        .InitDir = "D:林大林大開發(fā)-VBA"

        .DefaultExt = "txt"

        .ShowSave

        End With

        End Sub

        設(shè)計(jì)后存儲(chǔ)功能的對話窗體如圖9.

        圖9 存儲(chǔ)對話框Fig.9 Interface for save

        對于調(diào)用并創(chuàng)建Excel需要聲明Excel Application,Workbook, Worksheet等對象. 用下面的語句實(shí)現(xiàn)[3].

        Dim xlapp As excel.Application

        Dim xlbook As excel.Workbook

        Dim xlsheet As excel.Worksheet

        Set xlapp = Creatobject ("Excel.Application")

        Set xlbook = xlapp.Workbooks.Add

        Set xlsheet = excel.Application.Worksheets(1)

        若是調(diào)用已創(chuàng)建的Excel,通過下面的語句實(shí)現(xiàn).

        Set xlapp = New excel.Application

        Set xlbook = xlapp.workbooks.open("指定路徑")

        此句申請一個(gè)Excel.Application內(nèi)存空間,并通過制定路徑實(shí)現(xiàn)對Excel的讀取. 接下來的就是應(yīng)用命令對Excel的操作,這里不作贅述.

        完成了各項(xiàng)基本功能的設(shè)計(jì),后續(xù)工作主要圍繞數(shù)據(jù)輸出格式(如Excel, txt等),以及具體應(yīng)用中出現(xiàn)的問題的完善,以使其更加優(yōu)化.

        3 結(jié)束語

        通過設(shè)計(jì)本程序可以使滴灌系統(tǒng)的設(shè)計(jì)簡單化,更有利于縮短設(shè)計(jì)時(shí)間,同時(shí)又能使用戶存儲(chǔ)必要的信息. 如果進(jìn)一步完善本軟件,還可以通過數(shù)據(jù)庫對設(shè)計(jì)知識(shí)的存儲(chǔ),方便用戶的知識(shí)積累,以便查詢。同時(shí)實(shí)現(xiàn)通過計(jì)算得到的參數(shù)自動(dòng)在AutoCAD中修改和優(yōu)化的管路鋪設(shè)圖,可大大減輕設(shè)計(jì)負(fù)擔(dān).

        猜你喜歡
        基本參數(shù)界面軟件
        禪宗軟件
        英語文摘(2021年10期)2021-11-22 08:02:26
        國企黨委前置研究的“四個(gè)界面”
        軟件對對碰
        基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
        《東北電力技術(shù)》編輯委員會(huì)
        人機(jī)交互界面發(fā)展趨勢研究
        四輪定位基本參數(shù)及其影響
        消防自動(dòng)噴水滅火系統(tǒng)設(shè)計(jì)
        手機(jī)界面中圖形符號(hào)的發(fā)展趨向
        新聞傳播(2015年11期)2015-07-18 11:15:04
        談軟件的破解與保護(hù)
        精品(2015年9期)2015-01-23 01:36:01
        女优一区二区三区在线观看| 女人体免费一区二区| 亚洲av之男人的天堂| 天天草夜夜草| 国产精品一区二区三密桃| 日韩中文字幕乱码在线| 国产精品国产三级国产专区不| 一区二区亚洲精品在线| 亚洲一区二区三区尿失禁| 久久精品麻豆日日躁夜夜躁| 久久人妻公开中文字幕| 杨幂国产精品一区二区| 手机在线播放成人av| 欧美又大粗又爽又黄大片视频| 亚洲av综合av国产av中文| 成人国产精品一区二区视频| 亚洲精品国精品久久99热一| 久久HEZYO色综合| 日本韩国三级在线观看| 亚洲综合网国产精品一区| 麻豆tv入口在线看| 久久精品国产亚洲av忘忧草18| 婷婷综合缴情亚洲狠狠| 亚洲影院在线观看av| 久久国产精品美女厕所尿尿av| 亚洲成人av在线第一页| 成年女人黄小视频| 丝袜足控一区二区三区| av黄片免费在线观看| 在线日本国产成人免费精品| 久久天天躁夜夜躁狠狠85麻豆| 男人的天堂免费a级毛片无码| 三男一女吃奶添下面| 9久9久女女热精品视频免费观看| 开心五月婷婷综合网站| 人妻经典中文字幕av| 白丝爆浆18禁一区二区三区| 亚洲av无码第一区二区三区| 亚洲精品成人av观看| 麻豆av毛片在线观看| 337p日本欧洲亚洲大胆色噜噜 |