鄭偉安 孟大鵬 王秀元 崔秀明 凌曉春
摘要: 在大比例尺地形圖編輯中存在大量的依比例斜坡類符號(hào)要素,包括依比例斜坡、干堤、加固岸、路堤、路塹等,該類符號(hào)是一種復(fù)合性符號(hào),由坡頂線和坡面兩部分組成,坡頂線由坡頂母線和長(zhǎng)短齒符號(hào)組成,其中長(zhǎng)齒長(zhǎng)度和坡面寬度一致且垂直于坡頂母線,該符號(hào)表示復(fù)雜,編輯工作較為費(fèi)時(shí)費(fèi)力。利用AutoLISP語(yǔ)言開(kāi)發(fā)斜坡類符號(hào)要素處理程序,實(shí)現(xiàn)符號(hào)長(zhǎng)齒自動(dòng)延伸,可大大提高該類符號(hào)編輯工作效率,提升制圖表達(dá)效果。
關(guān)鍵詞: 斜坡類要素;AutoLISP語(yǔ)言;地形圖
中圖分類號(hào): ?P208 ?????文獻(xiàn)標(biāo)識(shí)碼: ?A ???doi:10.12128/j.issn.1672 ?6979.2023.04.009
引文格式: 鄭偉安,孟大鵬,王秀元,等.一種基于AutoLISP的地形圖斜坡類要素處理程序的設(shè)計(jì)與實(shí)現(xiàn)[J].山東國(guó)土資源,2023,39(4):58 63. ZHENG Wei'an, MENG Dapeng, WANG Xiuyuan, et al. Design and Implementation of a Topographic Slope ?like Element Processing Program Based on AutoLISP[J].Shandong Land and Resources,2023,39(4):58 ?63.
0 引言
LISP語(yǔ)言是一種廣泛應(yīng)用的程序設(shè)計(jì)語(yǔ)言,該語(yǔ)言處理的對(duì)象為符號(hào)表達(dá)式,因此也稱為符號(hào)式語(yǔ)言,LISP語(yǔ)言具有語(yǔ)法簡(jiǎn)單,編寫(xiě)程序便捷、靈活,數(shù)據(jù)類型豐富等特點(diǎn)[1]。AutoLISP是由Autodesk公司開(kāi)發(fā)的一種專門(mén)為AutoCAD二次開(kāi)發(fā)設(shè)計(jì)的LISP編程語(yǔ)言,它即有LISP語(yǔ)言人工智能的特性,又有AutoCAD強(qiáng)大的圖形編輯功能等特點(diǎn),可以把AutoLISP程序和AutoCAD繪圖功能結(jié)合起來(lái)[2],實(shí)現(xiàn)部分制圖功能的自動(dòng)化,可大大提升地形圖編輯工作效率,提升制圖效果。
Geoway3.6軟件是一款優(yōu)秀的地形圖編輯軟件,具有強(qiáng)大的地形圖編輯和優(yōu)秀的符號(hào)設(shè)計(jì)功能[3]。在Geoway3.6軟件下可對(duì)符號(hào)進(jìn)行自主設(shè)計(jì),形成符合要求的符號(hào)系統(tǒng)。在Geoway3.6軟件中斜坡類符號(hào)的實(shí)現(xiàn)有一定優(yōu)勢(shì),但難以實(shí)現(xiàn)斜坡長(zhǎng)齒長(zhǎng)度與斜坡寬度一致,需要將數(shù)據(jù)導(dǎo)出dxf格式,在AutoCAD軟件中進(jìn)一步進(jìn)行處理。本文主要討論了使用AutoLISP語(yǔ)言,在AutoCAD軟件下開(kāi)發(fā)一套地形圖斜坡類要素處理程序,實(shí)現(xiàn)斜坡類要素長(zhǎng)齒符號(hào)的自動(dòng)延伸功能。
1 斜坡類符號(hào)結(jié)構(gòu)及實(shí)現(xiàn)思路
1.1 符號(hào)結(jié)構(gòu)
在大比例尺地形圖編輯工作中,依比例斜坡類要素是一種常見(jiàn)的符號(hào)要素,主要包括依比例尺干堤、加固岸、斜坡、斜坡式路塹等。以1 ?∶ ?2000比例尺未加固斜坡為例,未加固斜坡指各種天然形成或人工修筑但未加固的坡度在70°以下的坡面地段。未加固斜坡在圖上投影寬度小于2mm時(shí),以陡坎符號(hào)表示,斜坡在圖上投影寬度大于2mm時(shí),根據(jù)實(shí)際坡面寬度表示[4]。依比例未加固斜坡符號(hào)是一種復(fù)合符號(hào),由坡頂線和坡面兩部分組成,坡頂線由坡頂母線和長(zhǎng)短齒符號(hào)組成,其中坡頂線是一條有向線,長(zhǎng)短齒符號(hào)在前進(jìn)方向右側(cè),長(zhǎng)齒長(zhǎng)度和坡面寬度一致且垂直于坡頂母線。
未加固斜坡的幾何表示和制圖表達(dá)如圖1[5]。
1.2 符號(hào)實(shí)現(xiàn)思路
依比例斜坡類符號(hào)的表示十分復(fù)雜,編輯實(shí)現(xiàn)費(fèi)時(shí)費(fèi)力,不同的專業(yè)軟件也給出不同的解決方案,但優(yōu)缺點(diǎn)各異。在EPS軟件中,該類要素是一種程序符號(hào),首先采集坡頂邊線,起筆點(diǎn)為坡頂線起點(diǎn),然后逆時(shí)針采集整個(gè)斜坡符號(hào),形成閉合面,然后在坡頂線終點(diǎn)處打“J”,程序自動(dòng)生成坡頂線和坡面符號(hào)[6],該實(shí)現(xiàn)方法符號(hào)的長(zhǎng)短齒方向不規(guī)范難以滿足制圖要求,需要后期進(jìn)行人工調(diào)整,較為費(fèi)時(shí)費(fèi)力。
在Geoway3.6中依比例斜坡類符號(hào)的表示較為簡(jiǎn)單,即只表示坡頂線和斜坡面即可,且斜坡長(zhǎng)短齒符號(hào)的方向符合圖式要求,省去后期人工調(diào)整工作,但該軟件表示的斜坡長(zhǎng)齒長(zhǎng)度是固定的,不能滿足圖式要求,需要將數(shù)據(jù)導(dǎo)出dxf格式,在AutoCAD軟件使用AutoLISP語(yǔ)言開(kāi)發(fā)程序?qū)崿F(xiàn)斜坡長(zhǎng)齒的自動(dòng)延伸處理。未處理的加固斜坡在AutoCAD下的表現(xiàn)形式見(jiàn)圖2。
實(shí)現(xiàn)的具體思路:首先在Geoway3.6下利用其符號(hào)庫(kù)編輯功能對(duì)斜坡類符號(hào)進(jìn)行改造,將符號(hào)長(zhǎng)齒全局寬度設(shè)置為與其他線符號(hào)寬度不同的全局線寬[7]。以1 ?∶ ?2000比例尺地形圖為例,符號(hào)基本線寬為圖上0.15mm,在AutoCAD下全局線寬為圖上基本線寬乘以比例尺分母,再換算成單位“m”,即全局寬度為0.3m,本例設(shè)置成0.24m即可。然后使用AutoLISP程序,創(chuàng)建某一斜坡類符號(hào)范圍線選擇集,選取全部該斜坡類符號(hào)范圍線,再逐一遍歷每一范圍線,根據(jù)范圍線創(chuàng)建選擇集,選取全局線寬為0.24m的斜坡長(zhǎng)齒,再執(zhí)行LISP語(yǔ)言的擴(kuò)展命令“extend”,將斜坡長(zhǎng)齒延伸至坡面底部。
2 AutoCAD圖形信息
AutoCAD的圖形有dwg、dxf等格式,是由多個(gè)圖形對(duì)象組成的,最基本的圖形對(duì)象稱作圖元[8]。圖元間以鏈表的形式存儲(chǔ),圖元的命名是唯一的,用十六進(jìn)制表示[2]。
AutoCAD圖形的信息分類標(biāo)準(zhǔn)為dxf組碼[8],例如“8”代表圖層,圖層名則為組碼“8”對(duì)應(yīng)的字符串,如TERA(地貌與土質(zhì)(面))、TFCL(地貌附屬(線));“0”代表線型,線型名則為組碼“0”對(duì)應(yīng)的字符串,如LWPOLYLINE(輕量多段線)。
AutoCAD的圖形信息的查詢可使用(entget(car(entsel(提示信息))))語(yǔ)句。(entsel[提示信息])提示用戶以單點(diǎn)方式選擇單個(gè)對(duì)象,提示信息用于提示用戶的字符串,若省略提示信息,則提示信息為“選擇對(duì)象”。該函數(shù)返回值為表,由2個(gè)元素組成,第一個(gè)元素為選擇對(duì)象的圖元名,第二個(gè)元素為選擇對(duì)象時(shí)拾取點(diǎn)在當(dāng)前UCS下的坐標(biāo)[9],car(entsel(提示信息))語(yǔ)句返回第一個(gè)元素即圖元名。
entget用于取出(car(entsel(提示信息)))的列表信息,返回的是選中圖元的圖元表信息;圖元表的每個(gè)元素還是表,子表的第一個(gè)元素為有一定含義的整數(shù),與圖元在圖形交換文件(DXF)中的圖元代碼含義相同,多數(shù)子表采用了點(diǎn)對(duì)結(jié)構(gòu)。圖元表記錄圖元的名稱、類型、幾何數(shù)據(jù)、圖層、顏色、全局線寬等信息[10],通過(guò)查詢獲得相關(guān)要素的圖元信息,這些信息可作為選擇集構(gòu)建的過(guò)濾信息使用。
3 選擇集的構(gòu)建方法
選擇集是有名字的一些圖元名稱的集合,對(duì)圖形對(duì)象進(jìn)行編輯和修改時(shí),首先需要構(gòu)建選擇集[11]。
選擇集構(gòu)建方法:(ssget[選擇方法][點(diǎn)1][點(diǎn)2][點(diǎn)表][過(guò)濾表]),
選擇方法有以下幾種:
C(Crossing):選中與點(diǎn)1、點(diǎn)2所確定的窗口相交的對(duì)象。
CP(Cpolygon):選中與點(diǎn)表所確定的多邊形相交的對(duì)象。
W(Window):選中整體在點(diǎn)1、點(diǎn)2確定的窗口之內(nèi)的對(duì)象。
WP(Wpolygon):選中整體在點(diǎn)表所確定的多邊形之內(nèi)的對(duì)象。
X:選中整個(gè)數(shù)據(jù)庫(kù),包括關(guān)閉、凍結(jié)圖層上的對(duì)象和屏幕之外的對(duì)象[12]。
點(diǎn)1、點(diǎn)2、點(diǎn)表、過(guò)濾表和選擇方法配合使用。而過(guò)濾表的作用是通過(guò)過(guò)濾表描述的條件對(duì)所選的圖元對(duì)象進(jìn)行過(guò)濾篩選,最后只保留滿足過(guò)濾條件的圖元對(duì)象。過(guò)濾表描繪的是entget函數(shù)返回的圖元表點(diǎn)對(duì)信息。
如' (0. "LWPOLYLINE")、(8. "TERA")、(40. 0)或(list(cons 0 "LWPOLYLINE")(cons 8 "TERA")(cons 40 0)),分別代表線型為輕多義線、圖層名為T(mén)ERA、全局線寬為0m的過(guò)濾信息。
(cons元素1、元素2)是一項(xiàng)基礎(chǔ)函數(shù),當(dāng)?shù)?個(gè)元素是一個(gè)表時(shí),該函數(shù)將第1個(gè)元素插入到第2個(gè)元素表示的表內(nèi)并作為該表的第1個(gè)元素,該函數(shù)返回的是添加了第1個(gè)元素后的表,但當(dāng)兩個(gè)元素都是原子時(shí),則該函數(shù)返回的并不是一個(gè)表,而是一個(gè)點(diǎn)對(duì)[12]。例如:(cons 8 "TERA")返回的是(8." TERA")。通過(guò)(list[表達(dá)式…])可將任意數(shù)目的表達(dá)式合成為一個(gè)表并作為返回值返回,如(list(cons 0 "LWPOLYLINE")(cons 8 "TERA")(cons 40 0)(cons 70 1))返回的就是由線型、圖層名、線寬、是否閉合4種條件構(gòu)成的過(guò)濾表。
4 斜坡類符號(hào)選擇集的構(gòu)建
4.1 符號(hào)范圍線選擇集構(gòu)建
以依比例尺斜坡為例,斜坡范圍線圖層名為“TERA”,全局線寬為0,是一條閉合的輕量多段線。
該類符號(hào)選擇集構(gòu)建程序?yàn)椋海╯etq saa (ssget "X" (list(cons 0 "LWPOLYLINE")(cons 8 "TERA")(cons 40 0)(cons 70 1)))) ,該選擇集的成員是當(dāng)前成果中的所有圖層名為T(mén)ERA的全局線寬為0的且未封閉的輕多義線,如成功構(gòu)建則將選擇結(jié)果賦給變量saa。
上述構(gòu)建了一個(gè)地貌面符號(hào)范圍線的選擇集,將TERA層(地貌面)中的所有線寬為0且閉合的范圍線進(jìn)行了選擇集構(gòu)建,TERA層涉及的地類包括依比例未加固斜坡、加固斜坡,梯田等斜坡類符號(hào)[13]。
4.2 斜坡長(zhǎng)齒符號(hào)選擇集構(gòu)建
在對(duì)斜坡長(zhǎng)符號(hào)進(jìn)行選擇集構(gòu)建前,需要首先獲取斜坡類符號(hào)范圍線矢量上的坐標(biāo)點(diǎn)對(duì)信息,即范圍線矢量上的點(diǎn)坐標(biāo)。在圖元表的點(diǎn)對(duì)信息中10代表的是坐標(biāo)信息,如(10 ??45.0 150.0),10后面的 ?45.0 150即是該點(diǎn)在圖上的坐標(biāo)信息。獲取圖元的圖元表點(diǎn)對(duì)信息后,通過(guò)car獲取圖元表的第一個(gè)元素,如果該元素是10,則判定該圖元表點(diǎn)對(duì)信息為表示坐標(biāo)的點(diǎn)對(duì)信息。判定正確后,通過(guò)cdr函數(shù)獲取去掉了第一個(gè)元素的表,該表即坐標(biāo)信息表,然后使用前面介紹的cons函數(shù),將所選范圍矢量上的所有點(diǎn)的坐標(biāo)逐個(gè)添加給PT ?LST圖元表[14]。實(shí)現(xiàn)語(yǔ)句如下:
(if (/= saa nil)
(progn
(setq tem 0)
(setq len (sslength saa))
(while (< tem len)
(setq entname (ssname saa tem))
(progn
(setq ENT (entget entname)
N 0
PT ?LST '()
)
(while (/= (setq EI (nth N ENT)) NIL)
(if(= (car EI) 10)
(setq PT ?LST (cons (cdr EI) ?PT ?LST))
)
setq N (+ N 1 ))
)
)
上述語(yǔ)句中car、cdr都是基礎(chǔ)函數(shù)。car和cdr用于分割表list,car是一個(gè)無(wú)害的函數(shù), 它只返回第一個(gè)元素,并不從表list移除第一個(gè)元素, car執(zhí)行完后表list并沒(méi)有發(fā)生改變。cdr函數(shù)返回表list中首元素后面的其他元素[15]。語(yǔ)句中(sslength saa)返回選擇集saa內(nèi)的圖形對(duì)象數(shù)目;(ssname saa 序號(hào))返回選擇集saa中由序號(hào)指定的那個(gè)圖形對(duì)象的圖元名,選擇集中第一個(gè)元素的序號(hào)為0,如果成功則返回圖元名,如<圖元名: 7ee68b98>,否則返回nil;(nth N ENT)返回表的第N個(gè)元素,元素的序號(hào)從0開(kāi)始,如果N超出表的最后一個(gè)元素的序號(hào),則返回nil[16]。setq EI (nth N ENT)語(yǔ)句功能則是將所選范圍矢量的第N個(gè)元素的信息賦值給EI,通過(guò)循環(huán)調(diào)用該語(yǔ)句,可把范圍矢量所有或指定信息賦值給EI。
將范圍線上信息賦值給EI后通過(guò)if(= (car EI) 10)語(yǔ)名判定該信息是否是坐標(biāo)信息,如果是,則使用(setq PT ?LST (cons (cdr EI) PT ?LST))語(yǔ)句將斜坡范圍線上的點(diǎn)坐標(biāo)信息逐一添加給PT ?LST表,當(dāng)將斜坡范圍線上的所有點(diǎn)的坐標(biāo)對(duì)信息添加給PT ?LST表后,PT ?LST內(nèi)則存儲(chǔ)了斜坡范圍線上所有點(diǎn)的平面坐標(biāo)。此時(shí),可以PT ?LST表中的平面坐標(biāo)點(diǎn)對(duì)信息構(gòu)建選擇集。斜坡坡頂母線、長(zhǎng)短齒符號(hào)所在層為T(mén)FCL層,由于我們使用長(zhǎng)齒的全局線寬作為選擇集構(gòu)建的過(guò)濾信息,因此該選擇集的構(gòu)建與圖層名無(wú)關(guān)。選擇集構(gòu)建語(yǔ)句如下:
(setq scc (ssget "WP" PT ?LST '((0 . "LWPOLYLINE")(40 . 0.24))))
該語(yǔ)句功能為構(gòu)建完全在斜坡符號(hào)范圍線(PT ?LST,范圍線坐標(biāo)點(diǎn)對(duì)信息)內(nèi)的全局線寬為0.24m的長(zhǎng)齒多段線選擇集,由于只將斜坡長(zhǎng)齒的全局線寬修改為0.24m,選擇集構(gòu)建時(shí),無(wú)論斜坡范圍線內(nèi)有何種符號(hào),也只會(huì)選擇斜坡長(zhǎng)齒這一類符號(hào)。其中WP選項(xiàng)為選中整體在坐標(biāo)點(diǎn)對(duì)信息表所確定的范圍矢量?jī)?nèi)的對(duì)象。
5 斜坡類符號(hào)自動(dòng)延伸功能實(shí)現(xiàn)
構(gòu)建完成斜坡長(zhǎng)齒的選擇集后,需將所有長(zhǎng)齒的圖元名稱和長(zhǎng)齒的終點(diǎn)坐標(biāo)逐一添加到PT ?LST1圖元表中。添加完成后需使用REVERSE語(yǔ)句對(duì)PT ?LST1圖元表中信息進(jìn)行反轉(zhuǎn)處理,形成符合延伸命令要求的圖元表信息[17]。實(shí)現(xiàn)語(yǔ)句如下:
(if (/= scc nil)
(progn
(setq tem1 0)
(setq len1 (sslength scc))
(while (< tem1 len1)
(setq entname1 (ssname scc tem1))
(progn
(setq ENT1 (entget entname1)
N1 ?0
T1 ?1
PT ?LST1 '()
)
(while (/= (setq EI1 (nth N1 ENT1)) NIL)
(if (= (car EI1) ??1)
(setq PT ?LST1 (cons (cdr EI1) PT ?LST1))
;添加圖元名稱到PT ?LST1
)
(if (= (car EI1) 10)
(progn
(if (/= T1 1);用于判定長(zhǎng)齒終點(diǎn)坐標(biāo)
(setq PT ?LST1 (cons (cdr EI1) PT ?LST1));添加長(zhǎng)齒終點(diǎn)坐標(biāo)到PT ?LST1
(setq T1 (+ T1 1))
)
)
)
(setq N1 (+ N1 1))
)
)
(setq PT ?LST1 (reverse PT ?LST1));反轉(zhuǎn)處理
實(shí)現(xiàn)斜坡長(zhǎng)齒的自動(dòng)延伸功能,需循環(huán)調(diào)用LISP程序中的extend功能實(shí)現(xiàn),實(shí)現(xiàn)語(yǔ)句如下:
(command "extend" entname ""PT ?LST1 "")
其中entname 中包含斜坡類符號(hào)范圍線的圖元名信息,PT ?LST1包含為該斜坡范圍面內(nèi)的長(zhǎng)齒符號(hào)中的圖元名和長(zhǎng)齒終點(diǎn)坐標(biāo)信息表,""為該使命令的默認(rèn)選項(xiàng)。在實(shí)際工作中,部分斜坡長(zhǎng)齒符號(hào)起止點(diǎn)方向錯(cuò)誤,會(huì)造成符號(hào)無(wú)法正常延伸,因此需要在Geoway符號(hào)設(shè)計(jì)器中對(duì)長(zhǎng)齒符號(hào)進(jìn)行返轉(zhuǎn)處理,使起點(diǎn)在上、止點(diǎn)在下即可。
在循環(huán)調(diào)用以上命令完成所有斜坡類符號(hào)長(zhǎng)齒自動(dòng)延伸后,由于長(zhǎng)齒符號(hào)全局線寬為0.24m,不符合圖式要求,還需對(duì)所有斜坡長(zhǎng)齒進(jìn)行編輯,按圖式要求修改長(zhǎng)齒的全局線寬為0.3m。主要程序代碼如下:
(command "pedit" entname1 "w" 0.3 "")
其中entname1為線寬為0.24m的斜坡長(zhǎng)齒圖元名的變量,w代表寬度,0.3m斜坡長(zhǎng)齒的新寬度,通過(guò)循環(huán)調(diào)用該語(yǔ)句可實(shí)現(xiàn)所有線寬為0.24m的斜坡類符號(hào)長(zhǎng)齒的全局線寬的修改。最后由于斜坡類符號(hào)范圍線符號(hào)僅作為一種過(guò)渡性矢量,長(zhǎng)齒符號(hào)延伸完成后,應(yīng)調(diào)用"erase" 命令作刪除處理。經(jīng)延伸處理后的加固斜坡如圖3所示。
6 結(jié)語(yǔ)
斜坡類符號(hào)是大比例尺地形圖編輯中最常見(jiàn)的一種符號(hào)之一,斜坡自動(dòng)延伸程序的開(kāi)發(fā),大大提高了該類符號(hào)的作業(yè)生產(chǎn)效率,作業(yè)過(guò)程中只需表達(dá)出斜坡的坡頂母線和斜坡范圍面即可,無(wú)需過(guò)多操作,同時(shí)由于坡頂線表達(dá)出的長(zhǎng)短坡齒符號(hào)方向正確,自動(dòng)延伸完成后,即可符合圖式要求,省去了大量人工調(diào)整坡齒方向時(shí)間。經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,該程序在地形圖編輯中可節(jié)約10min/km2,且大大提高了制圖效果,在實(shí)際生產(chǎn)作業(yè)中具有很強(qiáng)的推廣使用價(jià)值。
參考文獻(xiàn):
[1] ?李學(xué)志,方戈亮,孫力紅.Visual LISP程序設(shè)計(jì)(第2版)[M].北京:清華大學(xué)出版社,2010:104 ?106.
[2] ?高何利,何秀國(guó),劉金婷.AutoLISP程序在地形圖圖廓整飾中的應(yīng)用[J].人民長(zhǎng)江,2007(10):26 ?27.
[3] ?王玉.基于GEOWAY軟件的基礎(chǔ)地理信息數(shù)據(jù)更新方法:以山西省1 ?∶ ?10000 DLG數(shù)據(jù)更新為例[J].測(cè)繪與空間地理信息,2022,45(1):141 ?144.
[4] ?GB/T 20257.1 2017.國(guó)家基本比例尺地圖圖式 第1部分:1 ?∶ ?500 1 ?∶ ?1 000 1 ?∶ ?2 000地形圖圖式[S].
[5] ?GB/T 20258.1 2019.基礎(chǔ)地理信息要素?cái)?shù)據(jù)字典 第1部分:1 ?∶ ?500 1 ?∶ ?1 000 1 ?∶ ?2 000比例尺[S].
[6] ?梁燕芬,梁子震.基于EPS的測(cè)繪技能競(jìng)賽制圖解決方案定制[J].測(cè)繪通報(bào),2015(S1):235 ?237.
[7] ?趙宇娟.基于Geoway的圖庫(kù)一體化的技術(shù)實(shí)現(xiàn)[J].甘肅科技,2008(19):40 ?43.
[8] ?孫淑賢,李光明,張貴麗.Auto CAD制作勘查線剖面圖中的數(shù)據(jù)共享及圖形格式交換[J].山東國(guó)土資源,2007,23(9):18 ?20.
[9] ?張志遙.基于AutoLISP的巖土工程勘察方案輔助設(shè)計(jì)系統(tǒng)研究[J].電子技術(shù)與軟件工程,2022(1):126 ?129.
[10] ?吳泊汛.自動(dòng)化駝峰設(shè)計(jì)檢算系統(tǒng)研究[D].成都:西南交通大學(xué),2012:1 ?20.
[11] ?郭秀娟,范曉鷗.基于AutoLISP的AutoCAD二次開(kāi)發(fā)研究[J].吉林建筑工程學(xué)院學(xué)報(bào),2008,25(4):82 ?84.
[12] ?陳伯雄,馮偉.Visual LISP for AutoCAD 2000程序設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2000:110 ?117.
[13] ?曲莉莉.山東省1 ?∶ ?1萬(wàn)基礎(chǔ)地理信息數(shù)據(jù)庫(kù)地形要素更新方法探討[J].山東國(guó)土資源,2018,34(7):82 ?85.
[14] ?鄧偉龍.基于VLisp開(kāi)發(fā)車站信號(hào)計(jì)算機(jī)聯(lián)鎖輔助設(shè)計(jì)程序[J].鐵道標(biāo)準(zhǔn)設(shè)計(jì),2014,58(3):127 ?130.
[15] ?商振偉.基于Auto LISP的ADS100航線結(jié)合表的制作程序的設(shè)計(jì)[J].地礦測(cè)繪,2018,34(3):41 ?43.
[16] ?蒲生亮.基于Visual LISP的水利工程測(cè)量軟件工具包的開(kāi)發(fā)與應(yīng)用[D].呼和浩特:內(nèi)蒙古大學(xué),2013:48 ?52.
[17] ?趙興柱,陳貴海,姜坤序.關(guān)于AtuoLISP在CAD繪制采礦設(shè)計(jì)圖中的應(yīng)用[J].有色礦冶,2011,27(4):16 ?18.
Design and Implementation of a Topographic Slope ?like ???Element Processing Program Based on AutoLISP
ZHENG Wei'an1, MENG Dapeng2, WANG Xiuyuan3, CUI Xiuming4, LING Xiaochun1
(1.Shandong Institute of Land Surveying and Mapping, Shandong Ji'nan 250013, China; 2. No.1 Exploration Institute of Geology and Mineral Resources, Shandong Ji'nan 250013, China; 3.Shandong Institute of Geological Sciences, Shandong Ji'nan ?250013, China; 4. Shandong Geology and Mining Mapping Limited Corporation, ?Shandong Ji'nan 250013, China)
Abstract: ?In the large scale topographic map editing has a lot of scale slope symbol elements, including the proportion of slope, embankment, reinforced shore, embankment and cutting. The symbol is a kind of composite symbol, two parts of slope line and slope. Slope line is composed of slope top bus and length symbol, long tooth length and slope width and perpendicular to slope bus. The symbol is complex, editing work is time ?consuming and laborious. By using AutoLISP language, the slope class symbol element processing program can be developed, and the automatic extension of symbol long teeth can be realized. It can greatly improve the efficiency of such symbol editing and improve the effect of drawing expression.
Key words: ?Slope class elements; Auto LISP language; topographic map