portál uživatelů
softwarů Autodesk

Automatická aktualizace hmotnosti v popisovém poli výkresu Inventoru

Strojírenství

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…

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á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.