Народ! Не парьте себе мозг этой Джигой!!!
Лучше сделайте InputPointMonitor и отрисовывайте нужные объекты через функцию draw()
AcEdInputPointMonitor::monitorInputPoint(...)
{
AcGeVector3d vec=computedPoint-otherPoint;
//матрица переноса
mx(0,3)=vec[X];
mx(1,3)=vec[Y];
mx(2,3)=vec[Z];
AcGeMatrix3d antimatrix;
antimatrix(0,3)=-vec[X];
antimatrix(1,3)=-vec[Y];
antimatrix(2,3)=-vec[Z];
AcDbCircle *pCirc=new AcDbCircle(...);
pCirc->transformBy(mx);//для переноса в нужное место
mode->geometry().draw(pCirc);
delete pCirc;
или так
for (int i=0; i<arr.length(); i++)
{
arr[i]->transformBy(mx);
mode->geometry().draw(arr[i]);
arr[i]->transformBy(antimatrix);
}
/*arr - массив указателей на Ентити, переданных, скажем, из другого чертежа. Затем этот массив можно разместить в текущем чертеже*/
return Acad::eOk;
}