////获得当前图形的标注样式表 AcDbDimStyleTable* pDimStyleTbl; acdbHostApplicationServices()->workingDatabase()->getDimStyleTable(pDimStyleTbl,AcDb::kForWrite); ////是否已包含 if(pDimStyleTbl->has(strName)){ pDimStyleTbl->close(); return; } ////创建新的标注样式表 AcDbDimStyleTableRecord* pDimStyleTblRcd; pDimStyleTblRcd = new AcDbDimStyleTableRecord(); ////设置标注样式的特性 pDimStyleTblRcd->setName(strName); pDimStyleTblRcd->setDimasz(50*bili); // 箭头长度 pDimStyleTblRcd->setDimblk("_ARCHTICK");//设置箭头的形状为建筑标记 pDimStyleTblRcd->setDimexe(30*bili); // 指定尺寸界线超出尺寸线的距离 pDimStyleTblRcd->setDimlfac(1);//比例因子 AcCmColor suiceng; suiceng.setColorIndex(256); pDimStyleTblRcd->setDimclrd(suiceng);//为尺寸线、箭头和标注引线指定颜色,0为随图层 pDimStyleTblRcd->setDimclre(suiceng);//为尺寸界线指定颜色。此颜色可以是任意有效的颜色编号 pDimStyleTblRcd->setDimclrt(suiceng);//为标注文字指定颜色,0为随图层 pDimStyleTblRcd->setDimdec(0);//设置标注主单位显示的小数位位数,0为随图层 pDimStyleTblRcd->setDimexo(30*bili);//指定尺寸界线偏移原点的距离 pDimStyleTblRcd->setDimgap(10*bili);//文字从尺寸线偏移 '当尺寸线分成段以在两段之间放置标注文字时,设置标注文字周围的距离 pDimStyleTblRcd->setDimjust(0);//控制标注文字的水平位置 pDimStyleTblRcd->setDimtix(1);//设置标注文字始终绘制在尺寸界线之间 //'.SetVariable "DimJust", 0 '控制标注文字的水平位置 // '0 将文字置于尺寸线之上,并在尺寸界线之间置中对正 // '1 紧邻第一条尺寸界线放置标注文字 // '2 紧邻第二条尺寸界线放置标注文字 // '3 将标注文字放在第一条尺寸界线以上,并与之对齐 //'4 将标注文字放在第二条尺寸界线以上,并与之对齐 pDimStyleTblRcd->setDimtmove(0);//设置标注文字的移动规则 //'0 尺寸线和标注文字一起移动 //'1 在移动标注文字时添加一条引线 // '2 允许标注文字自由移动而不用添加引线 pDimStyleTblRcd->setDimtxsty(lineId2);//指定标注的文字样式 pDimStyleTblRcd->setDimtxt(100);//指定标注文字的高度,除非当前文字样式具有固定的高度 pDimStyleTblRcd->setDimtad(1*bili); // 文字位于标注线的上方 ////将标注样式表记录添加到标注样式表中 pDimStyleTbl->add(pDimStyleTblRcd); pDimStyleTblRcd->close(); pDimStyleTbl->close();
箭头类型:
"" | 实心闭合 |
"_DOT" | 点 |
"_DOTSMALL" | 小点 |
"_DOTBLANK" | 空心点 |
"_ORIGIN" | 原点标记 |
"_ORIGIN2" | 原点标记 2 |
"_OPEN" | 打开 |
"_OPEN90" | 直角 |
"_OPEN30" | 30 度角 |
"_CLOSED" | 闭合 |
"_SMALL" | 空心小点 |
"_NONE" | 无 |
"_OBLIQUE" | 倾斜 |
"_BOXFILLED" | 实心框 |
"_BOXBLANK" | 框 |
"_CLOSEDBLANK" | 空心闭合 |
"_DATUMFILLED" | 实心基准三角形 |
"_DATUMBLANK" | 基准三角形 |
"_INTEGRAL" | 完整标记 |
"_ARCHTICK" | 建筑标记 |