劉明輝
(大同市勘察測繪院,山西大同 037006)
目前AutoCAD軟件在測繪生產中應用比較廣泛,大多數的測繪產品均以.DWG的格式提交。但是AutoCAD自帶的符號與測繪地形圖圖式差別很大。為了有效的提高工作效率,建立一套符合規范的地形圖符號庫顯得十分必要。AutoCAD提供了強大的圖形編輯功能和多種方式的二次開發及用戶定制,我們可以據此進行符號庫的制作,使地形圖的繪制更加方便、快捷、規范。
開發地形圖符號庫主要有兩個目的:
1)將地形圖符號以數字圖集的形式存儲在計算機系統中,便于用戶更好的使用;
2)使地形圖符號符合國家相關圖式規范,使數據規范化,方便數據的管理與交換。
符號庫的開發必須遵循以下原則:
1)嚴格保證符號庫圖式符合國家標準的地形圖圖式;
2)地物符號的整體性:符號一體,屬性關聯;
3)方便制圖人員操作,盡可能提高工作效率;
4)數據文件轉換方便,圖形信息無損失。
綜合分析地形圖構成各要素,可以將地形圖符號分為點狀、線狀、面狀符號三類,見圖1。

圖1 符號庫結構圖
點狀符號指實際物體的投影輪廓較小,如按比例縮小在圖上無法清晰表達,比如燈桿、路標、路邊電話亭等等。因此,用一個點的坐標來表征其空間信息。
由于點狀符號形狀固定,不隨位置發生變化。這一特點與AutoCAD中塊的特性一致。因此在AutoCAD中,可以用自定義圖塊的方法來制作點狀符號。
對于點狀符號,其定位點要準確,與物體的實際位置一致。且符號要與規范圖式的尺寸、顏色相一致。地形圖圖式中對于符號的定位點有明確規定,因此制作符號時,圖塊的插入點必須與規范要求的定位點相一致。符號大小按規范要求的幾何尺寸1∶1繪制,使用時按相應的比例尺設定圖塊的比例因子。
線狀符號分為簡單線狀符號,如道路;復雜線狀符號,如地類界、柵欄、鐵路、電力線、斜坡等。任何線狀符號都可以看作是簡單線狀符號和點狀符號之間的組合。
AutoCAD中,在一個或多個擴展名為.lin的線型定義文件中定義了線型。創建線型后,通過命令加載該線型,就可以在繪圖中使用。
簡單線型是點、橫線、空格按一定規律重復出現形成的圖案;復雜線型是點、橫線、空格、“形”“文字”組成的圖案。
1.4.1 簡單線型的定制
在線型定義文件中使用兩行文字定義一種線型:第一行包括線型名稱和可選說明,線型名稱以星號(*)開頭;第二行是定義實際線型圖案的代碼,必須以字母A開頭,其后是圖案描述代碼,定義提筆長度(空移),落筆長度(劃線)和點。線型定義格式為:

簡單線型定義實例:


1.4.2 復雜線型的定制
點、橫線、空格以及嵌入的形和文字組合成為復雜線型。
線型中可以嵌入字體中的字符。格式如下:

這種格式被作為描述添加到簡單線型,如鐵絲網:

復雜線型也可以嵌入形(保存在形文件中)。與簡單線型一樣,指定端點后可以動態的繪制復雜線型。線型說明中的形對象描述語法如下:
[shapename,shxfilename,transform]
其中transform是可選的,可以是R,A,S,X,Y五項的任意組合。R表示相對旋轉;A表示絕對旋轉;S表示比例;X表示X偏移;Y表示Y偏移。旋轉單位為度,其他單位為圖形單位。
地形圖圖式中,陡坎、地類界、加固斜坡等都屬于復雜線型。下邊以此為例說明如何在線型中嵌入形。
*陡坎,陡坎
A,2,[DK,DTKC.shx],2
*地類界,地類界
A,0.[CC,DTKC.shx,S=0.3],-1.6
*加固斜坡,加固斜坡
A,2,[XP,DTKC.shx],2,[DK,DTKC.shx],0,[CC,DTKC.shx,S=0.01,Y=1],2
有關形的定義方法詳見2.6小節。
地形圖中的面狀符號填充大致可以分為顏色填充、斜線或交叉線填充、品字形或井字形填充、無規律配置符號四類。除無規律配置符號外,其余都可以通過AutoCAD中自定義填充圖案功能來實現。其中顏色,斜線或交叉線填充可以使用AutoCAD提供的預定義填充圖案。有的符號則需要自定義圖案來實現。填充圖案文件格式為.pat。格式如下:
*pattern-name,description
angle,x-origin,y-origin,delta-x,delta-y,dash-1,dash-2,…
description為所定義填充圖案的定義和說明,angle為線族坐標系X軸與水平方向的傾角,x-origin,y-origin為同一線族內的線間X,Y方向偏移量。
填充圖案定義遵循以下規則:
1)圖案定義中每一行最多包含80個字符,可以包含字母,數字和以下特殊字符:下劃線(_)、連字號(-)、美元符號($)。但是,圖案定義必須以數字或字母開頭;
2)AutoCAD忽略分號右側的空行和文字;
3)每條圖案直線被認為是直線族的第一個成員,是通過應用兩個方向上的偏移增量生成無數平行線來創建的;
4)增量x的值表示直線族成員在直線方向上的位移(僅適用于虛線);
5)增量y的值表示直線族成員之間的間距;
6)直線被認為是無限延伸的。虛線圖案疊加于直線之上。
例如,草地的填充,其定義為:

