侯曉燕,崔強,魯先龍,張琰
(中國電力科學研究院,北京市,102401)
目前輸電線路桿塔基礎設計過程中,由于基礎類型眾多、數據復雜,工程圖不可避免地需要經過多次反復修改,進行形狀和尺寸的綜合協調、優化,這樣就增加了設計人員工作反復性,降低了工作效率,而通過交互式界面上的人機對話,修正圖形參數的量值,即參數化繪圖則可以解決這一問題。參數化繪圖是指設計對象的結構形式比較定性,可以用1組參數來約定尺寸關系,即將圖形的尺寸看成是某些變量的參數。
AutoCAD作為工程中最常用的繪圖設計軟件之一,得到設計人員的廣泛使用。Object ARX是面向對象的C++開發工具,允許用戶利用Visual C++及其MFC類庫開發AutoCAD應用程序(實為動態鏈接庫DLL),擴充AutoCAD的類和協議,創建新的AutoCAD命令。ARX應用程序共享AutoCAD的地址空間,并可直接訪問圖形數據庫,使用AutoCAD的內核結構和數據。因而Object ARX比其他的二次開發技術運行速度要快,功能更強[1-4]。
圖1顯示了實現繪圖的軟件架構。涉及到的軟件有VB、AutoCAD、ObjectARX和VC。軟件系統中的計算模塊選用VB6.0作為開發語言,繪圖模塊選用VC和ObjectARX作為開發語言。VC和ObjectARX編譯生成ARX。計算模塊與繪圖模塊之間的傳值過程如下:首先,通過計算模塊得到基礎各尺寸參數值,通過VB中的Shell函數,將各參數值傳遞給ARX,ARX讀取并記錄參數;然后,通過VB命令激活AutoCAD窗口;最后,AutoCAD執行ARX中的繪圖命令,自動完成施工圖繪圖操作。整個過程中計算模塊與繪圖模塊通過Shell函數建立兩者之間的關聯。

圖1 軟件架構Fig.1 Software configuration
繪圖功能實現過程中涉及到的主要文件有6種,這些文件在軟件運行過程中起著傳遞參數、記錄信息等重要作用。
(1)acad.rx,記錄了AutoCAD打開時執行的ARX文件,AutoCAD每次打開時都會讀取acad.rx文件,執行繪圖命令。
(2)fpCAD.lnk,是打開AutoCAD的快捷方式,指定了起始位置和目標可執行文件,起始位置為當前程序的安裝路徑,目標可執行文件為用戶指定的AutoCAD可執行文件。使用快捷方式的優點是,可以從當前路徑下打開AutoCAD,這樣AutoCAD打開時就會讀取當前路徑下的acad.rx文件和執行ARX文件。所以快捷方式是繪圖模塊實現自動打開AutoCAD,并且自動繪圖的必不可少的文件。
(3)工程繪圖信息匯總.log,是工程目錄下的繪圖信息匯總文件。文件包括每個設計完成的桿塔名稱、基礎名稱和繪圖參數文件的絕對路徑。每個桿塔名稱都不相同,用戶不能隨便改變此文件格式和文件名稱。
(4)桿塔名稱.txt,是繪圖參數文件。里面包括繪制施工圖時需要的所有參數取值。對于不同的基礎,繪圖參數文件格式不同。1個工程有多個繪圖參數文件,每個繪圖參數文件以桿塔名稱為文件名,用戶不能隨便改變此文件格式、文件名稱和文件路徑,因為每個繪圖參數文件在繪圖信息匯總文件中都有記錄。
(5)fpCAD.arx文件,是封裝了繪圖命令的ARX文件。
(6)data.ini文件,是AutoCAD與VB程序的接口文件,記錄了繪圖參數文件的保存路徑和基礎類型,ARX繪圖命令每次都會讀取data.ini文件獲得所需信息。
圖2顯示了軟件實現繪圖功能的基本流程。
軟件在安裝即將結束時,會彈出“選擇AutoCAD路徑和版本”對話框。用戶選擇AutoCAD路徑和版本,點擊了“確定”之后,軟件會重寫acad.rx文件和生成fpCAD.lnk文件。用戶進行完AutoCAD路徑和版本設置之后,安裝過程結束。

