《計(jì)算機(jī)地圖制圖》實(shí)驗(yàn)指導(dǎo)書_第1頁
《計(jì)算機(jī)地圖制圖》實(shí)驗(yàn)指導(dǎo)書_第2頁
《計(jì)算機(jī)地圖制圖》實(shí)驗(yàn)指導(dǎo)書_第3頁
《計(jì)算機(jī)地圖制圖》實(shí)驗(yàn)指導(dǎo)書_第4頁
《計(jì)算機(jī)地圖制圖》實(shí)驗(yàn)指導(dǎo)書_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、計(jì)算機(jī)地圖制圖實(shí)驗(yàn)指導(dǎo)書計(jì)算機(jī)地圖制圖實(shí)驗(yàn)指導(dǎo)書實(shí)驗(yàn)一 柵格圖像的地理配準(zhǔn)2實(shí)驗(yàn)二 AutoLisp語言應(yīng)用6實(shí)驗(yàn)三 符號制作11實(shí)驗(yàn)四 格網(wǎng)DEM的建立26實(shí)驗(yàn)一 柵格圖像的地理配準(zhǔn)一、實(shí)驗(yàn)?zāi)康氖煜AD軟件,掌握CAD軟件的命令使用,理解柵格圖像地理配準(zhǔn)的基本原理,掌握CAD軟件中柵格圖像地理配準(zhǔn)的方法。二、實(shí)驗(yàn)時間及安排1實(shí)驗(yàn)學(xué)時數(shù)6學(xué)時。2實(shí)驗(yàn)地點(diǎn)在機(jī)房,每人一機(jī),實(shí)驗(yàn)軟件AutoCAD 2005,柵格圖像。三、實(shí)驗(yàn)要求1掌握CAD中PLINE、MOVE、LIST、ROTATE、SCALE等命令的使用方法;2掌握CAD中角度、長度等單位的精度設(shè)置方法,掌握CAD中圖像管理的image命

2、令的使用;3掌握CAD中圖像地理配置的方法;4掌握柵格圖像地理配準(zhǔn)的基本原理。四、實(shí)驗(yàn)內(nèi)容1基本原理柵格圖像可以通過掃描儀獲取,它的誤差來源兩個方面:(1)掃描圖件的變形誤差地形圖的材質(zhì)主要是薄膜,但仍有一少部分是紙圖,由于制圖時間較長,有不少圖件不同程度發(fā)生變形,這是誤差的主要來源。(2)掃描儀的誤差 在掃描過程中,由于使用CCD掃描儀,會引入誤差,主要有掃描儀的分辨率誤差、光學(xué)誤差、機(jī)械運(yùn)動和速度不均所造成的直線、線陣方向與掃描方向不垂直引起的誤差等。所有以上這些誤差引起的幾何變形,可看成平移、旋轉(zhuǎn)、縮放、放射,以及各種更高變形的綜合結(jié)果。柵格圖像要使用,就必須對誤差進(jìn)行糾正,在實(shí)際操作中

3、,很難對所有的誤差一一進(jìn)行變形改正,只能綜合考慮它們的影響,綜合校正。若柵格圖像的變形比較均勻,可以簡單的對圖像進(jìn)行平移、旋轉(zhuǎn)、縮放糾正。2CAD中柵格圖像地理配準(zhǔn)的主要步驟(1)使用Image命令將要地理配準(zhǔn)的影像插入到CAD中;圖1 插入柵格圖像(2)運(yùn)行units命令,設(shè)置角度和長度精度,小數(shù)點(diǎn)后4位;圖2 圖形單位設(shè)置(3)在圖像已知坐標(biāo)兩點(diǎn)畫line線; (4)用list命令查看繪制line線的角度和長度,根據(jù)已知坐標(biāo)兩點(diǎn)的真實(shí)坐標(biāo)計(jì)算角度和長度,求出旋轉(zhuǎn)角度和放縮比例;圖3 獲取實(shí)體信息(4)對圖像用move命令選定某已知點(diǎn)作為基點(diǎn),移動圖像到真實(shí)坐標(biāo)處;(5)用rotate命令以

