宋尚
(上海市政工程設(shè)計研究總院(集團)有限公司,上海市 200092)
現(xiàn)階段在使用AutoCAD軟件進行市政工程基坑圍護橫斷面制圖工作時,需要明確表示出鉆孔信息。而地質(zhì)勘察單位所提交的地勘成果通常不能滿足設(shè)計圖紙的需求,需要設(shè)計人員進行二次處理,導(dǎo)致工作量大,重復(fù)度高,且容易出錯。另一方面,在利用啟明星軟件(FRWS7.2)進行計算時,也需要批量輸入鉆孔信息,與繪制鉆孔柱狀圖工作通常是重復(fù)的。
另一方面,基于AutoCAD的二次開發(fā)技術(shù)目前已經(jīng)相當(dāng)成熟,現(xiàn)通過Excel和AutoCAD.NET(C#語言)的二次開發(fā)技術(shù),編寫鉆孔信息表格及批量繪制鉆孔柱狀圖的插件,實現(xiàn)鉆孔信息的便捷化輸入及鉆孔柱狀圖的批量繪制功能,大幅度提升設(shè)計人員的計算及繪圖效率。
軟件平臺為AucoCAD2014。目前AutoCAD二次開發(fā)的主要語言有:Autolisp、ADS、VisualLisp、VBA、ObjectARX、.NET API等,.NET API是自 AutoCAD2006開始增加的一種全新的開發(fā)方式,由于使用應(yīng)用程序本地化的.NET API或者ActiveX/COM組件庫,當(dāng)AutoCAD二次開發(fā)程序需要與其他的Windows應(yīng)用程序(如Excel)協(xié)同工作時,相比其他開發(fā)語言,.NET API結(jié)合度更高,操作更加便捷[1-3]?;诖?,現(xiàn)開發(fā)軟的件選擇.NET API中的C#作為程序設(shè)計語言。
實現(xiàn)鉆孔柱狀圖的批量繪制需要模板文件制作、鉆孔信息錄入與存儲、軟件調(diào)用成圖三個步驟,具體流程詳見圖1所示。其中EXCEL模板文件滿足鉆孔信息的輸入、存儲和調(diào)用功能,通過EXCEL函數(shù)將鉆孔信息輸入工作最大簡化,只需輸入一次土層參數(shù)及鉆孔參數(shù),自動生成啟明星軟件計算及校對所需信息(詳見第5節(jié))。AutoCAD模板文件根據(jù)設(shè)計院繪圖習(xí)慣及要求設(shè)置鉆孔柱狀圖字體、圖層、填充及標(biāo)注樣式,減少軟件工作量。待模板及信息輸入完成后,在AutoCAD模板文件中調(diào)用軟件,提取鉆孔信息表中的鉆孔信息,生成鉆孔柱狀圖。
圖1 軟件流程圖
任何一張圖紙均由AutoCAD中的基本圖形對象組成,將鉆孔柱狀圖拆分成基本圖形對象,有利于程序的編寫、修改及后期維護。制圖中常見的鉆孔柱狀圖如圖2所示,可將其拆分為如圖3所示的6類9個部分,各部分的性質(zhì)如下:
(1)單行文字類:鉆孔名稱及土層標(biāo)高;
(2)多行文字類:土層信息;
(3)標(biāo)注類:土層標(biāo)注;
(4)直線類:輔助線 1、2;
(5)多段線類:標(biāo)高線、土層外框線;
(6)填充類:土層填充。
曾洪飛等對這六類基本圖形對象基于.NET API(C#)語言在CAD中的添加方法及圖層常規(guī)操作已進行了詳細(xì)的闡述,并編譯了類庫[4],編程時直接引用即可,基本圖形對象添加的具體程序流程詳見圖4所示,此處不再贅述?,F(xiàn)僅對程序中的難點進行說明。
該程序難點有兩處,分別闡述如下:
圖2 常見鉆孔柱狀圖樣式圖示
圖3 鉆孔柱狀圖基本圖形對象拆分圖示
圖4 基本圖形對象添加方法示意圖
(1)土層信息的實現(xiàn)。土層信息中包含立方、希臘字母、度數(shù)等符號,且需要換行,如不能表達(dá)清楚,將嚴(yán)重影響圖紙的可讀性。核心代碼如表1所列。
表1 土層信息實現(xiàn)主要代碼一覽表
(2)土層填充圖案的實現(xiàn)。不同土層的填充圖案一般來講有其約定俗成的表達(dá)方式,這些填充圖案在AutoCAD的填充圖案庫中并不存在,需要人們進行制作,保存成相應(yīng)的圖案填充模板文件并保存至安裝目錄下,然后通過檢索土層名稱調(diào)用相對應(yīng)的填充圖案進行填充。
程序?qū)崿F(xiàn)包括可視化界面及軟件代碼兩個部分,其中界面如圖5所示,鉆孔柱狀圖比例和圖面處理可設(shè)置圖面比例及鉆孔柱狀圖方向,瀏覽文件按鈕承擔(dān)鉆孔信息表查找功能。
圖5 軟件界面圖示
軟件主要流程如圖6所示,第一步為Excel文件的選取,通過Windows界面選擇已經(jīng)編譯好的Excel文件,并顯示在軟件界面文本框中;第二步為插入點的選取,通過與用戶交互獲取鉆孔柱狀圖繪圖的起始點;第三步為鉆孔柱狀圖的繪制,通過與Excel交互,獲取所有鉆孔柱狀圖的基礎(chǔ)數(shù)據(jù),進一步計算后得到鉆孔柱狀圖六類基本圖形對象的控制要素,最后進程成圖工作。
圖6 軟件主要流程及部分代碼圖示
以某工程項目為例,EXCEL模板及鉆孔信息輸入如表2所列,左側(cè)為土層參數(shù)信息,右側(cè)為各孔土層標(biāo)高。
表2 鉆孔信息表
各孔土層參數(shù)根據(jù)土層名稱自動匹配,基于VBA語言編譯了增加鉆孔和刪除鉆孔按鈕,可根據(jù)已有鉆孔信息復(fù)制增加鉆孔,減少鉆孔信息輸入的工作量,亦可通過刪除鉆孔按鈕直接刪除已輸入鉆孔。鉆孔信息輸入完畢后,在AutoCAD中加載程序,打開已輸入好的鉆孔信息表,根據(jù)提示選擇插入點,生成所有鉆孔的鉆孔柱狀圖(見圖7)。
通過AutoCAD.NET二次開發(fā)和Excel工具的結(jié)合,可以快速、準(zhǔn)確地完成鉆孔柱狀圖繪制,大幅提升了工作效率及質(zhì)量。
本文開發(fā)的鉆孔柱狀圖批量程序具有可視化界面,且操作簡單,定制程度高。讀者可根據(jù)各設(shè)計院的出圖標(biāo)準(zhǔn)調(diào)整相應(yīng)細(xì)節(jié)內(nèi)容,程序可編輯性強。
圖7 鉆孔柱狀圖批量成圖部分成果圖