圖2 基本流程圖Fig.2 Basic flow chart
用戶在進行基礎優化設計時,點擊生成“施工圖”按鈕后,軟件會讓用戶選擇點擊“生成參數文件”按鈕或“生成施工圖”按鈕。若用戶點擊“生成參數文件”按鈕,程序會生成繪圖參數文件,保存在當前工程路徑下面,并且會更新此工程中的繪圖信息匯總文件;若用戶點擊“生成施工圖”按鈕,程序首先生成繪圖參數文件,然后將各參數值讀寫到各圖形文件中,并且在AutoCAD軟件上顯示出所繪制的施工圖。在這個過程中,軟件會生成data.ini文件。用VB程序打開AutoCAD軟件是通過調用shellExecute函數打開fpCAD.lnk來實現的。
打開AutoCAD之后,AutoCAD首先會讀取acad. rx,然后執行acad.rx所記錄的封裝了繪圖命令ARX文件。ARX文件會首先讀取data.ini文件,獲得繪圖參數文件的路徑和基礎類型,然后找到并且讀取繪圖參數文件,并且依據不同的基礎選型做不同的操作,最后生成施工圖。
常用的繪圖方法包括2種:第1種是根據輸入的各參數值,直接繪制工程設計圖,即“命令”控制“畫筆”的繪圖方法;第2種是打開并根據所提供的參數修改預先設定的模板。其中第2種更適合繪制內容比較復雜且格式相對固定的圖紙。本軟件開發過程中選用第2種繪圖方法。實踐證明該方法運行效率高,可擴展性好。
軟件允許用戶對施工圖中的設計單位、工程名稱、批準人員、校核人員、審核人員、設計人員、出圖日期、比例、圖號等繪圖框架信息進行自定義設置,滿足設計人員的需要。需要給用戶提供接口,輸入必要參數;在繪圖模板上,將繪圖框架中的上述信息內容處添加不同文字標示,例如“工程名稱”等;將上述信息內容寫入繪圖參數文件中;最后讀取參數文件,修改模板上的相應文字標示。
軟件有默認的繪圖比例,并且可以根據提供的繪圖參數,計算出最佳繪圖比例。然后將所有實體的尺寸根據比例進行調整,這樣設計出來的施工圖尺寸是比較合適的。
對模板上的實體(包括線條和圓等)進行尺寸修改、刪除是繪圖過程的重要工作。
首先,為了修改起來方便,在制作模板過程中,將所有線條都設定為多段線;其次,給需要修改的每個實體都增加擴展數據,作為每個實體的編號;最后,通過讀取擴展數據來進行區分實體,進而可以做不同的操作,包括修改實體的大小、位置,進行刪除等。
在給每個實體追加擴展數據時,需要添加3個命令:AddXData、DelXData和ViewXData,分別為添加實體數據、刪除實體數據和查看實體數據。通過在AutoCAD加載并執行上述3個命令,就可以輕松地實現為實體添加、刪除、查看擴展數據。
在繪圖過程中,可以將零散的輪廓線條和尺寸標注內容封裝成塊,以塊的形式插入到所需的位置。這種方法適合繪制一些內容固定但位置會根據所提供的繪圖參數發生變化的圖形,比如地面線由許多實體組成且實體位置和大小不發生變化,但是插入點會發生變化。插入與分解塊是繪圖常用方法,需要如下步驟:在繪圖模版中添加塊,給塊命名并設置插入點,同時將塊的記錄添加到塊表中;在ARX程序中計算插入點的位置,插入塊;根據需要對塊進行縮放、旋轉等;分解塊,這樣用戶可以對塊內的每個實體根據需要進行修改。
本軟件既可以實現單個基礎設計結束后即時出圖,又可以實現基礎優化設計完成之后,選擇性地出圖。設計計算與參數化繪圖既關聯又獨立是本軟件的一大特色,也是符合設計人員操作的習慣。設計結果輸出中的繪圖功能實現流程如圖3所示。

