• 
    

    
    

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

      ?

      AutoCAD 中自定義形文件數(shù)據(jù)轉(zhuǎn)換方法分析

      2013-03-06 02:11:59黃國強(qiáng)魏金占莫文通
      城市勘測 2013年4期
      關(guān)鍵詞:對照表乙方圖層

      黃國強(qiáng),魏金占,莫文通

      (1.南寧市國土資源信息中心,廣西南寧 530022; 2.南寧市勘察測繪地理信息院,廣西南寧 530022)

      AutoCAD 中自定義形文件數(shù)據(jù)轉(zhuǎn)換方法分析

      黃國強(qiáng)1?,魏金占2,莫文通2

      (1.南寧市國土資源信息中心,廣西南寧 530022; 2.南寧市勘察測繪地理信息院,廣西南寧 530022)

      自定義形文件在入庫和數(shù)據(jù)轉(zhuǎn)換時多無法識別和顯示,但形文件的定義一般遵循國家標(biāo)準(zhǔn),數(shù)據(jù)多通過幾何屬性或擴(kuò)展屬性進(jìn)行屬性信息記錄。因此本文結(jié)合工作實際,分析數(shù)據(jù)的屬性信息組織特點(diǎn),提出以地物編碼結(jié)合地物幾何屬性信息方法,實現(xiàn)了自定義符號庫的多元數(shù)據(jù)轉(zhuǎn)換問題。通過兩種信息的結(jié)合,最大化的保留轉(zhuǎn)換前的信息,實現(xiàn)了幾何圖形與地物屬性的一體化轉(zhuǎn)換,為數(shù)據(jù)無損轉(zhuǎn)換及入庫提供一種新的轉(zhuǎn)換思路。

      形文件;數(shù)據(jù)轉(zhuǎn)換;地物編碼

      1 引 言

      AutoCAD平臺在工程建設(shè)領(lǐng)域的多個方面都有廣泛應(yīng)用,作為一個通用平臺,AutoCAD平臺為滿足各類工程差異化需求,提供快捷方便的字體和符號定義工具即自定義形文件。這種自定義形文件靈活多樣,但也為數(shù)據(jù)交換及入庫帶來不少麻煩。為了在數(shù)據(jù)交換和入庫時保證數(shù)據(jù)信息的完整性,就必須解決形文件轉(zhuǎn)換及入庫問題。

      2 問題分析

      形文件主要為滿足不同行業(yè)的個性化需求,提供各類符號(包括字體,下文不再注明)的自定義功能。自定義形文件編譯前默認(rèn)為SHP格式,以文本格式打開,如圖1所示。

      圖1 形文件內(nèi)容

      SHP文件編譯后,即為SHX格式,如圖2所示。默認(rèn)存放在??\\Fonts目錄下。為了正確顯示包含自定義形文件的圖形文件,就必須指定對應(yīng)形文件的存放路徑。

      圖2 形文件示例

      形文件中的符號在GIS或其他CAD平臺轉(zhuǎn)入時,默認(rèn)為文本對象,如圖3所示,形文件無法被其他平臺正確識別。

      圖3 形文件無法被其他平臺正確識別

      常見處理方法是將數(shù)據(jù)轉(zhuǎn)換后形文件中對應(yīng)的符號轉(zhuǎn)換為對應(yīng)平臺的符號即可。轉(zhuǎn)換程序通過對照表,以對應(yīng)的符號代替自定義形文件中的符號,即可實現(xiàn)自動化數(shù)據(jù)轉(zhuǎn)換了。

      上文的方法雖然理論上可以解決問題,但GIS平臺或其他CAD平臺并未專門的轉(zhuǎn)換接口。因此,若采用以上方法,其轉(zhuǎn)換難度及工作量依然巨大。

      3 處理方法

      雖然各個單位自定義不同的符號庫,但是都必須遵守國家及行業(yè)標(biāo)準(zhǔn),因此如果能直接將自定義形文件直接轉(zhuǎn)換為符號文件,就可以省略必須另作一套符號庫的工作,也為數(shù)據(jù)轉(zhuǎn)換接口的編寫提供不少便捷。

      經(jīng)分析,形文件主要是通過最基礎(chǔ)的元素如線段、弧等,制作成各類復(fù)雜個性化的符號。如植被符號,由4條線段組成,因此只要能獲取形文件中最基礎(chǔ)的構(gòu)成元素,既可以通過底層轉(zhuǎn)換,實現(xiàn)符號的無損轉(zhuǎn)換了。

      經(jīng)試驗分析可知,經(jīng)過上述方法處理后,符號可以正常顯示,但存在符號屬性信息丟失現(xiàn)象。如上文符號,轉(zhuǎn)換后就是一個普通符號,沒有名稱和地物屬性,為了解決以上問題,可間接采用幾何屬性來實現(xiàn)。

      傳統(tǒng)的CAD數(shù)據(jù)主要依靠樣式,顏色等信息來區(qū)分不同對象,隨著技術(shù)進(jìn)步及需求升級,CAD平臺多提供擴(kuò)展屬性接口,通過擴(kuò)展屬性,實現(xiàn)了幾何對象與屬性的一體化。以此,以上文分析入手,擬采用擴(kuò)展屬性結(jié)合對照表模式,實現(xiàn)形文件的無損轉(zhuǎn)換。具體過程如圖4所示。

      圖4 形文件類符號處理流程圖

      轉(zhuǎn)換前,將待轉(zhuǎn)換數(shù)據(jù)賦予地物屬性,主要標(biāo)明地物所有的幾何信息和地物信息,如編碼2111,表示第2圖層,11號顏色,1號線型。此外,2還表示居民地類,11表示普通房屋,1表示線寬。通過此編碼,將對象轉(zhuǎn)移到對應(yīng)的圖層并按照以上說明的屬性編碼規(guī)則存放。之后,將符號轉(zhuǎn)換為簡單符號;最后再通過幾何屬性,恢復(fù)地物屬性信息。

      4 案例分析

      以甲單位數(shù)據(jù)為例,其采用自定義符號類型,在轉(zhuǎn)入乙單位數(shù)據(jù)時,必須將甲單位數(shù)據(jù)轉(zhuǎn)換為乙單位數(shù)據(jù)格式。其中甲單位以AutoCAD為平臺,自定義符號為形文件格式。乙方采用MicroStaion V8 2004平臺,亦采用自定義符號庫,符號類型為SharedCell類型。

      首先分析甲單位的自定義符號,符號樣式與乙單位類似,其符號庫參照國標(biāo)GB/T 7929-1995,因此首先必須完成同比例尺下符號對照表,對照表內(nèi)容示例如圖5所示。

      圖5 符號對照表示例

      其中,GS開頭為甲單位地物編碼,與乙單位地物編碼具有一定的對照規(guī)律。乙單位的地物編碼參照國標(biāo),對應(yīng)關(guān)系為:第一位為大類,如1代表控制點(diǎn)類,對應(yīng)國標(biāo)中的大類為3;中間兩位為子類,代表地物子類,如12代表土堆上的三角點(diǎn),與國標(biāo)一致,最后一位代表類別,如符號則為0,地物線代表線寬。以此4位編碼為名,自定義線性和符號,構(gòu)成了乙單位獨(dú)有的自定義符號庫(包括線型)。

      代碼實現(xiàn)過程如下:首先,通過CAD平臺的VBA接口,將甲單位地物編碼通過擴(kuò)展屬性寫入地物;完成后,在V8平臺通過讀取擴(kuò)展屬性,參照對照表,按照一定的幾何圖層及顏色轉(zhuǎn)換地物;最后通過擴(kuò)展屬性,幾何屬性將地物對應(yīng)的乙單位地物編碼寫入,即完成了幾何圖形及屬性的轉(zhuǎn)換,如圖6所示。

      圖6 甲方圖形轉(zhuǎn)換到乙方數(shù)據(jù)格式簡單流程圖

      具體代碼實現(xiàn)如下:

      (1)寫入甲方地物編碼

      此部分功能在CAD平臺通過VBA完成,代碼實現(xiàn)如下:

      說明:設(shè)置擴(kuò)展屬性時,第一個為擴(kuò)展屬性的名稱,如NNDWGIS。主要用于說明擴(kuò)展屬性的版權(quán)信息,如NNSI、NLIS、SOUTH等,而且此信息的數(shù)據(jù)編碼必須為1001,設(shè)置地物擴(kuò)展屬性的代碼示例如下:

      Private Sub SetXdata(Names As String,Shp As Acad-Shape)

      Dim DataType(0 To 1)As Integer

      Dim Data(0 To 1) As Variant

      If Names<>""Then DataType(0)=1001:Data(0)="NNDWGIS"

      DataType(1)=1000:Data(1)=Names

      '寫入擴(kuò)展屬性

      Shp.SetXdata DataType,Data

      End If

      End Sub

      (2)讀取擴(kuò)展屬性

      讀取擴(kuò)展屬性主要在V8平臺,同樣通過VBA接口。主要完成甲方地物編碼的讀取,再通過地物編碼對照表,完成數(shù)據(jù)轉(zhuǎn)換及乙方地物編碼的寫入,讀取地物擴(kuò)展屬性的代碼示例如下:

      Private Function SetElementCode(Ele As Element)as String

      Dim Names()As String

      Dim XDT()As XDatum

      If Ele.HasAnyXData Then

      Names=Ele.GetXDataApplicationNames

      If UCase(Names(0))="NNDWGIS"Then

      XDT=Ele.GetXData(Names(0))

      '讀取擴(kuò)展屬性

      SetElementCode=XDT(0).Value

      End If

      End If

      End function

      (3)讀取編碼對照表

      讀取編碼對照表主要是為了在獲取甲方地物編碼后,通過地物編碼對照表,獲取乙方對應(yīng)的地物編碼,為數(shù)據(jù)轉(zhuǎn)換及新地物編碼寫入做準(zhǔn)備。讀取地物編碼對照表的代碼示例如下:

      Private Function OpenTxt(CodeFile as String)as String

      Dim fs As FileSystemObject

      Dim a As TextStream

      Set fs=CreateObject("Scripting.FileSystemObject")

      Set a=fs.OpenTextFile(CodeFile,F(xiàn)orReading,TristateFalse)

      OpenTxt=a.ReadAll

      End Function

      (4)數(shù)據(jù)轉(zhuǎn)換

      因為兩平臺的圖層定義、色表、線性庫等皆不相同,轉(zhuǎn)換前必須將轉(zhuǎn)換數(shù)據(jù)的圖層、色表及線性庫按照乙方的要求設(shè)置正確。數(shù)據(jù)轉(zhuǎn)換主要完成地物幾何屬性的轉(zhuǎn)換,如將地物按照新的地物編碼規(guī)則,按照新的圖層,顏色及樣式存放。

      首先,圖層定義對照,對照表如表1所示。

      圖層對照表示例 表1

      圖層的重新對照及定義關(guān)鍵代碼如下(以相應(yīng)圖層轉(zhuǎn)換為例):

      Private Sub SetLevelsName()

      Dim IAs Integer

      For i=1 to application.ActiveDesignFile.Levels.count

      If InStr(application.ActiveDesignFile.Levels(i).Name,"控制")>0 Then

      Set application.ActiveDesignFile.Levels(i).Name"層1"

      application.ActiveDesignFile.Levels.Rewrite

      ElseIf InStr(application.ActiveDesignFile.Levels(i).Name,"建筑")>0 Then

      ……….'其他圖層對照類似,限于篇幅不作詳述

      End If

      End Sub

      完成圖轉(zhuǎn)換后,甲方地物即按照圖層對照表轉(zhuǎn)換為對應(yīng)圖層。

      其次,圖層對照完成后,還必須完成色表對照。色表的對照有兩種方式,一種是將CAD原有顏色轉(zhuǎn)換為RGB值,通過顏色對照表,轉(zhuǎn)換為乙方要求的顏色對應(yīng)的RGB。另一種是通過地物屬性,打開乙方使用的色表,再通過地物編碼重新更新地物顏色及線型樣式。

      本文使用第二種方案,具體打開色表代碼如下:

      Private Sub OPenColorTable()

      Dim modalHandler As New Macro1ModalHandler

      AddModalDialogEventsHandlermodalHandler

      ' 下列語句打開模式對話框"色表"

      CadInputQueue.SendCommand"DIALOG COLOR"

      RemoveModalDialogEventsHandlermodalHandler

      CommandState.StartDefaultCommand

      End Sub

      對應(yīng)類模塊的編碼如下:

      Private Sub IModalDialogEvents_OnDialogOpened

      (ByVal DialogBoxName As String,DialogResult As MsdDialogBoxResult)

      If DialogBoxName="色表"Then

      '下列語句打開模式對話框"打開色表"

      Cad InputQueue.SendCommand"ATTACH COLORTABLE C:\Program Files\Bentley\Workspace\system\data\color.tbl"

      DialogResult=msdDialogBoxResultOK

      End If '色表

      End Sub

      同樣可以通過編碼信息,設(shè)置地物的其他幾何信息,完成數(shù)據(jù)轉(zhuǎn)換。代碼示例如下(以線型設(shè)置為例):

      Private Sub SetStyles(Code As String,ele As Element)

      Dim i As Long

      Dim j As Long

      Dim k As Long

      Dim ColIdx As Long

      Dim CorRGB As String

      Dim LWeight As String

      Dim LStyle As LineStyle

      Dim LStyleName As String

      Dim LevName As String

      ' 編碼匹配

      If Code<>""Then

      For n=6 To 1 Step-1 Code=Left(Code,n)

      i=InStr(1,TxtCont,Code)

      If i>0 Then Exit For

      Next n

      ' 編碼匹配成功

      If i>5 Then

      j=InStr(i-6,TxtCont,",")

      k=InStr(j+1,TxtCont,",")

      ColIdx=Left(Right(TxtCont,Len(TxtCont)-j),4)

      CorRGB=Right(Left(ColIdx,3),2)

      LWeight=Right(ColIdx,1)

      LevName=Left(ColIdx,1)

      ' 設(shè)置對象屬性

      ele.LineWeight=LWeight

      ele.color=CorRGB

      ele.LineStyle=application.ActiveDesignFile.LineStyles(" ColIdx")

      ele.Redraw msdDrawingModeNormal

      ele.Rewrite

      End If

      End Sub

      (5)寫入乙方地物編碼

      完成圖層、顏色及樣式轉(zhuǎn)換后,就可以根據(jù)原有的地物屬性及幾何屬性寫入對應(yīng)的乙方地物編碼了。寫入地物編碼的關(guān)鍵函數(shù)如下:

      Private Sub AddXdata(ele As Element,Ecode As String)

      Dim SubEnu As ElementEnumerator

      If Ecode<>""Then

      Dim Xdata()As XDatum

      AppendXDatum Xdata,sdXDatumTypeControlString,Ecode

      ele.SetXData"NLIS",Xdata

      Application.DeleteXDatum Xdata,0

      ele.Redraw

      ele.Rewrite

      End If

      End Sub

      通過以上5個步驟,即完成了數(shù)據(jù)轉(zhuǎn)換工作。轉(zhuǎn)換前后圖形對比如圖7所示。

      5 結(jié) 論

      本方案通過幾何信息和地物編碼信息實現(xiàn)數(shù)據(jù)的無損轉(zhuǎn)換,與傳統(tǒng)的多元數(shù)據(jù)交換不同點(diǎn)在于通過地物屬性輔助數(shù)據(jù)轉(zhuǎn)換。其特點(diǎn)是轉(zhuǎn)換準(zhǔn)確率高,數(shù)據(jù)轉(zhuǎn)換時屬性沒有丟失,是多元數(shù)據(jù)轉(zhuǎn)換的一種快捷安全高效的轉(zhuǎn)換方法。通過地物編碼及幾何信息,乙方將各類數(shù)據(jù)如不同樣式,不同編碼的數(shù)據(jù)全部統(tǒng)一轉(zhuǎn)換為自己專用數(shù)據(jù)格式并添加了地物及版權(quán)信息,使得數(shù)據(jù)的轉(zhuǎn)換效率、使用范圍及版權(quán)保護(hù)等方面得到很好的提升。

      圖7 轉(zhuǎn)換前后圖形對比

      [1] Autodesk.AutoCAD 2004幫助[Z].Autodesk公司,inc. 2004.

      [2] MicroStation V8 2004幫助[Z].Bentley公司,inc.2004.

      [3] GB/20257.1-2007.國家基本比例尺地形圖圖式第一部分:1∶500 1∶1000 1∶2000地形圖圖式[S].

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

      [5] 胡德承,田鵬波.DGN到DWG地形圖數(shù)據(jù)轉(zhuǎn)換的實現(xiàn)[J].城市勘測;2001(1).

      [6] 劉志輝,肖煒枝,郭朝暉.基于MGE的廣州市1∶500地形圖修測及入庫方法探索[J].城市勘測;2006(5).

      The Research of Custom ized Shape Object in AutoCAD During Data Transform

      Huang Guoqiang1,Wei Jinzhan2,Mo Wentong2
      (1.Nanning Land and Resources Information Center,Nanning 530022,China;2.Nanning Explore&Survey Geoinformation Institue,Nanning 530022,China)

      User-defined Shape Files cannot be properly appeared and recognized during data transform,but these files are always defined by national standard,which are realized by proper usage of Geometry information or extended information.Together with practice,by analyzing the arrangement characters of different information,a new method was put up in this paperwhich helps datamanagers to realize data transformation by element code and geometry information.The best advantage of thismethod is to keep the consistence of former data,which means a new way for spatial dadamanagement.

      shape files;data transformation;feature codes

      1672-8262(2013)04-75-04

      P208.1

      B

      2012—11—08

      黃國強(qiáng)(1966—),男,高級工程師,注冊測繪師,研究方向主要有國土資源管理信息化、地籍測繪、空間數(shù)據(jù)庫管理、數(shù)據(jù)處理等。

      猜你喜歡
      對照表乙方圖層
      2019年成考院校招生簡章審核對照表
      巧用混合圖層 制作抽象動感森林
      ISO?9001:2015與ISO?9001:2008之間的對照表
      中國纖檢(2016年3期)2016-04-07 18:48:48
      圖層法在地理區(qū)域圖讀圖中的應(yīng)用
      淺析“遞層優(yōu)化法”在礦井制圖中的應(yīng)用
      河南科技(2014年6期)2014-04-04 08:00:42
      本刊常用符號對照表
      Photoshop圖層的解讀
      本刊常用符號對照表
      少林秘宗自衛(wèi)術(shù)
      少林與太極(2010年5期)2010-09-12 04:11:52
      少林實用防衛(wèi)制敵術(shù)
      少林與太極(2009年6期)2009-08-21 02:06:24
      泰来县| 岢岚县| 合肥市| 虎林市| 屏边| 崇仁县| 交城县| 无极县| 乐业县| 玉山县| 潮州市| 会昌县| 北京市| 临清市| 湛江市| 乐安县| 腾冲县| 阳城县| 潜江市| 汾阳市| 界首市| 巫溪县| 宁城县| 新平| 长治市| 灌云县| 神木县| 北辰区| 巴林左旗| 芜湖市| 如皋市| 封丘县| 宁海县| 海门市| 阳曲县| 兴隆县| 汝南县| 昌吉市| 仲巴县| 揭阳市| 江孜县|