Automatická aktualizace hmotnosti v popisovém poli výkresu Inventoru
Pozn.: Článek je opět určen pro obohacení výkresové šablony o danou funkcionalitu. Pro dosažení funkce je využit iLogic i příkazy VBA, nicméně pro použití není potřeba jejich znalost. Popisované chov…
Pozn.: Článek je opět určen pro obohacení výkresové šablony o danou funkcionalitu. Pro dosažení funkce je využit iLogic i příkazy VBA, nicméně pro použití není potřeba jejich znalost.
Popisované chování je znázorněno na obr. 1. Při změně modelu dojde sice k překreslení pohledů, nicméně výkres již nedonutí model aktualizovat hmotové vlastnosti. Zejména při vypracovávání mnoha výkresů drobných dílů je to poměrně nepříjemná „funkce“.
Obr. 1 – není k dispozici – text, který se zobrazí po změně modelu místo hmotnosti
Pokud se chceme této vady na kráse zbavit, můžeme využít rozšíření Inventoru o modul iLogic. Díky němu jsme schopni například před uložením součásti vyvolat aktualizaci hmotnosti modelu, čímž dosáhneme vždy přesně vypočítané hmotnosti dílu.
Vytvoříme nové pravidlo iLogicu, do nějž nakopírujeme následující text:
Sub Main UpdatePartMassProps()
'Kontrola, jestli se jedná o pohled komponenty
If ThisDrawing.ModelDocument.DocumentType = kPartDocumentObject Then
Dim oDoc As Inventor.PartDocument
'Definice modelu podle prvního výkresového pohledu
oDoc = ThisDrawing.ModelDocument
Dim dMass As Double
'Aktualizace hmotnosti
dMass = oDoc.ComponentDefinition.MassProperties.Mass
'Aktualizace součásti (Komponenty)
oDoc.Update
'Uložení (Komponenty)
oDoc.Save
iLogicVb.UpdateWhenDone = True
MessageBox.Show("Hmotnost byla aktualizována", "Úspěšně dokončeno")
Else
MessageBox.Show("Aktualizace hmotnosti je k dispozici pouze pro výkres součásti", "špatný typ souboru ve výkresu")
Exit Sub
End If
End Sub
Pozn.: jak vytvořit nové pravidlo bylo popsáno v minulém článku.
Pro případné problémy s kopírováním pravidla je zde ke stažení txt soubor.
Spouštění
Pokud chceme mít funkci bezobslužnou, musíme nastavit pro pravidlo automatické spouštění před uložením – tím dosáhneme toho, co bylo popsáno dříve – výkres bude vždy uložen s aktualizovanou hmotností.
Obr. 2 – nastavení spouštění pravidla před uložením
Zjednodušení pravidla
Během vykonávání pravidla se kontroluje, zda první pohled výkresu zobrazuje součást. Pro sestavy či jiné typy by se jednalo o složitější zápis. Pokud se nejedná o sestavu, tak se celá aktualizace přeskakuje a pravidlo vrátí pouze hlášku, že se nejedná o výkres součásti (Obr. 3).
Obr. 3 – kontrola typu výkresu
Pro správný typ vrátí jinou hlášku (Obr. 4)
Obr. 4 – Oznámení o úspěšném dokončení pravidla
Pro pokročilejší práci se soubory a vědomím, že pravidlo funguje jen pro výkres součásti, je možné tyto hlášky odstranit. Stačí z pravidla smazat řádky, které obsahují příkaz MessageBox.Show. Vyčištěné pravidlo bez všech poznámek a hlášek vypadá následovně:
Sub Main UpdatePartMassProps()
If ThisDrawing.ModelDocument.DocumentType = kPartDocumentObject Then
Dim oDoc As Inventor.PartDocument
oDoc = ThisDrawing.ModelDocument
Dim dMass As Double
dMass = oDoc.ComponentDefinition.MassProperties.Mass
oDoc.Update
oDoc.Save
iLogicVb.UpdateWhenDone = True
Exit Sub
End If
End Sub
Obr. 5 – Správně zobrazená hmotnost po spuštění pravidla
Pozn.: V pravidle není podchycena situace, kdy se pravidlo spustí pro prázdný výkres. V tom případě uživatel obdrží varovnou hlášku, nicméně tu stačí pouze potvrdit. Ve většině případů není potřeba ukládat prázdný výkres, takže tato situace není řešena.