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

Visual LISP語言開發與大比例尺地形圖符號庫設計

2019-05-17 02:24:34封華梅
陜西煤炭 2019年3期
關鍵詞:符號

封華梅

(陜西省一八五煤田地質有限公司,陜西 榆林 719000)

0 引言

無論是編制各種應用圖件還是建立信息系統,都離不開自動化成圖。而要實現自動化成圖,又離不開圖形語言—符號。因此,對大比例尺地形圖符號庫的建立進行研究具有非常重要的現實意義和應用價值[1]。

在AutoCAD下建立圖式符號庫,選擇對AutoCAD2006平臺實現的二次開發,它提供了眾多的二次開發環境:包括R12及以前版本提供的Auto LISP、ADS(Advanced Development System),以及R13、R14新增加的ADSRX、ObjectARX、還有Visual LISP等使用CAD二次開發Lisp技術[2],文中使用Visual LISP語言進行編譯,并介紹了基于AutoCAD環境下,大比例尺地形圖符號庫的建立方法及應用。

1 符號庫簡介

符號是一種物質的對象、屬性或過程,用它來表示抽象的概念。這種表示是以約定的關系為基礎的。地圖符號是表達地圖內容的基本手段,它由形狀不同、大小不一、色彩有別的圖形和文字組成。地圖符號是地圖的語言,是一種圖形語言,與文字相比,最大的特點是形象直觀、一目了然[3]。

地圖符號按所代表的地面物體或現象的分布狀況,可分為點狀符號、線狀符號和面狀符號。點狀符號是用來表示地圖上不依比例尺表示的小面積地物和點狀地物,大致分為一般點狀符號和注記點狀符號。線狀符號用于表示呈線狀分布或帶狀延伸的現象,既能表示一定范圍內地物的形狀、彎曲程度及延伸方向,又能以寬度、色彩等表示地物的數量和質量特征。線狀符號可分為簡單線狀符號和復雜現狀符號。面狀符號是表達空間上具有連續兩維分布的現象的符號。具有定位特征,為依比例符號。面狀符號根據填充方式的不同,又可以分為點填充方式及線填充方式[4]。

2 CAD中符號庫的生成

2.1 點狀符號庫的生成

點狀符號以點定位,在一定比例尺范圍內,圖上的大小是固定的,例如各種控制點符號。它們常常不能用某一固定的數學公式來描述,必須首先建立這些符號特征點信息的符號庫,才能實現計算機的自動繪制[5]。

點狀符號的繪制方法:①對于規則符號,可直接計算符號特征點的坐標;②對于圓,采集圓心坐標和半徑;③對于圓弧,則采集圓心坐標,半徑、起始角和終點角;④對于填充符號,則采集邊界信息,并給出填充信息。

2.2 CAD中線狀符號的生成

基本線型繪制:繪圖參數。定位點個數N和定位點坐標,實步長D1,虛步長D2和點步長D3。當實步長D1=0和虛步長D2=0時,為點線;當只有虛步長D2=0時,為點劃線。當點步長D3=0,為虛線,如圖1所示。

圖1 繪制參數所對應的線型示意圖

平行線的繪制:平行線是由兩條間距相等的直線構成。很多線狀地物都是由平行線作為基本邊界,然后再加繪一定的內容而成,平行線是繪制很多線狀地物的基礎[5]。定位直線(母線)節點個數和定位節點坐標(Xi,Yi)i=1,2,3,…,N,平行線寬度W,平行線的繪制方向,即在定位直線的左方或是右方繪制,如圖2所示。

圖2 平行線繪制示意圖

線狀符號自動繪制:線狀符號除了在每兩個離散點之間有趨勢性的直線、曲線等符號以外,有些線狀符號中間還配置有其他的符號,如陡坎符號,除了定位中心線以外,還配置有短齒線。對于沿中心軸線按一定規律進行配置的線狀符號,可以用比較簡單的數學表達式來描述[6]。繪圖參數S為兩離散點之間的距離,N表示兩離散點間的齒數,D1為相鄰兩齒間的距離,D2為齒長,D3為兩離散點間不足一個齒距的剩余值,DX1,DY1為齒心的相對坐標,DX2,DY2,DX3,DY3為齒端對齒心的相對坐標,繪圖參數示意圖,如圖3所示。計算出齒心和齒端坐標以后,根據不同的線狀符號特點,采用不同的連接方式就可產生陡坎、鐵路、城墻等線狀符號。

