• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于VB的自動(dòng)繪制立面圖程序的設(shè)計(jì)

      2012-09-22 10:01:30馮宏偉羅宏
      城市勘測 2012年1期
      關(guān)鍵詞:立面圖圖幅窗戶

      馮宏偉,羅宏

      (大同市勘察測繪院,山西大同 037000)

      1 引言

      測繪技術(shù)發(fā)展到今天,測繪軟件琳瑯滿目,功能也日趨完善。但由于測繪技術(shù)發(fā)展迅速,服務(wù)領(lǐng)域不斷擴(kuò)大,相關(guān)規(guī)范的出臺(tái)和修訂略顯滯后,導(dǎo)致各部門對成果要求也不盡相同。許多針對特定功能的軟件還存在空白,許多現(xiàn)有軟件也需要持續(xù)改進(jìn)。為了適應(yīng)這種需要,作為測繪技術(shù)人員,有必要掌握一種程序設(shè)計(jì)語言,并能熟練用于解決測繪生產(chǎn)中的實(shí)際問題,這已逐漸成為測繪界共識(shí)。

      在建筑物采光分析測繪中,需提供大量建筑物的立面圖,用于建模和后續(xù)采光分析。在以往的生產(chǎn)中,主要依靠在CAD平臺(tái)下手工成圖,包括計(jì)算圖紙尺寸及比例尺、設(shè)置繪圖環(huán)境、外業(yè)數(shù)據(jù)檢核及平差、繪制及編輯圖形、尺寸標(biāo)注及文字注記、打印及疊圖裝訂等多個(gè)環(huán)節(jié)。生產(chǎn)效率低下,且容易出錯(cuò)。因此,開發(fā)一種自動(dòng)繪制立面圖的程序顯得尤為迫切。

      本文以VB 6.0為開發(fā)環(huán)境,運(yùn)用ActiveX Automation提供的接口進(jìn)行AutoCAD的二次開發(fā),重點(diǎn)闡述了利用VB控制AutoCAD實(shí)現(xiàn)自動(dòng)繪制立面圖的思路和算法。

      2 ActiveX Automation對象模型

      AutoCAD是最為流行的計(jì)算機(jī)輔助繪圖軟件包,具有強(qiáng)大的圖形編輯功能和開放性,DWG文件格式成為二維繪圖的事實(shí)標(biāo)準(zhǔn)格式,幾乎所有商業(yè)化測圖軟件都選擇AutoCAD作為開發(fā)平臺(tái)或提供與之交互的接口。

      Autodesk公司從AutoCAD R14版本開始提供了ActiveX Automation對象模型。ActiveX Automation是Microsoft基于部件對象模型(COM)體系結(jié)構(gòu)開發(fā)的一項(xiàng)技術(shù),通過它可以在多種編程環(huán)境中編程訪問Auto-CAD圖形。

      ActiveX Automaion提供給控制程序的可編程對象有:圖形對象、類型風(fēng)格對象、結(jié)構(gòu)對象和圖形顯示對象,甚至AutoCAD程序本身也被看做對象。用VB語言編程,將AutoCAD當(dāng)成VB程序中的一個(gè)圖形窗口,對其進(jìn)行打開、繪圖、編輯、打印、關(guān)閉等操作十分方便。

      VB是目前開發(fā)Windows應(yīng)用程序最為迅速、簡潔的程序設(shè)計(jì)語言,具有功能強(qiáng)大、易于掌握的特點(diǎn)。用VB控制AutoCAD開發(fā)自動(dòng)繪制立面圖的程序,是十分有效的手段和方法。

      3 編程思路

      在分析總結(jié)了大量立面測量實(shí)踐的基礎(chǔ)上,得出如下結(jié)論:

      (1)立面測量外業(yè)數(shù)據(jù)采集手段比較靈活,常用的有懸高法、無棱鏡對邊法、無棱鏡采點(diǎn)法、鋼尺量距等,一般根據(jù)實(shí)際情況配合使用,但最終得到的都是一系列尺寸(間距)或懸高(高程)數(shù)據(jù)。

      (2)實(shí)際中建筑物立面造型各異,絕大多數(shù)立面圖都可以拆分成:外輪廓線、窗戶(包括陽臺(tái)上的窗戶)、底商、屋檐、豎向投影線,起算標(biāo)高、方位注記、尺寸標(biāo)注、說明文字、圖框等。

      (3)窗戶是立面圖的主要數(shù)據(jù),可以將其拆分成一組(多組)“橫向間距”和一組(多組)“豎向間距”,便于計(jì)算機(jī)描述與實(shí)現(xiàn)。

      參考以上結(jié)論,本程序通過讀取用戶錄入的建筑物外立面數(shù)據(jù),經(jīng)程序內(nèi)部一系列運(yùn)算之后,最終利用VB控制AutoCAD實(shí)現(xiàn)自動(dòng)繪制立面圖。

      圖1 流程圖

      4 界面設(shè)計(jì)

      一個(gè)應(yīng)用程序的界面往往決定了該程序的易用性與可操作性,本程序界面設(shè)計(jì)遵循以下原則:

      (1)以用戶為中心:在系統(tǒng)的設(shè)計(jì)過程中,設(shè)計(jì)人員要抓住用戶的特征,發(fā)現(xiàn)用戶的需求。

      (2)順序原則:即按照處理事件順序、訪問查看順序等設(shè)計(jì)人機(jī)對話界面。

      (3)功能原則:即按對象應(yīng)用環(huán)境及場合具體使用功能要求,設(shè)計(jì)人機(jī)交互界面,滿足特定功能。

      (4)一致性原則:界面細(xì)節(jié)美工設(shè)計(jì)的一致性使運(yùn)行人員看界面時(shí)感到舒適,一致性還能減少他們的操作失誤。

      (5)頻率原則:即按照管理對象的對話交互頻率高低,設(shè)計(jì)人機(jī)界面的層次順序和對話窗口的顯示位置等。

      (6)重要性原則:即按照管理對象在系統(tǒng)中的重要性和全局性水平,設(shè)計(jì)人機(jī)界面的主次和對話窗口的位置和突顯性。

      (7)面向?qū)ο笤瓌t:即按照操作人員的特征,設(shè)計(jì)與之相適應(yīng)和友好的人機(jī)界面。宜以彈出式窗口顯示提示、引導(dǎo)和幫助信息,提高用戶的交互水平和效率。

      圖2 窗戶錄入界面

      圖3 部件錄入界面

      圖4 注記成圖界面

      5 關(guān)鍵技術(shù)實(shí)現(xiàn)

      5.1 窗戶的錄入

      所有窗戶用一組(多組)“橫向間距”和一組(多組)“豎向間距”描述。

      “橫向間距”外掛屬性,用“0”和“非0”分別表示“墻體寬度”和“窗戶寬度”?!皺M向間距”表示“窗戶寬度”時(shí),其屬性數(shù)值代表所對應(yīng)的“豎向間距”組號(hào),實(shí)現(xiàn)了“橫向間距”與“豎向間距”的關(guān)聯(lián),從而達(dá)到描述窗戶的目的。

      每組“豎向間距”的間距總數(shù)可以不同,但均要求大于等于3個(gè)且為奇數(shù),行號(hào)從小到大對應(yīng)實(shí)地從頂至底。奇數(shù)行代表“墻體高度”,偶數(shù)行代表“窗戶高度”。即首尾間距均代表“墻體高度”,如一層窗戶下沿緊接地面,或頂層窗戶上沿緊接屋檐,則首尾間距輸入0值。

      考慮到豎向間距錄入時(shí),外業(yè)數(shù)據(jù)可能為懸高(高程)數(shù)據(jù),程序設(shè)計(jì)了懸高(高程)數(shù)據(jù)錄入窗口,錄入“豎向懸高”實(shí)時(shí)自動(dòng)計(jì)算“豎向間距”。自動(dòng)繪圖時(shí)只讀取“豎向間距”,實(shí)現(xiàn)了“豎向懸高”與“豎向間距”的兼容。

      所有表格錄入窗口均可動(dòng)態(tài)增刪表格的行列數(shù),既減少了內(nèi)存占用,又實(shí)現(xiàn)了表格行、列數(shù)的無限制。

      5.2 間距嚴(yán)密平差

      當(dāng)窗戶的“橫向間距”或“豎向間距”多于一組時(shí),各組數(shù)據(jù)數(shù)值之和應(yīng)相同。不相同時(shí),程序?qū)⒆詣?dòng)嚴(yán)密平差,平差算法類似于水準(zhǔn)平差。

      當(dāng)用戶鍵入了“立面總長”或“立面總高”時(shí),程序以鍵入值為標(biāo)準(zhǔn)值進(jìn)行平差,否則以各組“橫向間距”或“豎向間距”數(shù)值之和的平均值作為標(biāo)準(zhǔn)值進(jìn)行平差。

      各種信息系統(tǒng)和平臺(tái)主要通過云計(jì)算等技術(shù)實(shí)現(xiàn)對海量數(shù)據(jù)的處理分析,從而快速形成估價(jià)報(bào)告等各類產(chǎn)品,故估價(jià)機(jī)構(gòu)及人員的工作重心也會(huì)轉(zhuǎn)移到數(shù)據(jù)的采集、分析和管理等,估價(jià)師也得以從機(jī)械重復(fù)的作業(yè)方式中解放,轉(zhuǎn)向新型綜合咨詢業(yè)務(wù)的專研,提升自身技能的同時(shí)也為估價(jià)機(jī)構(gòu)的細(xì)化、深化發(fā)展奠定技術(shù)基礎(chǔ)。

      當(dāng)各組“橫向間距”或“豎向間距”數(shù)值之和與標(biāo)準(zhǔn)值之差的絕對值大于限差時(shí),程序中斷執(zhí)行并提示用戶糾錯(cuò)。限差支持用戶設(shè)定。

      5.3 計(jì)算圖紙尺寸和比例尺

      程序預(yù)置 6種比例,分別為:50、100、150、200、250、300,并支持自動(dòng)比例。

      程序預(yù)置52種圖幅,并支持自動(dòng)圖幅。主要考慮立面圖的特點(diǎn)、打印機(jī)配備和疊圖裝訂方便,限于篇幅在此不一一羅列。

      程序計(jì)算圖紙尺寸和比例尺的算法分四種情況:自動(dòng)圖幅自動(dòng)比例、自動(dòng)圖幅手動(dòng)比例、手動(dòng)圖幅自動(dòng)比例、手動(dòng)圖幅手動(dòng)比例。

      無合適預(yù)置比例時(shí),首先計(jì)算滿足要求的“最小比例尺”,之后取比“最小比例尺”小的且為10的倍數(shù)的比例尺作為選定比例尺。

      無合適預(yù)置圖幅時(shí),首先計(jì)算滿足要求的“最小圖紙尺寸”,之后取比“最小圖紙尺寸”大的且為10 mm的倍數(shù)圖紙尺寸作為選定圖紙尺寸。

      5.4 輔助判定豎向投影線

      建筑物平面圖中的突出或凹入部分,在立面圖中表現(xiàn)為一條較長的豎線,作者暫把它稱為豎向投影線。

      前面提到:“橫向間距”外掛屬性,用“0”和“非0”分別表示“墻體寬度”和“窗戶寬度”?!皺M向間距”表示“窗戶寬度”時(shí),其屬性數(shù)值代表所對應(yīng)的“豎向間距”組號(hào)。

      我們一般在第2組“豎向間距”中輸入陽臺(tái)上窗戶的尺寸,其余組輸入主體上窗戶尺寸,這樣有利于下面豎向投影線的輔助判定工作。

      經(jīng)分析豎向投影線的規(guī)律發(fā)現(xiàn):豎向投影線多出現(xiàn)在“墻-墻”、“窗戶-墻-陽臺(tái)”或“陽臺(tái)-墻-窗戶”、“墻-陽臺(tái)”或“陽臺(tái)-墻”等處。對應(yīng)的“橫向間距”外掛屬性為:“0-0”、“1-0-2”或“2-0-1”、“0-2”或“2-0”。

      由此,程序開發(fā)了3種輔助判定方式:00判定、102或201判定、02或20判定,實(shí)現(xiàn)了豎向投影線位置的輔助判定。

      輔助判定適用于現(xiàn)實(shí)中大多數(shù)情況,但不排除例外。為此,豎向投影線位置還支持用戶鍵入和修改。

      5.5 智能尺寸標(biāo)注

      在定義尺寸標(biāo)注樣式之后,首先標(biāo)注橫向間距,之后標(biāo)注豎向間距,相同的間距只標(biāo)注一組。

      在標(biāo)注豎向間距時(shí),先標(biāo)注外輪廓線兩側(cè)間距。當(dāng)間距多于一組,且僅標(biāo)注兩側(cè)間距無法代表所有間距組時(shí),程序?qū)⒈闅v所有窗戶與窗戶之間的間隙寬度,優(yōu)先標(biāo)注在間隙較寬處。程序自動(dòng)記錄已占用間隙,防止多組間距標(biāo)注位置沖突。

      通過獲取尺寸標(biāo)注數(shù)值,及其相鄰標(biāo)注數(shù)值,計(jì)算字符位數(shù)及寬度,并判斷標(biāo)注文字是否壓蓋,實(shí)現(xiàn)尺寸標(biāo)注文字智能移位。

      5.6 工程文件

      精心設(shè)計(jì)了工程文件的數(shù)據(jù)格式,支持保存工程和打開工程及另存為功能。

      外業(yè)可使用PDA記錄,無需開發(fā)專用軟件,使用記事本即可,內(nèi)業(yè)可下載txt格式工程文件。通過本程序讀入txt格式工程文件,實(shí)現(xiàn)測繪無紙化和內(nèi)外業(yè)一體化。

      工程文件為明碼文件,方便用戶編輯修改和存檔。

      5.7 完善的防錯(cuò)錄及查錯(cuò)功能

      通過對數(shù)字、字母、小數(shù)點(diǎn)、負(fù)號(hào)等字符的錄入限制,使所有可錄入數(shù)據(jù)的表格或文本框均實(shí)現(xiàn)了防錯(cuò)錄功能。

      即使錄錯(cuò),程序?qū)崟r(shí)顯示豎向各列總高及各列平均總高、橫向總長,通過查看分析可快速發(fā)現(xiàn)錯(cuò)誤。并且在繪制立面圖之前,程序會(huì)對錄入的數(shù)據(jù)進(jìn)行全面檢查,并提示可能的錯(cuò)誤原因。

      5.8 其他輔助功能

      (1)自動(dòng)繪制疊圖參考線和注明圖幅尺寸,方便用戶打印裁圖及裝訂。

      繪制疊圖參考線的算法:經(jīng)分析日常采光分析測繪報(bào)告中立面圖的一般疊法,以標(biāo)準(zhǔn)A4紙裝訂為準(zhǔn),在立面圖內(nèi)外圖廓之間繪制短線,虛線代表正折,實(shí)線代表反折。

      (2)通過控制繪圖選項(xiàng),靈活搭配繪制立面各部件,結(jié)合支持繪圖基點(diǎn)功能,實(shí)現(xiàn)對復(fù)雜立面的多次疊加繪制,例如錯(cuò)層等情況。

      (3)設(shè)置繪圖環(huán)境,包括圖層、顏色、線寬、文字樣式、尺寸標(biāo)注樣式等,均由代碼控制執(zhí)行,不依賴于CAD模板,可移植性強(qiáng)。

      圖5 立面圖成果略圖

      6 結(jié)語

      掌握利用VB控制提供ActiveX Automation接口的軟件(如 Excel、Word、Access、AutoCAD 等)的技術(shù),可大大縮短軟件開發(fā)周期,對于解決測繪生產(chǎn)中的實(shí)際問題十分有效。

      本文結(jié)合作者測量實(shí)踐及實(shí)際開發(fā)經(jīng)驗(yàn),介紹了利用VB控制AutoCAD實(shí)現(xiàn)自動(dòng)繪制立面圖的思路和算法,旨在拋磚引玉。因源代碼較長(約8 000行),限于篇幅故沒有羅列。

      [1]張晉西.Visual Basic與AutoCAD二次開發(fā)[M].北京:清華大學(xué)出版社,2002

      [2]許謖.Visual Basic應(yīng)用與開發(fā)案例教程[M].清華大學(xué)出版社,2005

      [3]王峰,陳杰.軟件測試的藝術(shù)[M].北京:機(jī)械工業(yè)出版社,2006

      [4]Microsoft公司.Microsoft Visual Basic 6.0控件參考手冊[M].北京:希望電子出版社,1999

      [5]Microsoft公司.Microsoft Visual Basic 6.0語言參考手冊[M].北京:希望電子出版社,1998

      [6]Microsoft公司.Microsoft Visual Basic 6.0程序員指南[M].北京:希望電子出版社,1998

      猜你喜歡
      立面圖圖幅窗戶
      《古建》《鄉(xiāng)村庭院設(shè)計(jì)立面圖》《仁智之核》《智慧之道》
      基于傾斜攝影采集立面圖方法的研究
      擦窗戶
      爬窗戶
      新教育(2018年6期)2018-05-24 08:49:31
      窗戶知多少
      一次回轉(zhuǎn)甩車場合理設(shè)計(jì)之研究與舉例
      基于EXCEL的地形圖圖幅號(hào)轉(zhuǎn)換查詢方法
      基于ArcMap的圖幅接合表快速生成方法研究
      基于全站儀的建筑物立面圖測量
      江西測繪(2014年3期)2014-07-18 12:08:54
      地形圖圖幅編號(hào)規(guī)則及實(shí)現(xiàn)
      城市勘測(2014年4期)2014-06-24 14:33:27
      吉隆县| 桑日县| 庆安县| 藁城市| 灌南县| 伽师县| 全州县| 准格尔旗| 科技| 汤原县| 左云县| 阿鲁科尔沁旗| 淮安市| 容城县| 陇西县| 龙江县| 万山特区| 广东省| 鄂托克旗| 烟台市| 崇仁县| 祁门县| 平利县| 屏东县| 东阿县| 子洲县| 兴隆县| 红桥区| 广安市| 秦安县| 厦门市| 彭山县| 新野县| 华宁县| 萨嘎县| 吉林省| 呼和浩特市| 南投市| 湾仔区| 永兴县| 金沙县|