圖3 設計結果輸出中的繪圖功能實現流程圖Fig.3 Flow diagram for drawing function in design results output
用戶打開工程文件之后,軟件會自動將工程名稱、已經設計好的桿塔名稱、基礎類型和繪圖參數文件路徑顯示給用戶。需要用戶選擇繪圖類型(單個基礎、拉壓基礎和多個基礎)及其桿塔名稱進行繪圖信息設置,然后點擊“確定”,系統會自動將施工圖顯示在AutoCAD軟件中。單個基礎,是1張設計圖中輸出1個基礎,拉壓基礎是1張設計圖中輸出拉壓2個基礎,多個基礎是1張設計圖中輸出2~8個基礎的信息。這3種繪圖類型涵蓋各種地形條件、荷載條件下桿塔基礎的所有型式,符合實際施工需要。圖4顯示了以工程為單位進行設計結果輸出界面。

圖4 設計結果輸出界面Fig.4 Output interface for design results
為了支持不同的AutoCAD版本,程序需要在多種環境下編譯。AutoCAD2002執行的ARX需要在VC6.0和 ObjectARX2002環 境 編 譯 生 成 。 AutoCAD2004/2005/2006執行的ARX需要在VC. Net 2002和ObjectARX2004/2005/2006環境編譯生成。AutoCAD2007/2008執行的ARX需要在VC.Net 2005和ObjectARX2007/2008環境編譯生成。
軟件系統主要包括地基庫模塊、桿塔基礎選型模塊、桿塔基礎優化設計模塊、參數化繪圖模塊四部分。其中參數化繪圖模塊是所有設計成果最終的表現。用戶通過地基庫、基礎選型、桿塔基礎優化設計獲得基礎外形、內部構造、連接件等各種表征桿塔基礎基本特征的參數值。繪圖模塊通過接口函數對上述參數讀取、修改、組織,并最終形成完整的施工圖。參數化繪圖模塊實現如下繪圖功能:(1)在VB中可以直接打開AutoCAD生成所需的施工圖。(2)用戶在安裝軟件的過程中可以對AutoCAD的可執行文件路徑和版本進行自定義設置。(3)軟件會根據用戶選擇的AutoCAD的不同版本調用不同的ARX文件進行施工圖的繪制,方便了用戶的使用。(4)可以選擇工程中已經設計好的桿塔基礎和繪圖類型進行選擇性地出圖。
以全掏挖基礎為例說明系統實現的過程。在“全掏挖基礎設計”主界面上進行設計完成之后,點擊“施工圖”按鈕之后,會彈出“全掏挖基礎施工圖定制”對話框,如圖5所示。

圖5 全掏挖基礎施工圖訂制Fig.5 Custom drawing of digged foundation
點擊“生成參數文件”按鈕,系統會在后臺生成繪圖參數文件,保存在當前工程路徑下,并及時更新工程的繪圖信息匯總文件;點擊“生成施工圖”按鈕,系統會生成并且調用繪圖參數文件,并進入AutoCAD環境,自動生成施工圖。圖6顯示了施工圖的一部分。

圖6 全掏挖基礎施工圖中的配筋圖Fig.6 Reinforcement drawing of digged foundation
繪圖模塊作為輸電線路桿塔基礎設計軟件的最終設計結果輸出模塊,實現了多種桿塔基礎的參數化和自動化繪圖,實用且靈活,并且在下面幾個方面有所創新:(1)用戶可隨機定制AutoCAD2002—2008任一版本作為繪圖環境。(2)用戶可根據個人需求對繪圖內容進行定制。(3)設計計算和參數化繪圖既關聯又獨立,可對各種地形條件、荷載條件下的桿塔基礎進行參數化繪圖,滿足電力工程建設需要。
[1]馬萬杰,夏國棟,姜坤,等.基于ObjectARX的AutoCAD塑料模標準件系統的研究與實現[J].模具技術,2009(2):37-39.
[2]馮艷.輸電鐵塔獨立基礎優化設計CAD[D].成都市:西南交通大學,2004.
[3]王衛東,詹振炎.ObjectARX技術在道路路基橫斷面圖形存儲中的應用[J].計算機工程,2002,28(3):251-252.
[4]肖粲俊,鄭忠俊,俞海明,等.基于ObjectARX的塑料注塑模大型模架參數化設計[J].模具技術,2006(4):56-57.