Тема: Как из ObjectARX проставить линейный размер между двумя точками

Доброго времени суток.
Подскажите пожалуйста, как из ObjectARX проставить линейный размер между двумя точками, если возможно с примером.
Заранее благодарен

Re: Как из ObjectARX проставить линейный размер между двумя точками

Подскажите,как использовать АсDbDimension()...

Re: Как из ObjectARX проставить линейный размер между двумя точками

static void CreateAlignedDimension(void)
{
  AcGePoint3d p1, p2, p3;
  if (acedGetPoint(NULL,"\nУкажите первую точку: ",asDblArray(p1)) == RTNORM &&
      acedGetPoint(asDblArray(p1),"\nУкажите вторую точку: ",asDblArray(p2)) == RTNORM &&
      acedGetPoint(asDblArray(p1),"\nУкажите местоположение размерной линии: ",asDblArray(p3)) == RTNORM){
    AcDbAlignedDimension *pDim = new AcDbAlignedDimension(p1,p2,p3,_T("<>"));
    if (pDim) {
      // Здесь еще можно настроить размерный стиль и т.д.
      postToDatabase(acdbCurDwg()->currentSpaceId(),pDim);
      pDim->close();
    }
  }
}
static bool postToDatabase (AcDbObjectId blkName, AcDbEntity *pEntity) {
  AcDbBlockTableRecordPointer pBlk (blkName, AcDb::kForWrite) ;
  if ( pBlk.openStatus () != Acad::eOk ) return (false) ;
  return (pBlk->appendAcDbEntity (pEntity) == Acad::eOk) ;
}

Re: Как из ObjectARX проставить линейный размер между двумя точками

Большое спасибо!

Re: Как из ObjectARX проставить линейный размер между двумя точками

Подскажите please, что я делаю не так
ads_point p1;
p1[X] = xObm-500-iobmDiameter; p1[Y] = yObm; p1[Z] = 0;
       
ads_point p2;
p2[X] = xObm-500-iobmDiameter; p2[Y] = yObm-iobmHeight; p2[Z] = 0;
   
ads_point p3;
p3[X] = xObm-500-iobmDiameter-100; p3[Y] = (yObm-iobmHeight)/2; p3[Z] = 0;
       
AcDbAlignedDimension *pDim = new AcDbAlignedDimension(p1,p2,p3,_T("<>"));
   
pDim->setColorIndex(3);
postToDb(pDim);
pDim->close();

Re: Как из ObjectARX проставить линейный размер между двумя точками

> Дмитрий
Как минимум ты перепутал ads_point и AcGePoint3d

Re: Как из ObjectARX проставить линейный размер между двумя точками

Спасибо Александр! Все получилось!