圖3 繪圖參數示意圖

2.3 基于Auto CAD的線狀符號制作

線狀符號用于表示呈線狀分布或帶狀延伸的現象。線狀圖形符號既能表示一定范圍內地物的形狀、彎曲程度及延伸方向,又能以寬度、色彩等表示地物的數量或質量特征[7]。

定制線型法:①標題行的格式為*ltype-name[,description][8];②定義行的格式為A,dash-1,dash-2,…,dash-n。其中,“A”表示為兩端對齊方式,dash-1,dash-2,…為短劃線序列的每段長度。當dash-i>0,表示是實線段;dash-i<0,表示是空白線段;當dash-i=0,表示是一個點。

定制復合線型法:①標題行的格式為*線型名[,線型描述];②定義行的格式為Alignment,dash-1,dash-2,…[Shapename,shape_file,R=n,A=n,S=n,X=n,Y=n],dash-n,…其中,shape_file為AutoCAD的.shp形文件。其余5個字段R、A、S、X、Y為可選擇的轉換分類。每個轉換分類后面的n表示所需數字。R表示形相對于當前線段方向的轉角;A表示形相對于世界坐標系的X軸的絕對的轉角;S確定形的比例系數;X、Y表示當前點的偏移量,柵欄如圖4所示。

實例:定義柵欄符號

定義形文件a.shx

*1,3,1

1,01C,0

*2,7,2

3,2,1,10,1,000,0

建立文件zhalan.lin

*zhalan

A,4.5,[1,a.shx,Y=1],4.5,[2,a.shx,X=0.5],-1

圖4 柵欄示意圖

2.4 基于AutoCAD的面狀符號制作

面狀符號的自動繪制:面狀符號一般由邊界輪廓線和填充符號組成,自動繪制步驟為①按計算暈線的方式求出面狀符號的軸線;②計算軸線長度,根據軸線長度和軸線上符號的間隔d,按均勻分布的原則計算注記符號的中心位置坐標;③根據面狀符號代碼,在符號庫中讀取表示該符號的圖形數據,在計算出的符號中心位置上繪制填充符號。

繪圖參數:輪廓邊界點個數N,輪廓邊界點坐標(Xi,Yi),i=1,2,…,N,軸線和X軸的夾角α,軸線間隔D,每條軸線符號間隔d,如圖5所示。

圖5 繪圖參數示意圖

基于AutoCAD面狀符號制作:圖案的文件可存放多個圖案的定義,每個圖案有一個標題行和若干個定義行。①標題行的格式為*pattern-name[,description];②定義行的格式為angle,x-origion,y-origion,delta-x,delta-y,[dash-1,dash-2,…,dash-n][8],其中,angle為平行線與水平方向的夾角;x-origin、y-origin為平行線經過點坐標;delta-x為相鄰兩平行線沿線本身方向的偏移;delta-y為相鄰兩平行線的距;[dash-1,dash-2,…,dash-n]為平行線的線型。

面狀符號的自動填充:這是大比例尺地圖制圖中最能體現計算機制圖效率的工作。填充的符號可以通過形文件或圖塊做好,以填充天然草地符號為例繪制,如圖6所示。①獲得多邊形的外界矩形,其角點坐標為(Xmin,Ymin),(Xmax,Ymax),確定最下方射線的縱坐標值Y0=(Int(Ymin/h)+1)*h,h為符號縱向間隔實地距離;②確定各條射線上最左側填充符號的初始橫坐標值X0=(INT(Xmin/w)+1)*w,w為符號橫向間隔實地距離;③確定填充行第一個填充符號的插入點橫坐標值。根據橫向間隔距離W依次循環進行整行填充;④確定射線與多邊形的交點,判斷填充符號的插入點是否在填充區間內。如果在填充區間,插入填充符號;如果不在填充區間內,則插入點向右移動距離w,并判斷新插入點是否在填充區間內,依次循環直到插入點的橫坐標值大于Xmax,結束該行填充;⑤同理進行縱向填充,直到插入點的縱坐標值大于Ymax,結束所有填充。

