iLogic : le guide complet — Chapitre 2 / 8

Les bases de VB.NET pour iLogic

Les règles iLogic sont écrites en VB.NET (Visual Basic .NET). Pas besoin de maîtriser tout le langage pour commencer : quelques notions de base suffisent pour écrire des règles utiles. Ce chapitre vous donne les fondamentaux nécessaires avant de passer à la pratique.

Les commentaires

Un commentaire est une ligne (ou une partie de ligne) que le programme ignore complètement. Il sert à expliquer votre code, pour vous-même ou pour un collègue qui le relira plus tard.

En VB.NET, un commentaire commence par une apostrophe ' :

' Cette règle calcule l'épaisseur en fonction du diamètre
epaisseur = 2  ' Valeur par défaut en mm

Tout ce qui suit l'apostrophe est ignoré à l'exécution. Il est conseillé de commenter vos règles, particulièrement lorsque leur raisonnement n'est pas clair ou pour inclure des détails impossibles à discerner par la seule lecture du code.

Les variables

Une variable est un espace de stockage nommé qui contient une valeur. En VB.NET, vous déclarez une variable avec le mot-clé Dim :

Dim longueurMax As Double = 500.0
Dim nombreDeVis As Integer = 4
Dim designation As String = "Support moteur"
Dim estValide As Boolean = True

Dans iLogic, la déclaration avec Dim n'est pas obligatoire. Vous pouvez utiliser une variable sans la déclarer :

longueurMax = 500.0
designation = "Support moteur"

Le code fonctionne, mais cette pratique est déconseillée. Sans déclaration, VB.NET ne peut pas vérifier les types ni détecter les fautes de frappe. Par exemple, si vous écrivez designaton au lieu de designation, iLogic créera silencieusement une nouvelle variable vide au lieu de signaler l'erreur. Déclarer vos variables avec Dim vous protège de ce genre de bug.

Les types courants

Le type d'une variable indique la nature de la donnée qu'elle peut contenir. Un Integer ne peut stocker qu'un nombre entier, un String que du texte, etc. Cela permet à VB.NET de détecter les erreurs — par exemple, vous empêcher d'écrire "Bonjour" * 2 — et d'optimiser l'utilisation de la mémoire.

Type Description Exemple
Integer Nombre entier 42
Double Nombre décimal 3.14
String Texte "Bonjour"
Boolean Vrai ou faux True, False

Note : dans iLogic, les paramètres Inventor sont directement accessibles par leur nom, sans Dim. Quand vous écrivez longueur dans une règle et que ce paramètre existe dans le modèle, iLogic le reconnaît automatiquement et l'affiche en bleu. Le mot-clé Dim sert à créer des variables locales supplémentaires, qui n'existent que dans la règle.

Constantes

Si une valeur ne doit jamais changer, déclarez-la comme constante avec Const :

Const COEFFICIENT_GALVA As Double = 1.05
Const EPAISSEUR_MINI As Double = 0.5

L'avantage d'une constante est double : le compilateur vous empêche de la modifier par erreur, et le nom rend le code plus lisible qu'un nombre « magique » écrit en dur.

Les opérateurs

Opérateurs arithmétiques

Opérateur Description Exemple
+ Addition a + b
- Soustraction a - b
* Multiplication a * b
/ Division a / b
\ Division entière 7 \ 23
Mod Reste de la division 7 Mod 21
^ Puissance 2 ^ 38

Opérateurs de comparaison

Opérateur Description Exemple
= Égal à a = b
<> Différent de a <> b
< Inférieur à a < b
> Supérieur à a > b
<= Inférieur ou égal a <= b
>= Supérieur ou égal a >= b

Attention aux comparaisons de nombres décimaux : les Double sont stockés en virgule flottante, ce qui entraîne de minuscules erreurs d'arrondi. Par exemple, 0.1 + 0.2 ne vaut pas exactement 0.3 — le résultat réel est 0.30000000000000004. Une comparaison avec = peut donc échouer alors que les valeurs semblent identiques.

iLogic fournit la fonction DoubleForEquals qui compare deux nombres avec une tolérance (par défaut 0.000001) :

' Risqué : peut échouer à cause des arrondis
If longueur = 25.4 Then

' Fiable : compare avec une tolérance
If DoubleForEquals.IsEqual(longueur, 25.4) Then

Opérateurs logiques

Opérateur Description Exemple
And ET logique a > 0 And b > 0
Or OU logique a > 0 Or b > 0
Not Négation Not estValide

Les conditions

Les conditions permettent d'exécuter du code différent selon une situation. C'est le cœur d'iLogic.

If...Then...Else

La structure la plus courante :

If diametre < 10 Then
    epaisseur = 1
ElseIf diametre < 20 Then
    epaisseur = 1.5
Else
    epaisseur = 2
End If

Pour une condition simple sur une seule ligne, vous pouvez écrire :

If diametre < 10 Then epaisseur = 1

Select Case

Quand vous comparez une même valeur à plusieurs cas, Select Case est plus lisible qu'une cascade de If :

