Тема: Как изменить цвет глифа (Gliph)

В совоей custom osnap mode - использую свой глиф.
Все хорошо - т.е. рисуется как надо - но цвет !всегда! желтый.
void MyGlyph::viewportDraw(AcGiViewportDraw* mode)
{
....
mode->subEntityTraits().setColor(5);
mode->geometry().circle(wcsPoint , Gsize, viewDir);
}
Все равно какой цвет я проставляю в setColor (или вообще не проставляю) - рисует желтым. А я хочу зеленым ярко салатового цвета и баста! :) Что делать? (Идти расслабиться пить пиво не предлагать :) )
Почему установка цвета для глифа не фурычит? В worldDraw и viewportDraw - обычных AcDbEntity - все замечательно...

Re: Как изменить цвет глифа (Gliph)

Цвет глифа (маркера AutoSnap) меняется в Options->Drafting->AutoSnap marker color сразу для всех глифов (соотвествующая информация содержится в registry). IMHO невозможность изменить цвет глифа программно сделана умышленно.

Re: Как изменить цвет глифа (Gliph)

Небольшое уточнение. Все-таки изменить цвет глифа программно можно. Для этой цели можно использовать следующий код:

void MyGlyph::viewportDraw(AcGiViewportDraw* mode)
{
    ....
    char sColor[10]; acedGetEnv("AutoSnapColor",sColor); // Сохраняем старый цвет AutoSnap
    acedSetEnv("AutoSnapColor","5"); // Устанавливаем новый номер цвета AutoSnap
    mode->geometry().circle(wcsPoint , Gsize, viewDir); // Рисуем...
    acedSetEnv("AutoSnapColor",sColor); // Восстанавливаем цвет AutoSnap
}

Как ни странно, но это работает. :) При этом твои глифы будут рисоваться заданным тобой цветом, а остальные - установленным пользователем цветом. Это нигде и никак не документировано - так что можешь использовать на всой страх и риск. Будет ли такое работать в следующих версиях - не знаю. Я проверял только под AutoCAD 2006.

Re: Как изменить цвет глифа (Gliph)

Спасибо Александр.
Уже сам докопался до этой переменной - хотел ответить, но ты как всегда опередил :)

Re: Как изменить цвет глифа (Gliph)

Good luck,

Re: Как изменить цвет глифа (Gliph)

Hello,

Re: Как изменить цвет глифа (Gliph)

Nice day,