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

基于VBA自動繪制時間-沉降量曲線插件的設(shè)計

2014-06-26 07:41:12王衛(wèi)華柯于衡
城市勘測 2014年5期

王衛(wèi)華 ,柯于衡

(宜昌市測繪大隊,湖北 宜昌 443100)

1 引 言

“時間-沉降量曲線圖”作為測繪單位必須提供客戶的要資料之一,在很多地區(qū)是不能簡單運用Excel軟件提供的圖表繪制功能來完成的,生產(chǎn)單位往往是結(jié)合AutoCAD 的繪圖功能和Excel 的統(tǒng)計計算功能來手工繪制,不僅費事費力,而且在作業(yè)過程中容易引入人為誤差或錯誤。因此,借助AutoCAD 二次開發(fā)編寫插件無疑是解決此類問題最好的方法。

Visual Lisp 和VBA 是常用的AutoCAD 二次開發(fā)工具,兩者各有所長,互為補充。Visual Lisp 適合描述人機交互的工程,長于編寫模擬設(shè)計師思路的專業(yè)設(shè)計程序,對于各種用戶的輸入、錯誤的識別與恢復等有相當強大的功能,能充分發(fā)揮交互操作的特長,同時具有最多樣式的程序運行模式和很好的兼容性。缺點是編譯困難,DCL的設(shè)計編寫很難熟練掌握,因為其編譯困難,很難編寫大型程序。VBA 可以很方便的使用Windows 系統(tǒng)資源,使AutoCAD 很容易和Windows 下的Excel 等應(yīng)用程序交互;對話框功能比Lisp DCL 好很多,多文檔視圖環(huán)境下的應(yīng)用程序也比Visual Lisp 提供了更多的支持,且VBA 代碼有較好的可讀性,能進行復雜計算公式的編制。不足之處是不能像Visual Lisp 一樣隨心所欲的調(diào)用CAD 的命令,許多交互操作的技巧在VBA 中不能直接調(diào)用。綜上所述,熟練、靈活的掌握兩種語言的技巧和精髓,能幫助我們寫出實用高效,強壯性好的程序,本文中時間-沉降曲線自動繪制插件的主體用VBA 編寫,局部借用了Visual Lisp 的一些功能,詳細情況見文中代碼。

2 實例和編程思路

2.1 工程概況

某小區(qū)2#樓為18 層剪力墻結(jié)構(gòu),建筑總高度50.7 m,該樓共埋設(shè)了14 個沉降觀測點,12 次觀測沉降數(shù)據(jù)如表1所示:

表1 2#樓沉降量統(tǒng)計表

2.2 編程思路

時間-沉降曲線圖如圖1所示,橫軸代表時間跨度,縱軸代表各時間點對應(yīng)的沉降量,除了曲線主體之外,還必須注明時間刻度、沉降量刻度、曲線對應(yīng)點號等輔助要素。為了方便闡述插件的編寫過程,將插件實現(xiàn)過程分為以下5 個步驟來分別說明:

圖1 標準時間-沉降量曲線

(1)沉降曲線數(shù)據(jù)的讀取;

(2)自動判斷監(jiān)測數(shù)據(jù)信息中的時間跨度、點號、有效取值區(qū)域;

(3)根據(jù)最大日期和最大沉降量定義橫縱軸刻度;

(4)繪制坐標軸、標注文字;

(5)生成時間-沉降量點陣,將點陣連成的折線擬合為曲線。

3 程序的實現(xiàn)

為了實現(xiàn)數(shù)據(jù)自動讀取,完全不需要人為干預自動繪制沉降曲線,需要根據(jù)沉降觀測外業(yè)結(jié)束后歷次觀察數(shù)據(jù)統(tǒng)計出合格的時間-沉降量表格,以此為基礎(chǔ)來完成插件的編寫,如表2所示:

表2 時間-沉降量基礎(chǔ)表格

3.1 數(shù)據(jù)讀取

