AcDbDatabase *pcurdb=acdbHostApplicationServices()->workingDatabase();
AcDbDimStyleTable *pnewdimtable;
pcurdb->getSymbolTable(pnewdimtable,AcDb::kForWrite);
AcDbDimStyleTableRecord *pnewdimrecord=new AcDbDimStyleTableRecord();
pnewdimrecord->setDimasz(20);//設定箭頭大小
pnewdimrecord->setDimzin(8);//十進制小數顯示時,抑制後續零
pnewdimrecord->setDimexe(30);//設定尺寸界線超出尺寸線距離為400
pnewdimrecord->setDimexo(0);//設定尺寸界線的起點偏移量為300
pnewdimrecord->setDimtxt(30);//設定文字高度
pnewdimrecord->setDimtad(1);//設定文字位置-垂直為上方,水準預設為居中,不用設定
pnewdimrecord->setDimgap(10);//設定文字位置-從尺寸線的偏移量
pnewdimrecord->setDimtih(0);
pnewdimrecord->setDimtix(1);//設定标注文字始終繪制在尺寸界線之間
pnewdimrecord->setDimtofl(1);//即使箭頭放置于測量點之外,尺寸線也将繪制在測量點之間
// pnewdimrecord->setDimgap(0.5);
color.setColorIndex(iDimColor);
pnewdimrecord->setDimclrd(color); //尺寸線顔色
pnewdimrecord->setDimclre(color); //尺寸邊界線顔色
color.setColorIndex(iTextColor);
pnewdimrecord->setDimclrt(color); //文字顔色
AcDbObjectId dimrecordid;
pnewdimtable->add(dimrecordid,pnewdimrecord);
pnewdimtable->close();
pnewdimrecord->close();
AcGePoint3d Pt1(KD[k].ZB_X+t,KD[k].ZB_Y+t,0);
AcGePoint3d Pt2(DY.m_Chang+t,KD[k].ZB_Y+t,0);
AcGePoint3d Pt3(KD[k].ZB_X+t,DY.m_Kuan+t+150+k*70,0);
AcGePoint3d Pt6(KD[k].ZB_X+t-KD[k].KongJing/2*cos(PI/4.0),KD[k].ZB_Y+t+KD[k].KongJing/2*sin(PI/4.0),0);
AcGePoint3d Pt7(KD[k].ZB_X+t+KD[k].KongJing/2*cos(PI/4.0),KD[k].ZB_Y+t-KD[k].KongJing/2*sin(PI/4.0),0);
AcDbBlockTable *pBlockTable;//定義塊表指針
acdbHostApplicationServices()->workingDatabase()
->getSymbolTable(pBlockTable, AcDb::kForRead);
AcDbBlockTableRecord *pBlockTableRecord;
pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,
AcDb::kForWrite);
pBlockTable->close();
AcDbAlignedDimension *pDim1 = new AcDbAlignedDimension(Pt1, Pt2,Pt3,NULL,dimrecordid);
AcDbDiametricDimension *pDim3 = new AcDbDiametricDimension(Pt6, Pt7,leaderLength,dimText,dimrecordid);
pDim3->setLeaderLength(20);
AcDbObjectId Id;
pBlockTableRecord->appendAcDbEntity(Id, pDim1);
pBlockTableRecord->appendAcDbEntity(Id, pDim3);
pBlockTableRecord->close();
pDim1->close();
pDim3->close();
設定自動标注的精度pnewdimrecord->setDimdec(2); //小數點後兩位
設定标出的值是圖形實際尺寸的一半,而不是尺寸的實際值
AcDbRotatedDimension *pdim;pdim->setDimlfac(0.5)
在我們建立标注樣式或文字樣式時都習慣把他們設一個名字,如setName(_T("仿宋"))
但是取了名字之後有一個問題就是,下次再調用這個程式是,如果程式識别到已經有這個名字的存在,它就不會再對樣式表進行設定了,是以我們很多時候調用了一次,下次調用發現根本就沒起作用就是這個道理。(當然這也是我自己的判斷)。