劉曉光
摘 要 現代城市建設突飛猛進,大量城市建筑建成投入使用,然而城市建筑在使用過程中經常出現不同程度的裂縫問題。面對城市建筑裂縫,是放棄使用還是重新建造成為人們關注的焦點,這就需要專業機構對裂縫進行檢測及鑒定。而通過CAD二次開發程序進行工程檢測能夠有效提高工作效率,提供參考數據,從而為工程決策提供依據。本文就CAD二次開發在工程檢測中的應用進行探究。
關鍵詞 CAD軟件 二次開發 工程檢測 裂縫檢測
中圖分類號:TP391.7 文獻標識碼:A
1 AutoCAD二次開發
AutoCAD軟件是由Autodesk公司推出的一款功能強大的供用戶從事設計和繪制圖形的專業軟件,其能夠為用戶提供諸多可供二次開發的平臺,其二次開發主要內容包括:
(1)編寫各種Lisp文件從而實現某些具有特殊用戶需要的命令,同時編寫dcl配梁文件,通過對話框形式完成交互式使用所編寫命令;
(2)定制針對不同項目的系統菜單,通過編寫MNU文件,完成對不同工作項目的不同操作界面設置,并且可以運用交互式的輸入方式調用CAD系統原有菜單,以此建立符合自身需求的工作空間;
(3)修改系統原有Lisp文件,也可通過交互式方法在系統對話框中修改某些系統設置路徑,這樣再次啟動CAD時,即可在原有CAD功能基礎上加入新的初始化設置;
(4)根據用戶自身需要編寫相關程序與CAD進行對接,實現CAD二次開發任務。
2 AutoCAD二次開發工具
AutoCAD二次開發工具包括Visual-Lisp,VBA,ObjectARX,.NETAPI等很多,以上開發工具各具特點,具體使用時可結合需求情況靈活應用不同開發工具進行二次開發,本文選擇VBA和VisualLisp兩種開發工具進行CAD二次開發。
2.1 VisualLisp開發工具
VisualLisp是完整的集成開發環境,其是為加速AutoLisp程序開發而設計的軟件開發工具,該環境下能夠快捷、高效地實現CAD二次開發,編譯開發后程序,能夠得到運行效率高、代碼緊湊的應用程序,并且能夠同時良好保護源代碼。VisualLisp既能夠兼容AutoLisp程序,又能夠擴充許多新功能,通過這些功能能夠各種實現工程計算分析、定義新命令、驅動對話框、自動繪制復雜圖像,并且為CAD擴充更多的智能化、參數化功能。
2.2 VBA(VisualBasicforApplications)開發工具
CAD中集成了VBA的編輯器,能夠為開發人員提供一種CAD二次開發的選擇,并且能夠為用戶訪問CAD中豐富的技術框架開辟了新的路徑,VBA與AuotCAD通過強大的ActiveX實現結合,既能夠控制CAD數據庫,又能夠促使CAD與Word,Excel等外部程序實現數據交換功能,完成CAD二次開發工作。
3 AutoCAD二次開發技術
以某單位建設結構檢測部為例,其裂縫檢測及報告生成過程是:首先通過DJCK-2裂縫測寬儀,現場對裂縫的寬度進行讀數并標出,同時根據房屋的建筑施工圖圖紙,在現場記錄表上確定該裂縫所在軸線位置,繪制出裂縫走勢和在關鍵位置標出裂縫位置,現場檢測完成以后,利用計算機CAD軟件將現場手繪圖片再繪制一遍,該繪制過程通常需大量精力,通常一個項目有幾百戶人家,會有大量現場檢測的紙質原始記錄,而這些記錄檢測結束后需要大量時間進行整理和電腦輸入,此過程相當于重新做一次整個工程,特別是因溫度變化等引發的表面裂縫較大,其裂縫走勢與位置并非像多數結構裂縫那樣擁有大致形式和固定位置,而是千變萬化,因此繪制檢測報告時異常繁瑣復雜,后期數據處理和報告生成工作量極大,工作效率極低。加之數據量巨大,極易產生輸入錯誤,因此檢測報告完成以后,仍需進行認真復核報告,工作難度較大。
4 AutoCAD二次開發在工程檢測中的應用
4.1 AutoCAD二次開發特點
該軟件基于AutoCAD平臺,通過Win8操作系統提供的觸摸功能,運用該軟件將不再使用過去現場紙質記錄的手段,如此既能夠節省大量整理工作,又能夠在檢測數據記錄與處理時避免人為因素干擾,降低生成檢告過程中可能產生的錯誤,有效提高生產效率。該軟件特點包括以下幾點:
(1)樣板化特點。該軟件提供有檢測現場能夠直接使用CAD圖形樣板,采用該樣板能夠節省檢測現場對初始化CAD后對圖層、文字樣式、標注樣式等內容設置操作,現場檢測人員可以直接進行現場記錄繪制。
(2)參數化特點。使用該軟件繪制檢測報告中的裂縫示意圖時,針對使用到的常用構件可進行面向對象的參數化繪制,如此能夠極大縮短繪制時間,簡化現場繪制過程,提高檢測過程效率。
(3)可視化特點。針對常用構件選擇,該軟件采用可視化方法,通過幻燈片形式把技術人員現場繪制時所用的構件類型直觀形象地展示在用戶面前,讓用戶一目了然可以選擇到自己所需要的構件,加快繪圖速度,提高繪圖準確率。
(4)模塊化特點。該軟件按照現場檢測過程,把軟件界面進行友好界面設計,從而實現軟件使用更加方便人機交互過程,且優化了CAD常用快捷鍵,使用時可根據自身需要實現快速繪制。同時對檢測步驟進行了模塊化分類與整理,且進行了標準化管理,使得原始數據能夠有效而快速地生成最終檢測報告,而每次使用到的新增模塊都能夠有效地進行記錄,從而在使用過程中不斷擴充用到的構件庫,為原始數據的積累提供基礎和保證。
4.2 工程檢測實例分析
(1)定制工作空間。使用VBA菜單定制語言,針對裂縫檢測現場工作流程需要,重新定制AutoCAD2014的工作空間,其中菜單新增了:初始化、構件、配件、零件、裂縫等菜單選項,在工具按鈕中添加了“工作環境初始化”“繪制裂縫”“標注裂縫”三個按鈕,使得工程檢測人員能夠在現場快速繪制所需要的裂縫圖像。
(2)使用AutoLisp和dcl配梁語言編制“標注裂縫”命令。AutoCAD2014允許用戶自己定制一個dcl配梁對話框,該操作是目前最為流行的人機交互,能夠為使用者提供可視化環境,讓操作更加快捷。本工程中,在標注裂縫時,需要人機交互輸入裂縫寬度并且標注在指定位置上。具體編制代碼如下:
f:dialog{label="裂縫參數";edit_box{label="裂縫寬度";key="kd";edit_width=20;ok_cancel}
然而,使用dcl配梁語言編寫的對話框只是簡單的界面描述,用戶并不能單獨依靠它完成顯示和指令。必須利用AutoLisp程序驅動才能實現用戶希望它達到的功能。AutoLisp采用了與CommonLisp相近的語法及習慣約定,并吸收了Lisp語言的主要函數,同時增加了針對AutoCAD特點的許多功能,因此Lisp語言編程能夠十分靈活的在AutoCAD的平臺上很好的運用。AutoLisp是以*lsp為擴展名的文本文件,源程序的編輯過程是:首先運行AutoCAD然后加載已編輯好的Lisp程序最后調用程序并運行函數。在本工程中,實現標注裂縫的Lisp程序代碼如下:
defunc:lf(/dcl_idpt1pt2pt3kd)
(setqdcl_id(load_dialog"lf.dcl"))
(if(not(new_dialog"lf"dcl_id))(exit))
(if(=kdnil)(setqkd(rtos0.0222)))
(set_tile"kd""0.02")
(action_tile"kd""(setqkd(atofvalue))")
(action_tile"accept""(done_dialog)")
(action_tile"cancel""(exit)(done_dialog)")
(start_dialog)
(unload_dialogdcl_id)
(setqpt1(getpoint"選擇標注起點:"))
(setqpt2(getpoint"選擇標注終點:"))
(command"line"pt1pt2"")
(setqpt3(getpoint"選擇標注位置:"))
(setqkd(rtoskd22))
(command"text"pt3350""kd)
5結語
總之,面對城市建筑裂縫,是放棄使用還是重新建造成為人們關注的焦點,這就需要專業機構對裂縫進行檢測及鑒定。而通過CAD二次開發程序進行工程檢測能夠有效提高工作效率,提供參考數據,從而為工程決策提供依據。本文對CAD的二次開發插件主要運用在建筑物表面裂縫的現場檢測時的原始記錄采集與繪制工作,利用該軟件能夠讓工程技術人員在房屋安全監測鑒定現場,通過平面電腦快速記錄與繪制檢測的原始數據,能夠讓過去需要大量時間進行二次輸入的過程實現現場直接操作完成,快速生成檢測報告,全面提高工作效率。
參考文獻
[1] 鄭軍紅.AutoCAD二次開發語言及開發工具應用分析[J].軟件導刊,2006.05.
[2] 葛麗瑋.AutoCAD二次開發技術在堤防設計中的應用[D].哈爾濱理工大學,2007.
[3] 吳成軍.簡述AutoCAD 2004二次開發工具[J].科技信息,2009.31.
[4] 李艷麗.用Autolisp對AutoCAD進行實用性二次開發[J].福建電腦,2008.09.
[5] 呂家平,張新梅,李響,王拴虎.AutoCAD五種二次開發工具及其優缺點[J].兵工自動化,2000.04.
[6] 陳中治,王敏.應用C~#進行AutoCAD二次開發[A].中國公路學會計算機應用分會2004年年會學術論文集[C],2004.
[7] 周建康,王輝.AutoCAD二次開發方式的比較分析與研究[A].河南省土木建筑學會2010年學術大會論文集[C],2010.
[8] 徐文凱,王學武,孫岳.AutoCAD二次開發在地基處理中的應用[J].山西建筑,2008.34.
[9] 賈淑萍,謝安俊.面向中小企業的化工工藝流程及儀表CAD軟件的開發[J].科技信息(科學教研),2008.19.
[10] 孫慧翔,虞世鳴,汪雯雍.基于AutoCAD平臺的參數化設計的研究[J].現代機械,2005.03.