實例:定義填充天然草地符號

*H142,Caodi

90,0,0,10,10,2,-18

90,1,0,10,10,2,-18

圖6 天然草地的圖案

3 符號庫的具體實現

通過Visual LISP語言在其文本編譯器下對符號庫進行編輯,從而完成對符號庫的實現。制作成果分別如圖7~9所示。

3.1 點狀符號的實現

(defun dlfh(km cm ys / fa pt)

(command “layer” “m” cm “c” ys “” “”)

(setq pt(getpoint “ 插入基點:”))

(whilept(if(or(=km“WBF”)(=km“BYQ”))

(progn(setqfa(getanglept“ 給出符號方向:”))

(command “insert” km pt blc “”(* fa 57.3)))

(command “insert” km pt blc “” 0))

(setq pt(getpoint “ 下一個插入點(回車結束):”)))

(princ))

圖7 點狀符號制作成果圖

3.2 線狀符號的實現

(defunc:fhh(/ssfhbiiikkkcmmdnnnmmmxblpt)

(alert“符號化之前要對原圖存盤 按[OK]鈕自動進行”)

(command“qsave”)

(setqkg1)

(setqfhb(list“103” “102” “104” “105” “108” “109” “301” “303” “304” “305” “306” “308”“401” “402” “403” “404” “501” “502” “503” “504” “505”“602” “604” “605” “606” “607” “609” “611”“701” “702” “704” “705” “706” “707” “708” “709” “710” “711” “712” “713” “714” “805” “806” “807” “808” “809”))

今年富豪榜上榜新人最大黑馬是拼多多的黃崢。在今年赴美上市的拼多多,目前市值接近200億美元,創始人黃崢憑借手中50.7%的拼多多股權價值112.5億美元的身家,一躍跳至第12位。

(setqiii(getint(strcat“基本圖的比例尺是 1:”(itoa(fix(*blc1000.0)))“ 請選擇符號的比例尺0:結束1:1/5002:1/10003:1/2000”)))

(if(=iii0)(exit))

(setqxblblc)

(if(=iii1)(setqxbl0.5))

(if(=iii2)(setqxbl1.0))

(if(=iii3)(setqxbl2.0))

(if(=iii4)(setqxbl5.0))

(if(/=xblblc)(progn

(ifss(progn(setqename(ssnamess0))

(whileename(setqpt(cdr(assoc10(entgetename))))

(command“scale”ename“”pt(/xblblc))

(setqss(ssdelenamess))

(setqename(ssnamess0)))))

(setqss(ssget“X”(list(cons0 “INSERT”))))

(ifss(progn(setqename(ssnamess0))

(whileename(setqpt(cdr(assoc10(entgetename))))

(command“scale”ename“”pt(/xblblc))

(setqss(ssdelenamess))

(setqename(ssnamess0)))))))

圖8 線狀符號制作成果圖

3.3 面狀符號的實現

(defuntc(km/djdbptx0y0xnynhwxyx1pt0pt1pt2ssi)

(db)

(if(andd(>(lengthd)2))(progn

(setqds(lengthd)i1)

(setqpt(nth0d)x0(carpt)y0(cadrpt)xnx0yny0)

(while(

(setqpt(nthid)x(carpt)y(cadrpt))

(if(

(if(

(if(>xxn)(setqxnx))

(if(>yyn)(setqyny))

(setqi(1+i)))

(if(=km“SD”)

(setqw(*blc4)h(*blc2))

(setqw(*blc20)h(*blc10)))

(setqy0(*(fix(1+(/y0h)))h))

(setqx0(*(fix(1+(/x0w)))w))

(setqyy0x1(/w4))

(while(

(if(=(rem(fix(/yh))2)0)(setqx2x1)(setqx2(*x1 -1.0)))

(setqx(+x0x2))

(while(

(if(=(pb_pt(listxy)jdb)1)(progn(setqpt0(listxy)

pt1(polarpt0 0.785(*blc2))

pt2(polarpt0 3.925(*blc2)))

(if(=km“SD”)

(command“point”pt0)

(command“insert”kmpt0blcblc0))))

(setqx(+xw)))

(setqy(+yh)))

(entdelename)))

(princ))

圖9 面狀符號制作成果圖

4 結語

在AutoCAD二次開發平臺,運用VisualLISP語言,建立大比例尺地形圖符號庫,實現了適合大比例尺地形圖需求的常用點狀、線狀及面狀地物符號,并對這些地物符號進行有效管理。經生產實踐檢驗,具有較強的實用性和便捷性,克服了傳統地形圖繪制的缺陷,大大提高了地形圖繪制的速率和質量,創造了良好的經濟效益,同時也便于地物符號的更新維護,有助于更加形象地描繪地形地貌。

猜你喜歡
符號
幸運符號
符號神通廣大
學符號,比多少
幼兒園(2021年6期)2021-07-28 07:42:14
“+”“-”符號的由來
靈魂的符號
散文詩(2017年17期)2018-01-31 02:34:20
怎樣填運算符號
變符號
倍圖的全符號點控制數
圖的有效符號邊控制數
草繩和奇怪的符號
主站蜘蛛池模板: a级毛片在线免费| 国产在线啪| 久久综合丝袜长腿丝袜| 2021国产乱人伦在线播放 | 在线日韩日本国产亚洲| 福利视频久久| 啪啪国产视频| 91国内在线观看| yy6080理论大片一级久久| 亚洲—日韩aV在线| 国产靠逼视频| 欧美日韩国产在线人| 在线国产你懂的| 亚洲啪啪网| 欧美一区二区啪啪| 九色在线观看视频| 91精品国产综合久久不国产大片| 强乱中文字幕在线播放不卡| 国产大全韩国亚洲一区二区三区| 亚洲精品图区| 久久这里只有精品8| 亚洲码在线中文在线观看| 四虎永久在线| 91九色国产porny| 欧美国产在线看| 国模沟沟一区二区三区| 国产成人禁片在线观看| 毛片在线播放网址| 亚洲成a人片77777在线播放| 亚洲av无码人妻| 国产97视频在线| 大学生久久香蕉国产线观看| 亚洲色欲色欲www网| 亚洲国产成熟视频在线多多| 亚洲成a人片| 国产最新无码专区在线| 91成人在线观看| 在线免费观看AV| 91精品国产情侣高潮露脸| 午夜三级在线| 日本免费a视频| 亚洲综合久久成人AV| 狠狠亚洲五月天| 国产亚洲精久久久久久久91| 性色在线视频精品| 国产精品久久久久久久久kt| 99成人在线观看| 97精品久久久大香线焦| 91九色最新地址| 国产精品xxx| 婷婷激情亚洲| 亚洲丝袜第一页| 国产免费一级精品视频| 99精品一区二区免费视频| 日韩二区三区| 青青操视频免费观看| 久久精品娱乐亚洲领先| 91丨九色丨首页在线播放| 国产亚洲精品精品精品| 亚洲va欧美va国产综合下载| 一边摸一边做爽的视频17国产| 国产精品无码作爱| 中文字幕有乳无码| 欧美成人怡春院在线激情| 成AV人片一区二区三区久久| 亚洲天堂区| 亚洲h视频在线| 国产午夜无码专区喷水| 亚洲欧洲自拍拍偷午夜色无码| 日韩精品一区二区三区中文无码| 亚洲三级视频在线观看| 老汉色老汉首页a亚洲| 99热这里只有精品免费国产| 久综合日韩| 日韩欧美中文| 色婷婷国产精品视频| 在线观看国产网址你懂的| 精品亚洲国产成人AV| 草草影院国产第一页| 香蕉伊思人视频| 国产一区二区色淫影院| 久久国产精品嫖妓|