Zobrazit plnou verzi příspěvku: Pravidlo iLogic nefunguje

mr.chain
19.08.2013, 17:08

Dobrý den,v modelu řetězového kola chci použít jednoduché pravidla k řízení velikosti úhlu otevření. Pravidla se liší pouze rozsahem hodnot a i přesto dvě fungují a jedno ne.  If z_pocet_zubu = 4 Or 5 Or 6 Or 7 Or 8 Or 9 Or 10 Or 11 ThenParameter("alfa_uhel_otevreni") = 74 degEnd IfIf z_pocet_zubu = 12 Or 13 Or 14 Or 15 Or 16 Or 17 Or 18 Or 19 Or 20 Or 21 Or 22 Or 23 Or 24 Or 25 Or 26 Or 27 Or 28 Or 29 ThenParameter("alfa_uhel_otevreni") = 56 degEnd IfIf z_pocet_zubu > 29 ThenParameter("alfa_uhel_otevreni") = 38 degEnd IfJeště doplním, že pokud se počet zubů pohybuje v rozsahu 12 nahoru, vše funguje jak má. Při hodnotě menší než 12 se nastaví hodnota 56 deg. 

mr.chain2013-08-19 17:22:28

Vladimír Michl
19.08.2013, 17:35

To chování je logické, podmínka OR není správně zapsána. Musí být X=12 or X=14 or X=15 ...

mr.chain
19.08.2013, 17:48
Díky za reakci, nicméně tím to není.Nefunkční pravidlo jsem zjednodušil na If z_pocet_zubu = 8 ThenParameter("alfa_uhel_otevreni") = 74 degEnd Ifa i přesto se tam stále dosazuje hodnota 56 deg.  edit.: ještě doplním , že v náčrtu chyby není a úhel 74° jde bez problémů sestrojit.
mr.chain2013-08-19 17:52:28

Navara
19.08.2013, 20:57


Doporučuji provést dvě úpravy:1) Podmínku na počet zubů změnit z výčtu hodnot na rozsah2) Hodnotu parametru uzavřít do závorekNakonec je dobré provést aktualizaci dokumentu [code]
SyntaxEditor Code SnippetIf z_pocet_zubu >= 4 And z_pocet_zubu <= 11 Then
Parameter("alfa_uhel_otevreni") = "74 deg"
ElseIf z_pocet_zubu > 11 And z_pocet_zubu <= 29 Then
Parameter("alfa_uhel_otevreni") = "56 deg"
ElseIf z_pocet_zubu > 29 Then
Parameter("alfa_uhel_otevreni") = "38 deg"
Else
MessageBox.Show("Minimalni pozadovany pocet zubu je 4")
End If
InventorVb.DocumentUpdate()[/code]

mr.chain
20.08.2013, 08:29

Díky, toto opravdu funguje tak jak má.Snažím se do iLogic proniknout, ale jde to pomalu.