- UID
- 120176
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2004-4-1
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
程序要提取图纸中的公差信息,,,如图所示公差标注的数据如0.001,和0.02
我根据联机帮助使用了函数
double
dimtxt() const;
未能实现。
显示的结果如图所示为4.358634
我不知道为什么会出现这种情况.
是不是因为上面的函数用错了,还是别的什么原因,。
哪位知道的请求帮助!!void fitol()
{
// TODO: Implement the command
AcDbBlockTable *pBT;
if( acdbHostApplicationServices()->workingDatabase()
->getSymbolTable(pBT, AcDb::kForRead) != Acad::eOk)// 得到块表对象
return;
AcDbBlockTableRecord *pRec;
if(pBT->getAt(ACDB_MODEL_SPACE, pRec,AcDb::kForRead) !=Acad::eOk) //获得模型空间块表记录
return;
pBT->close();
Acad::ErrorStatus es;
AcDbBlockTableRecordIterator *pIter;
es=pRec->newIterator(pIter); //得到块表容器的迭代指针
AcDbEntity *pEnt;
AcDbFcf *pFcf;
// AcDbDimStyleTableRecord *pRecord;
int i=0;
for (;!pIter->done();pIter->step()) //开始遍历
{
es=pIter->getEntity(pEnt,AcDb::kForRead);//得到实体
if (es!=Acad::eOk)
continue;
//判断是否是指定层和指定实体LINE
if ((!stricmp(pEnt->layer(),"0"))&&(pFcf=AcDbFcf::cast(pEnt)))
{
i++;
acutPrintf("\n第%d个公差标注的值为:%f\n",i, pFcf->dimtxt());///这里出错了
}
pEnt->close();
}
acutPrintf("\n **********共有%d个公差标注**********",i);
delete pIter; //释放叠代指针
pRec->close(); //关闭块表记录
return;
} |
|