1 iLogic Basics
1.1 User Interface
iLogic commands are always found on the Manage > iLogic.
Activating the iLogic Browser will launch a new panel.
We add a new rule by clicking on Add rule or by right-clicking in the area of the iLogic browser that we have now activated. The new rule needs to be named.
1.2 Creating rules
- Snippets – the most important a most used iLogic commands directly from Inventor’s API
- Model options – just usual assembly tree, but with access to parameters and constraints*
- Parameters – shows the component’s parameters
- Working area – the text editor for writing code, commands are colored differently, so you can easily recognize notes, key words, displayed text or iLogic commands; the editor also contains syntax check (shown as a red wavy underline) and program check, which throws an error when there is any incorrectly used functions or variables. The error window is shown after clicking on Save button and contains infomations about the error, especially number of line that contains the erorr. Program also contains system check, which throws an error at the runtime (wrong argument, used variable, etc.)
*Next to the „Model“ tab, there are other tabs – „Options“, „Search and replace“ and „Wizards“:
- Options – you can set the behavior of the rule, whether it sould be started immediately or turned off or it should be evaluated as direct VB code; you can also set the color and font of written text in the editor
- Search and replace – it is feature for quick editing of a rule, if we need to replace a repeating part of the code (e.g. a variable or parameter) with something else, it edits the specified part with a new value in the entire rule or in all rules
- Wizards – enable creating message boxes, conditions for parameters or snapping camera coordinates by configuration window
Example 1 – MessageBox
Create simple user project and create also new part named S01.ipt. Start iLogic Browser and add a new rule named Hello World. Write the following text to the editor:
MessageBox.Show(„HelloWorld“, „Window title“)
Continue by clicking OK button. The rule is now saved and our window just appeared at the center of the screen. The editor window has closed and the rule is shown in the iLogic browser. If we wanted to run the rule again or edit it, right-click on rule icon and select one option from selection.
Example 2 – Creation of MessageBox via Wizard
In Example 1, we demonstrated the creation of a simple rule that, when triggered, displays a popup window. In this example, we will show you how to create such a window using the Message Field on the Wizards tab. Upon clicking the icon, a straightforward editing form will appear, which we will fill out according to the assignment.
By clicking OK button, the following text will appear in the editor:
i = MessageBox.Show(„Do you want coffee?“, „Question“, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button3)
MessageBoxButtons.YesNoCancel – enumerator defining buttons for message box
MessageBoxIcon.Question – enumerator defining icon for message box
MessageBoxDefaultButton.Button3 – enumerator defining default button for message box
You can notice that the entire window is defined for variable „i“, implying that we are expected to work further with the window, for example, include it in some condition. In this case, the variable can be deleted.
1.3 Resolution of text in rules
2 Variables
Variable is any user-created name in the program that carries information and from which we either read this information or store it. There are three basic types of variables in iLogic:
- parameters
- iProperties
- local variables
2.1 Parameters
The parameters we work with in iLogic are the same ones we define when creating a model and can be found in the parameter table. Essentially, they represent the dimensions of specific features in the model (extrusion, rotation, dragging, chamfering, etc.). Therefore, whenever we enter a number in Inventor, a parameter is automatically created.
Recognized parameters entered into the working section of the editor window are marked with a blue color. If a parameter is not marked in blue, it does not exist, and the program treats the expression as a local variable.
Example 3 – Work with parameters
We will create a rectangular sketch of the component, where we will define the dimensions of the shape as follows: width = 100 and length = 300. We will then create a new rule named „area“ and write the following lines:
width = 100 mm
length = 300 mm
z = (width * length)
MessageBox.Show(„Sketch area is „ & vbLf & z & “ mm2″, „Area“)
Now, the rule will display the result of the performed operation in a pop-up window, in our case, the product of two values. Similarly, various mathematical operations can be performed with parameters in this way.
Multivalue parameter
With the introduction of iLogic into Inventor, the concept of multiparameters emerged. These are parameters in which multiple values can be stored, and these values can be triggered using conditions and other keywords. In the following example, we will demonstrate how to create such a parameter.
Example 4 – Creation of multivalue parameter
On the Manage tab, in the parameter table, we create a text parameter named „height“ and confirm it. Then, we right-click and select „Edit Multi-Value List“ from the list. Next, in the editing window, we write the values we want to assign to the parameter. In the upper field „Add New Items,“ we add the value „LOW,“ and by clicking the „Add“ button, the value will be assigned to the parameter. Similarly, we assign the remaining values „MEDIUM“ and „HIGH“ to the parameter using the same method. Na kartě Správa v tabulce parametrů vytvoříme textový parametr s názvem „vyska“ a potvrdíme. Klikneme pravým a v seznamu vybereme „Upravit seznam s více hodnotami“. Následně v editačním okně zapíšeme, jaké hodnoty chceme parametru přiřadit. Do horního pole „Přidat nové položky“ přidáme hodnotu „NÍZKÉ“ a kliknutím na tlačítko „Přidat“ se nám hodnota přiřadí k parametru. Obdobným způsobem přiřadíme k parametru i zbývající hodnoty „STŘEDNÍ“ a „VYSOKÉ“.
K multiparametrům vytvořených zde se ještě vrátíme v sekci „Podmínky“ a „Formuláře“.
2.2 iVlastnosti
Ivlastnosti jsou takový druh vlastností, které si nese každý vytvořený dokument v Inventoru. V podstatě se jedná o proměnné, kterým buď pomocí dialogového okna nebo iLogicu přiřazujeme hodnoty, se kterými můžeme dále pracovat. Rozlišujeme 3 typy iVlastností:
- systémové
- fyzikální
- uživatelské
Systémové
Pro zápis do systémových iVlastností je nutné do fragmentu zapsat anglický název této vlastnosti:
iProperties.Value(„Summary“, „Title“) = „Zadaná hodnota“
Seznam anglických výrazů pro jednotlivé systémové iVlastnosti
Fyzikální
iProperties.Material – Materiál součásti
iProperties.PartColor – Barva součásti
iProperties.Mass – Hmotnost
iProperties.Volume – Objem
iProperties.Area – Povrch
iProperties.CenterOfGravity.X – Těžiště (v ose x) – možno nahradit za y/z
Uživatelské
Do uživatelských iVlastností lze zapisovat stejně jako do systémových, jen do závorky na místo popisu karty zapíšeme „custom“ a mezi další uvozovky zapíšeme název iVlastnosti – pokud uživatelská vlastnost neexistuje, automaticky se vytvoří:
iProperties.Value(„Custom“, „Libovolný název“) = „Zadaná hodnota“
Podle typu hodnoty proměnné se iVlastnost rozděluje na Text, Počet, Datum, Ano/ne
iProperties.Value(„Custom“, „Text“) = „Textovy rezetec“
iProperties.Value(„Custom“, „Cislo“) = 20
iProperties.Value(„Custom“, „Boolean“) = True
iProperties.Value(„Custom“, „Datum“) = DateValue(„23.11.2020“)
Příklad 5 – Zapisování iVlastností
Nemáme-li, nastavíme naší součásti materiál, například ocel. Otevřeme nové pravidlo a opíšeme řádky níže:
MessageBox.Show(„Hmotnost je „ & Round(iProperties.Mass, 1) & “ kg“ & vbLf & „Objem je „ & Round(iProperties.Volume, 1) _
& “ mm3″ & vbLf & „Vytvořil „ & iProperties.Value(„Summary“, „Author“), „iVlastnosti“)
Pravidlo nám vypíše definované iVlastnosti do vyskakovacího okna.
2.3 Lokální proměnné
Lokální proměnné jsou takový druh proměnné, které fungují pouze v pravidle a po dobu běhu pravidla si uchovají hodnotu, kterou jim přiřadíme (text, číslo, true/false). V pravidle jsou označeny hnědou barvou.
2.4 Typy proměnných
Pro zápis v programu se proměnné zpravidla deklarují, tzn. přiřazuje se k nim typ. K tomu slouží příkaz Dim [NázevProměnné] As [TypProměnné]. Typů proměnných existuje mnoho, pro naše příklady však postačí čtyři základní typy.
Integer
Pomocí tohoto typu deklarujeme celočíselné proměnné, přičemž velikost zapsaného čísla je maximálně 32 bitů (-2,147,483,648 až 2,147,483,647). Potřebujeme-li větší číslo, použijeme typ Long, který zapíše číslo o velikosti 64 bitů (-9,223,372,036,854,775,808 až 9,223,372,036,854,775,807).
Double
Typ Double je podobný jako Integer, ale daleko přesnější, jelikož dokáže zapsat i desetinná čísla.
Příklad 6 – Využití typu Integer a Double
Na tomto příkladu si ukážeme jednoduchou matematickou operaci. Zkopírujeme si jednotlivě následující sloupce, uložíme a spustíme. Mějme na paměti, že Integer nám ukáže pouze celá čísla.
Dim a As Integer, b As Integer, c As Integer
Dim x As Double, y As Double, z As Double
a = 5 : b = 6 : c = a * b : MessageBox.Show(c)
x = 5.258 : y = 7.746 : z = (PI*x)/y : MessageBox.Show(z)
String
Proměnná String deklaruje text a textové řetězce.
Příklad 7 – Zobrazení textu
Pro každý typ se proměnné definují stejně, liší se pouze zápis.
Dim x As String = „kafe“
MessageBox.Show(„K pití si dám: „ & x, „Chci“)
Praktický příklad použití řetězce string – program čte text v uvozovkách a dle něj následně přiřadí určité vlastnosti jednotlivým hladinám při exportu do DXF:
Dim sOut As String = „FLAT PATTERN DWG?AcadVersion=2000&RebaseGeometry=False&OuterProfileLayer=VNĚJŠÍ ŘEZ&SimplifySplines=True&SplineTolerance=0.01″ _
& „&AdvancedLegacyExport=False&MergeProfilesIntoPolyline=False“ _
S řetězci lze pracovat i více způsoby než jen zapisováním. Lze použít například funkce:
1) pro oddělení textu
doc = ThisApplication.ActiveDocument.FullFileName
x = Right(doc, 7) : MessageBox.Show(x, „Title“)
y = Left(doc, 3) : MessageBox.Show(y, „Title“)
z = Len(doc) : MessageBox.Show(z, „Title“)
2) pro separaci řetězce dle znaku
Dim Delic() As Char = {„\“}
cesta = „C:\FIRMY\ŠKOLENÍ\DATA\S01.ipt“
usek = cesta.Split(Delic)
cislo_soucasti = usek(4)
MessageBox.Show(cislo_soucasti, „Title“)
Znak je označen jako Char a lze ho považovat za řetězec o jednom písmenu/znaku. Funkcí Split rozdělíme řetězec dle tohoto znaku na úseky a necháme si vypsat jen ten úsek, který, potřebujeme.
3) pro zapsání řetězce velkými či malými písmeny
Vytvoříme textový parametr FIRMA a zapíšeme její hodnotu. Výsledek bude iVlastnost zapsaná velkými písmeny.
iProperties.Value(„Custom“, „FIRMA“) = UCase(FIRMA)
Opačně lze zapsat výsledek i malými písmeny.
iProperties.Value(„Custom“, „FIRMA“) = LCase(FIRMA)
Boolean
Proměnná Boolean deklaruje jen hodnotu pravda/nepravda. Samostatně se moc nepoužívá, spíše bývá členem podmínky nebo většího celku, stejně jako v následujícím příkladu.
Příklad 8 – Použití proměnné Boolean
Vraťme se k příkladu 3. kde jsme si definovali parametry sirka a delka. Nejprve potlačíme pravidlo „obsah“, jelikož zde máme definovanou šířku na 100 mm a nedovolilo by nám součást dále upravovat. Nyní si zde vytvořme nové pravidlo s názvem „Kontrola“, kam si zapíšeme kód níže. Uložíme a spustíme. Nic se nestalo, protože šířka je stále 100 mm, což splňuje podmínku větší/menší. Změňme v tabulce parametrů šířku třeba na 50 mm a objeví se nám hláška ve vyskakovacím okně.
Dim rozmer As Double = 100 mm
Dim kontrola As Boolean
If rozmer <> sirka Then
kontrola = True
If kontrola = True Then
MessageBox.Show(„Šířka není 100 mm“, „Title“)
End If
Else kontrola = False
If kontrola = False Then
MessageBox.Show(„Šířka je 100 mm“, „Title“)
End If
End If
Máme dříve definovaný parametr sirka. K tomu si přidáme lokální proměnnou rozmer, podle které budeme kontrolovat a druhou proměnnou kontrola, která doplní splnění podmínky. Podmínka samotná nám pak říká, že pokud je šířka větší nebo menší a kontrola = pravda (tedy že ji chceme spustit), vyskočí nám hláška s popisem. Proměnná kontrola zde není třeba, jde pouze o ukázku implementace proměnné typu Boolean do pravidla.
Object
Pojmem object souhrnně nazýváme takový druh proměnné, která zastupuje specifickou položku či součást v Inventoru. Patří sem plochy, náčrty, prvky, dokumenty, a spousta dalších. Každý objekt má svůj specifický název a je třeba jej správně definovat pro přístup k jeho funkcím a vlastnostem.
Nápovědu pro zapisování objektů nalezneme přímo v Inventoru v nápovědě pod položkou „Programování – nápověda k rozhraním API“. Otevřeme se nápovědní okno, kde si můžeme požadovaný objekt či entitu vyhledat i s možnostmi jejich zápisu do programového prostředí iLogicu.
Okno API nápovědy pro iLogic
Příklad 9 – Použití objektu a vytvoření parametru
Na příkladu níže si pomocí objektů definujících dokument zkusíme vytvořit parametr.
Dim oDoc As PartDocument = ThisDoc.Document
Dim oPartCompDef As PartComponentDefinition = oDoc.ComponentDefinition
Dim oParams As Parameters = oPartCompDef.Parameters
Dim oUserParams As UserParameters = oParams.UserParameters
oUserParams.AddByValue(„ROZMER_X“,100,UnitsTypeEnum.kMillimeterLengthUnits)
3 Podmínky
Podmínky neboli podmíněné příkazy jsou programové funkce, které dle zadaných kritérií vykonají určitou akci. Existuje několik druhů, pro potřeby tohoto školení však postačí základních 5 druhů.
3.1 IF-THEN-ELSE
V příkazu If-Then-Else se jedna sada akcí provede, pokud je podmínka pravdivá, a druhá sada akcí se provede, pokud podmínka není pravdivá. Po provedení příkazů pro pravdivou nebo nepravdivou podmínku pokračuje programové řízení dalším příkazem.
Příklad 10 – Ukázka použití podmínky If-Then-Else
V tomto příkladu si ukážeme změnu barvy součásti na základě velikosti parametru z vysunutí. V naší vytvořené součásti z příkladu 3 uděláme vysunutí z náčrtu 250 mm. Vytvoříme nové pravidlo s názvem „barva“ a napíšeme si následující kód:
If d2 = 250 Then
iProperties.PartColor = „červená“
ElseIf d2 > 250 Then
iProperties.PartColor = „fialová“
ElseIf d2 < 250 Then
iProperties.PartColor = „žlutá“
End If
Zkontrolujte, zda parametr vysunutí je opravdu d2, případně opravte. Po spuštění pravidla nám pravidlo přiřadí barvu součásti v závislosti na parametru vysunutí, v tomto případě d2. Pokud je první podmínka splněna, součást se obarví červeně, pokud ne, program zkontroluje druhou podmínku pomocí příkazu Else if (jinak když).
Pro zápis více podmínek najednou lze použít předpřipravené operátory. Zavřeme pravidlo a vytvoříme nové, kam si zapíšeme:
If d2 = 250 And sirka = 100 Then
iProperties.PartColor = „červená“
MessageBox.Show(„Splněny jsou obě podmínky.“, „Title“)
End if
V podmínce je použito And (a také), což znamená, že součást se obarví, pokud jsou splněny obě rozměrové podmínky. Existuje i operátor AndNot (A také ne), který pro splnění podmínky vyžaduje jeden parametr platný a druhý zároveň neplatný.
If d2 = 250 Or sirka = 100 Then
iProperties.PartColor = „červená“
MessageBox.Show(„Splněna je alespoň jedna podmínka.“, „Title“)
End if
Zde je použit operátor Or (nebo), který nám říká, že je podmínka splněna, když alespoň jeden z parametrů souhlasí. Lze použít i OrElse (nebo jinak), který programu značí, že pokud je neplatná první podmínka, podívá se na druhou a pokud je pravdivá, podmínka prošla v pořádku.
3.2 Select Case
Pokud máme k výběru více možností než 2 (větší a menší než hodnota) a nechceme využívat více podmínek IF za sebou, je k dispozici funkce SELECT CASE. Pomocí této funkce se vykoná konkrétní operace pro konkrétní variantu či rozsah hodnot parametru.
Příklad 11 – Užití Select Case
V předešlém příkladu jsme si za pomoci podmínky If zkusili změnit barvu součásti na základě velikosti vysunutí a v příkladu 4 jsme si ukázali zase vytvoření multiparametru. Nyní vše spojíme dohromady. Vytvoříme nové pravidlo s názvem „SelectCase“ a opíšeme následující kód:
Select Case vyska
Case „VYSOKÉ“
d2 = 500
Case „STŘEDNÍ“
d2 = 250
Case „NÍZKÉ“
d2 = 50
End select
Již dříve jsme si definovali parametr s více hodnotami, mezi kterými můžeme volit. Select Case v tomto případě přiřadí každé hodnotě z parametru číslo, a následně po spuštění pravidla mění velikost dle zvolené hodnoty parametru vyska. V kombinaci s předchozím pravidlem nám při každém překliknutí hodnoty změní součást barvu.
Select case ale neslouží jen k přiřazení hodnoty multiparametru jako v příkladu výše. Lze s ním podmínkovat například vypínání/zapínání prvků či kontrolovat hodnoty parametrů, což lze i s obyčejnými podmínkami if-then-else, takto napsaný kód se ale stává příliš zdlouhavý.
3.3 While
While je v podstatě cyklus, který do splnění podmínky vykonává neustále dokola tutéž operaci. V rámci iLogicu jde o minoritně využívanou funkci. Ve většině případů si vystačíme se dvěma předchozími.
Příklad 12 – Ukázka použití While
V tomto příkladu máme proměnnou i, ke které se v každém dalším cyklu přičte 1, dokud se nedostane na číslo 5, potom se program ukončí. Prakticky to znamená, že nám dle programu vyskočí vždy po každém cyklu nové okno s číselnou hodnotou i+1.
Dim i As Integer = 1
While i < 5
i = i + 1
MessageBox.Show(i, „Title“)
End While
Příklad 13 – Použití while na modelu
V nové součásti si vytvoříme náčrt dle obrázku níže. Dbáme na to, aby byl náčrt plně zakótovaný a aby seděly názvy parametrů. Výchozí hodnota pro úhel (Angle) je 30. Dále si vytvoříme uživatelský parametr s název Max_L, kterému zadáme hodnotu 120 mm. Referenční odvěsnu (v závorce) v parametrech přejmenujeme na Length.
Zapíšeme následující řádky. Cílem je vytvořit pravidlo, které po změně výšky nastaví hodnotu Lenght na cílovou hodnotu Max_L v závislosti na rozsahu úhlu.
Parameter.UpdateAfterChange = True
Parameter(„Angle“) = 30
i = 0
If Parameter(„Length“) < Max_L Then
While (Parameter(„Length“) < Max_L And Parameter(„Angle“) < 60)
Parameter(„Angle“) = Parameter(„Angle“) + 1
i = i + 1
If i >= 50 Then
MessageBox.Show(„Operace překročily předpokládaný rozsah.“, „Varování“)
Exit While
End If
End While
End If
iLogicVb.UpdateWhenDone = True
3.4 Sub
Jedná se o další cyklický podmíněný příkaz. V podstatě si kód rozdělíte na jednotlivé díly (sub). V kódu musí být na začátku vždy jeden díl hlavní (Sub main()), kde se definují proměnné a vyvolávají jednotlivé podprogramy, kterých následně může být libovolný počet. Program si v hlavním dílci příkazem „Call“ vyvolá podprogram s definovaným názvem a provede jej. Poté se opět vrátí do hlavního dílce. Takto pokračuje do doby, než vykoná všechny zadané podprogramy. Následující příklad ilustruje použití příkazu Sub.
Příklad 14 – Ukázka použití Sub
Vytvoříme si nové pravidlo s názvem „sub“ a vložíme následující kód:
Sub Main()
Dim x As Integer
Dim y As Integer
Dim z As Integer
Call priklad1()
Call priklad2()
End Sub
Sub priklad1()
x = 6
y = 28
z = x + y
MessageBox.Show(z, „Title“)
End Sub
Sub priklad2()
x = 10
y = 64
z = x * y
MessageBox.Show(z, „Title“)
End Sub
Na počátku si v Sub main() definujeme proměnné a vyvoláme jednotlivé podprogramy. V samotných podprogramech se nachází hodnoty proměnných a operace, kterou s nimi chceme provést. Na konci podprogramu je vyskakovací okno, kde se nám zobrazí výsledek operace. Výhoda tohoto cyklu je ta, že definujeme jen 3 proměnné, kdežto kdybychom chtěli psát takový program pouze deklaracemi jako u příkladu 6, museli bychom si definovat spoustu proměnných (x1, x2,…).
Praktických užití takového cyklu je spoustu. Lze jej použít například u automatické tvorby uživatelských parametrů, kdy po spuštění pravidla program dle Sub main () zkontroluje, zda se nejedná o součást z obsahového centra a pokud ne, vyvolá podprogram, který zapíše parametry do modelu.
3.5 Try-Catch-End Try
Tento typ příkazu v podstatě uživateli umožní obejít výchozí mechanismus zpracování chyb a řídit posloupnost událostí následujících po chybě. To znamená, že i když po příkazu try nastane error, třeba z důvodu, že parametr neexistuje, můžeme jednoduše pokračovat dál tím, že parametr necháme vytvořit nebo použijeme vyskakovací okno, které nás upozorní na chybu.
Příklad 15 – Vytvoření iVlastností
Vytvoříme si nové pravidlo s názvem „TryCatch“ a zkopírujeme řádky níže:
Try
iProperties.Value(„Custom“, „Test“) = True
Catch
MessageBox.Show(„iVlastnost nebyla vytvořena“, „Title“)
Finally
MessageBox.Show(„Akce provedená nezávisle na Try a Catch“, „Title“)
End Try
V bloku Try se nachází nastavení uživatelské iVlastnosti. Program se pokusí iVlastnost vytvořit a pokud by se tak nestalo z důvodu nějakého erroru, vyskočí hláška z bloku Catch. Příkaz Finally pak provede požadovanou akci, ať už se požadavek splnil či nikoliv. Zde nutný není, avšak v tomto podmíněném příkazu musí být vždy blok buď s Catch nebo Finally.
Příklad 16 – Zapisování parametru
Zde budeme postupovat stejně jako u příkladu 9. Ten však obsahuje chybu, která zapříčiní, že po každém spuštění pravidla se vytvoří nový parametr a pokud takový parametr již existuje, přidá se k němu rostoucí index (ROZMER_X_1, ROZMER_X_1_2, ROZMER_X_1_2_3, …). To lze opravit přidáním příkazu Try, který zkontroluje, že proměnné dokáže přiřadit existující parametr a pakliže tomu tak je, příkaz pod Catch se neprovede.
Dim oDoc As PartDocument = ThisDoc.Document
Dim oPartCompDef As PartComponentDefinition = oDoc.ComponentDefinition
Dim oParams As Parameters = oPartCompDef.Parameters
Dim oUserParams As UserParameters = oParams.UserParameters
Try
x = Parameter(„ROZMER_X“)
Catch
oUserParams.AddByValue(„ROZMER_X“, 100, UnitsTypeEnum.kMillimeterLengthUnits)
End try
4 Spouštěče událostí
4.1 Spouštěče událostí
Prozatím jsme si ukázali jak spustit pravidlo skrze dialogové okno iLogicu, případně ručně poklikem. Tento způsob je velmi nepraktický, zvlášť máme-li mnoho pravidel. Pro usnadnění funkce spouštění, kdy potřebujeme třeba rozběhnout několik pravidel naráz, slouží funkce „Spouštěče událostí“, které nalezneme hned vedle nástroje pro přidání pravidla (Správa > iLogic > Spouštěče událostí).
Po kliknutí se nám otevře editor spouštění, kde na levé straně máme rozdělené interní a externí pravidla a na straně druhé karty pro jednotlivé typy dokumentů s přiřazenými spouštěči, které nám pravidla rozběhnou. Nutno dodat, že námi vytvořená interní pravidla, která jsme si vytvářeli v rámci tohoto školení, slouží jen záložka „Tento dokument“, jelikož pravidla se váží jen k součásti a nelze je tedy aplikovat na výkres či sestavu. K tomu slouží pravidla externí, o kterých si ale řekneme později.
Dialogové okno pro přiřazování pravidel ke spouštěčům
Příklad 17 – Funkce spouštěče
Vytvořme si pravidlo s názvem „hmotnost“ a zkopírujme následující řádek:
MessageBox.Show(iProperties.Mass & “ kg“, „Hmotnost součásti“)
Uložíme a spustíme. Vyskočí nám okno s napsanou aktuální hmotností součásti. Otevřeme si Spouštěče událostí a aktivujeme kartu Tento dokument. Zde vidíme všechny interní pravidla. Vezmeme pravidlo „hmotnost“ a přetáhneme na spouštěč „Změna geometrie součásti“. Potvrdíme OK a nyní se při každé změně geometrie aktualizuje hmotnost a vyskočí nám okno s aktuální hmotností.
4.2 iTrigger
iTrigger je další nástroj na spouštění pravidel. Nalezneme jej hned pod funkcí Spouštěče událostí. Funguje podstatně jinak, než způsob popsaný výše. Při kliknutí na tlačítko iTrigger se do součásti vytvoří parametr iTrigger0, který následně musíme ještě definovat v každém pravidle, které chceme přes iTrigger spustit. Vždy připíšeme následující:
trigger = iTrigger0
Nyní vždy, když klikneme na tlačítko iTrigger přičte se k hodnotě tohoto parametru +1, což je změna, díky níž se pravidlo obsahující tento řetězec spustí.
Příklad 18 – Spouštění pravidla přes iTrigger
Můžeme si to hned ukázat na dalším příkladu. Klikneme na iTrigger a řetězec z textu si zkopírujeme do pravidla „hmotnost“ z příkladu 14 a třeba do pravidla „iVlastnosti“ z příkladu 5. Takto změněné pravidlo vždy uložíme a spustíme. Klikneme znovu na iTrigger a pravidla se nám teď spouští všechny najednou, respektive tak, jak jsou za sebou seřazená ve stromu prohlížeče iLogic.
5 Formuláře
Nedílnou součástí iLogicu jsou i formuláře, které jsou nástrojem pro spojování pravidel, editaci obsahu souboru (změnu parametrů, iVlastností,…), či změny funkce modelu.
Vytvořit takový formulář je jednoduché. V prohlížeči iLogic si přepneme na kartu formuláře a pravým kliknutím do prostoru v nabídce vybereme „Přidat formulář“. Otevře se nám uživatelské okno, které si následně zeditujeme.
Dialogové okno pro editaci formuláře
1) Karty s proměnnými a pravidly – Zde volíme parametry, ivlastnosti či pravidla a přetahujeme je do sekce 3, kde se nám vytvoří pole pro zadání hodnoty či v případě pravidla tlačítko pro spuštění pravidla.
2) Grafické prvky – Ve druhém oddíle se nachází nástroje na formátování dialogového okna a rozložení funkcí a polí v něm. Díly lze kombinovat mezi sebou, například můžeme vytvořit kartu, ve které bude skupina, a položky budou vloženy v řádku. Vysvětlení jednotlivých prvků je níže v tabulce.
![]() |
Vytvoří samostatný blok blok položek, který lze v okně sbalit/rozbalit |
![]() |
Vytvoří kartu, kam přenášíme položky. Mezi kartami lze překlikávat. |
|
Vytvoří řádek. Veškeré položky přenesené do řádku se nyní vkládají horizontálně. |
![]() |
Nástroj pro vložení obrázku, například firemního loga. |
![]() |
Přidá složku s obrázky. |
![]() |
Přidá do rozhraní prázdný prostor. Slouží především k odsazení položek a obrázků mezi sebou, jelikož můžeme přesně definovat jeho velikost. |
![]() |
Přidá popisek k položkám, například jednotky – nemusíme je tedy definovat nějakou iVlastností, nýbrž je stačí pouze ve formuláři popsat. |
![]() |
Přidá do okna posuvný dělič. |
3) Strom funkcí a proměnných – V podstatě se jedná o pracovní prostor formuláře. Do grafických prvků, které mezi sebou kombinujeme, zároveň přidáváme i proměnné a pravidla.
4) Vlastnosti – Téměř každý prvek má i své vlastnosti, které můžeme definovat a dotvářet tak pracovní prostředí formuláře. Počet vlastností se liší v závislosti na zvoleném prvku, dá se však říci, že v základu jsou 4 druhy vlastností: Název, Chování, Různé a Vzhled.
Chování
Modální |
Hodnota NE – lze provádět při editaci formuláře i jiné akce v Inventoru |
Povolit změnu velikosti ovládacích prvků |
Kliknutím pravým tlačítkem na formulář se zobrazí tato možnost |
Předem definovaná tlačítka |
Definuje koncová tlačítka, kterými formulář potvrdíme |
Zobrazit v umístěné komponentě |
Při umístění komponenty do sestavy se zobrazí formulář |
Povolení názvu parametru |
Při nastavení daného parametru na hodnotu Pravda se tento prvek (např. pravidlo) aktivuje a lze jej spustit |
Název parametru obrázku |
Změnou hodnoty textového parametru lze měnit i obrázek |
Upravit typ ovládacího prvku |
Změní typ zadávání hodnot parametru |
Název
Název parametru/pravidla |
Zobrazí název daného parametru/pravidla |
Popisek |
Popisek parametru/pravidla, lze libovolně měnit |
Různé
Pouze ke čtení |
Zvolíme možnost ano, pokud chceme mít iVlastnost nebo parametr bez možnosti zápisu |
Vzhled
Umístění textu pro obsah |
Umístění textu, které se má použít pro ovládací prvky obsažené ve formuláři |
Zobrazit ohraničení položky |
Čarou ohraničí veškeré ovládací prvky formuláře |
Písmo pro obsah |
Definuje styl textu ve formáři |
Vizuální styl |
Výběr z předpřipravených šablon formulářů |
Omezení velikosti |
Omezí velikost prvků nebo formuláře – okno nelze myší roztáhnout |
Písmo |
Definuje styl textu pro daný prvek |
Popisek nástroje |
Přidá k prvku bublinku s popisem |
Obrázek |
Naimportuje obrázek ze složky do formuláře |
Zobrazit popisek |
Zobrazí popisek obrázku |
Příklad 19 – Procvičení pravidel a vytvoření formuláře
V tomto příkladu si zopakujeme vše doposud probrané. Nakreslíme si náčrt dle přiloženého výkresu. Dbáme na to, aby náčrt byl zakótovaný, jako je na výkrese.
Základní parametry budou proměnlivé (průměr, délka) a přes multiparametr definujeme materiál (ocel, zinek, hliník, olovo). Pravidlem vytvoříme iVlastnosti Projekt, Číslo výkresu, Povrchová úprava, přičemž povrchová úprava (cementování, nitridování, moření) bude vycházet z multiparametru. Obráběné prvky (díra, zkosení, závit) budou označeny červenou barvou a skrz formulář je bude možné přebarvit zeleně a žlutě.
Nejprve si vytvoříme multiparamter PU s povrchovými úpravami v zadání a následně multiparametr MATERIAL s materiály v zadání. Uložíme si nové pravidlo s názvem „iVlastnosti“, kde si jednotlivé vlastnosti definujeme.
iProperties.Value(„Custom“, „Číslo výkresu“) = iProperties.Value(„Project“, „Part Number“)
iProperties.Value(„Custom“, „Povrchová úprava“) = PU
Další pravidlo s názvem „materiál“ bude obsahovat pouze přiřazení parametru k materiálovým knihovnám v Inventoru.
iProperties.Material = MATERIAL
iLogicVb.UpdateWhenDone = True
Poslední řádek znamená, že se součást aktualizuje hned po skončení pravidla, tudíž se zobrazí provedené změny. Pro správnou funkčnost budeme potřebovat ještě jeden parametr Prebarveni, který bude mít hodnotu pouze Ano/Ne.
Nyní si můžeme napsat pravidlo pro barvu obrábění. Vytvoříme nové a zapíšeme následující kód:
If Prebarveni = True Then
Feature.Color(„Vysunutí1“) = „Červená“
Feature.Color(„Vysunutí2“) = „Červená“
Feature.Color(„Zkosení1“) = „Červená“
Feature.Color(„Zaoblení1“) = „Červená“
Feature.Color(„Závit1“) = „Červená“
Else
Feature.Color(„Vysunutí1“) = „As Material“
Feature.Color(„Vysunutí2“) = „As Material“
Feature.Color(„Zkosení1“) = „As Material“
Feature.Color(„Zaoblení1“) = „As Material“
Feature.Color(„Závit1“) = „As Material“
End If
iLogicVb.UpdateWhenDone = True
Pokud ve formuláři zaškrtneme políčko (viz dále), dle tohoto pravidla se nám obrábění přebarví, pokud odškrteneme, součást si zachová vzhled materiálu.
Abychom mohli měnit barvu, vytvoříme si ještě tři pravidla, každé pro jednu. Nazveme je podle barev. Ty vycházejí ze stylu vzhledů, tudíž musíme při zapisování dbát na to, zda se barvy v pravidlech s nimi shodují.
Feature.Color(„Vysunutí1“) = „Zelená“
Feature.Color(„Vysunutí2“) = „Zelená“
Feature.Color(„Zkosení1“) = „Zelená“
Feature.Color(„Zaoblení1“) = „Zelená“
Feature.Color(„Závit1“) = „Zelená“
If Prebarveni = False Then
Feature.Color(„Vysunutí1“) = „As Material“
Feature.Color(„Vysunutí2“) = „As Material“
Feature.Color(„Zkosení1“) = „As Material“
Feature.Color(„Zaoblení1“) = „As Material“
Feature.Color(„Závit1“) = „As Material“
End If
iLogicVb.UpdateWhenDone = True
Do ostatních dvou si kód zkopírujeme a jen změníme nápis „zelená“ na „žlutá“ a „červená“. K tomu nám může pomoci funkce „Najít a nahradit“ v editoru pravidla, o které jsme si říkali na začátku. Do políčka „Najít“ napíšeme barvu v pravidle např. zelená a do políčka „Nahradit čím:“ žlutá. Potvrdíme a barvy v pravidle se nám nahradí.
Nyní když máme pravidla hotová, můžeme se přesunout na tvorbu formuláře, kam přesuneme iVlastnosti, parametry a pravidla. V novém formuláři si do řádku vložíme dvě skupiny, do první dáme parametr s materiálem, průměrem a délkou. Parametr průměr nastavíme na posuvník, kde minimální hodnota bude 40 mm, maximální 70 mm a velikost kroku bude po 5 mm. Parametr délka bude stejný, jen minimální hodnota bude 160 a maximální 200 mm.
Do druhé skupiny vložíme iVlastnosti Číslo výkresu (nastavíme jako ke čtení), Projekt, PU a Prebarveni, který navolíme jako zaškrtávací políčko. Pod ně přidáme ještě tři pravidla s barvami. V políčkách zrušíme zobrazený text a vložíme obrázky barev ze složky. Výsledný formulář by měl vypadat nějak takto:
6 Externí pravidla
Všechny pravidla, která jsme doposud vytvářeli (interní), mají jednu nepříjemnou vlastnost: fungují pouze v součásti, ve které jsou napsaná. Jinými slovy nemohou řídit více součástí najednou. Toto lze obejít tím, že pravidlo vložíme do šablony, nicméně v případě potřeby editace pravidla bychom museli zeditovat i všechny součásti, které vycházejí z oné šablony. To je pochopitelně nežádoucí.
Externí pravidla řeší všechny omezení interních pravidel. Jde v podstatě o odkazy na textové soubory s pravidly, které jsou nezávislé na typu otevřeného souboru v Inventoru. Výhodou je, že úpravou pravidla se změní i všechny součásti, které pravidlo využívají.
Konfiguraci cesty k externím pravidlům najdeme na kartě Nástroje -> Možnosti -> iLogic –konfigurace.
Zde si v dialogovém okně po kliknutí na symbol + můžeme přidat cestu ke složce s externími pravidly, která se většinou ukládají do složky iLogic v Design datech. V zásadě jsou dva způsoby vytvoření takového pravidla. V okně prohlížeče iLogic v záložce Externí pravidla klikneme pravým tlačítkem a zvolíme položku Vytvořit externí pravidlo. Zadáme název pravidla a uložíme. Pravidlo se přidá do stromu pod skupinu Ručně přidané pod složku, jakou jsme zvolili.
Druhým způsobem je vytvoření pravidla přímo do textového dokumentu, který uložíme s danou příponou (.iLogicVb/.txt) do složky v Design Datech a následně si přidáme cestu k souboru v konfiguraci.
Editovat takové pravidlo je velmi snadné, jelikož jej můžeme otevřít a upravit přímo ze stromu iLogic prohlížeče, případně můžeme editovat rovnou textový dokument bez použití Inventoru (nejčastěji přes Poznámkový blok). Zde je však menší problém v tom, že Poznámkový blok nedisponuje žádnou kontrolou správnosti kódu jako editor pravidel iLogic, tudíž o funkčnosti/nefunkčnosti se přesvědčíme až po spuštění pravidla.
Dialogové okno složek s externími pravidly
Ke psaní externích pravidel však musíme přistupovat jinak než k zápisu interního pravidla. Rozdíl je v tom, že externí pravidlo nepracuje s žádným konkrétním dokumentem a také v tom, že některé syntaxe zde nelze použít, například nelze psát přímo název parametru, pravidlo jej bere jako lokální proměnnou.
Má-li pravidlo pracovat s nějakým konkrétním prvkem v sestavě/součásti/výkresu, je třeba k němu získat nejprve přístup vhodnou definicí proměnných zachovávající sestupnou strukturu. To poměrně dobře ilustruje Inventor API Object Model, který je přílohou tohoto školení.
Inventor API Object Model je dokument obsahující veškeré prvky a nástroje, se kterými lze pracovat a využívat je pomocí iLogicu. Dobře znázorňuje vztahy mezi prvky pomocí stromových struktur, takže lze jednoduše dohledat, jak získat přístup k určitému prvku (viz karta API).
Příklad 20 – Dohledání parametru
Vezměme znovu pravidlo z příkladu 9, kde jsme pracovali s objekty. Pokud se podiváme na samotný způsob zápisu pravidla a porovnáme jej se strukturou API dokumentu, zjistíte, že se shodují.
‚Nejprve definujeme dokument, ve kterém pravidlo spouštíme
Dim oDoc As PartDocument = ThisDoc.Document
‚Poté definujeme samotnou součást, zda jde o normální či plech
Dim oPartCompDef As PartComponentDefinition = oDoc.ComponentDefinition
‚Následně určíme, že pro tuto definici chceme přístup do jejích parametrů
Dim oParams As Parameters = oPartCompDef.Parameters
‚A zapíšeme přístup k uživatelským parametrům
Dim oUserParams As UserParameters = oParams.UserParameters
‚Dostaneme-li se k uživatelským parametrům, můžeme za tečkou vyvolat funkce nebo vlastnosti, kterými daný prvek disponuje
‚- v tomto případě jde o funkci AddByValue, tedy „přidej dle zadané hodnoty“
oUserParams.AddByValue(„ROZMER_X“,100,UnitsTypeEnum.kMillimeterLengthUnits)
V podstatě by šel zápis zapsat do dvou řádků, jelikož každá další proměnná vychází z té předchozí:
oUserParams = ThisDoc.Document.ComponentDefinition.Parameters.UserParameters
oUserParams.AddByValue(„ROZMER_Y“,100,UnitsTypeEnum.kMillimeterLengthUnits)
7 Globální formuláře
U globálních formulářů platí stejná logika jako u externích pravidel. Fungují globálně, tedy pro všechny díly, sestavy a výkresy. Editace formuláře je totožná s formulářem jen pro dokument, jediný rozdíl je v tom, že se zde využívá globálních pravidel namísto interních.
Vytvořit takový formulář můžeme tak, že vytvoříme standardní interní formulář, který ale využívá externích pravidel. Poté ve stromu iLogic klikneme na formulář pravým tlačítkem a dáme Kopírovat. Nyní se překlikneme do karty Globální formuláře a zde po kliknutí pravým tlačítkem dáme Vložit formulář. Vytvoří se zde identický formulář, který se však uloží zároveň jako soubor do složky UI v Design Datech a zapíše se zde do kořenového xml souboru iLogicBrowserUiFormSpecification.xml, kam se globální formuláře definují v rámci karty Globální formuláře.
Příklad 21 – Vytvoření globálního formuláře
Vezměme si interní formulář z příkladu 19, a překopírujme jej do karty globální formuláře. Následně si otevřeme složku obsahu UI. Vytvořili se dva soubory konkrétně Název_formuláře.xml a Název_formuláře.state.xml. První zmíněný obsahuje soubor všech všech prvků ve formuláři, jejich vlastnosti a velikost, druhý poté zachycuje rozmístění jednotlivých grafických prvků a jejich uspořádání. Tyto dva soubory jsou velmi důležité a je nutné je vkládat do design dat společně, jednotlivě totiž nefungují.
Vraťme se ještě ke kořenovému xml souboru. Ten slouží v podstatě stejně jako dva výše zmíněné xml soubory s tím rozdílem, že upravuje pouze grafický vzhled samotné karty Globální formuláře. Ve standardním formuláři si přidáváme parametry a tlačítka (pravidla), do tohoto si prozměnu přidáváme pouze externí pravidla a formuláře (máme-li jich více).
Slouží tedy jako pohodlnější cesta ke spouštění externích pravidel, jelikož si můžeme jednotlivé skupiny pravidel (patřící jen k součásti například) přidat do skupin a tím tak velké množství pravidel filtrovat.
Globální formuláře se standardně ukládají do C:\Users\Public\Documents\Autodesk\Inventor xxxx\Design Data\iLogic\UI\ , kde xxxx znamená aktuálně používanou verzi Inventoru.
Toto školení si lze stáhnout i v PDF.