Deze website maakt gebruik van cookies. Meer informatie Melding niet meer tonen
the engineers of development 
Image

Slimmer engineeren in Inventor met iLogic, Pt. 2

Dit is een vervolg op artikel ilogic deel 1 en gaat dieper in op iLogic programmeren. Uiteindelijk is iLogic een vereenvoudigde interface, met de programmeertaal vb.NET ten grondslag.

Dit deel van de serie artikelen over ilogic is bedoelt om de opbouw van het programmeren beter te begrijpen.

Variabelen

Met variabelen declareer je gegevens in het geheugen. Dit doe je met het commando Dim.

Standaard ziet dat er als volgt uit:

Dim  (naam) As String = “Tekst”

Dit is als volgt opgebouwd:

Dim  = Commando voor het declareren variabelen

(naam)   = De naam van je gemaakte variabele:

As String = Hier geef je datatype aan, voorbeelden:

  • As String = Teksten
  • As Integer = Hele getallen
  • As Double = Het datatype van Inventor parameters, nauwkeurige getallen.
  • As Object = Algemeen datatype voor objecten

“Tekst” = Hier geef je inhoud aan je variabele.

Als je een variabele hebt gemaakt, kun je deze later weer oproepen Hier volgen twee voorbeelden waarbij je de variabele oproept met commando: MsgBox(variabele)

Voorbeelden:

Dim text As String = "Hello World"

MsgBox(text)

iLogic2A.jpg


Dim getal As Integer = (1 + 2) * 100

 MsgBox(getal)

iLogic2B.jpg


Add_rule.gif

Operatoren

Operatoren worden gebruikt voor het manipuleren van variabelen:

Rekenkundige operatoren: + - / * Mod ^

Voor strings samenvoegen: &

Voor vergelijkingen: = < > And Or Not

Dim var1 As Integer

Var1 = InputBox("Prompt", "Title", "1")

 

Dim var2 As Integer

Var2 = InputBox("Prompt", "Title", "1")

 

Result = var1 + var2

MsgBox(Result)

 

Wat wordt Result als je Integer veranderd in String?

1111.gif

Bij een Integer wordt de inhoud een getal, bij een string wordt het tekst.

De getallen 1 + 1 = 2, maar de teksten “1” + “1”  wordt “11”.


Conditional statements

iLogic rules worden regel voor regel uitgevoerd, voor een beslissing- of selectiestructuur gebruik je statements. Het eenvoudigste is:  “If..Then…Else”.

Over het algmeen kun je met statements stappen herhalen of wel of niet uitvoeren op basis van logica.

If…Then…Else

Open een nieuw part, maak een rule, en typ vervolgens onderstaande code in iLogic editor.

Tip: Inputbox is te vinden onder Snippets (MesssageBox à InputBox)

Dim Var As Double

Var = InputBox("Enter Value:", "Title", Hoogte)

 

If Var < 100 Then

      MsgBox("Too small")

Else

      MsgBox("ok")

      Hoogte = Var

End If

 

iLogic leest regel voor regel tot het bij de If aankomt. Hier wordt gekeken of Var < 100, als dit klopt, dan wordt alles uitgevoerd achter Then tot en met de eerste volgende Else of End If. Als dit niet klopt, dan wordt alles uitgevoerd achter de Else tot End If

HoogteAanpassen.gif

Do While Loop

Dim Var As Double

      Var = InputBox("Enter Value:", "Title", Lengte)

Do While Var < 100

      Var = InputBox("Invalid Length", "Title", Lengte)

Loop

MsgBox("Ok")

Lengte = Var

iLogic leest wederom regel voor regel tot het bij de Do While aankomt. Hier wordt gekeken of Var < 100, als dit klopt, dan wordt alles uitgevoerd tot Loop en wordt opnieuw gekeken of Var < 100. Dit blijft eindeloos doorgaan totdat Var niet meer < 100 is. (Pas dus goed op voor een eindeloze loop)

DoWhile.gif

For Next

Dim var As Integer

Dim startwaarde As Integer = InputBox("Startwaarde:", "Title", "30")

Dim stapgrootte As Integer = InputBox("Stapgrootte:", "Title", "10") 

For var = 1 To 5 Step 1

    Parameter("d" & var) = startwaarde + ((var-1) * stapgrootte)

Next

iLogic leest tot de For, en gaat de code tot Next een aantal keren herhalen volgens ogegeven aantal herhalingen en Step.

For next wordt ook veel gebruikt om in een verzameling objecten (schetsen/dimension/bestanden/enz) te kijken, om vervolgens een handeling uit te voeren per object (For Each object In verzameling). Dit gaat echter iets te diep in de wereld van programmeren om dat nu te behandelen.

ForNext.gif

Try…Catch

Het is je misschien tijdens het proberen van de voorgaande oefeningen opgevallen dat als je een getal moet invullen, maar je typt een letter, dat er een error komt.

De volgende statement probeert eerst de code tussen Try en Catch, mocht de code crashen, dan voert hij de regels tussen Catch en End Try uit.

Dim Var As Double

Try

Var = InputBox("Typ een willekeurig getal:", "Title", "")

MsgBox("U koos het getal: " & Var)

Catch ex As Exception

    MsgBox("Sorry, hier kan ik geen chocola van maken")

End Try

TryCatch.gif

Select Case…End Case

Met select case is hetzelfde mogelijk als If Then Else statement, alleen is Select Case netter en overzichtelijker wanneer er veel verschillende uitkomsten mogelijk zijn. Hieronder het voorbeeld met 6 verschillende uitkomsten. If Then Else zou in dit geval niet overzichtelijk zijn.

Dim Var As Integer
Var = InputBox("Raad het getal tussen 1 en 5", "Title", "") 
Select Case Var
Case = 1
    MsgBox("Helaas!")
Case = 2
    MsgBox("Onjuist")
Case = 3
    MsgBox("Hoera! Dit is het getal")
Case = 4
    MsgBox("Jammer maar helaas")
Case = 5
    MsgBox("Probeert u het nog eens")
Case Else
    MsgBox("Dat is geen getal tussen 1 en 5")
End Select 
SelectCase.gif
 

Combineren van statements

Uiteindelijk kun je meerdere statemens in elkaar gebruiken om allemaal logische consequenties aan je Inventor model toe te voegen. (Tip: Gebruik de TAB om verdieping in statements weer te geven)

Try
    Select Case var
    Case = 1
        If var = 1 Then
            Do While var < 2
            Loop
        Else
        End If
    Case Else
        For 1 To 3 Step 1
        Next
    End Select
Catch
End Try

In een volgend artikel en laatste artikel over iLogic zal ik met een aantal voorbeelden uitleggen hoe je met deze iLogic rules een onderdeel, samenstelling of tekening kunt aansturen.

Veel succes en plezier met het experimenteren met iLogic!

Vragen of suggesties over dit artikel?
Stuur me dan een mail of zoek contact via LinkedIn.  

Arnold van der Veen