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 écrivezlongueurdans 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éDimsert à 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 \ 2 → 3 |
Mod |
Reste de la division | 7 Mod 2 → 1 |
^ |
Puissance | 2 ^ 3 → 8 |
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
Doublesont stockés en virgule flottante, ce qui entraîne de minuscules erreurs d'arrondi. Par exemple,0.1 + 0.2ne vaut pas exactement0.3— le résultat réel est0.30000000000000004. Une comparaison avec=peut donc échouer alors que les valeurs semblent identiques.iLogic fournit la fonction
DoubleForEqualsqui 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 = valeurpour les variables locales ; les paramètres Inventor s'utilisent directement par leur nom - Conditions :
If...Then...ElseIf...Else...End IfetSelect Case - Boucles :
For...Nextpour compter,For Eachpour parcourir une collection - Texte : concaténer avec
&, convertir avecCStr(),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.
Besoin d'un développement Inventor (iLogic, .NET, VBA, C++) ou Fusion 360 (Python, C++) ? Contactez-moi pour un devis gratuit.