- 积分
- 23668
- 明经币
- 个
- 注册时间
- 2011-2-21
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
试着用objectarx编了一个检查标注值的代码,没成想在修改标注内文字颜色及填充颜色处卡住了!放上来,求教一下!
static void zdqMyGroup_jcbz () {
ads_name result ;
struct resbuf *rb;//结果缓冲区链表;
rb = acutBuildList(RTDXF0, ACRX_T("DIMENSION"),RTNONE);
acedPrompt(ACRX_T("\n选择需要检查是否修改过的标注:"));
int iRet =acedSSGet (NULL, NULL, NULL, rb, result) ;
if ( iRet == RTNORM )
{
// 对选择集进行处理
long len; long i=0;
acedSSLength(result,&len);
acutPrintf(ACRX_T("\n已选择%d个标注。"), len);
for(i=0; i<len; i++)
{
// 获得指定元素的ObjectId;
ads_name ent;
acedSSName(result, i, ent);
AcDbObjectId objId;
acdbGetObjectId(objId, ent);
// 获得指向当前元素的指针;
AcDbEntity *pEnt;
acdbOpenAcDbEntity(pEnt, objId, AcDb::kForWrite);
if(pEnt->isKindOf(AcDbDimension::desc()))//如果是标注;
{
ACHAR * dimText;
AcCmColor fillcolor, textcolor;
fillcolor.setColorIndex(1);
textcolor.setColorIndex(2);
AcDbDimension *pDim = AcDbDimension::cast(pEnt);
dimText=pDim->dimensionText();
if((acutWcMatch(dimText, _T("*<>*,")))==-5001)//如果标注值被修改过
{
//打开已修改过创建的标注,对文字的颜色及填充进行修改
(...);//文字颜色TextColor
(...);//使用填充颜色
(...);//填充颜色TextFillColor
}
}
pEnt->close();//关闭当前元素
}
}
} |
|