Announcements

Starting in December, we will archive content from the community that is 10 years and older. This FAQ provides more information.

ObjectARX
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Update Viewport after enabling an VisibilityOverrule

3 REPLIES 3
SOLVED
Reply
Message 1 of 4
fehrsZBFB9
819 Views, 3 Replies

Update Viewport after enabling an VisibilityOverrule

Hi Folks,

I have implemented an VisibilityOverrule which temporarily hides all entities of a drawing.

After it is enabled I us a jig class to interact with the user inside the cleared drawing. For all visual styles except wireframe2d, the entities are not hidden automatically. I have to refesh the viewport. The only way I found so far is to call the undocumented function acedColorSettingsChanged. After it is called. All entities are gone.  I tried different ways to achieve the same result but without success.

 

I tried:

acedCommandS(RTSTR, L"REGEN", RTNONE)

acedCommandS(RTSTR, L"REGENALL", RTNONE)

acedUpdateDisplay

acedUpdate

AcGsView::invalidate()

AcGsView::update()

 

What else could it be? Any ideas?

 

Thanks,

Martin

3 REPLIES 3
Message 2 of 4

Try:

acedCommandS(RTSTR, L"REGEN3", RTNONE);

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

Message 3 of 4

It works so far. Sadly it does not regenerate the hidden entities for wireframe2d after the overrule gets disabled. They are still hidden afterwards. For wireframe2d I have to use REGEN instead.

 

Which is the fastest/simplest way to detect if wireframe2d is active?

Message 4 of 4

AcDbObjectPointer<AcDbVisualStyle> pVstyle(acdbGetViewportVisualStyle(), AcDb::kForRead);
if (pVstyle.openStatus() == Acad::eOk)
{
    acutPrintf(L"\nVisual Style is %s WireFrame 2D", 
      (pVstyle->type() != AcGiVisualStyle::k2DWireframe) ? L"NOT" : L"");
}

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

AutoCAD Inside the Factory


Autodesk Design & Make Report