原創|使用教程|編輯:黃竹雯|2016-07-05 16:13:14.000|閱讀 1046 次
概述:本篇教程向大家展示了 AUTOCAD文字線型格式的完全解讀及C#實現方法。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在.lin線型文件中“;;”代表注釋行。因此我們可以利用它來添加一些注釋性文字,以增強文件的可讀性。
每種線型都可以定義為兩行,第一行定義線型的名稱和線型說明。行首必須是以“*”開始,其后是線型名稱。線型的描述也是起一個直觀的注釋作用,最好加上,不過這種描述 不能超過47個字符。第二行才是真正描述線型的代碼。行首的“A”代表對齊方式。
在這種對齊方式下,第一個參數的值應該大于或等于0,第二個參數的值應該小于0。簡單地說 :正值表示落表,AutoCAD會畫出一條相應長度的實線;0表示畫一個點;負值則表示提筆,AutoCAD會提筆空出相應長度。我們可以想像成繪圖筆的工作過程,就很容易理解 了。
要注意的是,這些字符之間以半角的逗號隔開,每一行結束必須按回車鍵,最后一行也不例外。另外,在*.LIN文件中,每個線型文件最多可容納280個字符。 *linetypeName,lineTypeDescription A,linelength,spacelength1,["text",textstylename,scale,rotation,xoffset,yoffset],spacelength2
下面介紹了有關字符描述符中每個字段的附加信息. 要使用的值是帶符號的十進制數字,例如 1、-17 和 0.01.
1. text
要在線型中使用的字符.
2. text style name
要使用的文字樣式的名稱. 如果未指定文字樣式,AutoCAD 將使用當前定義的樣式.
3. scale
S=值. 要用于文字樣式的縮放比例與線型的比例相關. 文字樣式的高度需乘以縮放比例. 如果高度為 0,則 S=值的值本身用作高度.
4. rotation
R=值或A=值. R= 指定相對于直線的相對或相切旋轉. A= 指定文字相對于原點的絕對旋轉;即所有文字不論其相對于直線的位置如何,都將進行相同的旋轉. 可以在值后附加 d 表示度(度為默認值),附加 r 表示弧度,或者附加 g 表示百分度. 如果省略旋轉,則相對旋轉為 0.
旋轉是圍繞基線和實際大寫高度之間的中點進行的.
5. xoffset
X=值. 文字在線型的 X 軸方向上沿直線的移動. 如果省略 xoffset 或者將其設置為 0,則文字將沒有偏移,并且會變得復雜. 使用該字段控制文字與前面提筆或落筆筆劃間的距離. 該值不能按照 S=值定義的縮放比例進行縮放,但是它可以根據線型進行縮放.
6. yoffset
Y=值. 文字在線型的 Y 軸方向垂直于該直線的移動. 如果省略 yoffset 或者將其設置為 0,則文字將沒有偏移,并且會變得復雜. 使用此字段控制文字相對于直線的垂直對齊. 該值不能按照 S=值定義的縮放比例進行縮放,但是它可以根據線型進行縮放.
熱水線型的定義:
*HOT_WATER_SUPPLY,Hot water supply ---- HW ---- HW ---- HW ---- A,.5,-.2,["HW",STANDARD,S=.1,R=0.0,X=-0.1,Y=-.05],-.2
第一行沒有什么特別的,跟簡單線型定義一樣,是線型名和線型的簡單描述。
第二行的A當然是對齊符號,數字的意義仍然與前面一樣。
我們集中精力來看文本的嵌入。 “HW”是嵌入的文本,注意必須加上雙引號。“STANDARD”是文本式樣的名字,如果當前圖形中沒有該樣式,則AutoCAD不允許使用該線型。 “S=.1”確定文本的比例系數為0.1。如果使用固定高度的文本,AutoCAD會將此高度乘以比例系統數;如果使用的是可變高度的文本,則AutoCAD會把比例系統數看成絕 對高度。 “R=0”表示文本相對于當前線段方向的轉角。0表示文本與所給線段方向一致,這也是缺省值。 “X=-.1,Y=-.0.05”為可選項,它們確定相對于當前點的偏移量。缺省時AutoCAD將文本字符串的左下角點放在此當前點。X就是當前線段的方向,Y則是垂直于線段向上的 方向。這兩個偏移量將使文本的定位更精確?!?/p>
以熱水線型的定義過程為例:
線型定義:
*HOT_WATER_SUPPLY,Hot water supply ---- HW ---- HW ---- HW ---- A,.5,-.2,["HW",STANDARD,S=.1,R=0.0,X=-0.1,Y=-.05],-.2
c#實現定義過程:
LinetypeTableRecord ltr =new LinetypeTableRecord(); ltr.Name = "HOT_WATER_SUPPLY";(第一行*號后的部分) ltr.AsciiDescription = "HOT_WATER_SUPPLY ---- HW ---- HW ---- HW ----";(第一行逗號后面的部分) ltr.PatternLength = 0.9;(0.5+0.2+0.2=0.9) ltr.NumDashes = 3(一段實線,兩段留白); // Dash #1 ltr.SetDashLengthAt(0, 0.5);(第一段為實線,長度0.5) // Dash #2 ltr.SetDashLengthAt(1, -0.2);(第二段為留白,長度為0.2) ltr.SetShapeStyleAt(1, tt["Standard"]);(在第二段處嵌入文字,注意:嵌入文字不影響任何尺寸的計算) ltr.SetShapeNumberAt(1, 0);(嵌入文字,1表示dash的索引值,0表示文字的索引值??用于插入多行文字?) ltr.SetShapeOffsetAt(1, new Vector2d(-0.1,-0.05));(設置文字的偏移量) ltr.SetShapeScaleAt(1, 0.1);(設置文字的縮放,由于["Standard"]);是可變高度的文本,則AutoCAD會把比例系統數看成絕對高度,即文字高度為0.1) ltr.SetShapeRotationAt(1, 0);(設置文字的旋轉角度) ltr.SetTextAt(1, "CW");(設置文字的內容) // Dash #3 ltr.SetDashLengthAt(2, -0.2);(第三段為留白,長度為0.2) ObjectId ltId = lt.Add(ltr); tr.AddNewlyCreatedDBObject(ltr, true);
CAD .NET免費試用或demo下載,請點擊CAD .NET。
更多精彩內容和產品推薦,請咨詢!
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn