- UID
- 430649
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2006-4-29
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
我用VS2002调试下面程序,结果正常。
在AUTOCAD 2006中,自己输入了一个Mtext和插入一个块,运行下面这段程序,结果输出两个“成功炸开!!”,文字高度也变成了500,可还是Mtext和块。根本就没炸开。请教:这是那里不对了,该怎样改?
AcDbVoidPtrArray entitySet;
AcDbMText* tent=new AcDbMText;
AcDbBlockReference* bent=new AcDbBlockReference;
for ( pBtrIter->start (); !pBtrIter->done () ; pBtrIter->step () ) {
// First open each entity for read, just to check its class
// if it's what we want, we can upgrade open later
// Don't bother with erased entities
if ( (es =pBtrIter->getEntity (pEnt, AcDb::kForRead)) != Acad::eOk ) {
acutPrintf ("\nCouldn't open entity.");
continue ;
}
if ( pEnt->isA() == AcDbMText::desc () ) {
tent=AcDbMText::cast(pEnt);
if (tent->upgradeOpen()!=Acad::eOk)
{
acutPrintf ("\n出错了!不能打开!!");
continue ;
}
tent->setTextHeight(500);
if (tent->explode(entitySet) != Acad::eOk)
acutPrintf ("\n出错了!不能炸开!!");
else
acutPrintf ("\n成功炸开!!");
int lenth= entitySet.length() ;
}
if ( pEnt->isA() == AcDbBlockReference::desc () ) {
bent=AcDbBlockReference::cast(pEnt);
if (bent->upgradeOpen()!=Acad::eOk)
{
acutPrintf ("\n出错了!不能打开!!");
continue ;
}
if (bent->explode(entitySet) != Acad::eOk)
acutPrintf ("\n出错了!不能炸开!!");
else
acutPrintf ("\n成功炸开!!");
int lenth= entitySet.length() ;
}
pEnt->close () ;
tent->close();
bent->close();
} |
|