Zobrazit plnou verzi příspěvku: Spouštěče událostí

dusek
07.10.2011, 22:09
Inventor má v iLogic předem nadefinované spouštěče událostí. Lze k těmto spouštěčům přidávat nové? Dost mi tam chybí spouštěč při tisku, tak jestli si to mohu nějak přizpůsobit.DíkyV.D.


Vladimír Michl
07.10.2011, 23:11
Na jiné typy událostí (třeba i tisk) se lze "pověsit" pomocí VBA či .NET, nikoliv přímo iLogicem.

dusek
07.10.2011, 23:52
A vy držíte noční službu? :-)Nešlo by vypracovat nějaký návod či postup? :-) To už asi bude jiný "programování" ...


Vladimír Michl
09.10.2011, 10:45
Noční i denní :-)
 
"Návod na programování" bohužel nepůjde - ano, znamená to už klasické programování, nikoliv jen zjednodušené prostředí iLogic. Možná ale napište co přesně potřebujete, možná to půjde zajistit jinou metodou než reaktorem na Print. Třeba doplněním nějakého tlačítka do ribbonu nebo funkcí Vaultu.

dusek
09.10.2011, 14:30
Ono těch případů bude asi víc, ale momentálně se mi jedná o tento případ:Ve výkrese v rohovém razítku máme hmotnost. Čas od času se místo údaje hmotnosti ukáže, že hmotnost "není". V nové verzi se to teď jmenuje jinak, ale to si teď nevzpomenu jak. Aby se objevila správna hodnota, stačí aktualizovat hmotnost modelu a už se tam ukáže co má. Tomuhle všemu rozumím. Problém nastane když hmotnost není aktualizovaná a já pošlu výkres na tisk. Vytiskne se to bez hmotnosti. A mě by se líbilo, kdyby to před každým tiskem tu hmotnost aktualizivalo, čímž by se zamezilo tomu aby to vytisklo výkres bez údaje hmotnosti. Když nad tím tak přemýšlím, tak to samé by se mi hodilo i při zařazování do Vaultu, že se mi stane, že zařadím výkres a místo hmotnosti tam je "není". Tím si tak vyloučím možnost tisku rovnou z Vaultu.Když tak nad tím přemýšlím, tak obecně spouštěče Před zařazením a Před tiskem tam chybí.Možná by stálo za zvážení jestli by CadStudio neudělalo nějakou dodělávku přístupnou například jen pro VIP zákazníky. :-)


Navara
09.10.2011, 23:15
Co se týká hmotnosti, tak tam je možnost využít X-Tools 2.0, kde je možné nechat si vytvořit uživatelskou vlastnost s hodnotou hmotnosti, která se aktualizuje při uložení dokumentu. V razítku se potom odkázat na tuto vlastnost, která není prázdná. Nevýhodou může být nepřesná hodnota u sestav, pokud dojde ke změně dílu bez aktualizace a uložení sestavy.

Co se týká spouštěčů před tiskem a před zařazením, tak v plném API jsou nepřímo dostupné. Problém ale je, jak byste si je dokázal sám obsloužit bez použití plného API.
Další možností by bylo vytvoření vlastního tlačítka/příkazu pro tisk a zařazení, které by provedlo příslušnou aktualizaci a následně spustilo původní příkaz.

dusek
10.10.2011, 13:58
V rámci AutoMaker nám hmotnost nějak takhle funguje, bohužel problém je v tom, že se to aktualizuje až po uložení. A pak se může stát, že vytisknu výkres s neaktuální hmotností ...Vytváření vlastních ikonek je pro mne Vysoká škola programátorská a obávám se, že mi tu nikdo peníze na zaplacení CadStudia nedá. Když jsem tak nad tím přemýšlel, tak tyto dva spouštěče v seznamu chybí. Napadá mne spousta případů, kdy bych potřeboval hlídat hodnoty před tiskem nebo před zařazením. Když už by to nešlo přes CadStudio, tak bych minimálně poslal "zlepšovák" na AutoDesk. Pro ně by doplnění takovýchto funkci být problém nemusel, ne? :-)


Navara
16.10.2011, 21:07
Vytváření ikonek není tak složité, jak se může na první pohed zdát. Pokud máte vytvořené makro ve VBA (ne v iLogicu!), tak je na to postup přes úpravu uživatelských příkazů. Viz obrázek

 
Co se týká samotného kódu, tak je složen ze dvou částí.
První část aktualizuje hmotnost a druhá spouští libovolný příkaz inventoru. Například tisk.
 
----
Sub PrintWithUpdateMass()    'Aktualizace hmotnosti vsech odkazovanych dokumentu    Dim drw As DrawingDocument    Set drw = ThisApplication.ActiveDocument        Dim doc As Document    Dim mass As Double        For Each doc In drw.AllReferencedDocuments        mass = doc.ComponentDefinition.MassProperties.mass    Next        Call drw.Update        'Spusteni tisku, nebo jineho prikazu    Call ThisApplication.CommandManager.ControlDefinitions("AppFilePrintCmd").Execute    End Sub
---

Pozn.: V tomto kódu chybí ošetření chyb pro přehednost kódu.
 
Jak naložit s tímto makrem se dočtete zde
http://helpdesk.cadstudio.cz/helpdesk.html?id=F146