Problem with creating custom text edited imension
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi.
I'm trying to create dimention for my grip point, using custom edited text. For example when I use distance editing by AcDbAlignedDimension class I want to support different measures, so user string "10m" means istance 10 meaters, and string "10mm" means 10 millimeaters and so on.
So I try to use setCustomStringFunc to solve this problem, but my function work only when I enter a numeric value (if I enter another sybol it doesn't called). Here the part of me code:
void MybObject::dim_gripDimensionFunc(AcDbGripData* pThis, const AcDbObjectId& entId, double dimScale, AcDbDimDataPtrArray& arrDimData)
{
AcDbAlignedDimension *pGradeDim = new AcDbAlignedDimension();
pGradeDim->setDatabaseDefaults(acdbHostApplicationServices()->workingDatabase());
pGradeDim->setNormal(AcGeVector3d::kZAxis);
pGradeDim->setElevation(0.0);
pGradeDim->setInspection(false); //As far as I unerstand it might swich off checking of numeric entering
AcDbDimData *pDimData = new AcDbDimData(pGradeDim);
pDimData->setDimFocal(true);
pDimData->setOwnerId(entId);
pDimData->setDimEditable(true);
pDimData->setCustomString(true);
pDimData->setCustomStringFunc(dim_setCustomStringFunc);
//dim_setCustomStringFunc - is my function, which might interpritate entered string, but if I unput something ifferent from //number (for example "10m") it doesn't even call this function!
pDimData->setAppData(pData);
arrDimData.append(pDimData);
}
Thanks.