Тема: О "подсвечивании" объектов (highlight)

Есть ли альтернатива highlight'у? Нужно именно подсветить какой-либо примитив, чтобы он стал выделяться среди остальных (но не выделять в смысле занесения в selection set).
Что не нравится в highlight'e - что обязательно нужен соответствующий unhighlight, а если команду прервать, то он может быть и не вызван...
Например, очень импонирует подсветка примитива в 2006м акаде, когда курсор на него наводишь. Можно ли самому так объект подсветить?

Re: О "подсвечивании" объектов (highlight)

> Ведмедь
А почему бы не написать что-нибудь аналогичное такому классу:

class HighlightEntity
{
public:
  HighlightEntity(AcDbObjectId id) { if (id.isNull()) return; ids.append(id);  HighlightAll(true); }
  HighlightEntity(AcDbObjectIdArray& idss) {ids = idss;  HighlightAll(true); }
  ~HighlightEntity() {HighlightAll(false);}
private:
  void HighlightAll(bool hi)
  {
    if (ids.isEmpty()) return;
    AcAxDocLock lc(ids[0].database());
    if (lc.lockStatus() != Acad::eOk) return;
    for (int i=0; i < ids.length(); i++) {
      AcDbObjectPointer<AcDbEntity> pEnt(ids[i],AcDb::kForWrite);
      if (pEnt.openStatus() != Acad::eOk) continue;
      pEnt->draw();
      if (hi) pEnt->highlight(); else  pEnt->unhighlight();
    }
  }
  AcDbObjectIdArray ids;
};

И использовать его по мере необходимости. Заботиться о unhighlight уже необходимости не будет.

Re: О "подсвечивании" объектов (highlight)

Александр, спасибо, идея хорошая, в ряде случаев действительно поможет.
А насчет подсветки как в 2006м никто ничего не подскажет?

Re: О "подсвечивании" объектов (highlight)

> Ведмедь
Для этой цели тебе понадобится создать реактор унаследованный от AcEdInputPointManager и много головной боли...

Re: О "подсвечивании" объектов (highlight)

Нее, мне не надо чтобы от движений мышки примитивы подсвечивались. Я имею в виду сам вид подсветки, который появился в 2006м автокаде при наведении на примитив курсора. Highlight делает так, чтолинии становятся пунктирными, а в 2006м линии становятся жирнее как бы. Я вот и думаю, может какой новый метод появился у объекта или это "фишка" системы отображения..

Re: О "подсвечивании" объектов (highlight)

> Ведмедь
Метода нового не появилось - видимо "фишка".

Re: О "подсвечивании" объектов (highlight)

надо играть с
acgsGetHighlightLineWeight ()
acgsGetHighlightLinePattern()
acgsSetHighlightLineWeight (Adesk::UInt16)
acgsSetHighlightLinePattern(AcGs::LinePattern)

Re: О "подсвечивании" объектов (highlight)

> damnedkluev
Спасибо. Забавные получаются эффекты.
Очень похоже, что в 2006 используется комбинация AcGs::eSolid + weight 3 и поверх него AcGs::eDotted + weight=1. Добиться такого же эффекта просто сочетанием pattern и weight не получается.
Спасибо всем откликнувшимся.

Re: О "подсвечивании" объектов (highlight)

Здраве!
Подскажите, пожалуйста, можно ли подсветить объекты,  входящие в состав блока?  Метод  ent->highlight() на них не помогает. Как быть? Подскажите!

Re: О "подсвечивании" объектов (highlight)

Так на C#: http://through-the-interface.typepad.co … ng_an.html
Идея должна быть понятна. В ObjectARX SDK есть пример на эту же тему: samples\entity\hilight_dg