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