• 
    

    
    

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

      基于AutoCAD動(dòng)態(tài)塊和腳本文件的批量展點(diǎn)方法

      2016-12-26 03:10:22唐桂彬李俊鋒
      地理空間信息 2016年2期
      關(guān)鍵詞:圖塊批量腳本

      唐桂彬,李俊鋒,劉 帥

      (1.楊凌職業(yè)技術(shù)學(xué)院,陜西 楊凌 712100;2.西北測(cè)繪職工培訓(xùn)中心,陜西 西安 710054;3.紅河學(xué)院工學(xué)院,云南 蒙自 661100)

      基于AutoCAD動(dòng)態(tài)塊和腳本文件的批量展點(diǎn)方法

      唐桂彬1,李俊鋒2,劉 帥3

      (1.楊凌職業(yè)技術(shù)學(xué)院,陜西 楊凌 712100;2.西北測(cè)繪職工培訓(xùn)中心,陜西 西安 710054;3.紅河學(xué)院工學(xué)院,云南 蒙自 661100)

      AutoCAD在工程測(cè)量領(lǐng)域有著較強(qiáng)的通用性,通過(guò)深入剖析AutoCAD屬性塊、動(dòng)態(tài)塊功能和腳本文件的運(yùn)行原理,提出一種基于AutoCAD帶屬性動(dòng)態(tài)塊和腳本文件的批量展點(diǎn)方法,并運(yùn)用VBA宏語(yǔ)言實(shí)現(xiàn)展點(diǎn)數(shù)據(jù)腳本文件的快速編寫(xiě)。實(shí)驗(yàn)表明,該方法不但可同時(shí)完成點(diǎn)符號(hào)和點(diǎn)注記的展繪,而且能保證二者的整體性,具備較強(qiáng)的可調(diào)整性,有利于后期圖面的清繪工作。

      AutoCAD;動(dòng)態(tài)圖塊;腳本文件;VBA;批量展點(diǎn)

      時(shí)下各行業(yè)都在AutoCAD的基礎(chǔ)上開(kāi)發(fā)出了適合自己專(zhuān)業(yè)背景的繪圖軟件,但這仍然取代不了CAD較強(qiáng)的通用性。特別是對(duì)一些非測(cè)繪專(zhuān)業(yè)的相關(guān)工程人員來(lái)說(shuō),更容易接受CAD的繪圖操作,利用它生產(chǎn)出來(lái)的圖形數(shù)據(jù)在后期的應(yīng)用也較為方便[1-2]。出于以上考慮,本文針對(duì)非測(cè)繪人員在一般性工程測(cè)量應(yīng)用方面的需要,提出了一種基于CAD帶屬性動(dòng)態(tài)塊和腳本文件的快速批量展點(diǎn)方法。此方法更完善,易操作,展點(diǎn)效果好,能夠根據(jù)測(cè)點(diǎn)坐標(biāo)同時(shí)展繪點(diǎn)符號(hào)和點(diǎn)注記,且二者為一個(gè)參照塊,同時(shí)點(diǎn)注記在保持與測(cè)點(diǎn)關(guān)聯(lián)的前提下可圍繞點(diǎn)符號(hào)中心自由移動(dòng),更有利于圖面整飾。

      1 動(dòng)態(tài)圖塊和腳本文件

      1.1 動(dòng)態(tài)圖塊

      圖塊是一組圖形對(duì)象的集合,為一個(gè)整體,都被賦予一個(gè)塊名,用戶可以根據(jù)自身需要將該圖塊插入到任意指定位置,并可設(shè)置比例系數(shù)和旋轉(zhuǎn)角度[3-4]。CAD中圖塊分為靜態(tài)塊和動(dòng)態(tài)塊2種。靜態(tài)塊在插入時(shí)各組合對(duì)象間的相對(duì)位置是不再變化的,只能整體調(diào)整縮放比例或者旋轉(zhuǎn)角度;動(dòng)態(tài)塊是從AutoCAD2006版本開(kāi)始增加的,用戶可以根據(jù)預(yù)先自定義的夾點(diǎn)或特性來(lái)整體或局部調(diào)整塊參照。例如在圖形中插入一個(gè)宗地圖框塊參照,對(duì)于不同的圖幅規(guī)格,圖框的大小是不一樣的,如果該塊是一個(gè)動(dòng)態(tài)塊,且?guī)傩缘?,那么只需拖?dòng)自定義夾點(diǎn)來(lái)修改圖框的大小、文字的位置,還可以通過(guò)編輯屬性值實(shí)時(shí)改變文字的內(nèi)容。由此可見(jiàn),動(dòng)態(tài)塊具有一定的靈活性和智能性。

      1.2 腳本文件

      AutoCAD腳本文件又稱(chēng)為命令組文件,是一種后綴名為.SCR的ASCII碼文本文件,它包含一系列具有先后連續(xù)性的CAD命令和參數(shù),這些命令按照順序及指定格式組合在一起表達(dá)了一個(gè)完整的繪圖過(guò)程,通過(guò)SCRIPT命令可調(diào)用腳本文件。腳本文件可快速反復(fù)地將繪圖過(guò)程重復(fù),類(lèi)似于一個(gè)批處理文件[5-6]。

      腳本文件的編輯要求滿足一定的格式規(guī)則,文件中的空格或者空行相當(dāng)于CAD命令執(zhí)行過(guò)程中在鍵盤(pán)上敲擊一次空格鍵或者回車(chē)鍵,不能隨意增減;每行結(jié)尾處必須回車(chē);命令無(wú)大小寫(xiě)之分,最好使用CAD命令全稱(chēng);注釋行以“;”開(kāi)頭,且在英文輸入法狀態(tài)下輸入[6-7]。例如繪制圓心坐標(biāo)值為(50,60)、直徑為101的圓,可編寫(xiě)如下腳本:circle□50,60□d□101□(“□”表示空格)。

      2 動(dòng)態(tài)屬性塊構(gòu)建

      在《國(guó)家基本比例尺地圖圖式》規(guī)范中對(duì)不同比例尺的高程點(diǎn)做了明確要求,本文以批量展繪1∶ 1 000地形圖高程點(diǎn)為例,規(guī)范規(guī)定1∶1 000地形圖上的高程點(diǎn)符號(hào)用直徑0.5 mm的黑點(diǎn)表示,高程注記字體為正等線體,字高為2[8]。

      2.1 靜態(tài)屬性塊的建立

      先在展點(diǎn)圖層內(nèi)繪制點(diǎn)符號(hào),設(shè)置字體為正等線體,并按照指定字高給其定義一個(gè)屬性,這個(gè)屬性用來(lái)存放不同測(cè)點(diǎn)的高程值,其對(duì)齊方式采用左中對(duì)齊,對(duì)齊基點(diǎn)為點(diǎn)符號(hào)實(shí)心圓的圓心處。用wblock命令將點(diǎn)符號(hào)連同屬性一起創(chuàng)建一個(gè)名為“高程點(diǎn)”的外部屬性塊。調(diào)用insert命令于同層任意位置插入“高程點(diǎn)”外部塊,此時(shí)的圖塊只有一個(gè)夾點(diǎn),無(wú)法動(dòng)起來(lái)。

      2.2 動(dòng)態(tài)屬性塊的建立

      在靜態(tài)屬性塊建立之后,需要給這個(gè)圖塊添加極軸參數(shù)和賦予移動(dòng)動(dòng)作以完成動(dòng)態(tài)屬性塊的構(gòu)建(如圖1)?!皦K編寫(xiě)”選項(xiàng)中選擇“參數(shù)”,單擊“極軸參數(shù)”按鈕,按表1提示的操作就可以完成動(dòng)態(tài)屬性塊的制作。

      表1 動(dòng)態(tài)屬性塊的建立過(guò)程

      圖1 塊編輯器中添加參數(shù)和動(dòng)作

      保存塊定義并關(guān)閉塊編輯器,再啟用wblock命令將內(nèi)部動(dòng)態(tài)塊轉(zhuǎn)換成外部動(dòng)態(tài)塊,并替換原靜態(tài)圖塊,以供調(diào)用。經(jīng)動(dòng)態(tài)處理后的圖塊有2個(gè)夾點(diǎn),拖動(dòng)高程注記夾點(diǎn)可使其圍繞符號(hào)定位點(diǎn)移動(dòng),而且點(diǎn)符號(hào)與點(diǎn)注記始終是一個(gè)整體對(duì)象。

      3 編制腳本文件

      編制腳本文件的目的是為了實(shí)現(xiàn)將動(dòng)態(tài)屬性塊按野外測(cè)點(diǎn)坐標(biāo)批量展繪到地形圖上。由于野外測(cè)點(diǎn)屬于測(cè)量坐標(biāo)系,而CAD系統(tǒng)屬于數(shù)學(xué)坐標(biāo)系,因此要對(duì)野外測(cè)點(diǎn)的X和Y坐標(biāo)進(jìn)行置換,置換后的基本格式為:點(diǎn)號(hào),Y,X,H。

      3.1 Excel編制腳本文件

      將交換XY坐標(biāo)順序后的數(shù)據(jù)文件轉(zhuǎn)換為CSV格式的電子表格文件,電子表格中的一行代表了一個(gè)點(diǎn)的展繪過(guò)程。單獨(dú)展繪一個(gè)高程點(diǎn)的步驟(如圖2):第1步,命令行鍵入插入圖塊命令“insert”;第2步,指定插入圖塊的名稱(chēng);第3步,指定圖塊的插入點(diǎn)位(Y,X);第4步,指定圖塊在X、Y方向上的縮放比例,默認(rèn)設(shè)置為1表示不縮放;第5步,設(shè)置圖塊旋轉(zhuǎn)角度,若為0,表示不旋轉(zhuǎn);第6步,點(diǎn)擊“確定”后輸入該點(diǎn)的高程值,輸入的高程值與圖面上產(chǎn)生的高程注記內(nèi)容相互對(duì)應(yīng),再次單擊“確定”即完成了單點(diǎn)的展繪工作。

      圖2 單點(diǎn)展繪步驟

      在 Excel中將上述單點(diǎn)展繪過(guò)程按格式編寫(xiě)成一行,點(diǎn)數(shù)與行數(shù)對(duì)應(yīng),如圖3所示。A列即第一步,輸入“insert”命令;B列即第2步,指定圖塊名稱(chēng),要注意與之前創(chuàng)建的“高程點(diǎn)”圖塊名稱(chēng)一致,否則系統(tǒng)無(wú)法自動(dòng)搜索到需要的圖塊;C列即第3步,給定各點(diǎn)坐標(biāo);對(duì)于C列的編輯可利用CONCATENATE函數(shù),將原數(shù)據(jù)文件中Y、X、H三列內(nèi)容以半角逗號(hào)為分隔符合并為一列,并將其轉(zhuǎn)換為文本格式;D、E、F三列分別表示第4、第5步,確定X、Y方向的縮放比例和旋轉(zhuǎn)角度;G列為第6步,賦高程屬性值,該列也應(yīng)為文本格式,且要注意不同比例尺的高程注記位數(shù)。

      圖3 Excel中編輯腳本文件

      將編輯好的數(shù)據(jù)保存成.scr格式的腳本文件,通過(guò)SCRIPT命令達(dá)到批量展點(diǎn)的目的。

      3.2 VBA編制腳本文件

      為進(jìn)一步提高作業(yè)效率,可將上述過(guò)程編寫(xiě)成VBA宏代碼,通過(guò)創(chuàng)建個(gè)人宏工作簿,對(duì)任意含有坐標(biāo)數(shù)據(jù)的CSV文件進(jìn)行操作。流程如圖4所示。

      圖4 程序流程圖

      主要實(shí)現(xiàn)代碼及其含義:

      ①調(diào)用CONCATENATE函數(shù)編輯C列坐標(biāo)格式,并將其轉(zhuǎn)換為文本格式,代碼如下:

      For Counter = 1 To i

      If Cells(Counter, 1) <> "" Then

      Worksheets(1).Cells(Counter, 1).Value = "insert"

      Worksheets(1).Cells(Counter, 2).Value = j

      Worksheets(1).Cells(Counter, 6).Value = k

      Worksheets(1).Cells(Counter, 7).Value = "=CONCATENATE (RC[-4],RC[-1],RC[-3],RC[-1],RC[-2])"

      End If

      Next Counter

      ②編輯D、E、F列內(nèi)容,給出插入動(dòng)態(tài)圖塊時(shí)的縮放比例、旋轉(zhuǎn)角度,編輯G列高程屬性值即各點(diǎn)高程注記,按用戶指定位數(shù)保留小數(shù)位數(shù)(強(qiáng)制限定在0、1、2、3位),并將其轉(zhuǎn)換為文本格式。代碼如下:

      For Counter = 1 To i

      If Cells(Counter, 1) <> "" Then

      Worksheets(1).Cells(Counter, 4).Value = e

      Worksheets(1).Cells(Counter, 5).Value = e

      Worksheets(1).Cells(Counter, 6).Value = f

      x = Cells(Counter, 7)

      Cells(Counter, 7).Value = Round(x, g)

      If g = 0 Then

      Cells(Counter, 7).NumberFormat = "@"

      Else

      If Cells(Counter, 7) = Int(Cells(Counter, 7)) Then

      s = "."

      For n = 1 To g

      s = s + "0"

      Next n

      Cells(Counter, 7).NumberFormat = "@"

      Cells(Counter, 7).Value = Format(Round(x, g)) + s

      Else: fd = Application.Find(".", Format(Round(x, g)))

      l = Len(Application.Substitute(Format(Round(x, g)), Mid(Format(Round(x, g)), 1, fd), ""))

      If l = 1 Then

      s = ""

      For n = 2 To g

      s = s + "0"

      Next n

      Cells(Counter, 7).NumberFormat = "@"

      Cells(Counter, 7).Value = Forma t(Round(x, g)) + s

      End If

      將編輯好的數(shù)據(jù)保存為腳本文件(后綴名為.scr),通過(guò)SCRIPT命令也能更快捷地達(dá)到展點(diǎn)的目的。

      需要指出的是,運(yùn)行腳本文件之前必須對(duì)CAD的環(huán)境進(jìn)行設(shè)置,即需要在CAD“選項(xiàng)”中進(jìn)行兩項(xiàng)設(shè)置:“文件”標(biāo)簽下添加新的支持文件搜索路徑,以便系統(tǒng)能夠自動(dòng)到該路徑下調(diào)用腳本文件中指定名稱(chēng)的圖塊;另外,“用戶系統(tǒng)配置”標(biāo)簽下將坐標(biāo)數(shù)據(jù)輸入的優(yōu)先級(jí)設(shè)置為鍵盤(pán)輸入。如果這兩項(xiàng)設(shè)置不正確,會(huì)導(dǎo)致后面展點(diǎn)時(shí)腳本文件出錯(cuò);此外,展點(diǎn)圖層應(yīng)置為當(dāng)前圖層。

      4 結(jié) 語(yǔ)

      基于AutoCAD動(dòng)態(tài)塊和腳本文件的批量展點(diǎn)方法不需要借助其他二次開(kāi)發(fā)軟件來(lái)完成展點(diǎn)任務(wù),一般的AutoCAD用戶就能掌握,利用VBA編制腳本文件快速、準(zhǔn)確、高效;另外,除了使用腳本文件批量處理功能外,還充分挖掘了CAD屬性動(dòng)態(tài)塊的強(qiáng)大功能,使得展繪后的點(diǎn)既保持圖塊的整體性,又具備可調(diào)整性,進(jìn)一步提升展點(diǎn)效果,為后期圖幅整飾時(shí)移動(dòng)壓線注記、修改圖面高程注記提供了更快捷的解決方法。

      [1] 唐詩(shī)華,李洪玉,謝劭峰.在CAD平臺(tái)下實(shí)現(xiàn)高程點(diǎn)智能展點(diǎn)的一種方法[J].測(cè)繪通報(bào),2006(4):51-53

      [2] 楊國(guó)根.AutoCAD中自動(dòng)展點(diǎn)方法的探討[J].地理空間信息,2006,4(6):84-86

      [3] 孔祥鋒.將測(cè)量坐標(biāo)點(diǎn)展成AutoCAD格式點(diǎn)的技巧[J].科技資訊,2010(5):74-76

      [4] 尤蘇南.利用Excel表格在CAD中按類(lèi)別快速展繪勘探點(diǎn)技術(shù)[J].計(jì)算機(jī)與現(xiàn)代化,2013(2):163-168

      [5] 張春玲.淺談AutoCAD中腳本文件的使用方法[J].科技創(chuàng)新導(dǎo)報(bào),2011(3):18

      [6] 查維康.使用AutoCAD腳本文件[A].中國(guó)工程圖學(xué)學(xué)會(huì)圖學(xué)教育分會(huì),教育部高等學(xué)校工科制圖教學(xué)指導(dǎo)委員會(huì).面向21世紀(jì)的圖學(xué)教育——第十二屆全國(guó)圖學(xué)教育研討會(huì)暨第三屆制圖CAI課件演示交流會(huì)論文集[C].中國(guó)工程圖學(xué)學(xué)會(huì)圖學(xué)教育分會(huì),教育部高等學(xué)校工科制圖教學(xué)指導(dǎo)委員會(huì),2000

      [7] 邱章云.應(yīng)用Excel編制AutoCAD腳本文件實(shí)現(xiàn)批量展點(diǎn)繪圖[J].礦山測(cè)量,2005(3):52-54

      [8] GB/T20257.1-2007國(guó)家基本比例尺地圖圖式第1部分:1∶ 500、1∶1 000、1∶2 000地形圖圖式[S].

      [9] 朱洪濤.在AutoCAD中實(shí)現(xiàn)快速展點(diǎn)繪圖[A]//淮南礦業(yè)集團(tuán).2010年度淮南礦業(yè)集團(tuán)煤炭學(xué)會(huì)學(xué)術(shù)交流會(huì)論文匯編(二)·地質(zhì)專(zhuān)業(yè)[C].淮南礦業(yè)集團(tuán),2010

      本 刊 聲 明

      為適應(yīng)我國(guó)信息化建設(shè),擴(kuò)大本刊及作者知識(shí)信息交流渠道,本刊數(shù)據(jù)已被《中國(guó)核心期刊(遴選)數(shù)據(jù)庫(kù)》、《CNKI 中國(guó)期刊全文數(shù)據(jù)庫(kù)》和《中文科技期刊數(shù)據(jù)庫(kù)(全文版)》等收錄。在《地理空間信息》發(fā)表的論文均默認(rèn)將其在著作權(quán)保護(hù)期內(nèi)的復(fù)制權(quán)、發(fā)行權(quán)、匯編權(quán)、翻譯權(quán)以及網(wǎng)絡(luò)傳播權(quán)授權(quán)給《地理空間信息》編輯部,編輯部可將上述權(quán)利轉(zhuǎn)授給第三方使用。作者不再許可他人以任何形式使用該篇論文,但可以在其后續(xù)作品中引用(或翻譯)該論文中部分內(nèi)容或?qū)⑵鋮R編在作者的非期刊類(lèi)文集中。如不同意,請(qǐng)事先聲明,本刊另作處理。其文章的著作權(quán)使用費(fèi)與本刊稿酬一次性給付(已在收取發(fā)表費(fèi)時(shí)折減和換算為雜志贈(zèng)閱)。

      (本刊編輯部)

      P208

      B

      1672-4623(2016)02-0075-04

      10.3969/j.issn.1672-4623.2016.02.026

      唐桂彬,碩士,主要從事工程測(cè)量、GIS和遙感技術(shù)應(yīng)用、測(cè)繪教學(xué)等方面的工作。

      2015-01-16。

      項(xiàng)目來(lái)源:國(guó)家自然科學(xué)基金資助項(xiàng)目(41201418、41301442);楊凌職業(yè)技術(shù)學(xué)院科學(xué)研究基金資助項(xiàng)目(A2013051,A2014014)。

      猜你喜歡
      圖塊批量腳本
      酒駕
      批量提交在配置分發(fā)中的應(yīng)用
      安奇奇與小cool 龍(第二回)
      數(shù)據(jù)庫(kù)系統(tǒng)shell腳本應(yīng)用
      快樂(lè)假期
      AutoCAD中圖塊命令的應(yīng)用分析
      優(yōu)化A算法搜索連連看圖塊配對(duì)和消除次序
      茶壺難題
      淺議高校網(wǎng)銀批量代發(fā)
      基于AUTOIT3和VBA的POWERPOINT操作題自動(dòng)批量批改
      星座| 洛浦县| 莱芜市| 河东区| 东辽县| 安义县| 尤溪县| 庐江县| 灯塔市| 广元市| 商水县| 芷江| 务川| 聂拉木县| 从江县| 武隆县| 万宁市| 噶尔县| 揭西县| 康马县| 富顺县| 高州市| 赤水市| 永和县| 金昌市| 秦安县| 嘉峪关市| 舒兰市| 措美县| 英山县| 关岭| 格尔木市| 瑞金市| 调兵山市| 乌拉特中旗| 津南区| 鹿泉市| 海盐县| 麦盖提县| 江山市| 乌鲁木齐县|