摘 要:運(yùn)用VB的程序語(yǔ)言進(jìn)行自動(dòng)繪制立面圖程序的編制,可以對(duì)立面圖進(jìn)行全方位的分析,在一定程度上加大繪制立面圖的可靠性和準(zhǔn)確性。本文從ActiveX Automation對(duì)象模型為出發(fā)點(diǎn),以建筑物的繪制立面圖的設(shè)計(jì)為依據(jù),敘述了界面的設(shè)計(jì)步驟和設(shè)計(jì)該軟件所需要的相關(guān)技術(shù)的支持,進(jìn)一步說(shuō)明運(yùn)用VB控制其他軟件的好處。
關(guān)鍵詞:VB;立體圖程序;設(shè)計(jì)
中圖分類號(hào):TP311
利用VB對(duì)AutoCAD進(jìn)行控制設(shè)計(jì)完善自動(dòng)繪制立面圖的程序和算法,減少了原有的工作失誤,加快了工作的準(zhǔn)確度和效率。這也為內(nèi)業(yè)減輕了很多的工作量,趨向成果的標(biāo)準(zhǔn)性。
1 ActiveX Automation對(duì)象模型
ActiveX Automation對(duì)象模型是Autodesk公司由AutoCAD R14版本中提供而來(lái)的。AutoCAD擁有超強(qiáng)的圖形編輯系統(tǒng),是現(xiàn)今計(jì)算機(jī)輔助繪圖中運(yùn)用最廣的軟件。二維繪圖的標(biāo)準(zhǔn)格式是DWG文件格式?,F(xiàn)在很多商業(yè)化的測(cè)試軟件都是運(yùn)用AutoCAD為開發(fā)平臺(tái)或者供給和它相交互的接口。ActiveX Automation是以Microsof的對(duì)象模式進(jìn)行開發(fā)的,利用此軟件可以暢游在各種編程環(huán)境里訪問(wèn)AutoCAD圖形。ActiveX Automation提供了很多的可編程對(duì)象,其中包括:圖像顯示對(duì)象、圖像對(duì)象、結(jié)構(gòu)對(duì)象等,當(dāng)然也可以把AutoCAD程序當(dāng)作對(duì)象。運(yùn)用VB語(yǔ)言進(jìn)行編程操作,可以把VB里的一個(gè)程序窗口當(dāng)作AutoCAD,對(duì)其進(jìn)行繪圖、打印、編輯、關(guān)閉步驟的操作,用起來(lái)比較方便快捷。VB擁有Windows應(yīng)有程序里的程序語(yǔ)言,它有很容易掌握、比較強(qiáng)大的優(yōu)點(diǎn)。利用VB實(shí)現(xiàn)對(duì)AutoCAD的控制操作,在自動(dòng)繪畫立面圖的設(shè)計(jì)中非常的有益。
2 編程的整體思路
在對(duì)大量的立面測(cè)試試驗(yàn)的研究分析后,得出以下結(jié)論:(1)現(xiàn)實(shí)中建筑物體的立面圖形狀各式各樣,多數(shù)的立面圖形可以進(jìn)行拆分:比如房屋的窗戶、屋檐、外輪廓、豎向的投影線等。立面圖的主要依據(jù)就是窗戶,為了方便計(jì)算機(jī)的描述和實(shí)現(xiàn)過(guò)程,可以對(duì)窗戶進(jìn)行多組或者一組的橫向間距和豎向間距的拆分方案。(2)立面測(cè)量的數(shù)據(jù)采集方法比較方便、靈活,通常情況下依據(jù)實(shí)際中的情況把多種采集手段配合交叉著使用。通常運(yùn)用的采集方法有:鋼尺量距、無(wú)棱鏡的踩點(diǎn)法、懸高法等等,實(shí)際使用后的結(jié)果大多都是得到一系列的懸高和尺寸的數(shù)據(jù)情況。綜合參考上述的結(jié)論,這一次的程序設(shè)計(jì)運(yùn)用使用人員錄入的物外立面數(shù)據(jù)為依據(jù),通過(guò)程序內(nèi)部的自行運(yùn)算后,運(yùn)用VB控制掌握著AutoCAD達(dá)到自動(dòng)繪制立體圖的效果圖。
圖1
3 界面的設(shè)計(jì)步驟
每一個(gè)程序的可操作性能和易用性在應(yīng)用程序的界面上就可以完好的體現(xiàn)。第一步把使用人員當(dāng)作設(shè)計(jì)程序的中心,在對(duì)系統(tǒng)進(jìn)行設(shè)計(jì)編制的時(shí)候,專業(yè)設(shè)計(jì)人員必須準(zhǔn)確掌握使用人員的特征,明晰使用人員的運(yùn)用要求。運(yùn)用順序的原則方法,依照處理事件的先后順序或者訪問(wèn)查看的順序等設(shè)計(jì)出人和機(jī)器對(duì)話的界面。利用本身的功能原則設(shè)置人機(jī)交互的界面,確保對(duì)象所應(yīng)用的環(huán)境和具體場(chǎng)合的使用功能得到完好發(fā)揮。把握好一致性原則的依據(jù),確保用戶在運(yùn)用時(shí)首先看到界面的細(xì)節(jié)和美工設(shè)計(jì)一致,在一定程度上減少用戶運(yùn)行時(shí)出現(xiàn)的失誤情況。掌握好用戶交互式對(duì)話頻率的高低原則,設(shè)計(jì)出人機(jī)界面里的對(duì)話框位置和層次的順序等部分。為了使人機(jī)界面的主次順序和對(duì)話框的位置的突顯性,一定規(guī)范好管理對(duì)像在系統(tǒng)設(shè)計(jì)中的重要性和全局性。遵照用戶人員的特征,設(shè)計(jì)好與其相適應(yīng)并友好相處的人機(jī)界面。為了加大用戶的交互式的運(yùn)行水平與效率,可以設(shè)置彈出式的顯示窗口進(jìn)行提示和引導(dǎo)信息方便用戶的操作。
此程序的界面截圖如下:
圖2
圖3
3 主要技術(shù)的運(yùn)用
3.1 窗戶的錄入工作:(1)全部的窗戶都使用多組或者一組的橫向間距或豎向間距來(lái)進(jìn)行描述。橫向間距的外掛屬性有非“0”和“0”兩種,它們分別對(duì)“窗戶的寬度”和“窗戶的長(zhǎng)度”進(jìn)行表示?!皺M向間距”在對(duì)窗戶的寬度進(jìn)行表示時(shí),為了使“橫向間距”和“豎向間距”存在聯(lián)系,準(zhǔn)確的達(dá)到描述窗戶的目的,此時(shí)的“橫向間距”所代表的屬性值與“豎向間距”的組號(hào)對(duì)應(yīng)。每一組的“豎向間距”中間距的總數(shù)可以不一樣,但都規(guī)定大于等于3個(gè)為奇數(shù),行號(hào)的排列由小到大,所對(duì)應(yīng)的實(shí)地有頂部到底部。得出的偶數(shù)行就表示“窗戶的高度”,奇數(shù)行則表示“墻體的高度”。比如:頂層部的窗戶上沿和屋檐緊挨著,一層窗戶的下沿和地面緊挨著,那么首部和尾部的間距輸入值為0。(2)由于豎向間距進(jìn)行錄入時(shí),外業(yè)的數(shù)據(jù)有可能是懸高的數(shù)據(jù),程序在進(jìn)行設(shè)計(jì)的時(shí)候設(shè)計(jì)了懸高的錄入窗口,進(jìn)入“豎向懸高的錄入時(shí)可以實(shí)時(shí)的進(jìn)行自動(dòng)計(jì)算豎向的間距。在自動(dòng)繪圖進(jìn)行讀取的時(shí)候,只讀取豎向的間距值,達(dá)到了豎向間距和豎向懸高的二者兼容性。為達(dá)到無(wú)限制的表格行數(shù)和列數(shù),減少表格的內(nèi)存占用空間,可以對(duì)全部的表格錄入口設(shè)置動(dòng)態(tài)的增加或者刪除表格的行列。
3.2 如果窗戶的橫向間距或者豎向間距出現(xiàn)比一組多的情況,各個(gè)組之間的數(shù)據(jù)數(shù)值的和是完全一樣的。如果不相同,程序會(huì)自動(dòng)的進(jìn)行嚴(yán)密平差,平差的運(yùn)算方法和水準(zhǔn)平差的辦法相似。如果用戶輸入立面總長(zhǎng)或者立面總高時(shí),程序會(huì)自動(dòng)把輸入的值當(dāng)做標(biāo)準(zhǔn)值來(lái)進(jìn)行平差,或者運(yùn)用各個(gè)組的“豎向間距”和“橫向間距”數(shù)值和的平均值當(dāng)做標(biāo)準(zhǔn)數(shù)值來(lái)進(jìn)行平差。如果出現(xiàn)各組的“橫向間距”和“豎向間距”的數(shù)值和與標(biāo)準(zhǔn)值之間的差值絕對(duì)值比限差大的情況,程序會(huì)自行中斷同時(shí)提醒用戶錯(cuò)誤。限差可以用戶自己進(jìn)行設(shè)定。
3.3 對(duì)計(jì)算的圖紙尺寸和比例尺進(jìn)行設(shè)定。程序設(shè)置中通常使用的比例有:50/100/150/200/250/300當(dāng)然也可以進(jìn)行自動(dòng)的比例。程序設(shè)置和有52種圖幅,也可進(jìn)行自動(dòng)圖幅。這些設(shè)計(jì)確保了立圖面特點(diǎn)更好的展現(xiàn)和疊圖時(shí)候的方便運(yùn)用。程序計(jì)算圖紙和比例尺間的算法分為:手動(dòng)圖幅的自動(dòng)比例閥和手動(dòng)圖幅的手動(dòng)比例法,自動(dòng)圖幅的自動(dòng)比例和自動(dòng)圖幅的手動(dòng)比例,當(dāng)遇到?jīng)]有合適的比例尺的情況,先要把滿足要求的最小比例尺計(jì)算出來(lái),取比例尺最小值是十的倍數(shù)的比例尺為選定比例尺。在沒(méi)有合適的預(yù)置圖幅的時(shí)候,先把適合要求的最小圖幅尺寸求出來(lái),選取比最小圖紙尺寸大的并是10mm的倍數(shù)的作為圖志的選定圖紙尺寸。
3.4 立面圖中建筑物的突出部分運(yùn)用一條長(zhǎng)的豎線進(jìn)行表示,我們把它叫做豎向投影線。上邊文段中說(shuō)過(guò)橫向間距利用“0”和非“0”表示的是窗戶的寬度和墻體的寬度,當(dāng)橫向間距表示的是窗戶的寬度時(shí),它的屬性數(shù)值對(duì)應(yīng)表示的是豎向間距的組號(hào)。
3.5 在對(duì)定義的尺寸進(jìn)行標(biāo)注樣式制作時(shí),先對(duì)橫向間距進(jìn)行標(biāo)注在對(duì)豎向間距進(jìn)行標(biāo)注,如果出現(xiàn)間距一樣的情況,只標(biāo)注一組就可以啦。對(duì)于標(biāo)注豎向間距時(shí),一定要注意先把外輪廓線的兩側(cè)間距進(jìn)行標(biāo)注。在遇到間距大于一組并且兩側(cè)的間距沒(méi)有辦法表達(dá)所有的間距組時(shí),程序會(huì)自動(dòng)的把全部的兩窗戶間的間隙寬度做瀏覽,會(huì)先把間隙的較寬出進(jìn)行標(biāo)注。
3.6 細(xì)心地把工程的文件數(shù)據(jù)進(jìn)行設(shè)置,確保工程的保存、打開、零存功能的運(yùn)用。內(nèi)業(yè)可以下載一個(gè)TXT格式的工程文件,運(yùn)用它達(dá)到內(nèi)外業(yè)一體和測(cè)繪不用紙的狀態(tài)。外業(yè)也不需要重新開發(fā)專用的工程軟件,可以運(yùn)用PDA來(lái)記錄。工程的文件是明碼文件,使用者在修改和存檔的時(shí)候比較方便運(yùn)用。設(shè)置錄入限制系統(tǒng),限制字母、符號(hào)、小數(shù)點(diǎn)等字符的輸入,確保全部的錄入數(shù)據(jù)的表格和文本框出現(xiàn)防錯(cuò)錄的情況。如果出現(xiàn)錄錯(cuò)的情況,程序可以及時(shí)的依據(jù)相關(guān)信息分析出錯(cuò)誤。在進(jìn)行立面圖繪制之前,程序也會(huì)把輸入的數(shù)據(jù)進(jìn)行全部的檢測(cè),并對(duì)出現(xiàn)的錯(cuò)誤因素有所提示。
3.7 自動(dòng)的把所用的參考線和圖幅尺度進(jìn)行繪制,使使用人員在整理的時(shí)候方便。首先選用A4的紙張作為標(biāo)準(zhǔn)紙,先把立面圖里內(nèi)外廓間的短線進(jìn)行繪制,用實(shí)線代表反折,虛線則代表正折。利用繪圖程序中的各個(gè)選項(xiàng)和各部分的繪圖立面圖進(jìn)行合作應(yīng)用,把握正確支持繪圖的基點(diǎn)功能,可以對(duì)復(fù)雜的立面繪圖進(jìn)行多次的疊加繪制,減少了繪圖中出現(xiàn)的錯(cuò)層的情況。規(guī)范好繪圖的環(huán)境,對(duì)繪圖的圖層、文字樣式、尺寸、顏色線條寬度等進(jìn)行設(shè)置,繪制環(huán)境都交由代碼控制完成,此測(cè)繪圖不再依賴于CAD模板,具有很強(qiáng)的可移植性。
4 結(jié)束語(yǔ)
隨著現(xiàn)今測(cè)繪技術(shù)的不斷發(fā)展,原有的運(yùn)用CAD為平臺(tái)的手工繪圖已經(jīng)無(wú)法適應(yīng)繪圖快速發(fā)展的現(xiàn)狀。由于CAD手工繪圖軟件工作量太大、準(zhǔn)確性不高、整理起來(lái)麻煩、容易出錯(cuò)這一系列的問(wèn)題,促使開發(fā)運(yùn)用一種自動(dòng)繪制立面圖軟件程序迫在眉睫。運(yùn)用VB對(duì)軟件進(jìn)行控制操作,可以有效地減少了軟件開發(fā)所浪費(fèi)的時(shí)間,也有效地解決了測(cè)繪中出現(xiàn)的各種問(wèn)題,加快了測(cè)繪技術(shù)的發(fā)展速度。
參考文獻(xiàn):
[1]黃琛,黃紅兵.基于VB6.0的數(shù)據(jù)通信編程技術(shù)[J].電子世界.2014(01).
[2]雷祥,耿娜.MapX在VC++中實(shí)現(xiàn)軍用標(biāo)圖的兩個(gè)關(guān)鍵方法研究[J].硅谷.2012(15).
作者簡(jiǎn)介:張鵬,男,內(nèi)蒙古通遼人,教師,講師:碩士,研究方向:計(jì)算數(shù)學(xué)。
作者單位:內(nèi)蒙古民族大學(xué),內(nèi)蒙古通遼 028000