Vítejte !   Přihlášení | Registrace
Hlavní menu
CATIA fórum.cz
Novinky
Seriál CATIA
Obecně o CAD
Novinky ze světa DS
Makra pro CATIA V5
Diskuse
Vytvořit téma
Koncepty
Seznam oblíbených
Soukromé zprávy
Pravidla
Live CHAT
VIP žádost
Základy Catia
Ke stažení
Doporučujeme
Pracovní příležitosti
Reklama a kampaně
O fóru
Nápověda

Update sestavy

UživatelPříspěvek
Pavel Krsek

Poslat zprávu | Profil
Datum: 21.11. 2011 | Zobrazeno: 10122x
Konfigurace CATIA:

Text dotazu:
Mam otevrenou sestavu do ktere spustim formular VBA - pomoci neho se modifikuji urcite parametry v jednom partu dane sestavy.
Dana modifikace vyvolava update sestavy.
Tento update + "prekresleni obrazovky" bych chtel provest pred uzavrenim formulare VBA.
Kdyz do formulare pridam tlacitko se scriptem na update sestavy, tak to sice update provede, ale prekresleni obrazovky se provede az po ukonceni VBA. Zkousel jsem napr. fintu pres Hide (furmular) - UPDATE - SHOW, ale to tez nefunguje.
Poradi nekdo jak to provest - co napsat do scriptu?
Diky.

Ing Jan Cinert

Poslat zprávu | Profil
[#2418] | Publikováno: 21.11. 2011 - 15:28
Setkal jsem se s tím také, skript už dávno doběhl (na začátku se formulář skryl, na konci opět zobrazil a update byl mezi tím, takže evidentně musel proběhnout), ale Catii ještě chvilí trvalo, než se překreslila obrazovka a začala reagovat. Je to dáno chováním API, které je někdy jakoby nesynchronní (už má informace o tom, že update se podařil, ale ještě nějakou dobu zpracovává informace pro přegenerování modelu a obrazu). Pokud se to samo nevzpamatuje, zkusil bych to řešit takto:
CATIA.ActiveWindow.ActiveViewer.Update()
To by mělo regenerovat obsah aktuálního prohlížeče, v dokumentaci k tomu víc nepíšou.
Pavel Krsek

Poslat zprávu | Profil
[#2422] | Publikováno: 22.11. 2011 - 06:01
Diky za typ.
Ani bohuzel toto nepomohlo. Zkousel jsem k tlacitku "Update" pridat jeste:

CATIA.ActiveWindow.ActiveViewer.Update

CATIA.ActiveWindow.ActiveViewer.Reframe


ale na 3D modelu se nic nezmeni. Az po ukonceni makra se zobrazi jiz "updatovana" sestava.
Pavel Krsek

Poslat zprávu | Profil
[#2423] | Publikováno: 22.11. 2011 - 06:08
Tak uz jsem to nasel na nemeckem foru.
Staci pridat k tlacitku prikaz

CATIA.RefreshDisplay = True


Pak to funguje jak jsem si predstavoval.
Ing Jan Cinert

Poslat zprávu | Profil
[#2424] | Publikováno: 22.11. 2011 - 08:33
Ano, tahle funkce zapíná a vypíná překreslování obrazovky v průběhu běhu skriptu. Standartně by ale měla být zapnutá.
Mělo by tedy stačit tenhle řádek umístit do funkce, která se spouští při načítání formuláře.

Podobná funkce, kterou jsem často používal, je
CATIA.Interactive = False
která vypne interaktivitu (na nic se nedá kliknout). Vždy na začátku běhu skriptu jsem ji vypnul, aby uživatel nemohl nic ovlivnit a na konci zase zapnul. Jediné riziko spočíval v tom, když skript nedoběhl a CATIA zůstala "mrtvá", pak se muselo restartovat.


Uživatel nepřihlášen

Pro zobrazení obsahu stránky / provedení akce (vytvoření nového téma, napsání odpovědi do diskuse apod.) musíte být přihlášeni.