Тема: Эмуляция insert...

Необходимо написать свою функцию вставки блока (или какого-нибудь объекта), наподобе insert, но с несколько другой функциональностью. Есть такая проблема: стандартный insert отображает блок, который перемащается вместе с курсором - как мне с помощью ObjectArx сделать такое же?

Re: Эмуляция insert...

acedDragGen()

Re: Эмуляция insert...

Делаются такие вещи с помощью AcEdJig.

Re: Эмуляция insert...

Спасибо, AcEdJig работает(функции с приставкой aced интуитивно избегаю). Но, остался один ньюанс - мне необходимо обрабатывать щелчок правой кнопки мышки (для вращения объекта) - это можно как-нибудь реализовать

Re: Эмуляция insert...

Вот кусочек кода, в котором из *Jig* отрабатывается нажатие правой кнопки мыши для вывода всплывающего меню (функция PopupMenu).
AcEdJig::DragStatus    CBlockJig::sampler()
{
    // set the special cursor type. If no cursor type is
    // specified then acquireXXX method selects one for you.
    //
    setSpecialCursorType(AcEdJig::kCrosshair);
// Вот главное: kNullResponseAccepted и позволяет
// получать сигнал о том, что пользователь нажал
// правую кнопку мыши.
    setUserInputControls((UserInputControls)(kDontUpdateLastPoint|kNullResponseAccepted));
    AcGePoint3d startPoint;
    AcGePoint3d secondPoint;
    startPoint=m_pBlockRef->position();
    //aquires points in WCS
    DragStatus stat = AcEdJig::acquirePoint(secondPoint, startPoint);
    if (stat == kNormal)
    {
        if (startPoint == secondPoint) stat = kNoChange;
        else
            m_pBlockRef->setPosition(secondPoint);
    }
   
    switch(stat)
    {
    case kNormal:
    case kNoChange:
        break;
    case kNull:               
        PopupMenu(secondPoint, startPoint);
        stat = kNormal;       
    }
    return stat;
}

Re: Эмуляция insert...

Огромное спасибо!
А я уже собирался ловушку ставить smile