Vytisknout stránku | Zavřít okno

CHYBOVÉ HLÁŠENÍ - NEZOBRAZIT

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: iLogic a ETO
Popis fóra: Funkce a makra iLogic, Inventor Engineering to Order (ETO), automatizace a konfigurace výrobků
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=28251
Datum vytištění: 09.čer.2026 v 17:52


Téma: CHYBOVÉ HLÁŠENÍ - NEZOBRAZIT
Odeslal: Lukáš Záruba
Předmět: CHYBOVÉ HLÁŠENÍ - NEZOBRAZIT
Datum odeslání: 10.led.2019 v 15:39
Je možné připsat samostatný řádek do pravidla který by potlačil chybové zobrazení chybové které je nutné odkliknout přes ok?

Něco jako : Jestli se něco nepovedlo tak si to radši nech pro sebe :)


-------------
Budu rád za radu i případně všelijaké postřehy.



Odpovědi:
Odeslal: Vladimír Michl
Datum odeslání: 10.led.2019 v 15:52
Hlášení pravidla nebo Inventoru? Máte nějaký příklad?
Chybové hlášení pravidla lze potlačit konstrukcí try/catch (viz starší příklady v tomto fóru).

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: Lukáš Záruba
Datum odeslání: 10.led.2019 v 16:08
je to chybové hlášení pravidla. Toto pravidlo zajistí správné zazoomování při uložení dílu. Bohužel jsem ho měl dříve ovládané taky i otevřením dílu. Problém nastává když při otevření výkresu nebo sestavy kdy vyskočí chybová hláška u každého dílu, která vyžaduje kliknutí na OK. Musím podržet enter abych všechny odkliknul.

Pravidlo:

iLogicVb.UpdateWhenDone = True 
 
ThisApplication .ActiveView.Fit

Chybová hláška:




-------------
Budu rád za radu i případně všelijaké postřehy.


Odeslal: Vladimír Michl
Datum odeslání: 10.led.2019 v 17:53
Jsou dvě možnosti - buď nejprve zkontrolovat typ dokumentu a pokračovat jen je-li to součást, anebo uzavřít ty potenciálně chybující funkce do bloku try/catch a ošetřit tak případnou chybu před jejím vyhlášením.

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: Lukáš Záruba
Datum odeslání: 10.led.2019 v 18:50
OK, jak se to dá napsat aby to fungovalo?

-------------
Budu rád za radu i případně všelijaké postřehy.


Odeslal: Vladimír Michl
Datum odeslání: 10.led.2019 v 19:42
Fungovat budou obě cesty. Čistší je asi ta první, ale bez znalosti vašeho kódu nelze konkrétně poradit. Pokud ta chyba hrozí jen u oněch dvou příkazů, mělo by stačit je změnit na:

Try
  iLogicVb.UpdateWhenDone = True
  ThisApplication.ActiveView.Fit
 Catch
End Try


-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: Lukáš Záruba
Datum odeslání: 11.led.2019 v 08:39
Celé pravidlo jsou jen tyto 2 řádky:

iLogicVb.UpdateWhenDone = True 
 
ThisApplication .ActiveView.Fit

nic jiného


-------------
Budu rád za radu i případně všelijaké postřehy.


Odeslal: Vladimír Michl
Datum odeslání: 11.led.2019 v 09:38
Aha, pak by měl stačit ten výše uvedený Try/Catch (Catch může být v tomto případě prázdný).

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: Navara
Datum odeslání: 11.led.2019 v 10:11
Čistší je před voláním pravidla ošetřit kdy ho volat a v samotném pravidle nedopustit NullReferenceException.
ThisApplication by null být nemělo, takže
 
If ThisApplication.ActiveView Is Nothing Then
Return
End If
 
ThisApplication.ActiveView.Fit()


Odeslal: Lukáš Záruba
Datum odeslání: 11.led.2019 v 10:32
Ok, děkuji pánové za rady.

Napsal jsem to nakonec takto  a vypadá to že to funguje.:

iLogicVb.UpdateWhenDone = True
If ThisApplication.ActiveView Is Nothing Then
Return
End If
Try
ThisApplication.ActiveView.Fit()
Catch
End Try


-------------
Budu rád za radu i případně všelijaké postřehy.



Vytisknout stránku | Zavřít okno