ObjectARX建立帶文字的線型實例代碼

AcDbLinetypeTable* pLinetypeTable=NULL;
		Acad::ErrorStatus es = acdbHostApplicationServices()->workingDatabase()->getLinetypeTable(pLinetypeTable,AcDb::kForWrite);
		if (Acad::eOk != es)
		{
			return;
		}
		AcDbObjectId txtStyleId=acdbHostApplicationServices()->workingDatabase()->textstyle();
		AcDbLinetypeTableRecord *pLinetypeTableRec=new AcDbLinetypeTableRecord;
		//設置線型名稱注意,命名規範
		pLinetypeTableRec->setName(L"YJV10X5");		
		//pLinetypeTableRec->setAsciiDescription(_T("YJV10X5 ____YJV10*5 ____"));
		//線型說明文字高版本建議用setComments
		pLinetypeTableRec->setComments(_T("YJV10X5 ____YJV10*5 ____"));
		//設置Dash短劃線數量
		pLinetypeTableRec->setNumDashes(3);
		//設置短劃線的長度,正值爲實線,負值爲空格,0是點
		pLinetypeTableRec->setDashLengthAt(0,1.25);
		pLinetypeTableRec->setDashLengthAt(1,-1.75);

		//設置Shape或Text樣式Id
		pLinetypeTableRec->setShapeStyleAt(1,txtStyleId);
		//比例,文字高度
		pLinetypeTableRec->setShapeScaleAt(1,0.25);
		//設置文字原點偏移位置
		pLinetypeTableRec->setShapeOffsetAt(1,AcGeVector2d(-1.55,-0.125));
		//設置文字索引位置和內容,索引≥0
		pLinetypeTableRec->setTextAt(1,_T("YJV10*5"));

		pLinetypeTableRec->setDashLengthAt(2,0.25);
		//設置自動縮放比例
		pLinetypeTableRec->setIsScaledToFit(0);
		//設置圖案長度通常等於dashLength實際距離之和
		pLinetypeTableRec->setPatternLength(3.25);		
		pLinetypeTable->add(pLinetypeTableRec);
		pLinetypeTableRec->close();
		pLinetypeTable->close();

  

 

 

 

  

附:關於自定義線型中的文字

線型中能夠包含字體中的字符。工具

包含嵌入字符的線型能夠表示實用工具、邊界、輪廓等等。指定頂點時將動態繪製直線,就象使用簡單線型同樣。嵌入直線的字符始終完整顯示,不會被截斷。字體

包含嵌入字符的線型圖案描述符相似於簡單線型的圖案描述符。spa

例如,名爲 HOT_WATER_SUPPLY 的線型定義爲code

*HOT_WATER_SUPPLY,---- HW ---- HW ---- HW ---- HW ---- HW ---- 
A,.5,-.2,["HW",STANDARD,S=.1,U=0.0,X=-0.1,Y=-.05],-.2

這表示一種重複圖案,以 0.5 個圖形單位長度的劃線開頭,而後是 0.2 個圖形單位長度的空移、具備必定縮放比例和位置參數的字符 HW 以及另外一個 0.2 個圖形單位長度的空移。文字字符來自指定給 STANDARD 文字樣式的文字字體,縮放比例爲 0.一、正立旋轉角度爲 0 度、X 偏移爲 -0.一、Y 偏移爲 -0.05。該圖案沿直線長度延續,以長度爲 0.5 個圖形單位的劃線結束。該線型以下所示。blog

請注意,總間距長度爲 0.2 + 0.2 = 0.4,文字原點在 X 方向上相對於首次向右上挑的端點偏移 -.01 個單位。等價線型爲索引

*HOT_WATER_SUPPLY,---- HW ---- HW ---- HW ---- HW ---- HW ---- 
A,.5,-.1,["HW",STANDARD,S=.1,U=0.0,X=0.0,Y=-.05],-.3

總間距長度仍然是 0.1 + 0.3 = 0.4,可是文字原點在 X 方向上未發生偏移。ip

字符描述符格式

在線型說明中添加文字字符的格式以下所示:ci

["text_string",text_style_name,scale,rotation,xoffset,yoffset]

比例、旋轉、X 偏移和 Y 偏移的值必須表示爲有符號十進制數字,例如 一、-17 和 0.01。字符串

文字字符串

要在線型中顯示的字符。get

文字樣式名

要使用的文字樣式的名稱。若是未指定文字樣式,將使用當前定義的樣式。

注意:嵌入的文字字符與圖形中的文字樣式相關。加載線型以前,圖形中必須存在與線型相關聯的文字樣式。
比例

要用於文字樣式的縮放比例與線型的比例相關。提供的比例因子必須使用 S= 做爲前綴,例如 S=.5 表示比例因子爲 0.5。文字樣式的高度將乘以比例因子。若是文字樣式的高度爲 0(零),則 S=value 的值單獨用做高度。

旋轉

要在線型中顯示的字符的旋轉角度。旋轉角度必須帶有前綴 U=、R= 或 A=。

  • U= 指定正立或易於閱讀的文字。
  • R= 指定相對於直線的相對或相切旋轉。
  • A= 指定文字相對於原點的絕對旋轉;即全部文字不論其相對於直線的位置如何,都將進行相同的旋轉。

該值後面可添加

  • d 表示度(度爲默認值)
  • r 表示弧度
  • g 表示百分度

下圖是使用正立旋轉定義的線型。

若是省略旋轉,則相對旋轉爲 0。旋轉是圍繞基線和實際大寫高度之間的中點進行的。

注意:若是圖形包含不使用 U(正立)旋轉標記的傳統線型,則能夠經過從 LIN 文件重載線型,根據最新線型定義更新這些圖形。能夠經過在重載線型定義以前將 R(旋轉)標記更改成 U(正立)標記,來更新自定義線型。
X 偏移

文字在線型的 X 軸方向上沿直線的移動。提供的偏移必須帶有前綴 X=,例如,X=.1 表示偏移 0.1。若是省略偏移或偏移爲 0(零),則文字將不發生偏移。使用該字段控制文字與前面提筆或落筆筆劃間的距離。該值不能按照 S=值定義的縮放比例進行縮放,可是它能夠根據線型進行縮放。

Y 偏移

文字在線型的 Y 軸方向垂直於該直線的移動。提供的偏移必須帶有前綴 Y=,例如 Y=.1 表示偏移 0.1。若是省略偏移或偏移爲 0(零),則文字將不發生偏移。使用此字段控制文字相對於直線的垂直對齊。該值不能按照 S=值定義的縮放比例進行縮放,可是它能夠根據線型進行縮放。

相關文章
相關標籤/搜索