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

        ?

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

        2014-06-26 07:41:12王衛(wèi)華柯于衡
        城市勘測 2014年5期
        關鍵詞:時間跨度縱軸橫軸

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

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

        1 引 言

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

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

        2 實例和編程思路

        2.1 工程概況

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

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

        2.2 編程思路

        時間-沉降曲線圖如圖1所示,橫軸代表時間跨度,縱軸代表各時間點對應的沉降量,除了曲線主體之外,還必須注明時間刻度、沉降量刻度、曲線對應點號等輔助要素。為了方便闡述插件的編寫過程,將插件實現(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è)結束后歷次觀察數(shù)據(jù)統(tǒng)計出合格的時間-沉降量表格,以此為基礎來完成插件的編寫,如表2所示:

        表2 時間-沉降量基礎表格

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

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

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

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

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

        為了圖形的美觀、突出沉降變化的特征和打印方便,橫軸和縱軸的長度比例關系設定為2∶1,橫軸每格代表的天數(shù)要根據(jù)時間跨度自動調(diào)整,時間跨度(“excelSheet.cells(2,m1).Value”)在3.2 操作中已經(jīng)得到,通過函數(shù)關系來調(diào)整橫軸刻度的大小;同樣,縱軸每格代表沉降量也需要根據(jù)整棟建筑最大的沉降量來調(diào)整,需要比較各個觀測點沉降量來獲得最大沉降量的值,再通過函數(shù)關系來調(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所示,還需要擬合成一條光滑的曲線,這里需要結合Visual Lisp 的相關知識,具體實現(xiàn)過程如下:通過所繪折線的handle 屬性得到該折線的句柄,組合成lisp 能識別的AutoCAD 命令來對折線編輯擬合,代碼如下:

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

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

        4 結 語

        本文基于VBA 編程技術,充分結合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ā)基礎與實例教程[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.

        猜你喜歡
        時間跨度縱軸橫軸
        請您診斷
        放射學實踐(2023年1期)2023-02-08 02:19:00
        如虎
        ——黃胄畫貓賀歲展
        中華書畫家(2022年4期)2022-04-21 09:31:06
        電視劇《父母愛情》受歡迎的原因探析
        北方文學(2020年12期)2020-09-06 13:24:36
        淺談回顧性成就報道的創(chuàng)作思路
        藝術大觀(2019年33期)2019-10-12 13:17:57
        請您診斷 病例126
        放射學實踐(2017年7期)2017-08-07 07:11:35
        傳感器網(wǎng)絡分簇時間跨度優(yōu)化聚類算法
        請您診斷
        放射學實踐(2017年3期)2017-03-30 08:40:39
        流動管理:一種班級管理的實踐模式
        縱軸曝氣氧化溝在城鎮(zhèn)污水處理中的應用
        從時間縱軸研究大學生身體素質狀況及對策
        国产亚洲三级在线视频| 日韩成人极品在线内射3p蜜臀| 亚洲婷婷五月综合狠狠爱| 国产乱人伦偷精品视频| 久久久伊人影院| 青青草视频网站免费观看| 国产成年无码aⅴ片在线观看| 天堂精品人妻一卡二卡| 中文字幕34一区二区| 国产成人无码av| 亚洲精品久久久久久久久av无码| 亚洲国产成人手机在线观看| 精品国产污黄网站在线观看| 老熟女的中文字幕欲望| 国产做爰又粗又大又爽动漫| 欧美黑人乱大交| 黑丝美女被内射在线观看| 免费av日韩一区二区| 中文无码日韩欧| 成人欧美在线视频| 国产精品丝袜美腿诱惑| 搡女人真爽免费视频大全| 日本最大色倩网站www| 久久99国产精品尤物| 中国产无码一区二区三区| 色妞一区二区三区免费视频| 亚洲无精品一区二区在线观看| 亚洲国产精品久久艾草| 久无码久无码av无码| 日韩av无卡无码午夜观看| 视频一区中文字幕在线观看| 国产乱码精品一区二区三区久久 | 夜夜揉揉日日人人| 国产精品美女久久久浪潮av| 日本不卡一区二区三区在线观看| 中文区中文字幕免费看| 久久久久久久性潮| 中文字幕日韩熟女av| 高清国产国产精品三级国产av| 五月天中文字幕mv在线| 国产色a在线观看|