需要借用Excel VBA 的部分功能,讀取的對象是當前打開的Excel 工作簿中的數(shù)據(jù),如果找不到激活狀態(tài)的工作簿,程序會自動提醒打開需要繪制時間-沉降曲線的表格,代碼如下:

3.2 判斷有效數(shù)據(jù)區(qū)域,提取點號、時間跨度等數(shù)據(jù)信息

通過一個循環(huán)語句的使用,根據(jù)其是否為空來判斷當前工作簿的有效范圍,這對后面所有工作都至關(guān)重要。觀測點的點號需要在曲線末端注明,點號的讀取位置為表一中單元格(3,A)至(k1,A)。時間跨度需要確定表格有效區(qū)域的最大列數(shù)“m1”,表格中單元格“excelSheet.cells(2,m1)”的值就是沉降觀測對應(yīng)的時間跨度,實現(xiàn)代碼如下:

3.3 判斷橫軸和縱軸刻度大小

為了圖形的美觀、突出沉降變化的特征和打印方便,橫軸和縱軸的長度比例關(guān)系設(shè)定為2∶1,橫軸每格代表的天數(shù)要根據(jù)時間跨度自動調(diào)整,時間跨度(“excelSheet.cells(2,m1).Value”)在3.2 操作中已經(jīng)得到,通過函數(shù)關(guān)系來調(diào)整橫軸刻度的大小;同樣,縱軸每格代表沉降量也需要根據(jù)整棟建筑最大的沉降量來調(diào)整,需要比較各個觀測點沉降量來獲得最大沉降量的值,再通過函數(shù)關(guān)系來調(diào)整縱軸刻度的大小,實現(xiàn)代碼如下:

3.4 橫縱坐標軸、輔助元素的繪制

如圖2,橫軸的繪制包括坐標軸、刻度分劃、日期標注和文本等內(nèi)容。因為每個項目有若干個觀測點,需要引入一個三維點pt1(2)作為單個觀測點沉降曲線繪制的基點,使各觀測點曲線成果整齊排列,互不干擾。定義代碼如下:

圖2 橫軸標準樣式

同理可以繪出縱軸及其輔助元素,此處不再贅述。

3.5 繪制曲線

繪制曲線為本插件的主要功能,是最核心也是最有難度的部分。一種方案是先根據(jù)時間和沉降量組成的點陣畫出一列點,用輕量級多義線連接所有點,最后對多義線進行擬合成沉降曲線。另外一種方案是用“樣條曲線”直接連接點列,兩種方案大同小異,差異之處就是第一種方案所繪曲線是二維曲線,而第二種方案繪制為三維曲線,表現(xiàn)出來的效果是完全一致的,本文采用第一種方案編程。由于實際監(jiān)測過程中,經(jīng)常遇到少數(shù)點被破壞的情況,如果出現(xiàn)了表3所示“202”點在第9 次觀測前被破壞或毀損的情況,需要中斷對該點的觀測,這樣繪制曲線時點pt 的維數(shù)需要根據(jù)實際觀測的次數(shù)來決定,所以pt 的定義必須是一個不指定維數(shù)的雙精度數(shù)組,具體維數(shù)要看沉降量取值為“0”時候“列”的值,用redim 命令來重新定義。

表3 有缺損觀測點的表格

圖3 未經(jīng)擬合的沉降曲線

這樣繪制的輕量多義線是一條折線,如圖3所示,還需要擬合成一條光滑的曲線,這里需要結(jié)合Visual Lisp 的相關(guān)知識,具體實現(xiàn)過程如下:通過所繪折線的handle 屬性得到該折線的句柄,組合成lisp 能識別的AutoCAD 命令來對折線編輯擬合,代碼如下:

擬合后就得到圖1所示沉降曲線圖成果。

通過設(shè)置行變量j 從3 到k1 的循環(huán),可以實現(xiàn)依次畫出整個項目所有觀測點的功能。所有成果圖會自動排列成一列,由于本例觀測點偏多,不再一一列舉。

4 結(jié) 語

