CAD在工程實(shí)踐中的二次開發(fā)_第1頁
CAD在工程實(shí)踐中的二次開發(fā)_第2頁
CAD在工程實(shí)踐中的二次開發(fā)_第3頁
CAD在工程實(shí)踐中的二次開發(fā)_第4頁
CAD在工程實(shí)踐中的二次開發(fā)_第5頁
已閱讀5頁,還剩70頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

/摘要為了解決困擾工程地質(zhì)界的隧道地質(zhì)編錄繪圖難題,探索實(shí)現(xiàn)隧洞設(shè)計(jì)及施工地質(zhì)展示圖繪圖自動(dòng)化和計(jì)算機(jī)化的可能途徑,本文以田壩嶺隧道施工地質(zhì)為范例,說明鐵路隧道地質(zhì)編錄自動(dòng)成圖系統(tǒng)概念和實(shí)施要點(diǎn),通過對(duì)AutoCAD平臺(tái)的二次開發(fā)最終實(shí)現(xiàn)自動(dòng)成圖的目的。通過本設(shè)計(jì)過程,使學(xué)生掌握計(jì)算機(jī)輔助設(shè)計(jì)的根本技能,并具備AutoCAD二次開發(fā)的初步技能,提高其應(yīng)用計(jì)算機(jī)解決實(shí)際問題的能力水平,預(yù)期到達(dá)以下要求:熟練掌握AutoCAD平臺(tái)Axtivex開發(fā)技術(shù);初步具備利用關(guān)系型數(shù)據(jù)庫管理工程數(shù)據(jù)的能力。本設(shè)計(jì)可以實(shí)現(xiàn)參加窗體模塊編程,每確認(rèn)一個(gè)窗體模塊即可實(shí)現(xiàn)一項(xiàng)模塊功能。使工作量由軟件從已編寫的數(shù)據(jù)庫文件中提取數(shù)據(jù)自動(dòng)生成圖形。用鐵路隧道地質(zhì)編錄自動(dòng)成圖系統(tǒng)繪制隧道展示圖比手工快幾十倍甚至更多。關(guān)鍵詞:地質(zhì)展示圖數(shù)據(jù)庫二次開發(fā)AbstractInordertosolvethetroubleDeZhiJietunnelengineeringgeologicalrecorddrawingproblem,exploreandrealizetunnelinthedesignandconstructionofgeologicaldisplayfiguredrawingautomationandcomputerizedpossibleapproach,basedonthetunnelconstructiongeologicalfielddamasanexample,explainrailwaytunnelgeologicalrecordtobeautomaticmappingsystemconceptandthekeypoints,realizedthroughtotheseconddevelopmentAutoCADplatformeventuallyrealizethepurposeofautomaticmapping.Throughthedesignprocess,makethestudentsmasterthebasicskillsofcomputeraideddesign,andwithAutoCADsecondarydevelopmentpreliminaryskills,improveitsapplicationcomputersolutionactualproblemabilitylevel,expectedtoreachthefollowingrequirements:masterAutoCADplatformdevelopmenttechnologyAxtivex;Initiallyhaveuseofrelationaldatabasemanagementengineeringdataability.Thisdesigncanrealizetojoinformmoduleprogramming,eachconfirmedaformmodulecanberealizedamodulefunction.Makeworkfromalreadywrittenbysoftwaredatabasedataautomaticallygenerategraphics.Userailwaytunnelgeologicalrecordtobeautomaticmappingsystemdrawtunnelshowthanafewtimesfastfigurebyevenmore.Keyword:GeologicaldisplayfiguredatabaseSeconddevelopment目錄TOC\o"3-3"\h\z\t"標(biāo)題1,1,標(biāo)題2,2,參考文獻(xiàn)之后,1"第1章緒論 11.1開發(fā)的意義、背景 11.2本設(shè)計(jì)解決的問題 11.3采用的方法和步驟 21.3.1方法 21.3.2步驟 21.4預(yù)期成果 3第2章數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì) 42.1數(shù)據(jù)庫中的表 42.2數(shù)據(jù)庫中表的關(guān)聯(lián)圖 7第3章程序結(jié)構(gòu) 93.1模塊 93.1.1Caidan模塊 93.1.2Caidanxianshi模塊 93.1.3CommASS模塊 103.1.4DZSub模塊 103.2窗體 103.2.1工程管理窗體 103.2.2工程數(shù)據(jù)管理窗體 113.2.3平面數(shù)據(jù)管理 123.2.4巖性表的管理 133.2.5編錄出圖 133.2.6打印 14第4章重點(diǎn)算法 154.1平面線路方位角的計(jì)算 154.1.1任意里程的方位角計(jì)算 154.1.2線路走向計(jì)算 16第5章主要應(yīng)用技術(shù) 195.1ADO技術(shù)簡(jiǎn)介 195.1.1Connection連接對(duì)象 195.1.2Recordset對(duì)象 205.2AutoCADVBA簡(jiǎn)介 235.2.1什么是AutoCADVBA 235.2.2用VBA管理器組織工程 245.2.3處理宏 255.2.4VBAIDE編輯工程 26第6章工程實(shí)例 286.1工程名稱的錄入 286.2巖性表設(shè)置 296.3平面數(shù)據(jù)錄入 296.4工程地質(zhì)數(shù)據(jù)錄入 316.5編錄出圖 37第7章結(jié)論 397.1最終成果 397.2總結(jié) 397.3展望 39參考文獻(xiàn) 40致謝 41附錄A外文資料翻譯 42附錄B代碼 56緒論開發(fā)的意義、背景為了解決困擾工程地質(zhì)界的隧道地質(zhì)編錄繪圖難題,探索實(shí)現(xiàn)隧洞設(shè)計(jì)及施工地質(zhì)展示圖繪圖自動(dòng)化和計(jì)算機(jī)化的可能途徑,本文以田壩嶺隧道施工地質(zhì)為范例,提出了鐵路隧道地質(zhì)編錄自動(dòng)成圖系統(tǒng)概念和實(shí)施要點(diǎn),實(shí)現(xiàn)了通過對(duì)AutoCAD平臺(tái)的二次開發(fā)最終實(shí)現(xiàn)自動(dòng)成圖的目的。本設(shè)計(jì)解決的問題通過對(duì)AutoCAD平臺(tái)的二次開發(fā),完成“鐵路隧道地質(zhì)編錄自動(dòng)成圖系統(tǒng)〞開發(fā)。解決的問題包括:(1)線路平面數(shù)據(jù)管理模塊設(shè)計(jì)、實(shí)現(xiàn)先在數(shù)據(jù)庫里建立平面數(shù)據(jù)曲線的參數(shù)表把平面數(shù)據(jù)管理起來,然后在VBA中設(shè)計(jì)窗體和模塊。用窗體代碼把數(shù)據(jù)管理起來,模塊代碼負(fù)責(zé)顯示工具欄菜單和下拉菜單。在CommASS模塊中編寫公共過程用來調(diào)用數(shù)據(jù)庫、執(zhí)行SQL語言的代碼;在窗體里編寫可以執(zhí)行添加、刪除和更改,可以顯示起點(diǎn)和終點(diǎn)的坐標(biāo)里程且可以更改數(shù)據(jù)的代碼。(2)地質(zhì)編錄數(shù)據(jù)管理模塊設(shè)計(jì)、實(shí)現(xiàn)為了使平面線路與其相應(yīng)的地質(zhì)情況連接起來我們需要把設(shè)計(jì)、施工時(shí)的地質(zhì)信息錄入到數(shù)據(jù)庫表中,為此需要設(shè)計(jì)兩個(gè)表和一個(gè)窗體來實(shí)現(xiàn)本功能。這兩個(gè)表與name和xianlu表通過E_ID建立主鍵關(guān)系使得工程名稱、線路特征、地質(zhì)情況連接起來。而窗體任然是對(duì)表進(jìn)行修改的一個(gè)工具。在數(shù)據(jù)庫里建立sheji和shigong兩個(gè)表,這兩個(gè)表管理設(shè)計(jì)和施工的地質(zhì)信息。在AutoCAD操作系統(tǒng)中建立窗體和模塊,地質(zhì)編錄數(shù)據(jù)管理模塊是要把施工和設(shè)計(jì)時(shí)隧道各個(gè)斷面的地質(zhì)情況記錄到表中,并且可以通過窗體對(duì)其進(jìn)行操作。同樣應(yīng)用了CommASS模塊中編寫公共過程調(diào)用數(shù)據(jù)庫、執(zhí)行SQL語言的代碼;窗體里編寫可以執(zhí)行添加、刪除和更改數(shù)據(jù)的代碼。(3)填充圖例管理模塊設(shè)計(jì)、實(shí)現(xiàn)填充管理模塊用來實(shí)現(xiàn)管理巖石特性的功能。為此我們搜集了一個(gè)比較齊全的巖性庫,然后在數(shù)據(jù)庫里建立表yanxing,用CommASS模塊中GetWorkPath過程調(diào)用巖性庫中我們使用的巖性添加到y(tǒng)anxing表中。具體操作:在數(shù)據(jù)庫里建立yanxing表,這個(gè)表管理巖石特性的信息。在AutoCAD操作系統(tǒng)中建立窗體和模塊,填充圖例管理模塊是要把隧道的地質(zhì)巖性管理到y(tǒng)anxing表中,并且可以通過窗體對(duì)其進(jìn)行操作。同樣我們?cè)谶@里應(yīng)用了CommASS模塊中編寫公共過程調(diào)用數(shù)據(jù)庫、執(zhí)行SQL語言的代碼;窗體里編寫可以執(zhí)行添加、刪除和更改填充比例的代碼。(4)自動(dòng)繪圖模塊設(shè)計(jì)、實(shí)現(xiàn)自動(dòng)繪圖要實(shí)現(xiàn)輸入任意一段里程后計(jì)算機(jī)自動(dòng)繪制展示圖的功能。為此我們需要設(shè)計(jì)一個(gè)窗體,而且此模塊需要在DZSub里編寫繪制圖框、字體、調(diào)用展示圖投影巖性的代碼。具體操作:在AutoCAD操作系統(tǒng)中建立窗體和模塊,自動(dòng)繪圖管理模塊是要把隧道的投影圖繪制出來,并且可以通過窗體對(duì)其進(jìn)行操作。在CommASS模塊中編寫公共過程調(diào)用數(shù)據(jù)庫、執(zhí)行SQL語言的代碼;DZSub模塊里編寫字體、編寫字體邊框線、展示圖圖框定位、展示圖文字定位、調(diào)用數(shù)據(jù)庫表里的字段記錄信息等。窗體里編寫可以輸入任意起始里程、終止里程以及是否繪制展示圖及填充物的代碼。(5)控制模塊設(shè)計(jì)、實(shí)現(xiàn)控制模塊主要是通過對(duì)全局的調(diào)整實(shí)現(xiàn)以上幾個(gè)模塊的鏈接,通過調(diào)試使程序運(yùn)用更加的方便。采用的方法和步驟方法鐵路隧道地質(zhì)編錄自動(dòng)成圖系統(tǒng)開發(fā)就是在可視開發(fā)工具提供的圖形用戶界面上,通過操作界面元素,諸如菜單、按鈕、對(duì)話框、編輯框、單項(xiàng)選擇框、復(fù)選框、列表框和滾動(dòng)條等,由可視開發(fā)工具自動(dòng)生成的應(yīng)用軟件。步驟軟件開發(fā)流程一般分為以下六步:(1)相關(guān)系統(tǒng)分析和應(yīng)用需求的初步了解需求,然后用WORD列出要開發(fā)的系統(tǒng)的大功能模塊,每個(gè)大功能模塊有哪些小功能模塊,對(duì)于有些需求比較明確相關(guān)的界面時(shí),在這一步里面可以初步定義好少量的界面。(2)系統(tǒng)分析深入了解和分析需求,根據(jù)自己的經(jīng)驗(yàn)和需求用WORD或相關(guān)的工具再做出一份文檔系統(tǒng)的功能需求文檔。這次的文檔會(huì)清楚例用系統(tǒng)大致的大功能模塊,大功能模塊有哪些小功能模塊,并且還例出相關(guān)的界面和界面功能。(3)系統(tǒng)分析和用戶再次確認(rèn)需求。(4)系統(tǒng)分析根據(jù)確認(rèn)的需求文檔所例用的界面和功能需求,用迭代的方式對(duì)每個(gè)界面或功能做系統(tǒng)的概要設(shè)計(jì)。(5)系統(tǒng)分析把寫好的概要設(shè)計(jì)文檔,根據(jù)所例出的功能一個(gè)一個(gè)的編寫。(6)測(cè)試編寫好的系統(tǒng)。使用該程序,一個(gè)一個(gè)確實(shí)認(rèn)每個(gè)功能。預(yù)期成果通過本設(shè)計(jì)過程,使學(xué)生掌握計(jì)算機(jī)輔助設(shè)計(jì)的根本技能,并具備AutoCAD二次開發(fā)的初步技能,提高其應(yīng)用計(jì)算機(jī)解決實(shí)際問題的能力水平,預(yù)期到達(dá)以下要求:(1)熟練掌握AutoCAD平臺(tái)Axtivex開發(fā)技術(shù);利用AutoCAD平臺(tái)Axtivex開發(fā)技術(shù),在AutoCAD里實(shí)現(xiàn)了添加工具欄“地質(zhì)編錄〞菜單項(xiàng),在菜單項(xiàng)編寫下拉菜單記錄數(shù)據(jù)最終實(shí)現(xiàn)自動(dòng)繪制展示圖的目的。(2)初步具備利用關(guān)系型數(shù)據(jù)庫管理工程數(shù)據(jù)的能力數(shù)據(jù)庫里表建立聯(lián)系圖約束數(shù)據(jù)的變化,使數(shù)據(jù)庫中的表成為一個(gè)不可別離的整體執(zhí)行任務(wù)。數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)為了使工作簡(jiǎn)單化,我們現(xiàn)將平面線路所測(cè)數(shù)據(jù)、沿線圍巖級(jí)別及地質(zhì)情況描述錄入數(shù)據(jù)庫,這樣將具體情況數(shù)據(jù)化,然后將數(shù)據(jù)從數(shù)據(jù)庫中調(diào)用并在AutoCAD中應(yīng)用VBA繪制地質(zhì)情況展示圖。數(shù)據(jù)庫中的表本設(shè)計(jì)所解決的問題是使隧道中繪制復(fù)雜展示圖的工作簡(jiǎn)便,為此我們?cè)赟QL數(shù)據(jù)庫中建立一個(gè)數(shù)據(jù)庫將線路的信息分類記錄到表格中。下面是本程序解決問題時(shí)需要在數(shù)據(jù)庫中所建立的幾個(gè)表及其內(nèi)容的具體介紹。本工程所建立的數(shù)據(jù)庫中有7個(gè)表組成,表名分別為Name、sheji、shigong、weiyanfenji、xianlu、yanxing、YT。以下是幾個(gè)表的主要信息(1)Name表主要記錄了工程的名稱、工程的里程信息。并詳細(xì)記錄了字段名稱、類型、定義、主鍵名稱等。其中,E_ID表示工程的地址,不同的工程用不同的E_ID來區(qū)分;ENAME表示工程名稱,不同工程名稱用不同的E_ID表示;EPNAME表示工程打印名稱;EFX表示是否反向;LC表示工程包含的里程,詳細(xì)信息見表2-1。表2-1Name(工程名稱)表包括的字段及內(nèi)容字段數(shù)據(jù)類型定義備注E_IDInt工程地址主鍵ENAMEnvarchar(50)工程名稱EPNAMEnvarchar(50)工程打印名稱EFXbit反向LCnvarchar(15)工程里程(2)Sheji表主要記錄了平面線路沿線的地質(zhì)水文情況,E_ID表示某個(gè)工程對(duì)應(yīng)的水文地質(zhì)情況;GWID表示不同水文地質(zhì)的分界標(biāo)識(shí);GWQZ表示工程水文地質(zhì)里程的前綴(DK);GWM表示工程水文地質(zhì)的描述信息;GWLC不同工程水文地質(zhì)情況分界的里程,詳細(xì)信息見表2-2。表2-2sheji(地質(zhì)描述)表包括的字段及內(nèi)容字段數(shù)據(jù)類型定義備注E_IDint工程地址GWIDint工程水文地質(zhì)地址主鍵GWQZnvarchar(10)工程水文地質(zhì)前綴GWMdecimal(18,0)工程水文地質(zhì)描述GWLCnvarchar(200)工程水文地質(zhì)里程(3)Shigong表主要記錄了沿線施工時(shí)的地質(zhì)情況,E_ID表示不同的工程地址;DM_ID表示施工時(shí)的隧道斷面劃分地址;DMDC表示施工時(shí)隧道斷面的地層巖性特征;DMSW表示施工時(shí)隧道斷面的水文情況;DMGC表示隧道斷面工程地質(zhì)特征;DMCZ隧道斷面施工時(shí)隧道初期支護(hù)的概述;DMLC表示施工隧道斷面的里程;DMC施工時(shí)隧道斷面的圍巖級(jí)別;DMQZ表示施工時(shí)隧道斷面的里程前綴(DK),詳細(xì)信息見表2-3。表2-3shigong(線路里程上的地質(zhì)情況)表包括的字段及內(nèi)容字段數(shù)據(jù)類型定義備注E_IDInt工程地址DM_IDInt線路里程地址主鍵DMDCnvarchar(100)地層巖性特征DMSWnvarchar(100)水文地質(zhì)特征DMGCnvarchar(100)工程地質(zhì)特征DMCZnvarchar(100)初期支護(hù)概述DMLCdecimal(18,0)線路里程DMCnvarchar(20)施工圍巖級(jí)別DMQZnvarchar(10)線路里程前綴(4)Weiyanfenji表主要記錄了在設(shè)計(jì)線路時(shí)各個(gè)工程上的地質(zhì)變化、圍巖級(jí)別變化的分界里程。其中,E_ID表示某個(gè)工程里圍巖級(jí)別的變化情況;WCC表示某工程的圍巖級(jí)別變化情況;WCID表示圍巖級(jí)別變化處的地址;WCLC表示圍巖級(jí)別變化處的里程;WCQZ圍巖級(jí)別里程前綴(DK),詳細(xì)信息見表2-4。表2-4weiyanfenji(圍巖分級(jí))表包括的字段及內(nèi)容字段數(shù)據(jù)類型定義備注E_IDInt工程地址WCCsmallint圍巖級(jí)別WCIDInt圍巖分級(jí)地址主鍵WCQZnvarchar(10)圍巖級(jí)別前綴WCLCdecimal(18,0)圍巖級(jí)別里程(5)Xianlu表主要記錄了平面線路中曲線的特征值,E_ID表示某工程對(duì)應(yīng)的平面線路的曲線特征;JD_ID表示本工程里線路走向變化的點(diǎn)(交點(diǎn))信息;X表示平面線路交點(diǎn)的橫向坐標(biāo)值;Y表示平面線路交點(diǎn)的縱向坐標(biāo)值;R表示緩和曲線中圓曲線半徑;lo表示曲線上的緩和曲線長(zhǎng),詳細(xì)信息見表2-5。表2-5xianlu(平面數(shù)據(jù)管理)表包括的字段及內(nèi)容字段數(shù)據(jù)類型定義備注E_IDInt工程地址JD_IDInt交點(diǎn)地址主鍵XReal交點(diǎn)的X坐標(biāo)YReal交點(diǎn)的Y坐標(biāo)RReal曲線半徑lofloat緩和曲線長(zhǎng)(6)Yanxing表主要描述了不同地段的巖性特征,YX_ID表示巖性變化點(diǎn)的地址,通過巖性地址與YT表建立某種聯(lián)系是的不同隧道斷面的巖性描述可以調(diào)用此表里的信息;YXMC儲(chǔ)存了對(duì)不同巖性情況的描述;YXTCT表示巖性的表示方法;YXTCBL表示巖性的比例值,詳細(xì)信息見表2-6。表2-6yanxing(巖性描述)表包括的字段及內(nèi)容字段數(shù)據(jù)類型定義備注YX_IDInt巖性地址主鍵YXMCnvarchar(30)巖性描述YXTCTnvarchar(20)巖性的表示方法YXTCBLfloat巖性比例(7)YT表主要記錄各個(gè)地段的巖性特征及其分界點(diǎn),YX_ID表示巖性變化點(diǎn)的地址,通過巖性地址與YT表建立某種聯(lián)系是的不同隧道斷面的巖性描述可以調(diào)用此表里的信息;YTID巖性特征的分界地址;YTQX表示巖性特征巖石的傾向;YTQJ表示巖性特征巖石的傾角;DM_ID隧道斷面地址,詳細(xì)信息見表2-7。表2-7YT(巖性特征)表包括的字段及內(nèi)容字段數(shù)據(jù)類型定義備注YX_IDInt巖性地址主鍵YTIDInt巖性特征地址YTQXdecimal(18,0)f巖性特征傾向YTQJdecimal(18,0)巖性特征傾角DM_IDInt隧道斷面地址數(shù)據(jù)庫中表的關(guān)聯(lián)圖上一節(jié)介紹了數(shù)據(jù)庫中建立的表及其內(nèi)容,具體這幾個(gè)表之間有什么樣的關(guān)系,我們是如何利用它們發(fā)揮作用的呢?(1)表xianlu里面將E_ID、JD_ID設(shè)為主鍵且E_ID為自動(dòng)標(biāo)識(shí)列,表name中E_ID設(shè)為主鍵,兩個(gè)表通過字段E_ID建立約束關(guān)系,其中xianlu是主鍵表,name是外鍵表。強(qiáng)制外鍵約束、強(qiáng)制與復(fù)制,標(biāo)識(shí)名稱是xianlu_name_pk。只有當(dāng)xianlu表里的內(nèi)容清空后name表里的工程才可以刪除。(2)表sheji里面將GWID設(shè)為主鍵并與name表通過字段E_ID建立約束關(guān)系,其中,sheji是主鍵表,name是外鍵表,強(qiáng)制外鍵約束、強(qiáng)制與復(fù)制,標(biāo)識(shí)名稱是sheji_name_pk。只有sheji表里的內(nèi)容清空后name表才可以被刪除,否則無法對(duì)name表進(jìn)行某些操作。(3)表Shigong里面將DM_ID設(shè)置為主鍵并與name表通過字段E_ID建立約束關(guān)系,其中shigong是主鍵表,name是外鍵表,強(qiáng)制外鍵約束、強(qiáng)制與復(fù)制、標(biāo)識(shí)名稱是shigong_name_pk。只有shigong表里的內(nèi)容清空后name表才可以被刪除,否則無法對(duì)name表進(jìn)行某些操作。(4)表weiyanfenji里面將WCID設(shè)置為主鍵并與name表通過字段E_ID建立約束關(guān)系,其中weiyanfenji是主鍵表,name是外鍵表,強(qiáng)制外鍵約束、強(qiáng)制與復(fù)制、標(biāo)識(shí)名稱是weiyanfenji_name_pk。只有weiyanfenji表里的內(nèi)容清空后name表才可以被刪除,否則無法對(duì)name表進(jìn)行某些操作。(5)表YT里面將YX_ID設(shè)置為主鍵并與yanxing表通過字段YX_ID建立約束關(guān)系,其中是YT主鍵表,yanxing是外鍵表,強(qiáng)制外鍵約束、強(qiáng)制與復(fù)制、標(biāo)識(shí)名稱是YT_yanxing_pk。只有表YT里的內(nèi)容清空后yanxing表才可以被刪除,否則無法對(duì)yanxing表進(jìn)行某些操作。(6)表YT里面將YTID設(shè)置為主鍵并與shigong表通過字段DM_ID建立約束關(guān)系,其中YT是主鍵表,shigong是外鍵表,強(qiáng)制外鍵約束、強(qiáng)制與復(fù)制、標(biāo)識(shí)名稱是YT_shigong_pk。只有YT表里的內(nèi)容清空后shigong表才可以被刪除,否則無法對(duì)shigong表進(jìn)行某些操作。總的來說就是,表YT約束shigong、yanxing表,而表shigong、sheji、weiyanfenji、xianlu分別通過不同的主鍵約束表name。圖2-1主要描述了表格之間的關(guān)系。圖2-1數(shù)據(jù)庫表的關(guān)聯(lián)圖程序結(jié)構(gòu)在AutoCAD中新建工程,根據(jù)實(shí)現(xiàn)功能的需要在新建工程里建立四個(gè)模塊、六個(gè)窗體。四個(gè)模塊名稱分別為:Caidan、Caidanxianshi、CommASS、DZSub。窗體名稱分別為:工程管理、工程數(shù)據(jù)管理、平面數(shù)據(jù)管理、編錄出圖、巖性表管理、打印。模塊通過caidan模塊添加菜單項(xiàng)及子菜單項(xiàng),Caidanxianshi項(xiàng)通過show顯示各個(gè)子菜單對(duì)應(yīng)的窗體。CommASS項(xiàng)調(diào)用數(shù)據(jù)庫、工作目錄及執(zhí)行SQL語句,DZSub項(xiàng)包含了本次設(shè)計(jì)的主要計(jì)算局部。它主要包括:圖框的繪制、字體大小及位置的設(shè)置、里程在那條曲線的判斷、方位角的計(jì)算、斷面投影的計(jì)算等。Caidan模塊模塊功能說明:本模塊屬于通用命令,主要功能是創(chuàng)立工具欄菜單,以及下拉菜單項(xiàng)。本模塊只有一個(gè)Inimenu過程,在該過程里實(shí)現(xiàn)了創(chuàng)立新菜單“隧道地質(zhì)編錄〞項(xiàng)的目的,且在“隧道地質(zhì)編錄〞里添加了工程管理、數(shù)據(jù)編錄、平面數(shù)據(jù)管理設(shè)置、巖性表設(shè)置、編錄出圖、圖表打印幾個(gè)菜單項(xiàng)。在模塊里根據(jù)要實(shí)現(xiàn)的功能編寫代碼,實(shí)現(xiàn)創(chuàng)立新菜單及下拉菜單的目的。Caidan模塊代碼見附表3-1。Caidanxianshi模塊模塊功能說明:本模塊主要功能是顯示下拉菜單項(xiàng)窗體,并實(shí)現(xiàn)其相應(yīng)操作的功能函數(shù)。本模塊有兩個(gè)不同的過程,一個(gè)是用frm.Show函數(shù)實(shí)現(xiàn)工程管理、數(shù)據(jù)編錄、平面數(shù)據(jù)管理設(shè)置、巖性表設(shè)置、編錄出圖幾個(gè)菜單項(xiàng)窗體的顯示功能。另一個(gè)同樣也使用了frm.Show函數(shù)實(shí)現(xiàn)圖表打印窗體的顯示,但在本模塊里設(shè)置了打印字體及圖紙的選擇,顯示窗體的代碼詳見附表3-2。CommASS模塊模塊功能說明:本模塊主要功能是通用輔助,總調(diào)用模塊用來實(shí)現(xiàn)連續(xù)調(diào)用其它幾個(gè)模塊。本模塊共包括10個(gè)過程,其中在函數(shù)SetWorkPath里設(shè)置工作目錄;在函數(shù)GetWorkPath里獲得工作目錄;在函數(shù)GetDBName里獲得數(shù)據(jù)庫表名稱;在函數(shù)GetTKSize里獲取邊框尺寸,本過程設(shè)置圖框選項(xiàng)包括A0、A1、A2、A3、A4圖框尺寸;在函數(shù)DBOpen里設(shè)置數(shù)據(jù)庫表所在的位置翻開本地?cái)?shù)據(jù)庫;函數(shù)ExecuteSQL在本過程里執(zhí)行SQL查詢,例如select、update、delete、insert語句;函數(shù)MakeLCStr本過程主要是標(biāo)準(zhǔn)里程書寫格式,是里程書寫標(biāo)準(zhǔn)化;函數(shù)MakeWCStr里實(shí)現(xiàn)了圍巖分級(jí)由數(shù)字轉(zhuǎn)化為希臘數(shù)字的功能;在函數(shù)MakeOldFWJ里方位角的度數(shù)表示,模塊具體的代碼見附表3-3。DZSub模塊本模塊包含了圖框的繪制、字體的大小及定位、圖框布局的設(shè)計(jì)、方位角的計(jì)算等程序的編寫。這里應(yīng)用了CommASS模塊中編寫公共過程調(diào)用數(shù)據(jù)庫、執(zhí)行SQL語言的代碼;DZSub模塊里編寫字體DrawOneText過程,編寫字體邊框線DrawLineText過程,展示圖圖框定位DrawOneZHSK過程,展示圖文字定位DrawOneZHSText過程,調(diào)用數(shù)據(jù)庫表里的字段GetJLDMID、GetJLWCID、GetJLWCID_BW、GetJLGWID_BW、GetJLDMID_BW的記錄,編寫計(jì)算方位角的函數(shù)利用getXLzx、getZXzx、getQXzx、GFfwj、調(diào)用函數(shù)。窗體里編寫可以任意起始里程、終止里程,以及是否繪制展示圖及填充物的代碼,本模塊詳細(xì)代碼見附表3-4窗體本設(shè)計(jì)共有7個(gè)窗體其中一個(gè)窗體是被工程管理這個(gè)窗體添加工程時(shí)調(diào)用的,下面介紹幾個(gè)窗體的作用。工程管理窗體工程管理窗體的作用是實(shí)現(xiàn)對(duì)工程的操作,在本窗體里我們可以用insert語句在數(shù)據(jù)庫name表里添加新的工程,用delete語句刪除name表里不用的工程,還可以對(duì)原有工程名稱用update語句進(jìn)行修改。窗體按鈕布局如圖3-1所示。圖3-1工程管理工程數(shù)據(jù)管理窗體本窗體主要實(shí)現(xiàn)了工程工程施工和設(shè)計(jì)時(shí)層面特征、根本特征的數(shù)據(jù)錄入,使工程的信息完整化。設(shè)計(jì)時(shí)窗體按鈕布局如圖3-2所示,施工時(shí)窗體按鈕布局如圖3-3所示。圖3-2工程數(shù)據(jù)管理-設(shè)計(jì)本窗體同樣需要初始化事件Initalize,同時(shí)窗體的添加、刪除、更新、退出等單擊事件Click與工程管理模式相同這里不再贅述。唯一需要說明的是選擇框的實(shí)現(xiàn),它需要在窗體初始化時(shí)就調(diào)用否則在文本框里將不能同步顯示圍巖級(jí)別。下面代碼是圍巖級(jí)別的定義。圖3-2工程數(shù)據(jù)管理-設(shè)計(jì)平面數(shù)據(jù)管理本窗體主要實(shí)現(xiàn)了工程與平面線路的對(duì)應(yīng)關(guān)系,而且還實(shí)現(xiàn)了起點(diǎn)和終點(diǎn)坐標(biāo)里程的更改曲線特征的添加、刪除和更改。窗體設(shè)置及按鈕布局如圖3-3所示。圖3-3平面數(shù)據(jù)管理里巖性表的管理本窗體的功能是把沿線地質(zhì)巖性類型添加到巖性表,使數(shù)據(jù)庫數(shù)據(jù)完整方便繪圖時(shí)調(diào)用數(shù)據(jù)庫,窗體設(shè)置及按鈕布局如圖3-4所示。圖3-4巖性表管理編錄出圖通過上面工程的建立數(shù)據(jù)的錄入我們就可以通過編錄出圖窗體來實(shí)現(xiàn)調(diào)用模塊及數(shù)據(jù)庫繪制圖形的目的。窗體布置及按鈕布局如圖3-5所示。圖3-5編錄出圖打印本窗體實(shí)現(xiàn)圖形的打印,窗體設(shè)置及按鈕布局如圖3-6所示。圖3-6打印重點(diǎn)算法為了實(shí)現(xiàn)展示圖圖例填充角度的計(jì)算,首先應(yīng)該計(jì)算任意一點(diǎn)的方位角,然后根據(jù)方位角確定線路走向,最后根據(jù)線路走向確定與沿線隧道斷面的投影角度,最終實(shí)現(xiàn)正確的展示圖圖例填充角度。平面線路方位角的計(jì)算計(jì)算任意里程的方位角需要的參數(shù)有:lo、R、X、Y、起點(diǎn)里程,將參數(shù)代入以下公式計(jì)算任意里程的方位角。任意里程的方位角計(jì)算參數(shù)計(jì)算圓曲線在ZH—XY坐標(biāo)下的切線角(4-1)緩和曲線在ZH—XY坐標(biāo)下的切線角(4-2)內(nèi)移參數(shù)(4-2)增值參數(shù)(4-3)主點(diǎn)定位參數(shù)緩和曲線的切線長(zhǎng)(4-4)緩和曲線的曲線長(zhǎng)(4-5)緩和曲線的外失距(4-6)計(jì)算主點(diǎn)里程ZH點(diǎn)里程:(4-7)HY點(diǎn)里程:(4-8)YH點(diǎn)里程:(4-9)HZ點(diǎn)里程:(4-10)QZ點(diǎn)里程:(4-11)線路走向計(jì)算計(jì)算兩點(diǎn)間距和方位角起點(diǎn)坐標(biāo)(qx,qy)、終點(diǎn)坐標(biāo)(zx,zy),求直線的方位角(4-12)(4-13)(4-14)1)如果dx>0,dy>0,則方位角a在第一象限;2)如果dx<0,dy<0,則方位角a在第二象限;3)如果dx<0,dy>0,則方位角a在第三象限;4)如果dx>0,dy<0,則方位角a在第四象限;5)如果dx<0,dy>0,則方位角a在第三象限;(4-15)(4-16)判斷線路走向:若a<0,說明左轉(zhuǎn),否則右轉(zhuǎn),如果a<0則轉(zhuǎn)角取a+360的正值,否則取a;如果a>0則轉(zhuǎn)角取a-360的正值,否則取a。參數(shù)計(jì)算1、圓曲線在ZH—XY坐標(biāo)下的切線角(4-17)2、緩和曲線在ZH—XY坐標(biāo)下的切線角(4-18)3、內(nèi)移參數(shù)(4-19)4、增值參數(shù)(4-20)5、緩和曲線的切線長(zhǎng)(4-21)6、緩和曲線的曲線長(zhǎng)(4-22)7、緩直點(diǎn)坐標(biāo)和里程(4-23)(4-24)(4-25)(4-26)1)如果且,則所求里程點(diǎn)在直線上,2)如果且,則所求里程點(diǎn)在緩和曲線上(4-27)(4-28)a>0時(shí),曲線走向=a1+β;a<0時(shí),曲線走向=a1-β。3)如果且,則所求里程在圓曲線上(4-29)(4-30)。4)如果且,則所求里程在另一緩和曲線(4-31)(4-32)a>0時(shí),曲線走向=a2+β;a<0時(shí),曲線走向=a2-β。5)如果或者,則里程不在工程范圍6)如果,則所求里程在直線上,線路走向=a1標(biāo)準(zhǔn)方位角方位角必須定位在(-360,360)之間,如果超出此范圍則需要修正:(4-33)(4-34)主要應(yīng)用技術(shù)ADO技術(shù)簡(jiǎn)介ADO是一種為基于Internet并且以數(shù)據(jù)為中心的應(yīng)用程序而提供的數(shù)據(jù)訪問接口,這種應(yīng)用程序接口和應(yīng)用程序使用的語言無關(guān)。通過ADO,應(yīng)用程序可以方便地存取、查詢、操作數(shù)據(jù)庫中的數(shù)據(jù)。ADO提供了幾個(gè)獨(dú)立的子對(duì)象,利用這些子對(duì)象,就可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的訪問,在這幾個(gè)對(duì)象中,Connection、Command和RecordSet對(duì)象是整個(gè)ADO的核心。Connection連接對(duì)象Connection對(duì)象用于建立和管理應(yīng)用程序與數(shù)據(jù)源的連接,也可以用它來執(zhí)行一個(gè)命令。想要讀取數(shù)據(jù)庫中的數(shù)據(jù),第一步就是要與數(shù)據(jù)庫取得連接,最常用的連接方式是利用連接字符串進(jìn)行直接連接。1、建立連接對(duì)象在進(jìn)行連接之前,必須要先聲明一個(gè)對(duì)象來作為ASP程序和數(shù)據(jù)庫之間的連接媒介,聲明的方法如下:Set對(duì)象變量名稱=Server.CreateObject(“ADODB.Connection〞)2、連接數(shù)據(jù)源Connection對(duì)象中有一個(gè)方法:OPEN,專門用來翻開Connection對(duì)象與數(shù)據(jù)庫之間的通道,實(shí)現(xiàn)數(shù)據(jù)源與ASP程序的真正連通。(1)OPEN方法使用格式如下:對(duì)象變量.OPEN連接字符串其中,連接字符串是說明欲連接數(shù)據(jù)庫的類型及數(shù)據(jù)庫的名稱。連接字符串有兩種不同格式的描述方法。(2)對(duì)于ACCESS類型的數(shù)據(jù)庫的連接字符串格式Driver={MicrosoftAccessDriver(*·mdb)};DBQ=指向.MDB文件的物理路徑;UID=;PWD=密碼(3)對(duì)于SQLServer類型的數(shù)據(jù)庫的連接字符串格式Driver={SQLServer};Database=數(shù)據(jù)庫名稱;server=效勞器名稱;UID=用戶名;PWD=密碼3、關(guān)閉連接當(dāng)不再需要使用連接對(duì)象時(shí),需要用CLOSE方法來關(guān)閉連接以釋放系統(tǒng)資源。(1)關(guān)閉連接對(duì)象的命令格式為:連接對(duì)象變量名.Close或Set連接對(duì)象變量名=Nothing關(guān)閉對(duì)象并非將它從內(nèi)存中刪除,以后仍可以更改它的屬性設(shè)置并且再次翻開。(2)若要將對(duì)象從內(nèi)存中完全刪除,可將對(duì)象變量設(shè)置為Nothing。4、執(zhí)行SQL查詢通過Connection對(duì)象的Execute方法執(zhí)行SQL命令。根據(jù)SQL命令執(zhí)行后是否返回記錄集,Execute方法的使用格式可分以下兩種方式。(1)執(zhí)行SQL命令后,不返回記錄集在執(zhí)行像Insert、Delete、Update等命令時(shí),操作結(jié)果不會(huì)返回記錄集,它只是對(duì)數(shù)據(jù)庫完成一種操作,可以使用以下格式的命令:連接對(duì)象名.Execute“SQL命令〞[n],N:是一個(gè)可選項(xiàng)變量名。用于保存命令執(zhí)行后受影響的記錄的條數(shù),如刪除的記錄數(shù)。(2)執(zhí)行SQL查詢命令,返回查詢得到的記錄集用Execute方法對(duì)數(shù)據(jù)表進(jìn)行查詢得到的結(jié)果通常是一個(gè)二維表形式的數(shù)據(jù)集合,為了更好地應(yīng)用查詢結(jié)果,經(jīng)常把查詢結(jié)果存儲(chǔ)在一個(gè)記錄集對(duì)象中。格式如下:Set記錄集對(duì)象變量名稱=連接對(duì)象變量名.Execute“SQL命令〞例如:SetRs=Cn.Execute“SELECT*FROM注冊(cè)用戶〞查詢表“注冊(cè)用戶〞中所有字段所有記錄,以此建立名為rs的RecordSet對(duì)象的實(shí)例。以后就可以應(yīng)用Rs對(duì)象的各種方法進(jìn)行操作,非常方便。Recordset對(duì)象Recordset對(duì)象是一個(gè)記錄的集合,它用于保存通過查詢所獲得的記錄結(jié)果。RecordSet對(duì)象包含多條記錄,每個(gè)記錄包含多個(gè)字段,在任何時(shí)刻,只有一條記錄是當(dāng)前記錄。通過使用Recordset對(duì)象可以對(duì)記錄進(jìn)行各種操作,如增刪記錄、更新記錄、在表中移動(dòng)指針等。1、創(chuàng)立Recordset對(duì)象第一種方法前面介紹過的通過連接對(duì)象的Execute()方法返回的查詢結(jié)果自動(dòng)創(chuàng)立RecordSet,這種方法創(chuàng)立的記錄集對(duì)象可以直接使用,而不用先創(chuàng)立對(duì)象實(shí)例。實(shí)現(xiàn)的語法分別如下:Set對(duì)象變量名=連接對(duì)象變量名.Execute(“SQL命令〞)如:SetRS=Cn.Execute(“Select*From注冊(cè)用戶〞)‘執(zhí)行查詢,產(chǎn)生記錄集另一種方法是先用Sever對(duì)象的CreateObject方法創(chuàng)立記錄集對(duì)象實(shí)例。Set對(duì)象變量名=Server.CreateObject(“ADODB.RecordSet〞)2、利用RecordSet對(duì)象的Open方法讀取數(shù)據(jù)RecordSet對(duì)象建立完成后,其中還沒有任何可供使用的記錄數(shù)據(jù),可以通過RecordSet對(duì)象中的Open方法獲取真正的記錄數(shù)據(jù),Open方法用來向數(shù)據(jù)源提出一個(gè)操作請(qǐng)求并執(zhí)行具體的操作。Open方法的使用格式如下:記錄對(duì)象變量名Open、數(shù)據(jù)來源、連接對(duì)象、指針類型、鎖定方式、數(shù)據(jù)源類型。3、顯示記錄集中的數(shù)據(jù)記錄集創(chuàng)立好后,可以通過它的屬性、方法和集合完成對(duì)記錄集中數(shù)據(jù)的顯示。(1)記錄集中的屬性記錄集對(duì)象中有許多屬性,它們對(duì)遍歷記錄集是有用處的。AbsolutePosition:用來設(shè)置或讀取當(dāng)前記錄在記錄集中的位置順序號(hào)。BOF:用來測(cè)試并返回記錄指針是否到達(dá)記錄集的頭部。是為True不是為False。EOF:用來測(cè)試并返回記錄指針是否到達(dá)記錄集的尾部。是為True不是為False。RecordCount:返回一個(gè)記錄集中的記錄總數(shù)。AbsolutePage:用來設(shè)置或返回當(dāng)前記錄所在的頁號(hào)。PageCount:返回當(dāng)前記錄集所包含總頁數(shù)。PageSize:設(shè)置每頁所包含的記錄個(gè)數(shù)。(2)記錄集中的方法記錄集有一些方法是用來在記錄之間移動(dòng)記錄指針的。移動(dòng)當(dāng)前指針的方法有5種,除了Move方法有兩個(gè)參數(shù)外,其余的四個(gè)不含參數(shù),使用很方便。但要注意,當(dāng)指針類型參數(shù)設(shè)置為adOpenForwardOnly時(shí),光標(biāo)向前移動(dòng)的方法是不可用的。五個(gè)方法分別是:MoveFirst:移動(dòng)到第一條記錄;MoveLast:移動(dòng)到最后一條記錄;MoveNext:移動(dòng)到下一條記錄;MovePrevious:移動(dòng)到上一條記錄;MoveN,Start:移動(dòng)N個(gè)記錄。(3)記錄集的子集合RecordSet對(duì)象包含一個(gè)字段子集合Fields,它儲(chǔ)存記錄的全部字段。Fields中的每個(gè)元素是一個(gè)字段對(duì)象。Field對(duì)象包含如下屬性:Name:字段名Type:字段的數(shù)據(jù)類型Value:字段的值Count:返回記錄集中一條記錄的字段個(gè)數(shù)可以通過以下方式調(diào)用Field對(duì)象的不同屬性:記錄集對(duì)象變量名.Fields(字段名或字段序號(hào))Value記錄集對(duì)象變量名.Fields(字段名或字段序號(hào)).Type記錄集對(duì)象變量名.Fields.Count記錄集對(duì)象變量名.Fields(字段序號(hào)).Name其中字段序號(hào)表示當(dāng)前字段在字段子集合Fields中的排列位置,若有n個(gè)字段,則其值從0、1、2...n-1。

