Vytisknout stránku | Zavřít okno

Vyplnění předmětu součástí při uložení v sestavě

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=24311
Datum vytištění: 07.kvě.2026 v 17:31


Téma: Vyplnění předmětu součástí při uložení v sestavě
Odeslal: IvoBe
Předmět: Vyplnění předmětu součástí při uložení v sestavě
Datum odeslání: 09.kvě.2017 v 08:10
Zdravím, několik let používým pomocí XTOOLS pravidlo BeforeSave pro to, aby se mi do iVlastnosti Předmět vložil název souboru ipt (pokud není vyplněn). Fungovalo jak při ukládání samostatného ipt, tak při hromadném uložení všech dílů ze sestavy. S příchodem Inventoru 2017 to ze sestavy nefunguje. 
Poradíte nějaké řešení?

BeforeSave.iLogicVb

If iProperties.Value("Summary", "Subject") = "" Then 
iProperties.Value("Summary", "Subject") = UCase(ThisDoc.FileName(False))
End If


-------------
Ivo Bešťák



Odpovědi:
Odeslal: Navara
Datum odeslání: 09.kvě.2017 v 11:24
Ten kód vypadá v pořádku a podle mě se všechno chová, jak má. Problém je v tom, že při prvním uložení je ThisDoc.FileName vždy prázdné
 
Nabízí se možnost využit argumentu SaveFileName, který není prázdný při uložené pomocí spouštěče, ale je prázdný, pokud se pravidlo spustí přímo.
 

'Get file name from event arguments
Dim SaveFileName = RuleArguments("SaveFileName")
'****************************
'Debug only

'Varianta 1
Dim subject1 = UCase(ThisDoc.FileName(False)) ' Tohle je prazdne pri prvnim ulozeni
MsgBox("subject1 = " + subject1)
 
'Varianta 2
Dim subject2 = UCase(System.IO.Path.GetFileNameWithoutExtension(SaveFileName)) 'Tohle je prazdne, pokud se pravidlo spusti primo
MsgBox("subject2 = " + subject2)

'End Debug
'****************************
If iProperties.Value("Summary", "Subject") = "" Then
 iProperties.Value("Summary", "Subject") = subject2
End If
 
 


Odeslal: IvoBe
Datum odeslání: 10.kvě.2017 v 12:45
Děkuji, při ukládání samostatně otevřeného IPT to ale funguje (tak i tak).
Jde mi o situaci, kdy ukládám více IPT, otevřených v sestavě.  Někdy se to spustí pro každý díl, někdy ne. Nevím, jak vynutit, aby se spouštělo.


-------------
Ivo Bešťák


Odeslal: Navara
Datum odeslání: 10.kvě.2017 v 13:09
Jedině spustit "Uložit vše". Ale spouštět by se to mělo vždy, pokud na souboru došlo ke změně.


Odeslal: IvoBe
Datum odeslání: 10.kvě.2017 v 13:39
Ještě jeden dotaz: jaká je rozdíl mezi spuštěním pravidla pomocí XTOOLS a pomocí spouštěče události "Před uložením dokumentu"?

-------------
Ivo Bešťák


Odeslal: Navara
Datum odeslání: 10.kvě.2017 v 15:19
Mechanismus spouštěčů iLogicu není veřejně dokumentovaný, takže jednoznačnou odpověď nemám.
 
Ale pravděpodobně to bude podobné mechanismu v XTools s tím rozdílem, že XTools spouští jedno pravidlo vždy nad každým ukládaným dokumentem, kdežto iLogic má uvnitř dokumentu poznamenáno zda a jaká pravidla má spouštět.
 
Inventor interně poskytuje informaci, že bude ukládat, nebo uložil dokument. Je na autorovi addinu, jak na to zareaguje.



Vytisknout stránku | Zavřít okno