Pb-vergelijking

Hallo

Ik ben op zoek om te schrijven:

Als de Øext = 14 dan is de hartafstand = 5,5

Als de Øext = 17 dan is de hartafstand = 7

Als de Øext = 21 dan is de hartafstand = 9

in de vorm van een vergelijking.

 


nom_des_cotes.png

Hallo

Het zou er als volgt uit moeten zien (standaard, als DIAMEXT niet gelijk is aan 17 of 21, is de CENTERAFSTAND gelijk aan 5.5):

EQ1 = als(DIAMEXT=17;7;5.5)

HARTAFSTAND = als(DIAMEXT=21,9;EQ1)

1 like

Ik schreef: EQ1= (iif("Ø ext@Esquisse1@063.13.01.Part" = 17, 7, 5.5)) maar het vertelt me dat de vergelijking ongeldig is.

Het probleem komt niet van de dubbele "i" in "iif"? En de 2 haakjesspellen zijn waarschijnlijk niet nodig:

EQ1 = als("Ø ext@Esquisse1@063.13.01.Part"=17;7;5.5)

je moet het Ø-teken niet plaatsen

1 like
Dat is niet waar het probleem vandaan komt:

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

Zelfs als ik schrijf zoals jij, heb ik een fout. Het is misschien de tweede  = hij vindt het niet leuk.

Ik schreef:

"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"))

Maar de Ø17 heeft de 7e afstand, de Ø21 heeft de 9e afstand maar de Ø14 heeft ook de 7e afstand.

Sorry dat ik altijd iif zie in plaats van if op de voorbeelden die je schrijft.

Ik heb een oplossing gevonden die werkt. Het enige probleem is wanneer ik de 3D bijwerken, ik moet 2 keer klikken op opnieuw op te bouwen voor de 5,5 centrumafstand om bij te werken.

In mijn voorbeelden gebruikte ik = tekens in plaats van >!

Daarnaast zit er een fout in je laatste voorbeeld met "17,5.5,7", ik schreef "17,7,5.5".

Dus met jouw waarden zou het moeten zijn:

EQ3 = als("Ø 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)

In SolidWorks 2011 moet ik iif schrijven om de vergelijking correct te laten zijn. Als ik schrijf als er een foutmelding verschijnt: De syntaxis van de vergelijking is niet correct.

 

 


solution_trouvee.png
1 like

Hallo

Ik zag net dat het gelijkteken = niet werkt en dat er een truc is. Normaal gesproken is het niet nodig om 2 keer opnieuw te bouwen (en de iif is sinds SolidWorks 2012 gewijzigd in if met slechts één i).

De vergelijkingen zullen dus zijn:

EQ3 = iif(niet("Ø 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 like

Je tweede vergelijking werkt niet.

Het werkt als ik zo schrijf:

EQ3 = iif(niet("Ø 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" ))

Aan de andere kant moeten we twee keer opnieuw opbouwen.

1 like