4、已知點(diǎn)為基點(diǎn)根據(jù)(3)計(jì)算的旋轉(zhuǎn)角度進(jìn)行旋轉(zhuǎn);(6)用scale命令以已知點(diǎn)為基點(diǎn)根據(jù)(3)計(jì)算的放縮比例進(jìn)行縮放。五、實(shí)驗(yàn)報(bào)告的要求1. 要寫明自己實(shí)驗(yàn)的過程,以及實(shí)驗(yàn)過程中計(jì)算的具體數(shù)據(jù)2. 填寫誤差統(tǒng)計(jì)表圖像糾正誤差統(tǒng)計(jì)表圖幅名稱圖幅編號控制點(diǎn)理論坐標(biāo)糾正后實(shí)際坐標(biāo)誤差X坐標(biāo)Y坐標(biāo)X坐標(biāo)Y坐標(biāo)XY中誤差誤差原因分析說明:附:實(shí)驗(yàn)二 AutoLisp語言應(yīng)用一、實(shí)驗(yàn)?zāi)康腁utoLISP 綜合了人工智能語言 LISP 的特性和 AutoCAD 強(qiáng)大的圖形編輯功能的特點(diǎn)。通過本次實(shí)驗(yàn),掌握AutoLISP語言的語法規(guī)則和AutoLISP語言的簡單編程規(guī)則,能夠編寫簡單的實(shí)用程序,實(shí)現(xiàn)對文本文件