Select Case type_fixation
    Case "Vis"
        nombre_percages = 4
    Case "Boulon"
        nombre_percages = 6
    Case "Soudure"
        nombre_percages = 0
    Case Else
        MessageBox.Show("Type de fixation inconnu : " & type_fixation, "Erreur")
End Select

Case Else gère tous les cas non prévus — c'est une bonne pratique de toujours l'inclure.

Les boucles

Les boucles répètent un bloc de code plusieurs fois.

For...Next

Quand vous connaissez le nombre d'itérations à l'avance :

Dim somme As Double = 0

For i = 1 To 10
    somme = somme + i
Next

Vous pouvez spécifier un pas avec Step :

' Parcourir les valeurs paires de 0 à 20
For i = 0 To 20 Step 2
    ' ...
Next

For Each

Pour parcourir une collection (un tableau, une liste…) :

Dim epaisseurs() As Double = {0.5, 0.8, 1.0, 1.5, 2.0}

For Each ep As Double In epaisseurs
    If ep >= epaisseurCalculee Then
        epaisseur = ep
        Exit For  ' On sort de la boucle dès qu'on a trouvé
    End If
Next

While...End While

Quand la condition de sortie n'est pas liée à un compteur :

Dim tentatives As Integer = 0

While resultat > tolerance And tentatives < 100
    ' ... ajuster le calcul ...
    tentatives = tentatives + 1
End While

Les chaînes de caractères

Le texte se manipule avec le type String. Voici les opérations les plus utiles :

' Concaténation avec &
Dim designation As String = "Support " & type_piece & " - " & CStr(longueur) & " mm"

' Longueur
Dim nombre As Integer = designation.Length

' Conversion en majuscules / minuscules
Dim majuscules As String = designation.ToUpper()
Dim minuscules As String = designation.ToLower()

' Vérifier si une chaîne contient un texte
If designation.Contains("moteur") Then
    ' ...
End If

' Extraire une partie (à partir de la position 8, sur 5 caractères)
Dim extrait As String = designation.Substring(8, 5)

Note : utilisez & (et non +) pour concaténer des chaînes. L'opérateur + fonctionne aussi, mais & est plus sûr car il convertit automatiquement les nombres en texte.

Les conversions de types

Vous aurez souvent besoin de convertir une valeur d'un type à un autre :

' Nombre vers texte
Dim texte As String = CStr(42)

' Texte vers nombre
Dim nombre As Double = CDbl("3.14")
Dim entier As Integer = CInt("42")

' Arrondir un nombre décimal
Dim arrondi As Double = Math.Round(3.14159, 2)  ' → 3.14

Les tableaux

Un tableau stocke plusieurs valeurs du même type :

' Déclarer et initialiser un tableau
Dim epaisseurs() As Double = {0.5, 0.8, 1.0, 1.5, 2.0, 3.0}

' Accéder à un élément (l'index commence à 0)
Dim premiere As Double = epaisseurs(0)   ' → 0.5
Dim troisieme As Double = epaisseurs(2)  ' → 1.0

' Nombre d'éléments
Dim nombre As Integer = epaisseurs.Length  ' → 6

Les tableaux sont particulièrement utiles en iLogic pour stocker des listes de valeurs normalisées (épaisseurs de tôle, diamètres de vis, sections de profilés…).

Les fonctions mathématiques

VB.NET donne accès aux fonctions mathématiques courantes via la classe Math :

Fonction Description Exemple
Math.Round(x, n) Arrondir à n décimales Math.Round(3.146, 2)3.15
Math.Abs(x) Valeur absolue Math.Abs(-5)5
Math.Max(a, b) Le plus grand des deux Math.Max(3, 7)7
Math.Min(a, b) Le plus petit des deux Math.Min(3, 7)3
Math.Sqrt(x) Racine carrée Math.Sqrt(9)3
Math.PI La constante pi 3.14159…

Afficher un message

Pour communiquer avec l'utilisateur depuis une règle, utilisez MessageBox.Show :

MessageBox.Show("Le diamètre calculé est " & CStr(diametre) & " mm.", "Résultat")

Le premier argument est le message, le second est le titre de la boîte de dialogue. C'est utile pendant le développement pour vérifier les valeurs, ou en production pour alerter l'utilisateur.

Ce qu'il faut retenir

Vous n'avez pas besoin de tout mémoriser. Voici l'essentiel pour écrire vos premières règles :

  • Variables : Dim nom As Type = valeur pour les variables locales ; les paramètres Inventor s'utilisent directement par leur nom
  • Conditions : If...Then...ElseIf...Else...End If et Select Case
  • Boucles : For...Next pour compter, For Each pour parcourir une collection
  • Texte : concaténer avec &, convertir avec CStr(), CDbl(), CInt()
  • Commentaires : ' pour expliquer votre code

Le reste viendra naturellement avec la pratique. Dans le chapitre suivant, nous allons mettre ces bases en application en créant notre première règle iLogic.


Coup de pouce Besoin d'un développement Inventor (iLogic, .NET, VBA, C++) ou Fusion 360 (Python, C++) ? Contactez-moi pour un devis gratuit.