Каюсь — но найти не смог ни в конференции ни в хелпе. Очень много свойств, они разбросаны по разным объектам, запутался окончательно. :(
Прикольный вопрос :)
А как у нас с английским? Если ARX правильно стал на студию, то должны выпадать варианты(подсказки) дальнейшего продолжения строки.
Ладно. Вообще это все можно было написать и вместе, но чтоб было понятней побил на куски.
Для текста и мтекста (точки вставки. Это не обязательно нижний левый угол):
AcDbText * pText = AcDbText::cast(obj);
AcDbMText * pMText = AcDbMText::cast(obj);
if (pText != 0){
AcGePoint3d pt = pText->position();
....
}
else if (pMText != 0)
{
AcGePoint3d pt = pMText->location();
...
}
Для точки:
AcDbPoint * pPoint = AcDbPoint::cast(obj);
if (pPoint != 0){
AcGePoint3d pt = pPoint->position();
...
}
Для блока:
AcDbObjectPointer<AcDbBlockReference>pEnt(ObjectId,AcDb::kForRead);
if (pEnt.penStatus() == Acad::eOk){
AcGePoint3d pt = pEnt->position();
...
}
А в общем случае, для площадных и линейных объектов (но не для штриховки) приблизительо так:
AcGePoint3dArray ptArray;
AcDbIntArray a1, a2;
pEntity->getGripPoints(ptArray,a1,a2);
Но лучше не напрямую через энтити, а привязываться через cast. Тогда ты точно будешь знать, что у тебя за примитив. Например так AcDbSolid * pSolid = AcDbSolid::cast(obj); - для фигуры и т.п.