国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

自動(dòng)形成全站儀文件的多用程序

2014-04-29 00:44:03季軍
科技資訊 2014年27期

季軍

摘 要:該文中提供的Auto LISP程序,能夠自動(dòng)形成Leica TCR1102全站儀和南方NTS-662全站儀控制點(diǎn)成果文件,從而完成了全站儀數(shù)據(jù)文件的建立。

關(guān)鍵詞:控制點(diǎn)拾取 Auto LISP程序 控制點(diǎn)成果文件

中圖分類號(hào):P204 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2014)09(c)-0011-01

隨著電子計(jì)算機(jī)技術(shù)和光電測(cè)距技術(shù)的發(fā)展,測(cè)繪技術(shù)和測(cè)繪設(shè)備也發(fā)生了翻天覆地的變化,每個(gè)測(cè)繪工作者都受益匪淺。單位從1997年開(kāi)始,應(yīng)用Auto CAD繪圖。當(dāng)時(shí)測(cè)圖所用的儀器為T1光學(xué)經(jīng)緯儀,配合上架的DI-1000測(cè)距儀??上攵?dāng)時(shí)只能采用手工記錄觀測(cè)數(shù)據(jù)。2002年以后,單位先后購(gòu)置了Leica TCR1102全站儀和南方NTS-662全站儀各一臺(tái)。在用它們測(cè)圖和放線時(shí),都將用到控制點(diǎn)數(shù)據(jù)文件。剛開(kāi)始時(shí),只要用到以前的控制點(diǎn)數(shù)據(jù)都是在全站儀上直接鍵入,從而形成控制點(diǎn)文件。但對(duì)于大量的控制點(diǎn)成果,靠手工在儀器上鍵入不但工作效率低,而且也容易出錯(cuò)。怎樣才能夠?qū)uto CAD圖中的控制點(diǎn)成果,形成全站儀數(shù)據(jù)文件呢?經(jīng)過(guò)反復(fù)思索,針對(duì)該單位使用的繪圖軟件和儀器設(shè)備的實(shí)際情況,通過(guò)編寫(xiě)Auto LISP程序,解決了已有控制點(diǎn)成果的批量輸入問(wèn)題,而且能夠用于兩種型號(hào)的儀器。

為了編寫(xiě)能夠自動(dòng)形成全站儀數(shù)據(jù)文件的程序,在編寫(xiě)程序之前,我仔細(xì)研究了Leica TCR1102全站儀和南方NTS-662全站儀所需數(shù)據(jù)文件的格式。發(fā)現(xiàn)一個(gè)控制點(diǎn)的數(shù)據(jù)占一行,點(diǎn)名以及坐標(biāo)和高程之間用逗號(hào)分隔,即如下格式:

點(diǎn)名,測(cè)量坐標(biāo)Y,測(cè)量坐標(biāo)X,高程H。

這樣的數(shù)據(jù)格式,能夠被兩種型號(hào)的全站儀所接受。

了解數(shù)據(jù)文件的格式后,開(kāi)始構(gòu)思程序的功能。它要能夠應(yīng)用于本單位的Auto CAD圖,也要能夠應(yīng)用于其他單位的Auto CAD圖。這就要通過(guò)鼠標(biāo)拾取圖中的控制點(diǎn)號(hào)、高程、控制點(diǎn)符號(hào)。應(yīng)用數(shù)據(jù)庫(kù)操作函數(shù),提取控制點(diǎn)號(hào)、坐標(biāo)和高程,按照上面要求的格式寫(xiě)入到指定的數(shù)據(jù)文件中。為了增強(qiáng)程序的通用性,要使用基本的Auto LISP函數(shù)和Auto CAD命令,以保證能在Auto CAD 2000以上版本正確運(yùn)行。

下面就是能夠自動(dòng)形成控制點(diǎn)成果數(shù)據(jù)文件程序的全部代碼:

