趙志清
(呼和浩特鐵路局 建設(shè)管理處,呼和浩特 010010)
AutoCAD VBA辦公自動化程序應(yīng)用實例
——排水流向標(biāo)注程序
趙志清
(呼和浩特鐵路局 建設(shè)管理處,呼和浩特 010010)
本文介紹AutoCAD VBA辦公自動化應(yīng)用實例—排水流向標(biāo)注程序的設(shè)計思想、設(shè)計過程以及使用說明等相關(guān)內(nèi)容。對創(chuàng)建形文件、創(chuàng)建線形、自動標(biāo)注等內(nèi)容進行了詳細描述。
AutoCAD VBA;辦公自動化;線形;形文件
線路路基應(yīng)有一個完整、暢通的排水系統(tǒng)。設(shè)計者要綜合平面圖、縱斷面圖、橫斷面圖的設(shè)計,配合橋梁、涵洞、站場的排水設(shè)施,考慮地質(zhì)、地形、氣候等因素,設(shè)計排水系統(tǒng)。排水系統(tǒng)圖的設(shè)計是在線路平面圖的基礎(chǔ)上,利用排水線勾畫出排水系統(tǒng)中水溝的位置、長度,并標(biāo)注坡度和標(biāo)高。
排水系統(tǒng)設(shè)計完成后,生成排水表。排水表中包括水溝的起訖里程、長度、最小坡度、起止點高程等內(nèi)容。將排水表的數(shù)據(jù)體現(xiàn)在平面圖中即排水系統(tǒng)平面圖。此項工作含量較低卻十分繁瑣,浪費設(shè)計者大量的時間,且容易出錯。
現(xiàn)在,使用排水流向標(biāo)注程序可以解決這一問題。它可以自動標(biāo)注水溝長度和坡度、流向箭頭、起訖里程處的高程,便捷高效。
1.1 線型
排水系統(tǒng)圖的慣例要求排水線既要標(biāo)示水溝的起訖歷程、長度,還要標(biāo)示水流的流向。通常采用單側(cè)箭頭作為線型的單元,如圖1所示。
圖1 線型單元示意圖
實現(xiàn)上述線型的方法有3種:
(1)復(fù)制法
這種方法簡單但是繁瑣,用戶需畫出一個箭頭并不斷復(fù)制完成排水線的繪制。直線段還較為容易,但對于曲線段尤其是小半徑曲線就很不方便,每次只能復(fù)制很短的一段。所以這種方法不推薦。
(2)ME法
作者從繪制軌道圖例引伸出ME法,此方法使用MEASURE命令。原理是用塊來定距等分多段線。
用戶需先創(chuàng)建兩個塊,分別代表兩個方向的箭頭,塊的參照點要選在箭頭反方向端點一定距離的位置,這樣才能生成上面的間隔線型。這種方法可以方便地等分直線、多段線、圓弧,但是它不能使用VBA編輯,也無法自動標(biāo)注,所以只做參考。
(3)形文件法
本文重點介紹形文件法,它不但可以應(yīng)用在本程序中,還可以應(yīng)用在其它不同設(shè)計領(lǐng)域。
形文件顧名思義就是定義一個簡單的圖形存為一個形文件。在常用的線型文件*.Lin中創(chuàng)建新的線型來重復(fù)引用這個形文件從而完成復(fù)雜線型的定義。
下面,簡述本插件中所使用形文件的定義過程,也可作為定義其它復(fù)雜線型的參考。
新建一個文本文檔保存為.shp文件,這個文件是形定義文件,在這個文件中輸入如下文字:
*230,3,PAISHUI
060,027,0
保存并退出編輯。
首行中:*為開始符;230為形編號;3表示下一行的參數(shù)個數(shù);PAISHUI為形名稱。
第2行每個參數(shù)中:第1個字符必須為 0,用于指示 AutoCAD 將后面的兩個字符解釋為16進制值。第2個字符指定矢量的長度。有效的16進制值的范圍是從 1(1 個單位長度)到 F(15 個單位長度)。第3個字符指定矢量的方向。方向代碼如圖2所示。
圖2 方向代碼示意圖
第2行第3個參數(shù)0表示形定義結(jié)束,用在第2行圖形定義的結(jié)尾處。形定義文件定義完成,對應(yīng)圖形如圖3所示。
圖3 形定義文件定義完成對應(yīng)圖形示例
在CAD中使用compile命令,選擇剛定義的.shp文件,經(jīng)由CAD編譯生成同名的.shx文件,.shx文件即為編譯好的形文件。
新建一個新的文本文檔保存為.lin文件,這個文件是線型定義文件,在這個文件中輸入如下文字:
保存并退出編輯。
首行中:*為開始符;PAISHUIZUO為線型名稱;______>為線型圖例。
第2行必須以字母 A開頭;0.0001表示落筆長度;[ ]中的文字用來引用形文件;-20表示提筆長度。
復(fù)雜線型定義完成。
注:簡單線型的定義也很有實用價值,具體方法參照CAD幫助文件。
1.2 開發(fā)平臺
目前主流圖形輔助設(shè)計軟件為AutoCAD 平臺。AutoCAD 二次開發(fā)接口提供了種類豐富的編程語言如基于C#的ARX、基于VB的VBA、基于腳本的Lisp等。本文采用AutoCAD VBA (Visual Basic for Applications)編程。VBA是新一代標(biāo)準(zhǔn)宏語言,基于VB(Visual Basic for Windows)發(fā)展而來,具有面向?qū)ο蟮某绦蛟O(shè)計概念和方法,不但繼承了VB簡便、可視化的開發(fā)機制,而且還具有與VB相似的語言結(jié)構(gòu),它們的集成開發(fā)環(huán)境(IDE,Intergrated Development Environment)也幾乎相同。但VBA專門針對AutoCAD、Office 等應(yīng)用程序進行優(yōu)化,可輕松訪問AutoCAD 、Excel內(nèi)部數(shù)據(jù),尤其善于在兩種程序間進行交互開發(fā)。VBA編程效率非常高,是理想的輔助設(shè)計軟件開發(fā)工具。
1.3 軟件流程
根據(jù)《用地與排水系統(tǒng)圖》的繪制特點,結(jié)合繪圖人員實際使用,軟件流程如圖4所示。
圖4 軟件流程圖
1.4 人機交互
為了方便設(shè)計人員完成工作,程序通過Lisp宏文件實現(xiàn)了透明命令。用戶可在繪圖界面命令行輸入PSX呼出程序,通過空格鍵快速的重復(fù)調(diào)用。
本程序需要用戶拾取很多位置的點,比如排水溝起終點、標(biāo)高插入點等。所以在命令行設(shè)置了幾種提示: “拾取排水溝起點” 、“拾取途經(jīng)點” 、“拾取標(biāo)高插入位置”,引導(dǎo)設(shè)計人正確拾取目標(biāo)點。
為了使程序更加人性化,每個標(biāo)注都可以單獨更改內(nèi)容、字體、顏色,方便不同設(shè)計人的習(xí)慣和不同圖紙的規(guī)范化要求。
2.1 用戶界面
程序界面如圖5所示,起點高程和終點高程處按排水表輸入相應(yīng)數(shù)值,排水坡度處輸入最小允許排水坡度,流水方向箭頭偏向處選擇偏左或偏右。點擊“拾取起點”開始繪制排水線,點擊“取消”退出繪制過程。
圖5 程序界面圖
本程序需標(biāo)注的位置分為兩類。
(1)兩端標(biāo)注
兩端標(biāo)注起、終點高程(),需要在兩端點位置繪制標(biāo)高三角,在標(biāo)高三角上方標(biāo)示標(biāo)高,圖紙標(biāo)注方式如圖6所示。
(2)中間標(biāo)注
中間需要標(biāo)注排水溝的長度和最小坡度,程序提示用戶拾取插入標(biāo)注的位置,圖紙標(biāo)注方式如圖7所示。
圖6 圖紙標(biāo)注方式(兩端標(biāo)注)
圖7 圖紙標(biāo)注方式(中間標(biāo)注)
2.2 使用說明
程序的使用方法很簡單,按界面上的提示輸入即可。這里主要說明排水箭頭方向的選擇方法。
(1)箭頭斜線在水流方向的左側(cè),如圖8所示。
圖8 箭頭斜線在水流方向左側(cè)示意圖
(2)箭頭斜線在水流方向的右側(cè),如圖9所示。
圖9 箭頭斜線在水流方向右側(cè)示意圖
2.3 使用技巧
(1)排水線可以由直線、多段線、或者PE合并的多段線(不能包含圓弧)組成。(2)由于排水線的箭頭是一種新定義的復(fù)雜線型,故箭頭的大小可以靠線型比例來控制。在排水系統(tǒng)圖設(shè)計完成后,根據(jù)設(shè)計人和圖紙的要求可統(tǒng)一修改。(3)在設(shè)計排水線時最好新建一個圖層,方便統(tǒng)一修改線型、字體和顏色。(4) 在曲線段的排水線設(shè)計時,可用多段線模擬曲線,但段落長度盡量相等。(5)由于考慮布局和折圖的因素,兩端的標(biāo)注都是以水平X軸為基準(zhǔn)標(biāo)注的,折圖完成后需設(shè)計人自行旋轉(zhuǎn)。(6)程序標(biāo)注的水溝長度為多段線實際長度,不考慮水溝的縱坡或者橫向偏移產(chǎn)生的長度誤差。
從《用地與排水系統(tǒng)圖》的繪制流程來講,屬于漸進式設(shè)計,通過平面和橫斷面排水圖的不斷對照和修改,最終完成圖紙。對于這種設(shè)計流程,最佳的軟件方案即為計算機輔助設(shè)計:由設(shè)計人主導(dǎo)設(shè)計思路,計算機完成繪圖及輔助計算,最大程度地簡化繁瑣的繪圖和計算流程,配合設(shè)計人完成圖紙繪制。具體標(biāo)注樣例如圖10、11、12、13、14所示。
圖中,如果排水溝位于曲線位置,可用等長多段線擬合曲線。
圖10 輸入相應(yīng)標(biāo)高和坡度,選擇水流方向
圖11 拾取起點位置
圖12 拾取途經(jīng)點位置
圖13 拾取終點位置
圖14 拾取長度和坡度插入位置
排水流向標(biāo)注程序可以把設(shè)計者從簡單的重復(fù)勞動中解脫出來。其操作更加簡單,標(biāo)注更加準(zhǔn)確,能可靠地完成設(shè)計任務(wù)。
[1]高光來,李 平.計算機應(yīng)用基礎(chǔ)[M].呼和浩特:內(nèi)蒙古大學(xué)出版社,2002.
[2]曾洪飛.CAD VBA基礎(chǔ)與實例教程[M].北京:中國電力出版社,2008.
責(zé)任編輯 王 浩
Example of AutoCAD VBA—drainage fow direction annotation
ZHAO Zhiqing
( Department of Construction Management,Hohhot Railway Administration,Hohhot 010010,China)
This paper introduced AutoCAD VBA offce automation applications example that was the design ideas for the program of drainage fow direction annotation,the design process and the introduction,described the establishment of shape fle,linear and automatic marking.
AutoCAD VBA;offce automation;linear;shape fle
U216.4∶TP39
A
1005-8451(2016)02-0046-04
2015-06-12
趙志清,高級工程師。