• 
    

    
    

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

      EPS腳本技術(shù)在D LG制圖入庫一體化生產(chǎn)中的應(yīng)用

      2019-03-20 19:56:19王鵬
      工程建設(shè)與設(shè)計(jì) 2019年18期
      關(guān)鍵詞:二次開發(fā)制圖入庫

      王鵬

      (蘭州市勘察測(cè)繪研究院,蘭州730030)

      1 引言

      我國測(cè)繪正朝著信息化測(cè)繪方向發(fā)展,城市測(cè)繪將從以傳統(tǒng)地形圖生產(chǎn)為主轉(zhuǎn)向以地理信息綜合服務(wù)為主。EPS軟件是由清華山維公司開發(fā)的、具有自主知識(shí)產(chǎn)權(quán)的面向測(cè)繪地理信息生產(chǎn)的軟件系統(tǒng)。該軟件從地理信息系統(tǒng)應(yīng)用的角度構(gòu)建數(shù)據(jù)模型,綜合CAD技術(shù)與GIS技術(shù),以數(shù)據(jù)庫為核心,將圖形和屬性關(guān)聯(lián)為一體[1],從根本上實(shí)現(xiàn)了DLG制圖入庫一體化生產(chǎn),做到了GIS應(yīng)用與制圖的便捷統(tǒng)一。同時(shí),EPS平臺(tái)支持基于腳本語言的二次開發(fā),用于用戶定制開發(fā)平臺(tái)不支持的功能以及處理重復(fù)性工作。EPS軟件對(duì)提高DLG制圖入庫的生產(chǎn)效率,保證成果質(zhì)量起到很好的促進(jìn)作用。

      對(duì)各測(cè)繪單位而言,DLG制圖數(shù)據(jù)與入庫數(shù)據(jù)的側(cè)重點(diǎn)不同,制圖數(shù)據(jù)強(qiáng)調(diào)地理要素的符號(hào)化表達(dá),需要根據(jù)規(guī)范正確、合理、清晰易讀地展示地理信息,不關(guān)注屬性信息;而入庫數(shù)據(jù)不僅要求具有一般地形圖的幾何要素內(nèi)容,還要求要素具有豐富的屬性信息以及要素間的拓?fù)潢P(guān)系正確。如何同時(shí)滿足DLG制圖、入庫的要求并正確、快速、自動(dòng)化地提取屬性,是本文進(jìn)行二次開發(fā)的主要出發(fā)點(diǎn)。

      2 EPS腳本語言

      2.1 EPS腳本語言概述

      EPS軟件提供了2種二次開發(fā)技術(shù),分別是基于基礎(chǔ)庫二次開發(fā)和腳本類二次開發(fā),前者主要使用C++作為開發(fā)語言,后者主要以VB Script和Java Script作為開發(fā)語言,但常用VB Script[2]。EPS VB Script語言是EPS為支持?jǐn)?shù)據(jù)處理和功能擴(kuò)展而面向用戶提供的一門腳本語言,其在EPS腳本編輯器中運(yùn)行,為解釋性執(zhí)行[3]。與AutoCAD的ActiveX技術(shù)類似,用戶能夠以VB Script或Java Script語言標(biāo)準(zhǔn)為基礎(chǔ),在EPS平臺(tái)內(nèi)部以編程的方式來訪問EPS提供的對(duì)象和函數(shù)[4],可根據(jù)系統(tǒng)集成的命令語言規(guī)則、函數(shù)等方便地實(shí)現(xiàn)諸如坐標(biāo)轉(zhuǎn)換、數(shù)據(jù)入庫、圖形處理、數(shù)據(jù)檢查等諸多應(yīng)用。

      2.2 EPS腳本語言特點(diǎn)

      EPS沒有多層次的對(duì)象模型體系,這一點(diǎn)與AutoCAD的ActiveX技術(shù)不同,它僅提供了SSProcess這個(gè)系統(tǒng)缺省定義的對(duì)象。SSProcess是與EPS平臺(tái)交互的主要入口對(duì)象,使用系統(tǒng)提供的類方法時(shí)需要加上此類名[5]。利用SSProcess可調(diào)用EPS平臺(tái)暴露給用戶的所有功能函數(shù),包括圖形編輯、數(shù)據(jù)整理、選擇集操作、數(shù)據(jù)檢查、數(shù)據(jù)轉(zhuǎn)換、坐標(biāo)轉(zhuǎn)換等。EPS提供的是面向過程的腳本技術(shù),與AutoCAD的ActiveX開發(fā)技術(shù)相比,其更加簡(jiǎn)潔高效,適用于缺乏面向?qū)ο缶幊讨R(shí)的廣大測(cè)繪工作者,使得他們能將更多的精力集中于業(yè)務(wù)功能實(shí)現(xiàn)上。此外,EPS VB Script提供了外部函數(shù)調(diào)用功能,能夠?qū)崿F(xiàn)函數(shù)級(jí)別的代碼重用,利于構(gòu)建具有良好邏輯層次的應(yīng)用模塊。

      3 D LG制圖入庫一體化生產(chǎn)

      3.1 D LG制圖入庫一體化的關(guān)鍵問題

      DLG制圖入庫一體化生產(chǎn),要解決以下5個(gè)關(guān)鍵問題:(1)其他格式數(shù)據(jù)的無損導(dǎo)入;(2)滿足制圖數(shù)據(jù)符合圖式規(guī)定的同時(shí),也需滿足入庫數(shù)據(jù)符合項(xiàng)目要求;(3)圖形注記與入庫屬性值的聯(lián)動(dòng)生產(chǎn);(4)根據(jù)項(xiàng)目需求建立一套完備的檢查方案;(5)無損導(dǎo)出為項(xiàng)目要求的圖形數(shù)據(jù)和入庫數(shù)據(jù)。借助EPS模板定制和VB Script開發(fā)技術(shù),可較完美地解決上述問題。

      3.2 V B Scri pt在EPS平臺(tái)的應(yīng)用

      EPS軟件平臺(tái)直接編輯的數(shù)據(jù)為其自有格式(*.edb),EPS雖提供了與其他格式數(shù)據(jù)的交互轉(zhuǎn)換功能,但僅是幾何圖形上的簡(jiǎn)單轉(zhuǎn)換,不能實(shí)現(xiàn)要素編碼、擴(kuò)展屬性等的無損輸入和輸出,需借助EPS軟件提供的VB Script技術(shù)配合模板定制來實(shí)現(xiàn)數(shù)據(jù)的無損轉(zhuǎn)換。虞秀花[6]等對(duì)EPS平臺(tái)的模板定制技術(shù)做了較具體的說明,本文不再闡述。

      EPS軟件平臺(tái)提供了包括空間邏輯檢查、規(guī)范編碼檢查、擴(kuò)展屬性檢查等檢查模型,用戶可根據(jù)工程實(shí)際需要定制通用的檢查項(xiàng)。但針對(duì)工程的特殊要求,需通過VB Script腳本編程進(jìn)行數(shù)據(jù)檢查或數(shù)據(jù)修復(fù)。

      DLG制圖入庫一體化生產(chǎn)中,可通過EPS平臺(tái)的符號(hào)化技術(shù)和VB Script開發(fā)實(shí)現(xiàn)圖形注記與屬性值的關(guān)聯(lián),從而避免圖面注記與要素屬性不一致的情況發(fā)生,從而提高作業(yè)效率和數(shù)據(jù)質(zhì)量。

      此外,通過VB Script開發(fā)可實(shí)現(xiàn)自動(dòng)化批量處理,簡(jiǎn)化操作,達(dá)到提高生產(chǎn)效率的目的。

      4 EPS V B Scri pt開發(fā)實(shí)際應(yīng)用

      本文以DWG數(shù)據(jù)導(dǎo)入、GDB數(shù)據(jù)導(dǎo)出、房屋屬性賦值及檢查為例,闡述EPS VB Script開發(fā)的具體實(shí)現(xiàn)。

      4.1 D W G數(shù)據(jù)導(dǎo)入

      程序通過逐行讀取text文檔,該文檔第一列為DWG圖層名,第二列為EPS編碼,分別針對(duì)點(diǎn)、線、面、注記進(jìn)行DWG圖層到EPS編碼/注記分類的轉(zhuǎn)換,從而實(shí)現(xiàn)DWG數(shù)據(jù)的無損導(dǎo)入。程序的主要代碼如下:

      Sub OnClick()

      Dim arrFileLines()

      Dim objFSO

      Dim objFile

      Dim i as integer

      Dim l as integer

      Dim a()as string

      i=0

      SSProcess.PushUndoMark

      清空選擇集

      SSProcess.ClearSelection

      清空選擇條件

      SSProcess.ClearSelectCondition

      設(shè)置選擇條件為只選擇點(diǎn)對(duì)象

      SSProcess.SetSelectCondition"SSObj_Type","=","POINT"

      執(zhí)行選擇過濾

      SSProcess.SelectFilter

      去除點(diǎn)名

      SSProcess.ChangeSelectionObjAttr"SSObj_name",""

      讀取text文檔,文檔第一列為DWG圖層名,第二列為EPS編碼

      Set objFSO=CreateObject("Scripting.FileSystemObject")

      Set objFile=objFSO.OpenTextFile("d:hrb c-bm.txt",1)

      逐行讀取text文檔,分別針對(duì)點(diǎn)、線、面、注記進(jìn)行圖層到編碼/注記分類的轉(zhuǎn)換。

      For l=LBound(arrFileLines)To UBound(arrFileLines)

      SSProcess.ClearSelection

      SSProcess.ClearSelectCondition

      SSProcess.SetSelectCondition "SSObj_Type","==","POINT"

      SSProcess.SetSelectCondition"SSObj_LayerName","==",trim(a(0))

      SSProcess.SelectFilter

      SSProcess.PushUndoMark

      SSProcess.ChangeSelectionObjAttr"SSObj_Code",trim(a(1))

      Next

      ......

      End Sub

      4.2 G D B數(shù)據(jù)導(dǎo)出

      GDB數(shù)據(jù)是目前主流GIS平臺(tái)支持的一種空間地理信息數(shù)據(jù)庫,程序通過設(shè)定數(shù)據(jù)轉(zhuǎn)換參數(shù)并結(jié)合EPS模板實(shí)現(xiàn)GDB數(shù)據(jù)的無損導(dǎo)出。程序執(zhí)行前需首先利用EPS模板技術(shù)定制要素導(dǎo)出的編碼、幾何類型、要素類名稱等信息。程序的主要代碼如下:

      Sub OnClick()

      Dim fso,f1,f2,s

      Set fso=CreateObject("Scripting.FileSystemObject")

      Set f1=fso.GetFile(pathname)

      fileName=Replace(edbFileName,".edb","")&".gdb"

      SSProcess.ClearDataXParameter

      設(shè)置數(shù)據(jù)輸出格式。其中22對(duì)應(yīng)的是ArcGIS Mdb格式。

      SSProcess.SetDataXParameter"DataType","22"

      設(shè)置輸出使用編碼對(duì)照表名稱。

      SSProcess.SetDataXParameter "FeatureCodeTBName","FeatureCodeTB_MDB"

      設(shè)置輸出使用符號(hào)描述表名稱。

      SSProcess.SetDataXParameter "SymbolScriptTBName","SymbolScriptTB_MDB"

      設(shè)置輸出使用注記分類表名稱。

      SSProcess.SetDataXParameter "NoteTemplateTBName","NoteTemplateTB_MDB"

      SSProcess.SetDataXParameter"ExportPathName",""

      設(shè)置數(shù)據(jù)輸出范圍方式。0(所有數(shù)據(jù))、1(選擇集數(shù)據(jù))、2(當(dāng)前圖幅)、3(緩沖區(qū))、4(指定編碼閉合地物)、5(指定 ID 閉合地物)、6(所有圖幅)

      SSProcess.SetDataXParameter"DataBoundMode","0"

      設(shè)置符號(hào)打散方式。0(自動(dòng)打散)、1(根據(jù)編碼表設(shè)定打散)、2(全部不打散)

      SSProcess.SetDataXParameter"SymbolExplodeMode","1"設(shè)置數(shù)據(jù)輸出層名使用狀態(tài)。0(按編碼表設(shè)定層名輸出)、1(按地物設(shè)定層名輸出)

      SSProcess.SetDataXParameter"LayerUseStatus","0"

      設(shè)置內(nèi)嵌符號(hào)圖層輸出方式。0(按符號(hào)描述設(shè)定輸出)、1(與主地物同層輸出)

      SSProcess.SetDataXParameter"ExplodeObjLayerStatus","0"設(shè)置線寬使用狀態(tài)。0(按編碼表設(shè)定線寬輸出)、1(按地物設(shè)定線寬輸出)

      SSProcess.SetDataXParameter"LineWidthUseStatus","0"

      設(shè)置輸出數(shù)據(jù)時(shí),是否強(qiáng)制輸出系統(tǒng)字段,0(不輸出)、1(輸出)

      SSProcess.SetDataXParameter"AddSystemFieldMode","0"

      設(shè)置PDB數(shù)據(jù)轉(zhuǎn)換中的注記輸出模式,0(直接轉(zhuǎn)換為ArcGIS 的 Annotation)、1(所有注記轉(zhuǎn)換為線方式)、2(所有注記轉(zhuǎn)換為點(diǎn)方式)、3(注記分別按點(diǎn)和線方式轉(zhuǎn)換)

      SSProcess.SetDataXParameter "EXCHANGE_PDB_Export NoteMode","0"

      設(shè)置輸出PDB數(shù)據(jù)時(shí)Shape輸出方式(腳本未指定Shape字段時(shí)有效),0(2D)、1(3D)

      SSProcess.SetDataXParameter "EXCHANGE_PDB_Export ShapeMode","1"

      startIndex=0

      ......

      End Sub

      4.3 房屋屬性賦值及檢查

      程序用于為房屋賦【層數(shù)】【結(jié)構(gòu)】屬性值且同時(shí)檢查房屋內(nèi)注記是否合理。程序的主要代碼如下:

      Sub OnClick()

      SSProcess.PushUndoMark

      SSProcess.ClearSelection

      SSProcess.ClearSelectCondition

      SSProcess.SetSelectCondition "SSObj_Code", "=", "3103013,3103014,3108003"

      SSProcess.SelectFilter

      geoCount=SSProcess.GetSelGeoCount()

      Dim arID1(100),idCount1

      Dim fwCS(10),idCountCS

      For i=0 To geoCount-1

      polygonID=SSProcess.GetSelGeoValue(i,"SSObj_ID")

      ids = SSProcess.SearchInnerObjIDs (polygonID,3,"3990022",0)

      If ids=""Then

      geoID=SSProcess.GetSelGeoValue(i,"SSObj_ID")

      SSProcess.GetSelGeoPoint i,0,x,y,z,ptype,name

      SSProcess.AddCheckRecord"檢查","房屋面","自定義腳本檢查類->房屋面注記檢查","ID為:"&geoID&"房屋面[層數(shù)]無值",x,y,z,objtype,geoID,""

      ......

      SSProcess.ShowCheckOutput

      End Sub

      5 結(jié)語

      本文基于EPS 2008平臺(tái)的模板定制和VB Script開發(fā)技術(shù)解決了DLG制圖、入庫一體化生產(chǎn)的關(guān)鍵問題,數(shù)據(jù)處理簡(jiǎn)捷高效,自動(dòng)化水平較高,對(duì)提高DLG生產(chǎn)效率并保證成果質(zhì)量具有重要意義。本技術(shù)已成功應(yīng)用于蘭州市數(shù)字線化圖(DLG)的生產(chǎn)和地理信息建庫項(xiàng)目,驗(yàn)證了本文提供方法的有效性。

      猜你喜歡
      二次開發(fā)制圖入庫
      重磅!廣東省“三舊”改造標(biāo)圖入庫標(biāo)準(zhǔn)正式發(fā)布!
      無聲手槍如何消音?
      中國食品品牌庫入庫企業(yè)信息公示①
      中國食品(2021年2期)2021-02-24 03:55:35
      淺談基于Revit平臺(tái)的二次開發(fā)
      甘肅科技(2020年20期)2020-04-13 00:30:02
      淺談Mastercam后處理器的二次開發(fā)
      模具制造(2019年3期)2019-06-06 02:11:02
      西門子Easy Screen對(duì)倒棱機(jī)床界面二次開發(fā)
      二向反射模型在土地覆被制圖中的應(yīng)用
      身臨其境探究竟 主動(dòng)思考完任務(wù)——《倉儲(chǔ)與配送實(shí)務(wù)》入庫作業(yè)之“入庫訂單處理”教學(xué)案例
      人間(2015年8期)2016-01-09 13:12:42
      工程制圖課程教學(xué)改革探析
      批量地籍圖入庫程序設(shè)計(jì)方法
      济阳县| 佛冈县| 衡东县| 吴忠市| 繁峙县| 炎陵县| 曲麻莱县| 保德县| 渭南市| 盐山县| 克什克腾旗| 报价| 北京市| 大石桥市| 江源县| 芜湖县| 夏邑县| 那坡县| 贞丰县| 哈密市| 咸阳市| 镇巴县| 曲水县| 阆中市| 望奎县| 前郭尔| 大埔区| 沭阳县| 探索| 波密县| 嘉义县| 砀山县| 兴隆县| 运城市| 志丹县| 武平县| 陆川县| 晋宁县| 石泉县| 宜都市| 桐柏县|