Równanie Pb

Witam

Szukam do napisania:

Jeśli Øext = 14, to odległość od środka = 5,5

Jeśli Øext = 17, to odległość od środka = 7

Jeśli Øext = 21, to odległość od środka = 9

w postaci równania.

 


nom_des_cotes.png

Witam

Powinno to wyglądać tak (domyślnie, jeśli DIAMEXT nie jest ani równy 17, ani 21, ODLEGŁOŚĆ ŚRODKA będzie równa 5,5):

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

ODLEGŁOŚĆ ŚRODKA = JEŻELI(DIAMEXT=21,9,EQ1)

1 polubienie

Napisałem: EQ1= (iif("Ø ext@Esquisse1@063.13.01.Part" = 17, 7, 5.5)), ale mówi mi, że równanie jest nieprawidłowe.

Problem nie wynika z podwójnego "i" w "iif"? A te 2 gry w nawiasy prawdopodobnie nie są konieczne:

EQ1 = if("Ø ext@Esquisse1@063.13.01.Część"=17,7,5,5)

nie należy umieszczać znaku Ø

1 polubienie
Nie stąd bierze się problem:

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

Nawet pisząc tak jak ty, mam błąd. To może ten drugi  = mu się nie podoba.

Napisałem:

"EQ3"= (iif("Ø ext@Esquisse1@063.13.01.Część"<17,5.5,7))

"entraxe@Esquisse3@063.13.01.Część" =  ( iif("Ø ext@Esquisse1@063.13.01.Część">17.9, "EQ3"))

Ale Ø17 ma 7. rozstaw, Ø21 ma 9. rozstaw, ale Ø14 ma również 7. rozstaw.

Przepraszam, zawsze widzę iif zamiast if na przykładach, które piszesz.

Znalazłem rozwiązanie, które działa. Jedynym problemem jest to, że kiedy aktualizuję 3D, muszę kliknąć 2 razy na odbudowaniu, aby odległość od środka 5,5 została zaktualizowana.

W moich przykładach użyłem = znaki zamiast >!

Ponadto w Twoim ostatnim przykładzie jest błąd z "17,5,5,7", napisałem "17,7,5,5".

Tak więc z Twoimi wartościami powinno być:

EQ3 = if("Ø ext@Esquisse1@063.13.01.Część"=17,7,5,5)

"entraxe@Esquisse3@063.13.01.Część"= if(ext@Esquisse1@063.13.01.Część"=21.9,EQ3)

W SolidWorks 2011 muszę napisać iif, aby równanie było poprawne. Jeśli napiszę, jeśli pojawi się komunikat o błędzie: Składnia równania jest niepoprawna.

 

 


solution_trouvee.png
1 polubienie

Witam

Właśnie zobaczyłem, że znak równości = nie działa i jest pewna sztuczka. Zazwyczaj nie ma potrzeby przebudowywania 2 razy (a iif został zmieniony na if z tylko jednym i od czasu SolidWorks 2012).

Równania będą zatem następujące:

EQ3 = iif(not("Ø ext@Esquisse1@063.13.01.Część")<>17,7,5,5)

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

1 polubienie

Twoje drugie równanie nie działa.

Działa, jeśli napiszę tak:

EQ3 = iif(not("Ø ext@Esquisse1@063.13.01.Część")<>17,7,5,5)

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

Z drugiej strony, musimy odbudowywać się dwa razy.

1 polubienie