5、的讀寫操作,提取實(shí)體要素坐標(biāo)信息,對實(shí)體進(jìn)行縮放等功能。二、實(shí)驗(yàn)時間及安排1實(shí)驗(yàn)學(xué)時數(shù)6學(xué)時。2實(shí)驗(yàn)地點(diǎn)在機(jī)房,每人一機(jī),實(shí)驗(yàn)軟件AutoCAD 2005。三、實(shí)驗(yàn)要求1掌握文件打開與關(guān)閉函數(shù),文件的讀行和寫行函數(shù)使用方法;2掌握常用的字符串處理函數(shù)使用方法;3掌握command函數(shù)使用方法;4掌握常用的表處理函數(shù)使用方法。5掌握常用的實(shí)體訪問類函數(shù)使用方法。四、實(shí)驗(yàn)內(nèi)容1讀取文本文件展繪碎部點(diǎn)(defun C:zhsbd( / ) (setq pf (getfiled path File txt 2) (if pf (progn (setq fp (open pf r) (setq reco

6、 (read-line fp) (while reco (setq dh (substr reco 1 2) (setq x (substr reco 6 7) (setq y (substr reco 14 7) (setq z (substr reco 22 6) (setq pt (list (atof x) (atof y) ) ) (command layer m yuan c 67 ) (command circle pt 0.5) (command layer m dh c 90 ) (command text r (polar pt pi 1) 2 0 dh) (setq re

7、co (read-line fp) ) ) ) (princ) (close fp) (command zoom e)圖1 展點(diǎn)數(shù)據(jù)文件圖2 展繪碎部點(diǎn)圖2提取高程點(diǎn)寫入文本文件(defun C:tqgcd( / ) (setq pf (getfiled 保存數(shù)據(jù)文件 txt 4) (if pf (progn (setq fp (open pf w) (setq ss (ssget X (0 . TEXT)(8 . p831) ) (if ss (progn (setq n (sslength ss) i 0) (while ( i n) (setq data (entget (ssname

8、ss i) ; 獲取插入點(diǎn)坐標(biāo)(10 500656.0 4.01739e+006 8.18) (setq data1 (assoc 10 data) ;CAD的X坐標(biāo),字符串形式 (setq x (rtos (cadr data1) 2 4) ;CAD的Y坐標(biāo),字符串形式 (setq y (rtos (caddr data1) 2 4) ;(setq z (rtos (cadddr data1) 2 4) ;獲取高程值的文字注記 (setq str (cdr (assoc 1 data) ) (setq i (+ i 1) (setq str (strcat (itoa i) y x str

9、) ) (write-line str fp) ) ) ) (close fp) (prompt (strcat n共提取 (itoa i) 高程點(diǎn))圖3 離散高程點(diǎn)圖圖4 提取出的離散高程點(diǎn)數(shù)據(jù)文件3提取二維多義線節(jié)點(diǎn)坐標(biāo)(defun C:tqjd( / ) (setq ename (car (entsel n選擇實(shí)體 : ) (setq d nil lb (entget ename) bh (cdr (assoc 70 lb) ;(setq lb (entget ename) (setq b (cdr (assoc 0 lb) (if (= b LWPOLYLINE) (progn (se

10、tq nn (length lb) kk 1) (while (0,表示是實(shí)線段;dash-i0,表示是空白線段;當(dāng)dash-i=0,表示是一個點(diǎn)。2)小路符號的建立如下:* XIAOLUA, 4, -1圖6 小路符號圖7 點(diǎn)劃線符號*DASHDOT, _ . _ . _A, 0.5, -0.25,0, -0.25 (2)復(fù)合線型的開發(fā)復(fù)合線型定義的具體格式如下:*線型名,線型描述Alignment,dash-1,dash-2,嵌入的文本字符串或形定義,dash-n,其中,嵌入文本字符串的定義語法為:“string”, style, R=n,A=n, S=n,X=n, Y=n嵌入形的定義語法為

11、:Shapename, shape_file, R=n, A=n, S=n,X=n, Y=nstring是雙引號中的由一個或多個字符組成的文本字符串,shapename是shape_file文件的形名。Shape_file文件中必須有形,否則AutoCAD不允許用戶用此線型。Style是文本式樣的名字,shape_file為AutoCAD的.SHX形文件。如果當(dāng)前圖形中沒有style,AutoCAD則不允許使用此線型。如果shape_file文件沒有位于庫搜索路徑中,AutoCAD會提示并要求用戶選擇另外一個.SHX文件。在shape_file文件中可包含路徑。其余5個字段R=、 A=、S=、

12、X=和Y=為可選擇的轉(zhuǎn)換分類。每個轉(zhuǎn)換分類后面的n表示所需數(shù)字。R(Rotate)n表示文本或形相對于當(dāng)前線段方向的轉(zhuǎn)角。缺省時為零,表示AutoCAD文本或形的方向與所給線段方向一致。A(Angle)n表示文本或形相對于世界坐標(biāo)系的X軸的絕對的轉(zhuǎn)角。當(dāng)希望文本或形總是以水平形式出現(xiàn)而與線段的方向無關(guān)時,可采用A0。用戶可以指定R和A,但兩者不能同時指定值。如果兩個都沒有指定值,則AutoCAD采用R0。R和A以度為單位。如果希望以弧度或梯度作為單位,那么數(shù)字后面必須加R和G。Sn確定文本或形的比例系數(shù)。Xn和Y=n為可選項(xiàng),它們確定相對于線型分類中的當(dāng)前點(diǎn)的偏移量。缺省時AutoCAD將文本

13、字符串的左下角點(diǎn)或形的插入點(diǎn)放在此當(dāng)前點(diǎn)。兩個偏移量分別沿著當(dāng)前線段方向(對于X)和沿著與當(dāng)前線段方向垂直的方向(對于Y)度量,就像有一個局部坐標(biāo)系,它的X軸從當(dāng)前線段的第一個端點(diǎn)指向第二個端點(diǎn)。因此正的X偏移量會使文本或形朝著當(dāng)前線段的第二個端點(diǎn)的方向移動,正的Y偏移量使文本或形沿著正X方向的90度方向(逆時針)移動。這兩個偏移量將使文本或形的定位更精確。例如:定義柵欄符號圖8 柵欄符號例1:定義形文件aaa.shp,編譯compile。*2,3,21,01C,0*3,7,33,2,1,10,1,000,0同時建立文件zhalan1.lin*zhalan1,-|-|-|-|-|-|-A,4.

14、5,2,c:aaa.SHX,Y=1,4.5,-0.5,3,c:aaa.SHX,X=0.5,-0.5例2:定義形文件bbb.shp,編譯compile.*2,3,21,01C,0*3,9,33,2,2,010,1,10,1,000,0同時建立文件zhalan2.lin*zhalan2,-|-|-|-|-|-|-A,4.5,2,c:bbb.SHX,Y=1,4.5,-0.5,3,c:bbb.SHX,-0.5(3)編程開發(fā)法圖9 柵欄符號(defun C:zl( / p1 p2 p3 p4 s f s0 n i) (setq p1 (getpoint n 請指定點(diǎn)1) (setq p2 (getpoi

15、nt p1 n請指定點(diǎn)2) (setq s (distance p1 p2) f (angle p1 p2) ) (setq n (+ (fix (/ s 10.0) 1) (setq s0 (/ s n) (setq i 0) (while ( i n) (command circle p1 0.5) (command line (polar p1 f 0.5) (polar p1 f (- s0 0.5) ) (setq p3 (polar p1 f (/ s0 2) p4 (polar p3 (+ f 1.57) 1) ) (command line p3 p4 ) (setq p1 (

16、polar p1 f s0) (setq i (1+ i) ) (command circle p1 0.5) (princ) )3面狀符號庫的制作(1) 圖案填充法一個圖案的文件可存放多個圖案的定義。每個圖案有一個標(biāo)題行和若干個定義行。1)標(biāo)題行的格式如下:*pattern-name,description其中,“*”是標(biāo)題行的標(biāo)記,它后面緊跟圖案名,圖案名之后是關(guān)于這個圖案的注釋。2)定義行的格式如下:angle,x-origion,y-origion,delta-x,delta-y,dash-1,dash-2,dash-n圖案的定義行解釋如下:angle:該組平行線與水平方向的夾角。x-

17、origin、y-origin:該組平行線中必有一條經(jīng)過此點(diǎn)。delta-x:相鄰兩平行線沿線本身方向的偏移。delta-y:相鄰兩平行線的距離。,dash-1,dash-2,dash-n:該組平行線的線型。若為實(shí)線,無此部分。(a)六角星圖案定義如下:圖9 六角星符號*STARS,star0, 0, 0, 0, 0.2165, 0.125, -0.12560, 0, 0, 0, 0.2165, 0.125, -0.125120, 0.0625, 0.10825, 0, 0.2165, 0.125, -0.125(b)草地圖案定義如下:圖10 草地符號*H142,Caodi90,0,0,0.0

18、1,0.01,0.0015, -0.018590,0.0008,0,0.01,0.01,0.0015, -0.0185(c)特種房屋圖案定義如下:圖11 特種房屋符號*H251, Tezhong Fangwu45,0,0,0,0.0015135,0,0,0,0.0015(2)INSERT命令 把各種植被符號做成“塊”,然后調(diào)用“INSERT”命令插入相應(yīng)的圖塊。這種作法很簡單,使用小范圍內(nèi)的符號填充,而對于大范圍的填充一則效率太低,二則不能保證符號之間相對位置關(guān)系,填充的圖案不規(guī)范,不美觀。(3)編程自動插入符號;計(jì)算pt點(diǎn)與多邊形內(nèi)各邊的交點(diǎn)排序返回JDB(X1 X2 X3 X4)(defu

19、n pb_jdb( pt dbxpt / pt1 pt2 pt3 pt4 k m ds pt0 x0 x1) (setq pt1 (polar pt 0 1000) pt2 (polar pt pi 1000) k 0) (setq ds (length dbxpt) jdb () ;求交點(diǎn)PT0 (while ( k ds) (setq pt3 (nth k dbxpt) (if (= k (- ds 1) (setq pt4 (nth 0 dbxpt) (setq pt4 (nth (+ k 1) dbxpt) ) (setq pt0 (inters pt1 pt2 pt3 pt4) (i

20、f pt0 (setq jdb (cons (car pt0) jdb) (setq k (1+ k) ) ;交點(diǎn)排序 (setq p0 0) (if jdb (progn (setq ds (length jdb) k 0) (while ( k (- ds 1) (setq x0 (nth k jdb) m (1+ k) (while ( m ds) (setq x1 (nth m jdb) (if ( x0 x1) (progn (setq jdb (subst -1 x1 jdb) (setq jdb (subst x1 x0 jdb) (setq jdb (subst x0 -1 j

21、db) (setq x0 x1) ) (setq m (1+ m) ) (setq k (1+ k) ) ) jdb);判斷PT點(diǎn)在交點(diǎn)表中的位置偶數(shù)在外奇數(shù)在內(nèi)(defun pb_pt(pt jdb / k ds) (setq p0 0) (if jdb (progn (setq k 0 ds (length jdb) (while (and ( k ds) ( (length d) 2)(progn (setq ds (length d) i 1) (setq pt (nth 0 d) x0 (car pt) y0 (cadr pt) xn x0 yn y0) (while ( i ds)

22、 (setq pt (nth i d) x (car pt) y (cadr pt) (if ( x x0) (setq x0 x) (if ( x xn) (setq xn x) (if ( y yn) (setq yn y) (setq i (1+ i) ) (if (= km SD) (setq w (* blc 4) h (* blc 2) (setq w (* blc 20) h (* blc 10) ) (setq y0 (* (fix (1+ (/ y0 h) h) (setq x0 (* (fix (1+ (/ x0 w) w) (setq y y0 x1 (/ w 4) (w

23、hile ( y yn) (setq jdb (pb_jdb (list x0 y) d) (if (= (rem (fix (/ y h) 2) 0)(setq x2 x1) (setq x2 (* x1 -1.0) (setq x (+ x0 x2) (while ( x xn) (if (= (pb_pt (list x y) jdb) 1)(progn(setq pt0 (list x y) pt1 (polar pt0 0.785 (* blc 2) pt2 (polar pt0 3.925 (* blc 2) (if (= km SD) (command point pt0) (c

24、ommand insert km pt0 blc blc 0) ) (setq x (+ x w) ) (setq y (+ y h) ) (entdel ename) ) (princ);捕捉PLINE線生成頂點(diǎn)表D 并且把線所在層設(shè)置為當(dāng)前層(defun db(/ sut lb b pt cm bh pt1 i f1 f2) (if (= kg 0)(setq ename (car (entsel n選擇實(shí)體 : ) (if ename (progn (setq d nil lb (entget ename) bh (cdr (assoc 70 lb) (setq b (cdr (asso

25、c 0 lb) cm (cdr (assoc 8 lb); (command cc) (command layer s cm ) (if (= b POLYLINE) (progn (setq sut (entnext ename) (while (/= (cdr (assoc 0 (entget sut) SEQEND)(setq pt (cdr (assoc 10 (entget sut)(setq d (cons pt d)(setq sut (entnext sut) ) (if (= bh 1) (setq d (cons (last d) d) ) (if (= b LINE) (setq d (cons (cdr (assoc 10 lb) d) d (cons (cdr (assoc 11 lb) d) (if (= b CIRCLE)(progn (setq pt (cdr (assoc 10 lb)r (cdr (assoc 40 lb) (setq i 0) (while (= i 360) (setq pt1 (pol

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論