(defun c:srcz(/b1 b2 b3 c1 c2 c3 bh h h1 w2 x y f2)

(setvar "osmode"(+ 64 32 4)) (alert "控制點(diǎn)文件保存到 d:\\文件夾下。")

(command "layer" "n" "標(biāo)記" "c" 1 "標(biāo)記" "" "layer" "s" "標(biāo)記" "")

(setq w2(getstring "\n 輸入文件名 : "))

(alert "\n 拾取控制點(diǎn)號(hào)和高程后回車 ,然后再拾取控制點(diǎn)標(biāo)志。")

(if (=w2 "")(setq w2"d:\\KONGZHI.TXT" f2(open w2 "w"))

(setq w2(strcat "d:\\" w2 ".txt") f2(open w2 "w"))

(setq bh(ssget) p(getpoint "\n 拾取控制點(diǎn)坐標(biāo)( 圓心 交點(diǎn) 插入點(diǎn)) : "))

(while bh

(if (/= bh nil)

(progn

(setq y(car p) x(cadr p) x(rtos x 2 4) y(rtos y 2 4)

b1(ssname bh 0) b2(entget b1) b3(cdr (assoc 1 b2))

c1(ssname bh 1) c2(entget c1) c3(cdr (assoc 1 c2))

(princ b3 f2)(princ ",," f2)(princ y f2)

(princ "," f2) (princ x f2)(princ "," f2)

(princ c3 f2) (princ "\n" f2)

(setvar "osmode" 0) (command"CIRCLE" p 1)

)(setvar "osmode" (+ 32 4))

(if (/= bh nil) (setq bh(ssget) p(getpoint "\n 拾取控制點(diǎn)坐標(biāo)( 圓心 交點(diǎn) 插入點(diǎn)) : "))

(setq bh nil)

) (close f2)

(command "layer" "s" "0" "") (setvar "osmode" 0) (princ)

熟悉Auto LISP語(yǔ)言的同行都知道,要想運(yùn)行任何Auto LISP程序,都必須在運(yùn)行之前加載。加載的方法有多種,可以根據(jù)個(gè)人的喜好而定。我習(xí)慣于將所有自己開(kāi)發(fā)的程序都放在ACAD.LSP文件里,并將此文件所在的文件夾,設(shè)置在Auto CAD支持文件的搜索路徑里。這樣,每次啟動(dòng)Auto CAD,都能夠自動(dòng)加載此文件,使自己編寫(xiě)的程序隨時(shí)都可以使用。

上面提供的程序加載后,你隨時(shí)可以在命令行鍵入SRCZ就可啟動(dòng)它。程序運(yùn)行后,首先提示輸入文件名,本程序提供了缺省文件名“KONGZHI.TXT”,空回車既可采用此名。然后出現(xiàn)提示框“拾取點(diǎn)號(hào)和高程后回車,然后再拾取控制點(diǎn)坐標(biāo)”,按提示去做就行了。在拾取控制點(diǎn)標(biāo)志以獲取控制點(diǎn)坐標(biāo)時(shí),將提示能夠自動(dòng)拾取控制點(diǎn)標(biāo)志的“圓心、交點(diǎn)、插入點(diǎn)”。這幾種點(diǎn)捕捉方式,基本上涵蓋了控制點(diǎn)標(biāo)志標(biāo)示點(diǎn)位的方式,這使得該程序能夠應(yīng)用于各單位的Auto CAD圖。此程序能夠自動(dòng)建立“標(biāo)記”層,在所拾取的控制點(diǎn)位處畫(huà)上一直徑為2的紅圓,并放在此層。用以檢查所拾取的控制點(diǎn)位是否正確,還可避免重復(fù)拾取控制點(diǎn)。所需的控制點(diǎn)都拾取完畢后,以連續(xù)兩次的空回車,即可結(jié)束程序的運(yùn)行。退出程序后,您所需要的控制點(diǎn)數(shù)據(jù)文件,已自動(dòng)保存到了D盤(pán)上。

下面是程序運(yùn)行后得到的控制點(diǎn)數(shù)據(jù)文件,為節(jié)省篇幅只列出了一小部分。

II01,,475678.908,4389450.387,23.234

II02,,475586.983,4389598.346.24.087

II03,,475705.673.4389708.567,24.231

上述的控制點(diǎn)數(shù)據(jù)文件,要在全站以上使用,還要根據(jù)不同的全站儀,做出不同的操作。對(duì)于南方NTS-662全站儀來(lái)說(shuō),只要將上面的數(shù)據(jù)直接粘貼到南方的傳輸軟件里,直接上傳到全站儀里即可。對(duì)Leica TCR1102全站儀來(lái)說(shuō)要復(fù)雜一些,下面簡(jiǎn)要說(shuō)明一下:

運(yùn)行Leica的“坐標(biāo)編輯器”,打開(kāi)您剛剛形成的控制點(diǎn)數(shù)據(jù)文件→選“自由各式” →下一步→分隔符選“逗號(hào)”→下一步→ 右健在“0”列上選“點(diǎn)號(hào)”→右健在“2”列上選 “坐標(biāo)Y”→右健在“3”列上選“坐標(biāo)X”→右健在“4”列上選“坐標(biāo)H”→下一步→完成→文件→另存為→選路徑,輸文件名,保存文件的格式選“GSI-16文件(*.GSI)”→關(guān)閉坐標(biāo)編輯器,啟動(dòng)Leica的“數(shù)據(jù)交換管理器”,將剛剛形成的GSI格式文件傳至全站儀。

以上所介紹的就是我怎樣利用Auto LISP程序建立數(shù)據(jù)文件的方法,愿意與大家分享。我更希望的是,能夠得到同行們的先進(jìn)方法,以提高我們的工作效率。

參考文獻(xiàn)

[1] 章憶文.AutoLISP程序員參考手冊(cè)[M].北京:海洋出版社,1991,5.

[2] 王愛(ài)民,于冬梅,史國(guó)生,等.編著.中文版AutoCAD.2002高級(jí)應(yīng)用技巧[M].北京:清華大學(xué)出版社,2001,9.

行唐县| 东光县| 郧西县| 资源县| 温泉县| 延寿县| 会同县| 墨脱县| 荣昌县| 吴江市| 天祝| 云霄县| 巩留县| 探索| 汨罗市| 荔浦县| 贡嘎县| 陇西县| 葫芦岛市| 英吉沙县| 东至县| 淮南市| 翼城县| 彰化市| 沙雅县| 印江| 岗巴县| 皮山县| 沽源县| 海南省| 海安县| 石棉县| 诏安县| 清镇市| 扎兰屯市| 弥渡县| 安溪县| 鄯善县| 普兰店市| 临湘市| 晴隆县|