本文基于VBA 編程技術(shù),充分結(jié)合AutoCAD 軟件,所編寫插件能很好完成滿足宜昌市沉降報告要求的時間-沉降量曲線的繪制,在本單位內(nèi)部使用節(jié)省了沉降內(nèi)業(yè)工作時間。同時再根據(jù)使用過程中遇到的新情況,比如觀測點被破壞,觀測被迫中斷等預先沒有考慮的情況,經(jīng)過不斷改進完善,使插件的強壯性和穩(wěn)定得到提高。

[1]張帆.Autocad VBA 二次開發(fā)教程[M].北京:清華大學出版社,2006.

[2]張帆,鄭立凱,王華杰.Autocad VBA 開發(fā)精彩實例教程[M].北京:清華大學出版社,2004.

[3]李風華.Autocad 2002/2000 VBA 開發(fā)指南[M].北京:清華大學出版社,2001.

[4]曾洪飛,張帆,盧擇臨.Autocad VBA&VB.NET 開發(fā)基礎(chǔ)與實例教程[M].北京:中國電力出版社,2008.

[5]二代龍震工作室.Autocad VBA 函數(shù)庫查詢辭典[M].北京:中國鐵路出版社,2003.

[6]Micrsoft 公司.Microsoft visual basic 6.0 程序員指南[M].北京:希望電子出版社,1998.

[7]Micrsoft 公司.Microsoft visual basic 6.0 語言參考手冊[M].北京:希望電子出版社,1998.

主站蜘蛛池模板: 尤物成AV人片在线观看| 色婷婷国产精品视频| 日韩精品亚洲精品第一页| 欧美黄网站免费观看| 视频在线观看一区二区| 亚洲精品无码不卡在线播放| 欧美成人手机在线观看网址| 国内精品自在自线视频香蕉| 国产91视频观看| 国产最新无码专区在线| 国产浮力第一页永久地址| 久久99蜜桃精品久久久久小说| 国产女人综合久久精品视| 亚洲 日韩 激情 无码 中出| m男亚洲一区中文字幕| 欧美成人二区| 亚洲伦理一区二区| 四虎成人精品在永久免费| 伊人色综合久久天天| 欧美日韩中文字幕在线| 亚洲美女一级毛片| 丁香五月激情图片| 国产永久在线视频| 97se亚洲综合| 亚洲视频黄| 国产精品美人久久久久久AV| 亚洲第一视频网| 黄色污网站在线观看| 91破解版在线亚洲| 免费看一级毛片波多结衣| 免费毛片网站在线观看| 91高清在线视频| 亚洲色图欧美视频| 国产杨幂丝袜av在线播放| 久久国产精品无码hdav| 在线a网站| 最新亚洲人成无码网站欣赏网| 亚洲第一网站男人都懂| 99福利视频导航| 999精品色在线观看| 中文字幕在线不卡视频| 欧美综合区自拍亚洲综合天堂| 久久综合丝袜日本网| 日韩欧美高清视频| 亚洲欧美日韩久久精品| 国产成人凹凸视频在线| 国产一二三区在线| 亚洲第七页| 成人国产精品2021| 国产在线第二页| 高清不卡毛片| 制服丝袜国产精品| 综合久久五月天| 小蝌蚪亚洲精品国产| 久久精品国产国语对白| 狠狠色婷婷丁香综合久久韩国| 欧美日韩专区| 2021无码专区人妻系列日韩| 国产精品一区二区在线播放| 在线国产欧美| 114级毛片免费观看| 久久综合AV免费观看| 久久久受www免费人成| 中文字幕佐山爱一区二区免费| 亚亚洲乱码一二三四区| 香蕉视频国产精品人| 极品尤物av美乳在线观看| 欧美国产综合视频| 亚洲中文精品人人永久免费| 国内精品视频| 欧美精品xx| 99精品视频九九精品| 狠狠色综合网| 91成人免费观看在线观看| 国产SUV精品一区二区6| 亚洲国产成人在线| 亚洲国产成人麻豆精品| 欧美激情第一欧美在线| 国产黄色爱视频| 福利视频久久| 1级黄色毛片| 国产精品免费电影|