花圃的填充定義如下:

形是一種能用直線、圓弧和圓定義的特殊實體,它可以很方便的被繪入圖形中,并按照需要制定比例系數和旋轉角度,以獲得不同的位置和大小。它在AutoCAD中占用的空間小,繪制速度快。因此在進行二次開發時一般將常用的符號、字體等定義為形,這樣既可以節省存儲空間,也可以為多個作業所公用。Auto-CAD字體和形文件(.SHX)通過形定義文件(.SHP)編譯。形定義文件可用文本編輯或能將文件存為格式的字處理器創建或編輯。
形定義文件的每一行最多可包含128個字符,超過此長度的行不能編譯。由于AutoCAD忽略空行和分號右側的文字,所以可以在形定義文件中嵌入注釋。每個形說明都有一個標題行(格式如下),以及一行或多行定義字節。這些定義字節之間用逗號分隔,最后以0結束。

簡單的形定義是在一個定義字節(一個specbyte字段)中包含的編碼。每個矢量的長度和方向代碼是一個三字符的字符串。在代碼字符串中,第一個字符必須為0,第二個字符指定矢量的長度。矢量的長度受到比例因子的影響,矢量長度和比例因子的積是實際的距離的值。第三個字符指定矢量的方向。在使用時,有16個可用的標準方向,方向編碼如圖2所示。

圖2 形方向編碼
為定義不同對象,如直線、圓弧以及描述各種狀態如抬筆、落筆、形定義結束等,AutoCAD設定了一些特殊描述碼,其含義如下:
0——形定義結束。
1與2——落筆與抬筆。其中1為落筆開始畫,2為抬筆空走。
3與4——大小控制,其中3為用下一字節除矢量長度,4為用下一字節乘矢量長度。
5與6——堆棧推進(push)與彈出(pop),其中堆棧深度不能超過4。
7——為子形(subshape reference),可把以前定義的形用形編號調用。
8與9——X,Y位移(-128~127之間)。如:8,(-9,4)即 X往左9個單位,Y往右4個單位。
10或00A——圓定義(或octant arc)。由下兩個字節定義八弧段。
00B——由下五個字節定義的小弧段。
00C——由X-Y位移和凸度定義的弧。
00D——多個指定凸度的弧。
由于地形圖圖式中規定了地形圖符號的定位點和定位線,所以必須考慮圖符的中心問題。
在地形圖圖式中規定:
1)幾何圖形符號(圓形、矩形等)在其幾何中心;
2)寬底符號(如煙囪、水塔等)在底線中心;
3)底部為直角形的符號(如風車、路標等)在直角的頂點;
4)幾種幾何圖形組成的符號(如氣象站等)在其下方的中心點或交叉點;
5)下方沒有底線的符號(如亭、山洞等)應在下方兩端點間的中間;
6)線狀符號(如堤、河等)在其符號的中心線。
例如,亭子和路標形定義如下(如圖3所示):
*2,23,TZ;;亭子
003,8,002,038,001,064,038,009,(6,6),(6,- 6),(- 9,0),(0,0),002,060.001,06C,002,038,0
*4,17,LB;;路標
003,8,040,002,048,001,0C4,008,(5,3),002,06C,001,008,(5,3),0

圖3 亭子和路標的形
使用linetype命令可以加載自定義線型。
使用hatch命令加載自定義填充圖案。
使用load命令加載形文件。
本文介紹了在AutoCAD中制作地形圖符號庫的基本方法。結合相關圖式規范,著重介紹了點、線、面各種不同類型符號的特點和制作方法。通過實踐證明,建立一套符合圖式規范的符號塊,可以有效的提高工作效率。