Pb equation

Bonjour,

Je cherche à écrire:

Si le Øext = 14 alors l'entraxe = 5.5

Si le Øext = 17 alors l'entraxe = 7

Si le Øext = 21 alors l'entraxe = 9

sous forme d'équation.

 


nom_des_cotes.png

Bonjour,

Ca devrait ressembler à ça (par défaut, si DIAMEXTn'est ni égal à 17 ou 21, l'ENTRAXE sera égale à 5,5) :

EQ1 = if(DIAMEXT=17,7,5.5)

ENTRAXE = if(DIAMEXT=21,9,EQ1)

1 « J'aime »

J'ai écrit : EQ1= (iif("Ø ext@Esquisse1@063.13.01.Part" = 17, 7, 5.5)) mais il me dit que l'équation est non valide.

Le problème ne vient pas du double "i" de "iif" ? Et les 2 jeux de parenthèse ne sont probablement pas nécessaires :

EQ1 = if("Ø ext@Esquisse1@063.13.01.Part"=17,7,5.5)

il ne faut pas mettre le signe Ø

1 « J'aime »
Ça n'est pas de là que vient le problème :

http://www.lynkoa.com/sites/default/files/questions/answer/12/03/2015/pb_equations.jpg

Même en écrivant comme vous , j'ai une erreur. C'est peu têtre le deuxième  = qu'il aime pas.

J'ai écrit:

"EQ3"= (iif("Ø ext@Esquisse1@063.13.01.Part"<17,5.5,7))

"entraxe@Esquisse3@063.13.01.Part" =  ( iif("Ø ext@Esquisse1@063.13.01.Part">17,9, "EQ3"))

Mais le Ø17 a bien l'entraxe 7, le Ø21 a bien l'entraxe 9 mais le Ø14 à l'entraxe 7 aussi.

Désolé je vois toujours iif au lieu de if sur les exemples que vous écrivez.

J'ai trouvé une solution qui marche. Le seul souci est quand je met à jour le 3D, je dois cliquez 2 fois sur reconstruire pour que l'entraxe 5.5 se mette à jour.

Dans mes exemples j'ai utilisé des signes = au lieu de > !

De plus il y a une erreur dans votre dernier exemple avec "17,5.5,7", j'ai écrit "17,7,5.5".

Donc avec vos valeurs ça devrait être :

EQ3 = if("Ø ext@Esquisse1@063.13.01.Part"=17,7,5.5)

"entraxe@Esquisse3@063.13.01.Part"= if(ext@Esquisse1@063.13.01.Part"=21,9,EQ3)

Sous SolidWorks 2011, je dois écrire iif pour que l'equation soit bonne. Si j'écris if un message d'erreur s'affiche: La syntaxe de l'équation n'est pas correcte.

 

 


solution_trouvee.png
1 « J'aime »

Bonjour,

Je viens de voir que le signe égal = ne fonctionne pas et qu'il y a une astuce. Normalement, pas besoin de reconstruire 2 fois (et le iif a été changé en if avec un seul i depuis SolidWorks 2012).

Les équations seront donc :

EQ3 = iif(not("Ø ext@Esquisse1@063.13.01.Part")<>17,7,5.5)

"entraxe@Esquisse3@063.13.01.Part"= iif(not("Øext@Esquisse1@063.13.01.Part")<>21,9,EQ3)

1 « J'aime »

Ta deuxième équation ne fonctionne pas.

Sa fonctionne si j'écris comme ça:

EQ3 = iif(not("Ø ext@Esquisse1@063.13.01.Part")<>17,7,5.5)

"entraxe@Esquisse3@063.13.01.Part" =  (iif("Ø ext@Esquisse1@063.13.01.Part" > 17, 9,"EQ3" ))

Par contre il faut reconstruire deux fois.

1 « J'aime »