Тема: OSNAP точки

Всем добрый день.
У меня есть Custom Entity, унаследованный от AcDbEntity, который представляет собой что-то вроде акадовской полилинии. Мне нужно сделать привязку к нему, пока у меня работает привязка только к узловым точкам, тоесть к тем, которые я указал в subGetOsnapPoints. Как сделать привязку вдоль линии моего объекта (как это сделано в акадовских линиях и полилиниях). Всё перепробовал, ничего не помагает. Подскажите пожалуйста, какие методы переопределить надо или ещё что? Я пробовал наследовать от AcDbCurve, всё равно не помогает.

Re: OSNAP точки

В чем проблема? Тебе нужно в subGetOsnapPoints задать точки для привязки "ближайшая".

Re: OSNAP точки

Acad::ErrorStatus CMyLine::subGetOsnapPoints (
    AcDb::OsnapMode osnapMode,
    int gsSelectionMark,
    const AcGePoint3d &pickPoint,
    const AcGePoint3d &lastPoint,
    const AcGeMatrix3d &viewXform,
    AcGePoint3dArray &snapPoints,
    AcDbIntArray &geomIds) const
{
    assertReadEnabled();

    switch(osnapMode)
    {
    case kOsModeEnd:
        snapPoints.append(m_Points[0]);
        snapPoints.append(m_Points[1]);
        break;
    case kOsModeMid:
        snapPoints.append(AcGePoint3d((m_Points[1]-m_Points[0]).x/2,(m_Points[1]-m_Points[0]).y/2,(m_Points[1]-m_Points[0]).z/2));
        break;
    case kOsModeNear:
        AcGeLine3d line;
        line.set(m_Points[0],m_Points[1]);
        snapPoints.append(line.closestPointTo(pickPoint));
        break;
    }

    return eOk;
}

Вот так я пробовал, но часть кода, где проверяется kOsModeNear не вызывается, соответственно ничего не работает, кроме конечных точек

Re: OSNAP точки

А привязка "ближайшая" включена?

Re: OSNAP точки

Да вроде, я ничего не отключал. Во всяком случае к акадовским линиям привязка ближайшая работает, вдоль линии курсор "цепляется". А к моему объекту нет.

Re: OSNAP точки

Для проверки отключи все привязки и оставь только "ближайшую".

Re: OSNAP точки

Александр Ривилис,
Спасибо, оказывается не была включена привязка БЛИЖАЙШАЯ
Оказалось это была не много не та привязка, о которой я думал, к акадовским линиям цепляется и без включенной ближайшей привязки. Только она не в виде двух треугольников, а в виде крестика.