999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

AutoCAD 中自定義形文件數據轉換方法分析

2013-03-06 02:11:59黃國強魏金占莫文通
城市勘測 2013年4期
關鍵詞:符號

黃國強,魏金占,莫文通

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

AutoCAD 中自定義形文件數據轉換方法分析

黃國強1?,魏金占2,莫文通2

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

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

形文件;數據轉換;地物編碼

1 引 言

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

2 問題分析

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

圖1 形文件內容

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

圖2 形文件示例

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

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

常見處理方法是將數據轉換后形文件中對應的符號轉換為對應平臺的符號即可。轉換程序通過對照表,以對應的符號代替自定義形文件中的符號,即可實現自動化數據轉換了。

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

3 處理方法

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

經分析,形文件主要是通過最基礎的元素如線段、弧等,制作成各類復雜個性化的符號。如植被符號,由4條線段組成,因此只要能獲取形文件中最基礎的構成元素,既可以通過底層轉換,實現符號的無損轉換了。

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

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

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

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

4 案例分析

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

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

圖5 符號對照表示例

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

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

圖6 甲方圖形轉換到乙方數據格式簡單流程圖

具體代碼實現如下:

(1)寫入甲方地物編碼

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

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

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

'寫入擴展屬性

Shp.SetXdata DataType,Data

End If

End Sub

(2)讀取擴展屬性

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

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))

'讀取擴展屬性

SetElementCode=XDT(0).Value

End If

End If

End function

(3)讀取編碼對照表

讀取編碼對照表主要是為了在獲取甲方地物編碼后,通過地物編碼對照表,獲取乙方對應的地物編碼,為數據轉換及新地物編碼寫入做準備。讀取地物編碼對照表的代碼示例如下:

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,ForReading,TristateFalse)

OpenTxt=a.ReadAll

End Function

(4)數據轉換

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

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

圖層對照表示例 表1

圖層的重新對照及定義關鍵代碼如下(以相應圖層轉換為例):

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

完成圖轉換后,甲方地物即按照圖層對照表轉換為對應圖層。

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

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

Private Sub OPenColorTable()

Dim modalHandler As New Macro1ModalHandler

AddModalDialogEventsHandlermodalHandler

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

CadInputQueue.SendCommand"DIALOG COLOR"

RemoveModalDialogEventsHandlermodalHandler

CommandState.StartDefaultCommand

End Sub

對應類模塊的編碼如下:

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

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

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)

' 設置對象屬性

ele.LineWeight=LWeight

ele.color=CorRGB

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

ele.Redraw msdDrawingModeNormal

ele.Rewrite

End If

End Sub

(5)寫入乙方地物編碼

完成圖層、顏色及樣式轉換后,就可以根據原有的地物屬性及幾何屬性寫入對應的乙方地物編碼了。寫入地物編碼的關鍵函數如下:

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個步驟,即完成了數據轉換工作。轉換前后圖形對比如圖7所示。

5 結 論

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

圖7 轉換前后圖形對比

[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二次開發[D].北京:清華大學出版社,2002.

[5] 胡德承,田鵬波.DGN到DWG地形圖數據轉換的實現[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

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

猜你喜歡
符號
幸運符號
符號神通廣大
學符號,比多少
幼兒園(2021年6期)2021-07-28 07:42:14
“+”“-”符號的由來
靈魂的符號
散文詩(2017年17期)2018-01-31 02:34:20
怎樣填運算符號
變符號
倍圖的全符號點控制數
圖的有效符號邊控制數
草繩和奇怪的符號
主站蜘蛛池模板: 精品久久国产综合精麻豆| 亚洲三级网站| 99这里只有精品免费视频| 日本a级免费| 露脸真实国语乱在线观看| 亚洲第一成网站| 久久黄色小视频| 国产AV无码专区亚洲A∨毛片| 国产一级妓女av网站| 五月天婷婷网亚洲综合在线| 亚洲色图综合在线| 久久女人网| 国产成人做受免费视频| 91青青草视频在线观看的| 国产成人无码久久久久毛片| 国产欧美日韩另类| 超碰色了色| 中文字幕天无码久久精品视频免费| 欧美精品二区| 亚洲永久色| 国产一级毛片yw| 青青青伊人色综合久久| 亚洲精选高清无码| 日本欧美视频在线观看| 伊人成人在线视频| 日韩精品资源| 欧洲亚洲一区| 亚洲精品第一页不卡| 亚洲A∨无码精品午夜在线观看| 国产精品女在线观看| 亚洲永久免费网站| 国产特级毛片aaaaaaa高清| 思思热精品在线8| 天天色天天操综合网| 久久这里只有精品免费| 91久久国产成人免费观看| 国产精品一区在线观看你懂的| 亚洲精品桃花岛av在线| 人妻免费无码不卡视频| 亚洲天堂网在线视频| 亚洲AV无码不卡无码| 国产激情在线视频| 国产精品3p视频| 天天摸天天操免费播放小视频| 久久精品亚洲专区| 成人国产精品一级毛片天堂 | 国产激情无码一区二区APP| 国产丝袜无码精品| 久久中文字幕av不卡一区二区| 久无码久无码av无码| 亚洲一区无码在线| 亚洲A∨无码精品午夜在线观看| 特级精品毛片免费观看| 色妞永久免费视频| 国产xx在线观看| 亚洲日韩久久综合中文字幕| 精品撒尿视频一区二区三区| 欧美日韩北条麻妃一区二区| 久久久久夜色精品波多野结衣| 国产视频一区二区在线观看 | 欧美亚洲第一页| 九九免费观看全部免费视频| 超碰aⅴ人人做人人爽欧美| 自慰高潮喷白浆在线观看| 成人福利视频网| 青草视频久久| 极品国产一区二区三区| 色视频久久| 中文字幕久久波多野结衣 | 一区二区三区四区精品视频| 欧美日韩免费在线视频| 亚洲V日韩V无码一区二区 | 波多野结衣一区二区三区四区视频 | 久久黄色小视频| 亚洲自偷自拍另类小说| 欧美国产视频| 日韩高清在线观看不卡一区二区| 久久精品娱乐亚洲领先| 欧美有码在线观看| 成人毛片免费在线观看| 91丨九色丨首页在线播放| 丁香综合在线|