通過字段序號(hào)獲取字段名稱:記錄變量名(字段序號(hào)).Name通過字段序號(hào)獲取字段值:記錄變量名(字段序號(hào)).vaule直接讀取指定名稱的字段值:記錄變量名(“字段名〞)4、記錄的增加及編輯修改RecordSet對(duì)象有5個(gè)可直接更新記錄的方法,其中UpdateBatch方法是用于成批處理記錄的,其它4種方法都是對(duì)當(dāng)前記錄操作的,所以不帶任何參數(shù)。AddNew:添加一條新的空記錄。該方法執(zhí)行后指針指向該新記錄,可以對(duì)其各個(gè)字段賦值,但不寫回到數(shù)據(jù)表中,只有通過執(zhí)行Updete方法才可以完成真正的插入功能。雖然連接對(duì)象的Execute方法也能用Insert命令實(shí)現(xiàn)記錄的插入,但對(duì)于有較多字段名和多個(gè)字段值的情況來說,用Insert命令實(shí)現(xiàn)記錄的插入書寫代碼比較麻煩,而且容易寫錯(cuò),不適合大量字符串的插入。而用記錄集對(duì)象的Addnew是常用的插入記錄的方法。Delete:刪除當(dāng)前記錄。這種方法每次只刪除一條記錄,而且不能帶條件,所以我們一般都用連接對(duì)象的Execute方法實(shí)現(xiàn)對(duì)記錄的刪除,這種方法更靈活,功能也較完善。Update:更新當(dāng)前記錄,將記錄集中編輯修改的記錄寫入數(shù)據(jù)庫中。用AddNew或Delete方法增加或刪除記錄后,最終要通過Update方法實(shí)現(xiàn)。CancalUpdate:撤消更新操作。撤消了AddNew和Delete命令的效果。UpdateBatch:更新(保存)一個(gè)或多個(gè)記錄的修改。(1)增加記錄向表中插入新記錄時(shí),如果該記錄的字段較多,且字段值大都是由用戶實(shí)際輸入的,我們一般都使用RecordSet對(duì)象的AddNew方法,具體實(shí)現(xiàn)過程如下:首先向表中插入一條空記錄,通過賦值語句向該記錄的不同字段賦值,最后通過Update方法完成對(duì)數(shù)據(jù)庫的數(shù)據(jù)真正更新。在實(shí)際應(yīng)用時(shí)一般要設(shè)計(jì)2個(gè)網(wǎng)頁文檔,一個(gè)是數(shù)據(jù)輸入界面,另一個(gè)是完成記錄插入的數(shù)據(jù)更新的。(2)刪除記錄從表中刪除記錄有兩種方法,一種是通過連接對(duì)象的Execute方法執(zhí)行SQL命令中的Delete命令;另一種方法是利用記錄集對(duì)象的Delete方法刪除當(dāng)前記錄。我們一般使用通過連接對(duì)象的Execute方法執(zhí)行SQL命令中的Delete命令的方法,這種方法可以帶刪除條件,一個(gè)命令可以刪除多條滿足條件的記錄;而利用記錄集對(duì)象的Delete方法只能刪除當(dāng)前記錄,所以必須通過循環(huán)語句才能刪除多條記錄,運(yùn)行效率較低。通過輸入界面輸入刪除條件,這種方式一般要設(shè)計(jì)兩個(gè)頁面,一個(gè)靜態(tài)頁面用于提供輸入刪除的條件值;另一個(gè)動(dòng)態(tài)頁面用于獲取靜態(tài)頁面所提交的刪除值,然后判斷是否存在要?jiǎng)h除的記錄,如果不存在則顯示提示信息,如果存在則執(zhí)行刪除命令。Sample7_14.htm就是這種應(yīng)用的例子。通過復(fù)選框選擇多條要?jiǎng)h除的記錄,這種方式一般要設(shè)計(jì)兩個(gè)動(dòng)態(tài)頁面,一個(gè)動(dòng)態(tài)頁面用于提供可供選擇的刪除記錄,每個(gè)記錄前有一個(gè)復(fù)選框,供用戶確定該記錄是否要?jiǎng)h除;另一個(gè)動(dòng)態(tài)頁面用于獲取選擇頁面所提交的刪除記錄的特征值,從而確定要?jiǎng)h除的記錄。通過超連接的方式確定要?jiǎng)h除的記錄,這種方式一般要設(shè)計(jì)兩個(gè)動(dòng)態(tài)頁面,一個(gè)動(dòng)態(tài)頁面用于提供可供選擇的刪除記錄,每個(gè)記錄的主鍵字段包含一個(gè)超連接,當(dāng)用戶單擊此超連接時(shí),即可調(diào)另一網(wǎng)頁獲取選擇頁面所提交的刪除記錄的特征值實(shí)現(xiàn)對(duì)該記錄的刪除。在這種情況下被刪除的記錄已經(jīng)顯示的屏幕上了,也不用判斷它是否存在,直接執(zhí)行SQL中的Delete刪除命令。(3)修改記錄對(duì)于一次要修改多條記錄,且被修改的多條記錄修改的方法相同時(shí),一般使用通過連接對(duì)象的Execute方法執(zhí)行SQL命令中的Update命令,用這種修改記錄的方法建議被修改的值不宜過多,如果被修改的值過多書寫代碼復(fù)雜且容易出錯(cuò)。如果一次要修改某條記錄的多個(gè)字段值,而且不同記錄被修改的字段值也不相同時(shí),建議使用記錄集對(duì)象的Update方法修改當(dāng)前記錄。AutoCADVBA簡(jiǎn)介什么是AutoCADVBAVBA是VisualBasicforApplications的英文縮寫,它是一個(gè)功能強(qiáng)大的開發(fā)工具,在工作中,有很多任務(wù)僅用AutoCAD命令不可能完成的,學(xué)好VBA可以成倍甚至成百、成萬倍提高工作效率。用VBA管理器組織工程你可以使用VBA管理器查看裝載在當(dāng)前AutoCAD進(jìn)程的所有VBA工程。VBA管理器一個(gè)AutoCAD工具,它允許你裝載、卸載、保存、創(chuàng)立、嵌入和別離VBA工程。翻開VBA管理器的步驟:在工具菜單中選擇宏-VBA管理器或者在AutoCAD中調(diào)用VBAMAN命令。裝載現(xiàn)存的工程,當(dāng)你裝載工程到AutoCAD中,所有的公用的子程序(也稱為宏)都可以使用。嵌入于圖形中的工程在圖形翻開時(shí)就被裝載。保存在DVB文件中的工程必須單獨(dú)裝載。裝載現(xiàn)存的VBA工程文件:在VBA管理器中,使用裝載項(xiàng)可彈出翻開VBA工程對(duì)話框;在翻開VBA工程對(duì)話框中,選擇翻開的工程文件。該VBA工程對(duì)話框允許你翻開有效的DVB文件;如果你嘗試翻開不同類型的文件,你將會(huì)得到出錯(cuò)信息;選擇翻開。你也可以使用VBALOAD命令直接出現(xiàn)翻開VBA工程對(duì)話框以裝載工程文件。另外,當(dāng)工程裝載后,該工程所引用的其它工程將會(huì)自動(dòng)地裝載。還有,AutoCAD在啟動(dòng)時(shí)將自動(dòng)裝載名稱為acad.dvb的工程文件。相關(guān)主題:病毒警告。每次當(dāng)你裝載工程時(shí),你會(huì)看到啟用或禁用工程中的代碼以阻止宏病毒的警告框。如果你選用啟用代碼,如果工程中含有宏病毒時(shí)病毒可能會(huì)發(fā)作。如果你禁用代碼,工程同樣會(huì)裝載,但工程中的所有代碼將不能運(yùn)行。卸載工程以釋放內(nèi)存并保持裝載的工程列表的長(zhǎng)度以方便管理。你不能卸載嵌入工程或由其它已裝載工程所引用的工程。卸載VBA工程的操作:在VBA管理器中,選擇要卸載的工程;選擇卸載或者使用VBAUNLOAD命令,它將提示你所要卸載的工程。嵌入工程到圖形中:當(dāng)你嵌入一個(gè)工程時(shí),你是將工程的一個(gè)副本置于圖形數(shù)據(jù)庫中。無論何時(shí),當(dāng)所包含工程的圖形翻開或關(guān)閉時(shí),工程會(huì)同時(shí)被裝載和被卸載。一個(gè)圖形只有在同一時(shí)間包含一個(gè)嵌入工程。如果圖形已經(jīng)包含有一個(gè)嵌入工程,你必須在同樣地入其它工程之前將該嵌入工程別離出。嵌入工程到AutoCAD圖形中的操作:翻開VBA管理器并選擇你所要嵌入的工程;選擇嵌入。當(dāng)你別離工程時(shí),其實(shí)是將工程從圖形數(shù)據(jù)庫中刪除,同時(shí)會(huì)提示你將工程保存為外部的工程文件。如果你沒有將其保存為外部工程文件,該工程的數(shù)據(jù)將會(huì)刪除。從AutoCAD圖形中別離工程的操作:翻開VBA管理器并選擇要從圖形中別離的工程;選擇別離;如果你想保存工程信息為外部工程文件,可以在“你是否想在刪除VBA工程前將其輸出?〞的提示下選擇“是〞,此時(shí)會(huì)顯示另存為對(duì)話框,允許你保存文件。如果你不想保存該工程信息到外部文件,可以在“你是否想在刪除VBA工程前將其輸出?〞的提示下選擇“否〞,此時(shí)工程信息將在沒有保存的情況下從圖形中刪除。創(chuàng)立新的工程:新的工程將作為未保存的全局工程被創(chuàng)立。當(dāng)工程創(chuàng)立時(shí),你可以將工程嵌入圖形中,或?qū)⑵浔4鏋楣こ涛募?chuàng)立新的VBA工程的操作:翻開VBA管理器;選擇新建。新創(chuàng)立的工程將使用默認(rèn)的工程名稱ACADproject。你必須到VBAIDE中才可以更改工程名稱。保存嵌入工程,嵌入工程是在圖形保存時(shí)同時(shí)保存的。全局工程必須使用VBA管理器或VBAIDE進(jìn)行保存。使用VBA管理器保存工程的操作:翻開VBA管理器并選擇要保存的工程;選擇另存為,此時(shí)另存為對(duì)話框翻開;選擇用于保存工程的文件;選擇保存處理宏與設(shè)置VBA工程選項(xiàng)一樣,宏對(duì)話框允許你運(yùn)行、編輯、刪除和創(chuàng)立宏。宏是公用(可執(zhí)行)的子程序。每一工程通常至少一個(gè)宏。翻開宏對(duì)話框的操作:從工具菜單中選擇宏:或在AutoCAD中調(diào)用VBARUN命令。在對(duì)話框中顯示的是所有在有效范圍內(nèi)的宏名稱。你可通過下拉列表來改變有效范圍。該列表指定所要顯示的宏所在的工程或圖形。你可在以以下表內(nèi)容選擇所要顯示宏范圍所有圖形和工程所有圖形所有工程在當(dāng)前所翻開的單獨(dú)圖形在當(dāng)前所裝載的單獨(dú)工程通過限制有效范圍你可控制顯示在列表中的宏名稱的數(shù)量。它可幫助你注意到當(dāng)前有多少宏裝載到圖形中或指定工程中有多少宏。運(yùn)行宏,運(yùn)行宏就是在當(dāng)前AutoCAD進(jìn)程中執(zhí)行宏代碼。當(dāng)前活動(dòng)圖形指的是當(dāng)宏執(zhí)行開始時(shí)處于翻開并處理激活狀態(tài)。所有在全局工程的宏中所涉及的ThisDrawing對(duì)象將指向當(dāng)前活動(dòng)圖形。在嵌入工程中,ThisDrawing對(duì)象通常指向嵌入該宏的圖形。運(yùn)行宏的操作:翻開宏對(duì)話框并選擇要運(yùn)行的宏;選擇運(yùn)行。編輯宏,編輯宏將翻開VBAIDE并翻開所選定宏的代碼窗口。詳細(xì)的介紹請(qǐng)參考“用VBAIDE編輯工程〞。編輯宏的操作:翻開宏對(duì)話框并選擇要編輯的宏;選擇編輯。逐語句運(yùn)行宏指的是開始運(yùn)行宏并在第一行代碼時(shí)暫停。VBAIDE也隨之翻開所選定的宏的代碼窗口并高亮顯示所執(zhí)行宏所在的行。逐語句運(yùn)行宏的操作:在宏對(duì)話框中,選擇要逐語句運(yùn)行的宏;選擇逐語句;選擇逐語句。創(chuàng)立新的宏操作:翻開宏對(duì)話框并輸入新宏的名稱;在宏位置下拉列表中選擇所創(chuàng)立宏所要存在的位置;選擇創(chuàng)立。如果所指定宏的名稱已經(jīng)存在,系統(tǒng)將提示你是否替換現(xiàn)在的宏。如果你在提示下選擇“是〞,則現(xiàn)在的宏代碼將被刪除,而一個(gè)新的而沒有內(nèi)容的宏也會(huì)以指定名稱而創(chuàng)立。如果你在提示下選擇“否〞這時(shí)會(huì)返回宏對(duì)話框以輸入另外的宏名稱。如果你在提示下選擇“取消〞宏對(duì)話框?qū)⑾?,宏也沒有創(chuàng)立。刪除宏操作:翻開宏對(duì)話框并選擇要?jiǎng)h除的宏;選擇刪除,系統(tǒng)會(huì)提示你是否確認(rèn)刪除;在提示下,選擇“是〞而刪除宏,或者選擇“否〞以取消刪除的操作。VBAIDE編輯工程翻開VBAIDE,當(dāng)翻開VBAIDE時(shí),它就可以訪問所有已裝載的工程。按需要翻開VBAIDE的操作,你可以從命令行或從菜單欄中翻開VBAIDE從命令行,可輸入VBAIDE?;驈墓ぞ卟藛危褂煤?VisualBasic編輯器。在AutoCAD啟動(dòng)時(shí)自動(dòng)翻開VBAIDE的操作。1、查看工程信息VBAIDE包含名稱為工程窗口的窗口,其中顯示了所有已裝載VBA工程的列表。它也顯示包含在工程中的代碼、類和窗體模塊,還有關(guān)聯(lián)到該工程的文檔,在該工程所引用的VBA工程,以及工程的物理位置(也稱路徑)。工程窗口有它自己的工具欄,使用其工具欄可翻開不同的工程部件進(jìn)行編輯。使用查看代碼按鈕可翻開選定模塊的代碼。使用查看對(duì)象按鈕可顯示如窗體之類的選定對(duì)象。VBAIDE工程窗口,工程窗口默認(rèn)為可見。如果不可見,可從查看菜單中選擇工程窗口,或按CTRL+R。定義工程的部件,每個(gè)工程可包含多個(gè)不同的部件。在工程中包含的不同部件可以是對(duì)象、窗體、標(biāo)準(zhǔn)模塊、類模塊和引用。對(duì)象部件聲稱了VBA代碼可訪問的對(duì)象或文檔的類型。在AutoCADVBA工程,該對(duì)象聲稱為當(dāng)前AutoCAD圖形。窗體部件包含了當(dāng)前你在工程中為了使用而建立的自定義對(duì)話框。該代碼部件包含了普通程序和函數(shù)。標(biāo)準(zhǔn)模塊也歸類為代碼模塊或簡(jiǎn)單的模塊。類模塊部件包含你所有定義為類的自己的對(duì)象。引用部件包含所有引用其它的工程和庫。2、增加新部件增加新的部件是在工程中創(chuàng)立一空白的部件。你可在工程中增加新的模塊、窗體和類模塊。你有責(zé)任更新所有部件的屬性(如部件的名稱)并在其中寫入適當(dāng)?shù)拇a。當(dāng)命名一個(gè)新的部件,請(qǐng)記住可能其它開發(fā)都會(huì)在以后的應(yīng)用程序中用到你的部件。在你的開發(fā)工程中應(yīng)該跟隨適當(dāng)?shù)拿Q約定。增加新的部件到工程的操作:在VBAIDE的工程窗口中,選擇你要增加部件的工程;從插入菜單中,選擇用戶窗體、模塊或類模塊以增加新的部件到你的工程中。新的模塊將被增加到你的工程中并出現(xiàn)在工程窗口中。3、輸入現(xiàn)存的部件輸入功能允許你增加現(xiàn)存的部件到工程中。你可以輸入窗體、模塊或類模塊。輸入的窗體文件為FRM文件,輸入的模塊文件為BAS文件,輸入的類模塊文件為CLS文件。當(dāng)你輸入一個(gè)部件文件,文件的一個(gè)副本將輸入并增加到工程中。而原來的文件也會(huì)保持不變。在輸入部件中所做的不會(huì)影響到原來的部件文件。如果你用現(xiàn)存的同樣的名稱輸入部件,該文件將添加到工程中相應(yīng)的部件上。從工程中輸入現(xiàn)存的部件的操作:在VBAIDE的工程窗口中,選擇你要增加部件的工程;從文件菜單中,選擇輸入文件以翻開輸入文件對(duì)話框;從輸入文件對(duì)話框中,選擇所要輸入的文件,然后按翻開。該輸入部件將增加到你的工程中并在工程窗口中出現(xiàn)。編輯部件的屬性,可選擇工程窗口的該部件。所選部件的屬性將在屬性窗口中列出并可編輯。4、編輯部件的操作:在VBAIDE的工程窗口中,選擇你要編輯的部件;選擇工程窗口中的查看代碼按鈕以翻開代碼窗口;選擇工程窗口中的查看對(duì)象按鈕以翻開用戶窗體窗口和關(guān)聯(lián)的工具箱。你可同時(shí)翻開你所有模塊中的代碼窗口,所以你可很容易地不同窗體或模塊中的代碼,并在它們之間進(jìn)行復(fù)制和粘貼。工程實(shí)例本章主要是以田壩嶺隧道進(jìn)口為例對(duì)本程序的使用進(jìn)行說明和應(yīng)用。工程名稱的錄入為了實(shí)現(xiàn)對(duì)不同工程的管理,首先要錄入工程名稱,且每個(gè)工程名稱對(duì)應(yīng)一個(gè)E_ID不允許重復(fù)。添加工程名稱的步驟:點(diǎn)擊工具欄的“隧道地質(zhì)編錄〞菜單項(xiàng)選擇“工程管理〞項(xiàng)彈出(圖6-1)點(diǎn)擊“添加工程〞按鈕彈出(圖6-2),根據(jù)提示錄入信息,工程名稱為“田壩嶺隧道進(jìn)口〞,打印名稱為“田壩嶺隧道進(jìn)口圖〞,起始里程“426085”,反向開挖不選中,信息錄入完畢退出對(duì)話框。圖6-1工程管理圖6-2新建工程巖性表設(shè)置為了使用方便我們搜集了大量的巖性信息并將其存放到PAT文件夾中通過模塊調(diào)用該文件夾中的內(nèi)容顯示在“巖性表管理〞對(duì)話框的“巖性及填充庫〞列表中。根據(jù)線路地質(zhì)勘測(cè)的信息歸納總結(jié)出所有的巖性特征參數(shù),然后通過巖性表管理將信息從“巖性及填充庫〞里添加到“yanxing〞表中。所添加的巖性有:變質(zhì)砂巖、變質(zhì)頁巖、綠泥片巖、硅質(zhì)灰?guī)r、泥灰?guī)r、泥巖、油頁巖、砂巖、硅質(zhì)頁巖、碳質(zhì)板巖、石英砂巖、砂質(zhì)礫巖、變質(zhì)砂巖、斷層角礫巖、含泥質(zhì)灰?guī)r、砂卵礫巖等。在“巖性表管理〞中可以添加所需要的巖性、刪除多余的巖性并且可以更新填充比例,詳見圖(6-3)平面數(shù)據(jù)錄入在田壩嶺隧道這個(gè)工程里添加本線路包含的特征參數(shù),本工程有5個(gè)交點(diǎn):-1、0、1、2、3,其中JD_ID=-1時(shí)表示終點(diǎn)曲線的信息,JD_ID=0表示起點(diǎn)曲線信息,因?yàn)槠瘘c(diǎn)是直線所以我們可以把起點(diǎn)的里程錄入到lo里方便以后使用。將表6-1里的數(shù)據(jù)通過圖6-4平面數(shù)據(jù)管理窗體添加到數(shù)據(jù)庫。表6-1線路曲線參數(shù)E_IDJD_IDRloXY1-1002500.315800010042608525.05801130008023065012400010016003500134500908006500圖6-3巖性表管理圖6-4平面數(shù)據(jù)管理設(shè)置工程地質(zhì)數(shù)據(jù)錄入本窗體主要實(shí)現(xiàn)了工程工程設(shè)計(jì)和施工時(shí)工程地質(zhì)情況的數(shù)據(jù)錄入,使工程的信息完整化。田壩嶺隧道設(shè)計(jì)的地質(zhì)數(shù)據(jù)見表6-2,把表中的數(shù)據(jù)通過工程數(shù)據(jù)管理—設(shè)計(jì)窗體添加到表中添加后窗體如圖6-5所示。表6-2設(shè)計(jì)時(shí)地質(zhì)工程數(shù)據(jù)工程名稱圍巖分級(jí)工程水文地質(zhì)里程前綴里程級(jí)別里程前綴里程描述田壩嶺隧道DK429000ⅣDK429000注1DK427200ⅢDK427200注2DK426900ⅣDK426900注3DK426500ⅢDK426500注4DK426330ⅤDK42685注5DK426200ⅣDK42685Ⅴ注:表里對(duì)工程水文地質(zhì)的描述字?jǐn)?shù)比較多使表格不協(xié)調(diào),所以列到注釋里。1、該段巖性為泥盆系中統(tǒng)信都組砂巖、泥質(zhì)砂巖夾頁巖,青灰色,紫紅色,中細(xì)粒質(zhì)結(jié)構(gòu),中厚-厚層狀?yuàn)A薄層狀,巖質(zhì)較硬。區(qū)域性長(zhǎng)軸背斜通過,與線路相交于DK429+380,交角20度。地下水主要為基巖裂隙水,環(huán)境水對(duì)混凝土結(jié)構(gòu)無侵蝕性。2、該段為泥盆系中統(tǒng)組砂巖、泥質(zhì)砂巖夾頁巖,青灰色,紫紅色,中細(xì)粒質(zhì)結(jié)構(gòu),中厚-厚層狀?yuàn)A薄層狀,巖質(zhì)較硬。節(jié)理發(fā)育,巖體較完整。該段未見明顯構(gòu)造跡象。地下水主要為基巖裂隙水環(huán)境水對(duì)混凝土結(jié)構(gòu)無侵蝕性。3、該段巖性為砂巖、泥質(zhì)砂巖夾頁巖,中厚層-厚層狀,埋深較淺,巖質(zhì)較硬。節(jié)理較發(fā)育,巖體較完整。4、該段巖性砂巖、泥質(zhì)砂巖夾頁巖,中厚-厚層狀,巖質(zhì)較硬。節(jié)理發(fā)育,巖體較完整。5、該段巖性灰?guī)r和砂巖、泥質(zhì)砂巖夾頁巖,中厚-薄層狀,巖質(zhì)軟硬相間。節(jié)理較發(fā)育,王家莊逆斷層與線路交于DK426+350處。田壩嶺隧道施工的地質(zhì)數(shù)據(jù)見表6-3、表6-4,把表中的數(shù)據(jù)通過工程數(shù)據(jù)管理—施工窗體添加到表中添加后窗體如圖6-6所示。表6-3層面特征工程名稱線路里程層面特征里程前綴劃分級(jí)別里程傾向傾角巖石特征田壩嶺隧道DKⅤ42894710022泥質(zhì)砂巖5022泥質(zhì)砂巖DKⅤ42893510020泥質(zhì)砂巖DKⅢ42874511035泥質(zhì)砂巖DKⅢ42860011035泥質(zhì)砂巖DKⅢ42856011035泥質(zhì)砂巖DKⅢ42845011035泥質(zhì)砂巖DKⅢ42830011035泥質(zhì)砂巖DKⅢ42821011035泥質(zhì)砂巖DKⅢ42816011020泥質(zhì)砂巖DKⅢ4284111020砂巖DKⅢ42795611020砂巖DKⅢ42786111020砂巖DKⅢ42784111020砂巖DKⅢ42776511020砂巖DKⅢ42756111020砂巖DKⅢ42744311020砂巖DKⅢ42737211020砂巖DKⅢ42728011020砂巖DKⅢ42723511020砂巖DKⅣ42720011020砂巖DKⅢ42718011020砂巖DKⅢ42711011020砂巖DKⅤ4276711020砂巖DKⅢ42697011020泥質(zhì)砂巖DKⅢ42691211020泥質(zhì)砂巖DKⅤ42689711020泥質(zhì)砂巖DKⅣ42685311020泥質(zhì)砂巖DKⅤ42682011020泥質(zhì)砂巖DKⅤ42675011020泥質(zhì)砂巖DKⅤ42674511020泥質(zhì)砂巖DKⅣ42674011020泥質(zhì)砂巖DKⅣ42670011020泥質(zhì)砂巖DKⅤ42665511020泥質(zhì)砂巖DKⅤ42663011020石英砂巖DKⅤ42654711020含泥質(zhì)灰?guī)rDKⅤ42648911020含泥質(zhì)灰?guī)rDKⅤ42645311020泥巖DKⅤ42643511020泥巖DKⅤ42641711040泥巖DKⅤ42640511040泥巖DKⅤ42637011040泥巖DKⅤ42633511040泥巖DKⅤ42630811040泥巖DKⅤ42628011040泥巖DKⅤ42626811040泥巖表6-4根本特征工程名稱里程根本特征地層巖性特征工程地質(zhì)特征初期支護(hù)概述水文地質(zhì)特征巖石特征田壩嶺隧道428947-428935該段巖性為強(qiáng)風(fēng)化黃褐色、灰色含泥砂巖巖體較破碎,呈塊石碎石狀結(jié)構(gòu),巖體自穩(wěn)性差,易掉快或局部坍塌噴砼,掛網(wǎng)錨噴潮濕或滴水428745該段巖性為微-弱風(fēng)化灰色含泥砂巖局部淋水428600巖性弱風(fēng)化黃褐色、灰色含泥砂巖滴水,局部淋水428560該段巖性為微-弱風(fēng)化灰色含泥砂巖滴水428450該段巖性為弱-強(qiáng)風(fēng)化灰色、紅褐色含泥砂巖428300滴水,局部淋水428210巖體較破碎,呈塊石碎石狀結(jié)構(gòu)巖體穩(wěn)定性一般潮濕,局部滴水428160該段巖性為微-弱風(fēng)化灰色含泥砂巖巖體較破碎,呈塊石碎石狀結(jié)構(gòu),巖體穩(wěn)定性較好42841該段巖性為灰色微風(fēng)化砂巖。潮濕427956-427765該段巖性為灰色微風(fēng)化泥質(zhì)砂巖,中厚層面產(chǎn)狀為110°∠20巖體較完整,呈塊狀結(jié)構(gòu),層間結(jié)合一般,巖體穩(wěn)定性較好滴水,局部淋雨427561-427372局部滴水。427280-427235該段巖性為紅褐色微風(fēng)化泥質(zhì)砂巖,中厚。層面產(chǎn)狀為110°∠20°。巖體較完整,層間結(jié)合較差,巖體穩(wěn)定性較好,巖體呈塊狀構(gòu)造??菰?27200該段巖性為紅褐色微風(fēng)化-弱風(fēng)化泥質(zhì)砂巖,中厚-薄層狀,巖質(zhì)軟硬相間。層面產(chǎn)狀為110°∠20°427180-42767巖性為紅褐色微風(fēng)化-弱風(fēng)化泥質(zhì)砂巖中厚-薄層狀,巖質(zhì)軟硬相間層面產(chǎn)狀為110°∠20°巖體較破碎,層間結(jié)合差,巖體穩(wěn)定性較差,巖體呈碎石塊石狀構(gòu)造,局部碎石角礫狀構(gòu)造,易掉塊。潮濕。噴砼立拱支護(hù)掛網(wǎng)錨噴枯燥-潮濕。426970-426912巖體較破碎,層間結(jié)合差,巖體穩(wěn)定性較差,巖體呈碎石塊石狀結(jié)構(gòu)。潮濕,局部點(diǎn)滴狀。426897-426853巖體較破碎,巖體穩(wěn)定性較差,巖體呈碎石塊石狀結(jié)構(gòu)。426820-426630巖體極破碎,巖體穩(wěn)定性差,巖體呈散體結(jié)構(gòu)。滲水。426547-426435巖體極破碎,巖體穩(wěn)定性差,推測(cè)為斷層破碎帶,巖體呈散體結(jié)構(gòu)。426417該段巖性為泥盆系灰?guī)r和砂巖、泥質(zhì)砂巖夾頁巖,中厚-薄層狀,巖質(zhì)軟硬相間。層面產(chǎn)狀為110°∠40°。426405-426370該段巖性為泥盆系灰?guī)r和砂巖、泥質(zhì)砂巖夾頁巖,中厚-薄層狀,巖質(zhì)軟硬相間。層面產(chǎn)狀為150°∠30°。整體濕潤(rùn)。426335受構(gòu)造影響重(斷層影響外帶),結(jié)構(gòu)面發(fā)育,巖體呈塊石碎石狀結(jié)構(gòu),巖體完整性較差。426308結(jié)構(gòu)面發(fā)育,巖體呈塊石碎石狀結(jié)構(gòu),巖體完整性較差。426280受構(gòu)造影響重(斷層影響外帶),結(jié)構(gòu)面發(fā)育,巖體呈塊石碎石狀結(jié)構(gòu),巖體完整性較差。滲水。426268巖體中結(jié)構(gòu)面發(fā)育,巖體呈塊石碎石狀結(jié)構(gòu),巖體完整性較差。無水。圖6-5工程數(shù)據(jù)管理-設(shè)計(jì)圖6-6工程數(shù)據(jù)管理-施工編錄出圖點(diǎn)擊工具欄的“地質(zhì)編錄〞菜單,然后選擇“編錄出圖〞項(xiàng)彈出對(duì)話框如圖6-6。在對(duì)話框里輸入起始里程:426800,終止里程:426890,間距為默認(rèn)值6,選擇繪制展示圖、自動(dòng)填充。確定后自動(dòng)生成6-7圖。圖6-6編錄出圖圖6-7生成圖形結(jié)論最終成果初步成果是模塊設(shè)計(jì),主要包括:線路平面數(shù)據(jù)管理模塊設(shè)計(jì)、實(shí)現(xiàn);地質(zhì)編錄數(shù)據(jù)管理模塊設(shè)計(jì)、實(shí)現(xiàn);結(jié)構(gòu)面投影算法設(shè)計(jì);填充圖例管理模塊設(shè)計(jì)、實(shí)現(xiàn);自動(dòng)繪圖及報(bào)表模塊設(shè)計(jì)、實(shí)現(xiàn);控制模塊設(shè)計(jì)、實(shí)現(xiàn)。通過對(duì)這些模塊的設(shè)計(jì)實(shí)現(xiàn)了把工程地質(zhì)情況數(shù)據(jù)化的目的,用窗體實(shí)現(xiàn)對(duì)數(shù)據(jù)庫表的管理操作。通過綜合測(cè)試、改良實(shí)現(xiàn)數(shù)據(jù)庫中表的聯(lián)系及窗體的整體化,使得工具欄菜單項(xiàng)的下拉菜單聯(lián)合起來實(shí)現(xiàn)繪圖功能。最終的成果是通過對(duì)數(shù)據(jù)庫表的設(shè)置及程序的編寫實(shí)現(xiàn)了鐵路隧道地質(zhì)編錄自動(dòng)成圖的目的??偨Y(jié)本設(shè)計(jì)可以實(shí)現(xiàn)參加窗體模塊編程,每確認(rèn)一個(gè)窗體模塊即可實(shí)現(xiàn)一項(xiàng)模塊功能。使工作量由軟件從已編寫的數(shù)據(jù)庫文件中提取數(shù)據(jù)自動(dòng)生成圖形。用鐵路隧道地質(zhì)編錄自動(dòng)成圖系統(tǒng)繪制隧道展示圖比手工快幾十倍甚至更多。從本設(shè)計(jì)里還學(xué)到線路平面設(shè)計(jì)、隧道橫斷面設(shè)計(jì)根本知識(shí);工程地質(zhì)里巖性、產(chǎn)狀、構(gòu)造;工程測(cè)量里曲線參數(shù)、里程的計(jì)算等專業(yè)知識(shí)。通過半學(xué)期的學(xué)習(xí)與實(shí)踐,我們學(xué)到了許多知識(shí)不僅是專業(yè)知識(shí)更多的是實(shí)踐中遇到問題處理問題的能力。雖然有老師一路的指導(dǎo)但此期間更多的問題需要我們自己去嘗試去摸索,在無數(shù)的失敗與教訓(xùn)中增長(zhǎng)經(jīng)驗(yàn)?zāi)ゾ氁庵?。展望本設(shè)計(jì)只是針對(duì)隧道地質(zhì)展示圖的一個(gè)軟件開發(fā),使用面比較狹窄。根據(jù)這個(gè)有針對(duì)性和比較單一的方案我們可以日益完善這個(gè)課題,可以使得本程序包含的內(nèi)容更加廣泛、更加的健全。使得本程序不僅具有繪制展示圖的功能,而且還具備繪制隧道的開挖進(jìn)度、開挖的步驟以及開挖工程量的計(jì)算等功能。在逐步的完善中希望可以的到一個(gè)功能齊全的應(yīng)用軟件,使得我們只需要提供隧道勘測(cè)數(shù)據(jù)和施工數(shù)據(jù)就能很快的到一個(gè)滿意的結(jié)果,大大減少工作量節(jié)省時(shí)間。參考文獻(xiàn)[1]張帆.AutoCADVBA二次開發(fā)教程清華大學(xué)出版社[M],2006年1月(第一版).[2]佟士懋.AutoCADActiveX/VBA二次開發(fā)技術(shù)基礎(chǔ)及應(yīng)用實(shí)例.國(guó)防工業(yè)出版社,2006年4月(第一版).[3]肖剛機(jī)械CAD原理與實(shí)踐清華大學(xué)出版社.[M].,1999年7月(第三版)[4]符純?nèi)A.計(jì)算機(jī)輔助設(shè)計(jì).[M].成都;西南交通大學(xué)出版社.2006.[5]汪琪美.AutoCAD13對(duì)話框與驅(qū)動(dòng)設(shè)計(jì)[M].北京;人民郵電出版社.2000.[6]張寶政,陳琦主編.地質(zhì)學(xué)原理.北京:地質(zhì)出版社,1986[7]鐵道部第二勘測(cè)設(shè)計(jì)院主編.鐵路工程設(shè)計(jì)手冊(cè)——隧道.北京:中國(guó)鐵道出版社,1995[8]鐵道部第二工程局主編.鐵路工程施工技術(shù)設(shè)計(jì)手冊(cè)——隧道.北京:中國(guó)鐵道出版社,1995[9]張坤宜主編.交通土木工程測(cè)量.武漢:武漢大學(xué)出版社,2003.9[10]王鈺主編.用VBA開發(fā)AutoCAD2000應(yīng)用程序.北京:人民郵電出版社.1999[11]Gibb,JohnW.;Kramer,Bill.AutoCADVBAProgramming:ToolsandTechniques:SanFrancisco,Calif.CMPBooks.1999[12]Gibb,JohnW.AutoCADVBAprogramming:Toolsandtechniques.CMPBooks,1999致謝本畢業(yè)設(shè)計(jì)是在牛老師的親切關(guān)心和悉心指導(dǎo)下完成的。他嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地感染和鼓勵(lì)著我。從課題的選擇到工程的最終完成,牛老師都始終給予我細(xì)心的指導(dǎo)和不懈的支持。在大學(xué)期間,牛老師不僅在學(xué)業(yè)上給我以精心指導(dǎo),同時(shí)還在思想、生活上給我以無微不至的關(guān)心,在此謹(jǐn)向牛老師致以誠(chéng)摯的謝意和崇高的敬意。在此,我還要感謝和我一起愉快的度過大學(xué)生活的老師和同學(xué),正是由于他們的幫助和支持,我才能在實(shí)習(xí)期間學(xué)到很多的現(xiàn)場(chǎng)知識(shí),克服一個(gè)一個(gè)的困難和疑惑,直至實(shí)習(xí)結(jié)束和本文的順利完成。在論文即將完成之際,我的心情無法平靜,從開始進(jìn)入課題到論文的順利完成,有多少可敬的師長(zhǎng)、同學(xué)、朋友給了我無言的幫助,在這里請(qǐng)接受我誠(chéng)摯的謝意!最后我還要感謝含辛茹苦培養(yǎng)我長(zhǎng)大的父母,謝謝你們!祝愿我所有的老師和同學(xué)們工作順利、前程似錦!附錄A外文資料翻譯FunctionalintegrationinCADsystems49CAD系統(tǒng)中的集成功能C.J.Anumba英國(guó)米德爾斯堡TSI3BA蒂賽德大學(xué)科技學(xué)院(1994年3月31日接收;1995年11月6日接受)這篇論文對(duì)CAD系統(tǒng)的集成問題進(jìn)行探討,并討論了到達(dá)有效的集成必須解決的CAD系統(tǒng)的功能方面的問題。它討論了集成系統(tǒng)的必要性,以及在結(jié)構(gòu)工程背景下,要以確定有針對(duì)性的集成的幾個(gè)維度為目標(biāo)。這些包括2D起草和三維造型,圖形或非圖形設(shè)計(jì)信息、CAD數(shù)據(jù)結(jié)構(gòu)和用戶界面以及起草功能與其他工程應(yīng)用的集成。該文簡(jiǎn)要討論了實(shí)現(xiàn)這些層次的一體化的手段,以及關(guān)于集成系統(tǒng)的未來開展的探討。特別注意“產(chǎn)品模型〞的出現(xiàn)及其潛在作用,即為完全定義一個(gè)工程典型產(chǎn)品而試圖全標(biāo)度地壓縮數(shù)據(jù)元素。版權(quán)1996Civil-Comp有限公司和愛思唯爾科技有限公司。關(guān)鍵字:CAD系統(tǒng),集成1、簡(jiǎn)介最初的計(jì)算機(jī)軟件開展趨勢(shì)是和愛好者的需求和興趣相聯(lián)系的。由于缺乏協(xié)調(diào)和戰(zhàn)略方法,在幾個(gè)學(xué)科里出現(xiàn)了所謂的“局部自動(dòng)化〞。建立不同“孤島〞之間的橋梁的重要性已逐漸被成認(rèn),并且有人猜測(cè)其有更大的重要性。這些就導(dǎo)致了“系統(tǒng)集成〞的開展,以聯(lián)系更多具體的應(yīng)用。如同最初的軟件的開展趨勢(shì),相對(duì)于一個(gè)戰(zhàn)略或長(zhǎng)期產(chǎn)業(yè)視角,臨時(shí)或短期地探討一體化已經(jīng)對(duì)個(gè)人和企業(yè)有了更高的要求。這些故障是由于早期嘗試太硬性的集成而約束了程序員關(guān)于程序設(shè)計(jì)的看法。計(jì)算機(jī)技術(shù)的開展,如更快的速度和更強(qiáng)大的硬件技術(shù),減少本錢的情況下不斷增加的內(nèi)存容量,并行和分布式處理,更靈活的數(shù)據(jù)構(gòu)建和軟件設(shè)計(jì),以及基于知識(shí)系統(tǒng)、面向?qū)ο蟮木幊谈拍詈透牧嫉挠脩艚缑嬖O(shè)計(jì),這些都使集成CAD系統(tǒng)變?yōu)楦蓪?shí)現(xiàn)的愿景。如今已經(jīng)可以通過理性和系統(tǒng)的方式來實(shí)現(xiàn)各維度的集成。然而,仍然需要很長(zhǎng)一個(gè)階段才能使適用于所有階段的設(shè)計(jì)過程集成設(shè)計(jì)系統(tǒng)成為一個(gè)現(xiàn)實(shí)。1)最小化輸入2)減少錯(cuò)誤的可能性3)改良協(xié)調(diào)4)提高數(shù)據(jù)完整性5)在某階段生成的數(shù)據(jù)可用于其它階段6)提高的時(shí)間和本錢的效率7)改良的設(shè)計(jì)團(tuán)隊(duì)成員之間的溝通。集成方面應(yīng)解決CAD系統(tǒng)的結(jié)構(gòu)工程設(shè)計(jì)包括:1)2D起草與三維建模的整合2)集成的圖形化和非圖形化設(shè)計(jì)信息3)集成的數(shù)據(jù)結(jié)構(gòu)和用戶接口4)集成的起草與其它功能應(yīng)用程序2、2D集成的起草和三維建模2.1二維起草二維圖紙很多年來就是建造業(yè)交流設(shè)計(jì)信息的主要方式。事實(shí)上,最早的建筑圖紙可以追溯到公元前2000年。2D作圖一直是由手工完成的,但是最近,計(jì)算機(jī)輔助作圖系統(tǒng)越來越常見。這些系統(tǒng)提供了輸入和操作圖形的工具,以及在給定的平面上完成適宜的圖紙的可能。2D草擬的優(yōu)點(diǎn)包括經(jīng)濟(jì)、易用性和速度,以及適度使用計(jì)算機(jī)資源(處理電源和內(nèi)存要求),而事實(shí)上,網(wǎng)站上所需的最終圖形輸出也是2D繪圖.2.2三維建模三維建模系統(tǒng)允許對(duì)工程產(chǎn)品進(jìn)行更加

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論