CAD中的形及线型
昨天有同事問筆者以前的做的形文件和線型文件是怎么做出來的。時隔四五年,筆者實在想不起來形文件中形是怎樣制作出來的。用google搜索一下,都是說用文本硬寫出來的。搜索了一上午,總算明白了:CAD的express Tools自帶制作形的功能。打開控制面板,添加或安裝程序,找到cad2007,點添加/刪除,在緩沖畫面過后會跳出一個界面,你點第一個添加或刪除功能,在接下來的選項中,你找到express tools ?在前面的方框打鉤,安裝以后就出現了Express 的菜單,在Tools中有Make Shape的命令。筆者深感技術記錄和分享非常重要。為了方便筆者檢閱,特將CAD中的形和線型制作有關內容梳理如下:
一、形的特點
? ? 形式一種特殊實體,它是用直線、圓弧或圓定義的復雜圖形對象,文本字體就是一種特殊類型的形。系統在調用形時,把其看做一個整體,既可以很方便地被繪入到圖形中,也可以根據需要選定形插入點、縮放比例和旋轉角度等, 以獲得不同的位置和大小。
形的調用和塊的調用有些類似,但AutoCAD對二者的定義完全不同。塊比形易學、易用且通用性強。形的最大特點是節約大量內存和繪圖效率高。
二、形的定義
在AutoCAD中,形的定義具有一定的格式和規定,用戶必須嚴格遵守。每一個形的定義都包括一個標題行和若干個描述行。
1、標題行
? 標題行以*開始,說明形的編號、大小及名稱。格式如下:
*形編號,定義的字節數,形名稱
? ?注:1)形編號:每一個形必須定義一個編號,占用一個字節,用整數表示。編號的范圍在1-255之間,其中1-129已經被系統占用。用戶只能用除此之外的其他編號,即130-255之間。
? ? ? ? ? 2)定義字節數:描述一個形所需要數據的字節數。
??3)形名稱:每一個形不僅具有一個編號,還必須賦予一個名稱即姓名,且必須使用大寫字母表示。注意,小寫的形名不會被存入存儲器中,會被系統忽略而無法被調用。
? 2、描述行
? 在形定義中,標題行之后是描述行。描述行用數字或字母來描述形的直線段、圓弧的大小和方向。直線段和圓弧采用不同的描述方法,形的描述采用描述碼的形式。用于描述形的數字用逗號隔開,最后用0結束。描述可以用多行表示,但是每行的字符數不得超過128個。
在AutoCAD系統中,形的定義有兩種編碼:標準矢量碼和特殊碼。
3、標準矢量描述碼。
? ?描述一段標準矢量應包含矢量的長度和方向,標準矢量描述碼采用三個字符的字符串來描述標準矢量段,占用一個字節。第一個字符必須是0,成為前導0,用于表示后面的兩個字符為16進制數。第二個字符表示矢量的長度。第三個字符表示矢量的方向。矢量方向代碼如下圖所示。
? ?例子:表示一個正方形的加一條對角線。
*195,6,BOM
010,014,018,01C,012,0
4、特殊碼
由于定義的圖形對象不同,如非標準方向線段,圓弧等,以及描述繪圖過程中的各種狀態如抬筆、落筆等,僅靠16中標準矢量線段是不能描述內容豐富的形。為此AutoCAD系統設定了特殊描述碼,大大方便了形的描述。
特殊描述碼的定義:
0 表示形定義結束
1 表示激活繪圖模式(落筆)
2 表示停止繪圖模式(提筆)
3 表示用代碼的下一字節去除矢量長度,即比例縮小
4 表示用代碼的下一字節去乘矢量長度,即比例放大
5 將當前位置壓入堆棧,即保存當前位置
6 堆棧彈出當前位置,即恢復由代碼
7 引用其它形,代碼的下一字節指定了被引形的編號
8 當前位置繪制線段,代碼的下兩個字節指定了線段在X、Y方向上的相對位移
9 由當前位置開始繪制一系列的線段,代碼后面的字節分別指定了各個線段在X、Y方向上的相對位移,最后以(0,0)為結束符
10 繪制八分圓弧
11 繪制分數圓弧
12 根據由X、Y位移和凸度繪制圓弧
13 多個指定凸度的圓弧
14 僅適用于垂直文字,用來將下一個字符繪制在前一個字符的下面
提示:在形定義的代碼中可使用括號來增強可讀性。
代碼10:定義一段圓弧,代碼后跟兩個字節的參數以說明圓弧的結構。所定義的圓弧成為八分圓弧。如圖2-7所示。這是因為它括約了一個或多個45°的八分圓弧,圓弧的起點和終點定義在一個八分圓弧的邊界上。圓弧的定義為:
? ? ? ? 10,半徑,(-)0SC
? 其中,半徑為整數,一個字節,取之范圍在1-255之間。第二個字節定義圓弧的繪制方向、起點和終點位置。
? ? 對于圓弧的方向規定如下:從起點畫至終點,如果為逆時針方向,則取正值;反之,順時針方向為負值。若為正值時,+可以省略。0為前導符,S表示圓弧起點在八分圓弧上的位置,其值為0-7的整數。C表示圓弧所跨越的八分圓弧的個數,其值為0-7的整數,在此0表示8個八分圓弧或一個完整圓。
? 例如:圓弧A :10,(2,014)。
*155,12,FIVE
1,9,(-5,0),(0,-4),(0,0),10,(3,-024),0
*156,17,TM
1,10,(1,020),2,8,(-2,0),1,9,(2,-3),(4,6),(0,0),0
*169,5,CIRCLE
1,10,(1,020),0
三、形的制作
1、可以在 AutoCAD繪圖環境下制作圖形實體之后 ,采用程序轉換生成形文件腳本編碼的辦法制作形符號 ,但生成的形代碼的字節數會較大 ,而且制作出來的圖形也不一定美觀 ,尤其圓弧段的顯示最為明顯。也可用Express Tools制作。
2、 完全手工編寫的形文件 ,只要巧用心思 ,充分利用子形和圓弧等描述代碼 ,就可以使得所生成的形符號不僅美觀 ,而且形文件的字節數也很小。
; user.shp - user defined shapes?
*1,4,TRAINGLE?
020,016,01A,0 ?
四、形文件的編譯和加載
注意:當形文件編輯完成后,以后綴名為SHP的格式保存。
第一步:使用COMPILE命令
第二步:使用LOAD命令
第三步:使用SHARP命令
五、線型定義
1、線型定義格式
線型定義由標題行和模式行兩部分組成。
(1) 標題行:由線型名稱和線型描述組成,標題行以“*”為開始標記,線型名稱和描述由逗號分開,其格式為:
*linetype-name [, description](*線型名稱[,線型描述])
(2) 模式行:由對齊碼和線型規格說明組成,中間由逗號分開,其格式為:
alignment,patdesc-1,patdesc-2, ...(對齊碼,線型規格說明…)
例如:在acad.lin文件中對BORDER(邊界線)的定義如下:
其中對齊碼“A”表示該線型采用兩端對齊方式,目前AutoCAD僅支持這一種對齊方式。
2、簡單線型的定義
簡單線型是由短劃線(Dash)、點(Dot)和空格(Space)組合而成。在簡單線型的規格說明中,正數表示其值為長度的短劃線,負數表示其絕對值為長度的空格,0表示點。例如在BORDER的規格說明“A,.5,-.25,.5,-.25,0,-.25”中,.5表示0.5個單位長的短劃線,-.25表示0.25個單位長的空格,0表示一個點。
3、復雜線型的定義
復雜線型是在簡單線型中嵌入符號、字符串或形等其它元素而成的。
(1) 在線型規格說明中嵌入文字的格式為:
["string",style,R=n1,A=n2,S=n3,X=n5,Y=n6]
其中:
“string”:嵌入的文字,須用雙引號括起來。
style:嵌入文字所用的文字樣式名。
R:嵌入文字相對于畫線方向的傾斜角度。
A:嵌入文字相對于WCS坐標系中X軸正向的傾斜角度。
S:嵌入文字的比例因子。
X:嵌入文字在畫線方向上的偏移量。
Y:嵌入文字在畫線方向的垂向上的偏移量。
例如:在acad.lin文件中對“GAS_LINE”線型的定義如下:
*GAS_LINE,Gas line ----GAS----GAS----GAS----GAS----GAS----GAS--
A,.5,-.2,["GAS",STANDARD,S=.1,R=0.0,X=-0.1,Y=-.05],-.25
(2) 在線型規格說明中嵌入形的格式為:
[shape,shape file,R=n1,A=n2,S=n3,X=n5,Y=n6]
其中:
? shape:嵌入的形。
? shape file:嵌入形所在的形文件,該文件應在AutoCAD的系統路徑中。
? R、A、S、X、Y的意義同上。
例如:在acad.lin文件中對“GAS_LINE”線型的定義如下:
*FENCELINE2,Fenceline square ----[]-----[]----[]-----[]----[]---
A,.25,-.1,[BOX,ltypeshp.shx,x=-.1,s=.1],-.1,1
編輯本段
4、線型的創建和修改
通過前面的學習已經了解了線型是如何定義和保存的,在此基礎上對標準線型進行修改或自己創建新的線型。在AutoCAD 2002中提供了“-Linetype”命令對線型進行各種操作。現在就使用該命令在AutoCAD環境下創建一個新的線型和線型文件。
5、實例1 創建“INTERVAL”線型
(1) 運行AutoCAD 2002,在命令行輸入:-linetype,AutoCAD在命令行提示:
Enter an option[?/Create/Load/Set]:C Enter
Enter name of linetype to create: INTERVAL Enter
此時,AutoCAD彈出“Create or Append Linetype File”對話框,如圖32-2所示。
(2) 在“Create or Append Linetype File”對話框中輸入線型文件名“user.lin”,并按下Save鍵返回。此時系統創建并打開了一個新的線型文件“user.lin”;
(3) 命令行提示用戶輸入描述文本和線型模式:
Descriptive text: Interval ____ ._. ____ ._. ____ ._. ____ ._. Enter
Enter linetype pattern (on next line):
A,1,-.125,0,-.125,.25,-.125,0,-.125 Enter
New linetype definition saved to file.
Enter an option [?/Create/Load/Set]: Enter
實際上,由于線型文件是ASCII格式的,因此用戶可以在AutoCAD環境外使用任一文本編輯器直接打開或創建線型文件,并對其內容進行補充和修改。
6、實例2 創建“ARROW”線型
(1) 使用Windows附件中的“記事本”程序打開由實例一創建的“user.lin”文件。
(2) 在該文件中添加如下內容,如圖32-3所示。
*Arrow,Arrow -->-->-->
A,.25,-.05,[">",STANDARD,S=.1,R=0.0,X=-.1,Y=-.05],-.1
(3) 進入AutoCAD 2002,載入線型文件“user.lin”,即可使用該文件中定義的“INTERVAL”和“ARROW”線型,圖32-4顯示了使用這兩種線型的例子。
說明使用“-linetype”命令,如果該線型己在庫文件中存在,則系統會提示用戶該線型已經在庫文件中定義,并詢問用戶是否重新定義。用戶可對其重新定義來實現對已有線型的修改。
總結
- 上一篇: Unity3d资源管理模块
- 下一篇: 「软件项目管理」一文详解软件项目进度计划