Inventor 2023 : iProperties.Mass majorée de 10%

Inventor 2023 : iProperties.Mass majorée de 10%

Sébastien_G
Advocate Advocate
696 Visites
4 Réponses
Message 1 sur 5

Inventor 2023 : iProperties.Mass majorée de 10%

Sébastien_G
Advocate
Advocate

Bonjour à Tous,

Ce post est au sujet de la Masse d'une pièce.

Mon cas est le suivant : je travaille avec des tubes dont l'épaisseur a une tolérance +0% / +20%.

Le Client me demande d'afficher l'épaisseur nominale et la masse pour la tolérance médiane.

J'ai bien réussi à majorer la masse de 10% tout en affichant l'épaisseur nominale avec les lignes de code suivantes :

 

Dim Parameter_Trigger As Double = Tube_Base_Thickness_mm
'##
If Thickness_Tolerance_Exchange_Tubes = "MW" Then
	iProperties.Mass = iProperties.Mass * 1.1
Else	
	iProperties.Mass = -1
End If

Là où ça coince c'est lorsque je change l'épaisseur.

En effet, lorsque je change l'épaisseur, la masse précédente est majorée de 10%.

Alors que je voudrais que la masse soit calculée avec la nouvelle épaisseur puis ensuite majorée de 10%.

Je suis à votre écoute, merci.

@Sébastien_G 

 

0 J'aime
Solutions acceptées (2)
697 Visites
4 Réponses
Replies (4)
Message 2 sur 5

ThomasB44
Mentor
Mentor
Solution acceptée

Salut @Sébastien_G 

Une de mes 1ères règles iLogic 😄

En fait en saisissant une valeur dans ton code tu "forces" la valeur de masse comme tu le ferais manuellement en la renseignant dans les iPropriétés. A la lecture suivante, le code reprend ta valeur forcée, hors tu souhaites qu'il prenne en compte la valeur calculée, il faut donc d'abord la rétablir par défaut :

iProperties.Mass = 1 'override automatic calculation
iProperties.Mass = -1 'set it back to automatic calculation
mass = iProperties.Mass 'read updated mass

La ligne 3 peut paraître insignifiante, mais le fait de lire l'iPropriété force en quelque sorte la mise à jour, cela peut être important si la suite du code ne la lit pas.

 

Puis appliquer ta boucle If/Then avec :

iProperties.Mass = Mass * 1.1

Et rien de plus en Else.

 

C'est comme cela que j'avais construit mon code pour des masses galvanisées correctes (+7%)


Thomas
Mechanical Designer / Inventor Professional 2025
Inventor Professional EESignature

0 J'aime
Message 3 sur 5

Sébastien_G
Advocate
Advocate
Solution acceptée

Bonjour @ThomasB44 ,

Toujours aussi prompt pour apporter une bonne solution, merci.

J'ai utilisé le code que tu m'as donné avec succès.

Voici le code que j'ai mis en place dans ma pièce.

 

Dim Mass As Double
'##
'### RÉINITIALISATION DE LA MASSE - RESET WEIGHT
iProperties.Mass = 1		' Annulation du calcul automatique - Override Automatic Calculation
iProperties.Mass = -1		' Revenir au calcul automatique - Set it back to Automatic Calculation
Mass = iProperties.Mass		' Lire la mise à jour de la masse - Read Update Mass
'##
'### CONDITION MAJORATION DE LA MASSE DE 10% - CONDITION FOR A 10% WEIGHT INCREASE
If Thickness_Tolerance_Exchange_Tubes = "MW" Then
	iProperties.Mass = iProperties.Mass * 1.1
Else
	iProperties.Mass = -1
End If
'##
'MISE À JOUR DU MODÈLE - MODEL UPDATE
iLogicVb.UpdateWhenDone = True

 

Est-ce que cela te semble correct ?

0 J'aime
Message 4 sur 5

ThomasB44
Mentor
Mentor

Je pense que tu peux retirer, après le Else, iProperties.Mass = -1

Cela ne produira pas de résultat puisque tu as mis à jour la propriété précédemment.

 

Personnellement, j'avais ajouté en iPropriétés personnalisées le poids brut (ou avant de forcer), le pourcentage appliqué et la masse ajoutée, pour affichage dans les documents si nécessaire 😉

 

 


Thomas
Mechanical Designer / Inventor Professional 2025
Inventor Professional EESignature

0 J'aime
Message 5 sur 5

Sébastien_G
Advocate
Advocate

Ok, merci. Je vais modifier mon code.

Sinon j'ai une question donc je vais la posté dans un autre post. 👍

0 J'aime