亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        AUTOLISP實現(xiàn)SCS編碼與南方CASS編碼的轉(zhuǎn)換

        2016-08-22 10:21:58陳培龍
        地球 2016年4期
        關(guān)鍵詞:編碼方式輪廓線層數(shù)

        ■陳培龍

        (漳州市測繪設(shè)計研究院福建漳州363000)

        AUTOLISP實現(xiàn)SCS編碼與南方CASS編碼的轉(zhuǎn)換

        ■陳培龍

        (漳州市測繪設(shè)計研究院福建漳州363000)

        地形圖的編碼在各種軟件中存在的方式各不一樣,由于地形圖成圖軟件的更換,地形圖編碼也需要進行轉(zhuǎn)換。本文主要論述利用Autolisp語言進行二次開發(fā),實現(xiàn)SCS地形圖編碼轉(zhuǎn)換到南方CASS地形圖編碼的一種方法。

        SCS編碼 CASS編碼 編碼轉(zhuǎn)換

        1 引言

        近年來隨著計算機技術(shù)的進步,測繪行業(yè)的計算機參與也在發(fā)生著日新月異的變化,特別是隨著Autocad軟件的更新,各種成圖軟件的發(fā)展變得更加快速。筆者所在單位一直在使用廣州SCS成圖軟件,但隨著SCS軟件停止更新以及南方CASS的普及和發(fā)展,在去年筆者的單位也對成圖軟件進行了全面的更新。由于兩種軟件的編碼方式存在較大的差異,地形圖地物編碼在軟件中存在的方式和編碼采用的規(guī)范,都存在較大的區(qū)別,造成大量已有圖形需要由SCS編碼格式轉(zhuǎn)換為南方CASS格式。限于文章篇幅,本文主要講述如何使用Autolisp程序語言,實現(xiàn)SCS圖形中的建筑物批量轉(zhuǎn)換成南方CASS編碼。

        2 SCS編碼與CASS編碼的區(qū)別

        SCS中建筑物的編碼存儲于建筑輪廓線的厚度值屬性中,建筑物的層數(shù)僅依靠對應(yīng)的文字來體現(xiàn),在編碼中無法直接識別。通過查詢建筑物輪廓線的圖元組碼可以發(fā)現(xiàn)其厚度值存儲于39組碼中,譬如磚的編碼為2110300,則其對應(yīng)的建筑物輪廓線的組碼可以查詢到(39.2110300)的屬性(如圖1)。南方CASS的編碼方式與SCS有較大的區(qū)別,在南方CASS中建筑物的編碼也是存儲建筑物輪廓線中,但區(qū)別于SCS的是南方CASS編碼不是存儲于厚度值中,而是存儲于一個名為SOUTH的擴展屬性組中。該屬性組不僅保存了建筑物的編碼,而且存儲了該建筑物的層數(shù)(地上建筑層數(shù)為正值,地下為負值)。譬如砼的編碼為141111,層數(shù)為1,則其對應(yīng)的建筑物輪廓線的Cad組碼可以查詢到(~3(SOUTH(1000.141111) (1040.1.0))))(如圖2)。兩種編碼方式存在較大的不同,SCS直接存儲于厚度值中,能夠非常方便的進行修改,但是也比較容易出錯;比如在縮放圖形的過程中,編碼值也會隨之變換;CASS的編碼方式只能通過特定的程序進行讀取和修改,易用性較差,但是不會引起誤操作,安全性高很多,而且在編碼中直接存了建筑物層數(shù),在后期如果需要對地形圖的建筑物面積進行計算時,能夠非常方便的使用。

        由于成圖平臺的更換,大量的地形圖需要由SCS編碼轉(zhuǎn)換為南方CASS編碼,對于明確對應(yīng)的編碼只需根據(jù)編碼值批量轉(zhuǎn)換即可,但是建筑物中,由于SCS的編碼中沒有表示建筑物的層數(shù),所以無法直接轉(zhuǎn)換為對應(yīng)的南方CASS編碼,人工操作只能一個一個進行,過程繁瑣而且耗費大量的人力,出錯率很高。故筆者使用LISP語言編寫了一個程序,能夠直接根據(jù)建筑物輪廓線識別其對應(yīng)的文字注記從而分辨出該建筑物層數(shù),并直接根據(jù)南方CASS編碼的結(jié)構(gòu)模式,寫入對應(yīng)的南方CASS編碼,從而實現(xiàn)兩種編碼的轉(zhuǎn)換。

        圖1 SCS編碼的CAD組碼

        圖2 CASS編碼的CAD組碼

        3 基本流程

        在圖形轉(zhuǎn)換前,先將需要轉(zhuǎn)換的建筑物注記文字圖層修改為建筑物標注圖層,選取JMD圖層中所有閉合的建筑物輪廓線,然后一一讀取多段線的端點坐標,組成一個列表,再根據(jù)這個表使用SSGET函數(shù)分別選取多段線內(nèi)的注記文字,然后根據(jù)文字中的內(nèi)容識別出該建筑物的層數(shù)。然后構(gòu)建類似于(~3(SOUTH(1000.141121) (1040.2.0))))格式的編碼值,將其存入該建筑物輪廓線中,實現(xiàn)編碼的轉(zhuǎn)換。

        4 開發(fā)思路及程序?qū)崿F(xiàn)

        4.1批量歸層建筑文字

        由于時間跨度較多,地形圖上的很多數(shù)據(jù)并不是非常的規(guī)范,建筑物文字注記的圖層也比較多而且比較亂。由于識別建筑物層數(shù)主要的依據(jù)就是建筑的文字注記,因此為確保建筑物輪廓線與其文字注記的一一對應(yīng)關(guān)系,首先需要把建筑物注記文字都歸類到相同的圖層中,命名該圖層為建筑物標注圖層。在編碼轉(zhuǎn)換的過程中,只需搜索圖面上文字基點在建筑物輪廓線內(nèi)并且在建筑物標注圖層內(nèi)的文字進行分析即可,大大提高程序的準確性和執(zhí)行速度。為了快速的實現(xiàn)文字的圖層歸類,筆者提供了jjgc命令,程序首先讀取一個預(yù)先編輯好的對照文件,程序自動搜索文本中定義的文字,并將其歸類入文本的設(shè)定好的圖層中。

        4.2自動生成南方CASS編碼

        程序運行前,先根據(jù)南方CASS編碼規(guī)則,創(chuàng)建一個列表如下:

        (("砼"141111)("磚"141121)("鐵"141131)("鋼"141141)(" 木"141151)("混"141161)("簡 "141200)("建"141300)("破" 141400)))

        表中存儲了各種建筑物材質(zhì)及對應(yīng)的南方CASS編碼。執(zhí)行時,根據(jù)建筑物輪廓線一一搜索在線內(nèi)且圖層為建筑物標注圖層的文字,將這些文字圖元放入一個選擇集中。當選擇集的數(shù)目為0或者大于1時,將該輪廓線放入無法識別的建筑物輪廓線圖層中;如果選擇集的數(shù)目為1,程序就將其作為該輪廓線的文字標注進行編碼匹配。匹配時首先使用Substr函數(shù),截取注記的第一個文字,并在列表中搜索相應(yīng)的編碼,根據(jù)返回的值,構(gòu)建一個類似于(~3 (SOUTH(1000.141121)(1040.2.0))))格式的列表,使用Append函數(shù)將該屬性加入到建筑物輪廓線中,最后將該文字放入JMD圖層并將其與建筑物輪廓線使用Group命令編組,即可實現(xiàn)編碼的自動轉(zhuǎn)換。

        主要代碼如下:

        (defun c:crsx(/wlist listcz ss i en)

        (if(not(tblsearch"layer""識別后的房屋注記"))(command"lay~er""n""識別后的房屋注記"""));如果不存在圖層則新建識別后的房屋注記圖層

        (if(not(tblsearch"layer""無法識別"))(command"layer""n""無法識別"""));如果不存在圖層則新建無法識別圖層

        (setq oldpk(getvar"PICKSTYLE")(setvar"PICKSTYLE"0) (vl~load~com)

        (regapp"SOUTH")(setq wlist'())

        (setq listcz'(("砼"141111)("磚"141121)("鐵"141131)("鋼" 141141)("木"141151)("混"141161)("簡"141200)("建"141300)(" 破"141400)));創(chuàng)建建筑物注記文字及南方CASS編碼對照列表

        (setq ss(ssget"x"'((~4.""))));選取閉合的建筑物輪廓線

        (if ss(prong(setq i 0)

        (repeat(sslength ss);對每個建筑物輪廓線一一處理

        (setq en(Vlax~Ename~>Vla~Object(ssname ss i)))

        (setq listzb(Vlax~Get en'Coordinates))(setq j 0)(setq listzbx'())

        (while(

        (setq listzbx(append listzbx(list(list(nth j listzb)(nth(+j 1)listzb))) ))

        (if(="AcDb2dPolyline"(Vlax~Get en'ObjectName))(setq j(1+j)));構(gòu)建坐標表

        (setq j(+j 2)))

        (setq ss1(ssget"cp"listzbx'((0."TEXT")(8."建筑物標注圖層") )));選擇輪廓線內(nèi)的文字

        (setq ss2(ssadd))

        (if ss1(fenxiwenzi)(command"change"ss"p""la""無法識別" ""));如果建筑物輪廓線內(nèi)有建筑物標注文字則進行識別,否則將建筑物輪廓線放入無法識別圖層

        (setq i(1+i)))))(setvar"PICKSTYLE"oldpk)

        (defun fenxiwenzi();開始建筑物材質(zhì)、層數(shù)識別

        (setq cengshu"1")

        (setq nr(cdr(assoc 1(entget(ssname ss1 0)))))

        (if(=(strlen nr)2)(setq caizhi(substr nr 1 2)));識別材質(zhì)

        (if(=(strlen nr)3)(progn(setq caizhi(substr nr 1 2))(setq cengshu (substr nr 3 1))));識別層數(shù)

        (if(>(strlen nr)3)(progn(setq caizhi(substr nr 1 2))

        (if(and(>(ascii(substr nr 4 1))47)(<(ascii(substr nr 4 1))59))

        (setq cengshu(substr nr 3 2))

        (setq cengshu(substr nr 3 1)))))

        (if(assoc caizhi listcz)(progn

        (setq listkzsx(list~3(list"SOUTH"(cons 1000(itoa(nth 0(cdr (assoc caizhi listcz)))))(cons 1040(atof cengshu)))));根據(jù)材質(zhì)從列表中找到對應(yīng)的南方CASS編碼

        (setq endata(entget(ssname ss i)))

        (setq ss2(ssadd(ssname ss i)ss2))

        (setq endata(append endata(list listkzsx)))

        (entmod endata);將建筑輪廓線加入南方CASS編碼

        (if(/=cengshu"1")(progn

        (command"layer""s""識別后的房屋注記""");將識別的文字注記修改圖層

        (setq enwz(ssname ss1 0))

        (setq endatawz(entget enwz))

        (setq ptwz(polar(polar(cdr(assoc 10 endatawz))0 0.7232)(/pi 2) 0.25))

        (setq oldys(getvar"textstyle"))

        (setvar"textstyle""細等線體")

        (command"text""j""mr"ptwz"0.5"""caizhi);生成南方格式的文字注記

        (wenzisx(entlast))(setq ss2(ssadd(entlast)ss2))(setvar"textstyle" oldys)

        (setq oldys(getvar"textstyle"))(setvar"textstyle""正等線體")

        (command"text""j""ml"(polar ptwz 0 0.25)"0.4"""cengshu) (wenzisx(entlast))

        (setq ss2(ssadd(entlast)ss2))(setvar"textstyle"oldys))

        (prong(command"layer""s""識別后的房屋注記""")

        (setq enwz(ssname ss1 0))(setq endatawz(entget enwz))

        (setq ptwz(polar(polar(cdr(assoc 10 endatawz))0 0.7232)(/pi 2) 0.25))

        (setq oldys(getvar"textstyle"))(setvar"textstyle""細等線體")

        (command"text""j""mr"ptwz"0.5"""caizhi)(wenzisx(entlast))

        (setq ss2(ssadd(entlast)ss2))(setvar"textstyle"oldys)))

        (command"group""c""*"""ss2"");將文字注記及輪廓線編組

        (command"erase"(ssname ss1 0)""))))

        (defun wenzisx(enwzsx)(setq endatawzsx(entget enwzsx))

        (setq listwzsx(list~3(list"SOUTH"(cons 1000"141111~1"))));將建筑文字注記加入南方CASS編碼

        (setq endatawzsx(append endatawzsx(list listwzsx)))(entmod endatawzsx))

        5 結(jié)語

        通過筆者的方法,能夠?qū)崿F(xiàn)地形圖SCS編碼與南方CASS編碼的快速轉(zhuǎn)換。由于兩種編碼方式的不同,在地形圖轉(zhuǎn)換時會產(chǎn)生大量的需要人工干預(yù)的工作。通過本文描述的辦法,能夠快速、準確的將地形圖的建筑編碼轉(zhuǎn)換為南方CASS編碼,轉(zhuǎn)換的速度快、準確率高,大大提高了工作效率,節(jié)省了人力物力。

        [1]AutoCAD 2004幫助:開發(fā)者文檔 [R].

        [2]任航科.LISP語言在測繪作業(yè)中的應(yīng)用 [J].城市勘測,2011(1):110~112.

        [3]朱虹.淺談Autocad與一些常用軟件的結(jié)合運用 [J].科技轉(zhuǎn)讓集錦,2010(2).

        P694[文獻碼]B

        1000~405X(2016)~4~476~2

        猜你喜歡
        編碼方式輪廓線層數(shù)
        填筑層數(shù)對土石壩應(yīng)力變形的影響研究
        上海發(fā)布藥品包裝物減量指南
        康復(fù)(2022年31期)2022-03-23 20:39:56
        基于HTML5的凸輪廓線圖解法App教學(xué)軟件研究
        MoS2薄膜電子性質(zhì)隨層數(shù)變化的理論研究
        電子制作(2019年11期)2019-07-04 00:34:50
        GCOA算法
        價值工程(2017年22期)2017-07-15 04:21:23
        可穿戴式多通道傳感系統(tǒng)功能需求分析及設(shè)計
        節(jié)日帽
        混合編碼方式自適應(yīng)差分進化算法優(yōu)化設(shè)計寬帶天線
        住在哪一層
        多輪廓線的三維形體重構(gòu)技術(shù)研究與實現(xiàn)*
        国产一区二区在线免费视频观看 | 亚洲男人av香蕉爽爽爽爽| 骚片av蜜桃精品一区| 亚洲中文字幕免费精品| 日本xxxx色视频在线观看免费| 日夜啪啪一区二区三区| 亚洲区小说区图片区| 中文乱码字幕在线中文乱码| 精品高清免费国产在线| 啦啦啦www在线观看免费视频| 玩弄放荡人妻一区二区三区| 久久久婷婷综合五月天| 三上悠亚亚洲精品一区| 又粗又硬又大又爽免费视频播放 | 国产av一区麻豆精品久久| 寂寞人妻渴望被中出中文字幕| 亚洲国产另类精品| 亚洲精品综合第一国产综合| 成年人视频在线播放麻豆| 久久青青草原国产毛片| 国产乱妇乱子在线播视频播放网站| 亚洲AV综合A∨一区二区| 精品午夜中文字幕熟女| 亚洲一区二区三区内裤视| 欧美大肥婆大肥bbbbb| 综合激情网站| 午夜视频在线观看日本| 亚洲精品无码专区在线在线播放 | 国产女人体一区二区三区| 亚洲女同av在线观看| 国产无遮挡又爽又刺激的视频老师 | 按摩师玩弄少妇到高潮hd| 在线观看视频日本一区二区| 精精国产xxxx视频在线播放| 亚洲一区二区三区av链接| 日本一区二区视频免费在线观看| 美女内射毛片在线看免费人动物| 窝窝影院午夜看片| 国产精品一区二区三密桃| 99久久婷婷国产亚洲终合精品| 性欧美牲交xxxxx视频欧美|