• 
    

    
    

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

      ?

      利用VBA編程實(shí)現(xiàn)地形圖的自動(dòng)分幅

      2014-06-14 00:31賀秋偉
      關(guān)鍵詞:整飾圖框布局

      賀秋偉

      摘 要:目前大部分地形圖都是采用AutoCAD的格式存儲(chǔ),在數(shù)據(jù)入庫(kù)和使用時(shí)均需要將地形圖按照標(biāo)準(zhǔn)進(jìn)行分幅,目前也有部分軟件支持自動(dòng)對(duì)地形圖分幅,但是存在圖框不能自定義或者定義文件復(fù)雜、圖廓整飾不符合規(guī)范、進(jìn)行地形圖裁切時(shí)對(duì)象丟失等問題,該文提出了利用VBA進(jìn)行編程實(shí)現(xiàn)了地形圖以布局的方式自動(dòng)分幅,較好的解決了以上問題。

      關(guān)鍵詞:VBA 地形圖 自動(dòng)分幅 布局

      中圖分類號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2014)01(b)-0242-01

      隨著計(jì)算機(jī)技術(shù)的發(fā)展,目前大部分地形圖均實(shí)現(xiàn)了數(shù)字化生成和存儲(chǔ),但是在外業(yè)用圖和數(shù)據(jù)歸檔時(shí)還是需要對(duì)地形圖進(jìn)行分幅,目前部分商用軟件也實(shí)現(xiàn)了自動(dòng)對(duì)地形圖分幅的功能,但是存在圖框文件不能自定義或者定義文件復(fù)雜、圖廓整飾不符合規(guī)范、進(jìn)行分幅剪裁時(shí)對(duì)象丟失等現(xiàn)象,為解決這些問題,本文提出了采用VBA編程對(duì)AutoCAD進(jìn)行二次開發(fā),將地形圖分幅到布局的思路克服以上缺點(diǎn),實(shí)現(xiàn)對(duì)地形圖的自動(dòng)分幅。

      1 開發(fā)工具的選擇

      目前AutoCAD最主流的開發(fā)方式是AutoLisp、ObjectARX和VBA三種方式,他們各有優(yōu)缺點(diǎn)。

      1)AutoLISP是一種表處理語言,是被解釋執(zhí)行的,任何一個(gè)語句鍵入后就能馬上執(zhí)行,對(duì)于交互式的程序開發(fā)非常方便。其缺點(diǎn)是繼承了LISP語言的編程規(guī)則而導(dǎo)致繁多的括號(hào)。2)ObjectARX以C++為編程語言,采用先進(jìn)的面向?qū)ο蟮木幊淘恚峁┛膳cAutoCAD直接交互的開發(fā)環(huán)境,能使用戶方便快捷地開發(fā)出高效簡(jiǎn)潔的Auto CAD應(yīng)用程序,但是對(duì)編程門檻較高,需要比較熟練的掌握C++面向?qū)ο蟮木幊谭椒ā?) VBA 即Mcrosoft office中的Visual Basic for Applications,被集成到AutoCAD中。VBA為開發(fā)者提供了一種新的選擇,也為用戶訪問AutoCAD中豐富的技術(shù)框架打開一條新的通道。VBA和AutoCAD中強(qiáng)大的ActiveX自動(dòng)化對(duì)象模型的結(jié)合,代表了一種新型的定制AutoCAD的模式構(gòu)架。通過VBA,我們可以操作AutoCAD,控制ActiveX和其它一些應(yīng)用程序,使之相互之間發(fā)生互易活動(dòng)。同時(shí)VBA是以VB為基礎(chǔ)語言,大大降低了開發(fā)的難度。因此本次選用VBA作為主要開發(fā)手段對(duì)AutoCAD進(jìn)行二次開發(fā)。

      2 地形圖分幅信息文件的定義

      要進(jìn)行地形圖分幅首先要定義地形圖分幅信息文件,以便讓程序按照分幅信息的要求進(jìn)行自動(dòng)分幅,分幅信息文件主要包含兩個(gè)方面的內(nèi)容。

      1)圖廓整飾內(nèi)容,這部分內(nèi)容對(duì)于同一測(cè)區(qū)的地形圖,每幅地形圖內(nèi)容基本相同;2)地形圖鄰接關(guān)系,這部分內(nèi)容包含每幅地形圖的位置以及和鄰接地形圖的關(guān)系,每幅地形圖均不相同。

      根據(jù)分幅信息的特點(diǎn),本次采用Excel表格的方式存儲(chǔ)分幅信息,在表一中存儲(chǔ)圖廓整飾內(nèi)容,作業(yè)員按照要求將內(nèi)容輸入進(jìn)去即可,在表二中存儲(chǔ)圖幅鄰接關(guān)系,作業(yè)員只要在表格中按照地形圖的排列關(guān)系將圖名輸入表格即可(不需輸入每幅的西南角坐標(biāo),程序可以自動(dòng)推算)。前面提到VBA是從Mcrosoft office中派生出來的,因此利用VBA讀取Excel格式的數(shù)據(jù)的編程難度也大大降低。

      3 地形圖分幅至布局

      AutoCAD文件分為模型空間和圖紙空間,一個(gè)AutoCAD文件只能有一個(gè)模型空間,但是可以擁有圖紙空間中的多個(gè)布局,將地形圖分幅至布局,即分幅后的每幅圖為圖紙空間中的一個(gè)布局。在編程實(shí)現(xiàn)時(shí),將圖廓等內(nèi)容直接繪制在圖紙空間,和模型空間互不干擾,而地形圖的內(nèi)容在在該圖紙空間創(chuàng)建一個(gè)視口,通過定義視口的中心位置和大小等方法來實(shí)現(xiàn)該幅地形圖從模型空間到圖紙空間的映射。

      與將地形圖分幅裁切成單個(gè)文件相比將地形圖分幅到布局有以下優(yōu)點(diǎn):

      1)全部地形圖存儲(chǔ)在一個(gè)AutoCAD文件里面,便于管理,并且分幅后的每幅地形圖至是模型空間的映射,減小了文件的大小,更利于存儲(chǔ)和傳送;2)地形圖如果更新后,只需修改模型空間的內(nèi)容,布局會(huì)自動(dòng)更新不需要重新分幅和接邊;3)避免了對(duì)地形圖裁切時(shí)對(duì)象丟失的情況發(fā)生;4)不同幅地形圖的中的各種對(duì)象并沒有因?yàn)榉址徽嬲们校奖闫渌麑I(yè)利用電子版的地形圖進(jìn)行三維建模、斷面剖切等應(yīng)用;5)所有地形圖位于一個(gè)文件中,并且打印設(shè)置一致,在地形圖打印時(shí)更方便批打印。

      地形圖自動(dòng)分幅至布局關(guān)鍵實(shí)現(xiàn)代碼如下:

      1)新建布局:

      Set newLayout = ThisDrawing.Layouts.Add(“圖名”)

      2)在布局中插入圖框,由于圖框的基本內(nèi)容是一直的,因此在編程時(shí)將標(biāo)準(zhǔn)圖框CAD文件作為一個(gè)塊直接扎入布局即可。

      Set blockRefObj = ThisDrawing.PaperSpace.InsertBlock(insertionPnt, ImporFile, 1#, 1#, 1#, 0)

      3)在布局中添加圖廓整飾文字:

      Set textObj = ThisDrawing.PaperSpace.AddText(textString, insertionPoint, height)

      textObj.Alignment = acAlignmentTopLeft

      textObj.TextAlignmentPoint = insertionPoint

      圖廓整飾內(nèi)容程序直接讀取對(duì)應(yīng)的Excel分幅信息文件中的表一,圖名、結(jié)合表信息等則可以通過表二中的圖形鄰接關(guān)系推算得到。

      4)新建視口

      Set newVport = ThisDrawing.PaperSpace.AddPViewport(center, 500, 500)

      Center為視口中心位置,500, 500分別為視口的寬度和高度,在進(jìn)行地形圖分幅時(shí)默認(rèn)進(jìn)行50×50分幅,因此在這里設(shè)置為500,500。

      newVport.Display True

      ThisDrawing.MSpace = True

      ZoomWindow point1, point2

      ThisDrawing.MSpace = False

      通過以上幾個(gè)步驟的編程就完成一幅圖的分幅工作。需要說明的是由于布局只是為了地形圖分幅打印的需要而建立,并不需要反映真實(shí)的地理位置信息,因此每個(gè)布局中的地形圖均放在同一位置,并且根據(jù)地形圖比例尺對(duì)模型空間進(jìn)行了縮放,以便于無論什么比例尺的地形圖均可以在打印的時(shí)候按照1:1打印。

      4 結(jié)語

      本程序?qū)崿F(xiàn)了根據(jù)分幅信息文件自動(dòng)將地形圖分幅至布局的功能,克服了將圖形裁切分幅至文件的不足,支持圖廓信息自定義,并且界面友好,編程時(shí)字體嚴(yán)格按照規(guī)范定義,在保證作業(yè)標(biāo)準(zhǔn)化的同時(shí)大大提高了作業(yè)效率。

      參考文獻(xiàn)

      [1] 李冠憶.深居淺出AutoCAD二次開發(fā) 明經(jīng)通道論壇.

      [2] 孔祥豐.Autocad+vba從入門到精通[M].北京:電子工業(yè)出版社,2001.

      [3] GB-T 20257.1-20071:500、1:1000、1:2000地形圖圖式[M].北京:中國(guó)標(biāo)準(zhǔn)出版社.endprint

      猜你喜歡
      整飾圖框布局
      數(shù)字印后整飾技術(shù)多維觀察
      基于Lisp的自動(dòng)圖框繪制和輸出管理技術(shù)研究
      基于Microstation V8 XM圖紙批量打印的實(shí)現(xiàn)
      BP的可再生能源布局
      地形圖圖廓整飾的設(shè)計(jì)與實(shí)現(xiàn)
      談?dòng)∠笳棇?duì)人際交往和求職面試的影響
      VR布局
      析SP3D軟件的ISO出圖模板定制
      2015 我們這樣布局在探索中尋找突破
      印象整飾視角下的大學(xué)生學(xué)業(yè)考試作弊動(dòng)機(jī)與行為探析
      田林县| 镇远县| 盐源县| 景德镇市| 杭锦旗| 漳平市| 呼和浩特市| 华坪县| 庄河市| 泸溪县| 高邑县| 宣城市| 金沙县| 昌黎县| 赤水市| 峨边| 南华县| 留坝县| 盐山县| 普格县| 临夏市| 宁强县| 台东市| 墨脱县| 江永县| 昭平县| 禹州市| 晋州市| 尉氏县| 微山县| 大足县| 延津县| 鄂托克前旗| 赣州市| 鄂尔多斯市| 科技| 林甸县| 汉川市| 福海县| 托克托县| 栾川县|