ΠΠ½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠ³ΠΎΡΠ°Π½ΠΈΠ΅ β ΠΊΠΎΡΡΠ΅Π»ΡΡΠΈΡ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ΅ΡΡΡΠ΅Ρ ΡΠ°ΠΊΡΠ½ΡΠΉ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΠ³ΠΎΡΠ°Π½ΠΈΡ. Π£ ΡΠ°ΠΊΠΎΠ³ΠΎ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄Π²ΠΈΠΆΡΡΠΈΡ ΡΡ ΡΠ°ΡΡΠ΅ΠΉ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ ΡΠ²ΡΠ·Π°Π½Ρ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
Π§ΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΡΡΡΠΌΠΈ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ, Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ. ΠΠ° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½Π°Π·Π²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΠ°ΡΡΡΠΌ ΠΌΠΎΡΠΎΡΠ°. (Π― Π½Π΅ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΠΈ Π½Π΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠΊ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π°Π·Π²Π°Π½ΠΈΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ ΡΠΎΡΠ½Ρ, Π½ΠΎ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎΠ± ΠΎΠ΄Π½ΠΈΡ Π²Π΅ΡΠ°Ρ . ΠΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΡΡΠ΄Π° http://en.wikipedia.org/wiki/Four-stroke_cycle.)
camshaft β ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π²Π°Π»
outlet valve β Π²ΡΠΏΡΡΠΊΠ½ΠΎΠΉ ΠΊΠ»Π°ΠΏΠ°Π½
inlet valve β Π²ΠΏΡΡΠΊΠ½ΠΎΠΉ ΠΊΠ»Π°ΠΏΠ°Π½
cylinder β ΡΠΈΠ»ΠΈΠ½Π΄Ρ
piston β ΠΏΠΎΡΡΠ΅Π½Ρ
connecting rod β ΡΠ°ΡΡΠ½
drive shaft β Π²Π΅Π΄ΡΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΊΠΎΠ»Π΅Π½ΡΠ°ΡΡΠΉ Π²Π°Π»
ΠΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ ΠΌΡ Π½Π°ΡΠ½Π΅ΠΌ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΡΡΠΈ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°ΡΡΡΠΌΠΈ, Π½ΡΠΆΠ½ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡΡΡΡ: Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΡΡΠ½ΠΈ Π² ΡΠΈΠ»ΠΈΠ½Π΄ΡΠ°Ρ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ Π·Π° ΡΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π²ΠΎΡΠΏΠ»Π°ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΏΠ»ΠΈΠ²Π°, ΠΎΠ½ΠΈ ΡΠΎΠ»ΠΊΠ°ΡΡ Π²Π΅Π΄ΡΡΠΈΠΉ Π²Π°Π» (ΠΈΠ»ΠΈ ΠΊΠΎΠ»Π΅Π½ΡΠ°ΡΡΠΉ Π²Π°Π») Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠΌ ΠΌΠ°Ρ ΠΎΠ²ΡΠΌ ΠΊΠΎΠ»Π΅ΡΠΎΠΌ ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ Π²Π°Π»ΠΎΠΌ (ΠΈΠ»ΠΈ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π·Π΄Π΅ΡΡ), Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ Π²Π°Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠΏΡΡΠΊΠ½ΡΡ ΠΈ Π²ΠΏΡΡΠΊΠ½ΡΡ ΠΊΠ»Π°ΠΏΠ°Π½ΠΎΠ². ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΎΠΏΠ»ΠΈΠ²Π° ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΈΠΌΡΠ»ΠΈΡΡΠ΅Ρ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΏΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ. Π Π½Π°ΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΌΠ°Ρ ΠΎΠ²ΠΎΠ΅ ΠΊΠΎΠ»Π΅ΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ°ΡΠ°ΡΡ Π²Π΅Π΄ΡΡΠΈΠΉ Π²Π°Π» ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ, Π° Π²Π΅Π΄ΡΡΠΈΠΉ Π²Π°Π», Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΡΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΡΡΠ΅Π½Ρ ΠΈ Π΅Π³ΠΎ ΡΠ°ΡΡΠ½. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ½Π΅ΡΠ³ΠΈΠ΅ΠΉ Π»Π°ΠΌΠΏΡ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠΉ Π² Π½Π°ΠΊΠΎΠ½Π΅ΡΠ½ΠΈΠΊ ΡΠ²Π΅ΡΠΈ Π·Π°ΠΆΠΈΠ³Π°Π½ΠΈΡ, Π²ΡΠ°ΡΠ°Ρ Π²Π΅Π΄ΡΡΠΈΠΉ Π²Π°Π».
ΠΠ΅Π΄ΡΡΠΈΠΉ Π²Π°Π» ΠΏΡΠΎΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π·Π° Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠ°Ρ ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ»Π΅ΡΠ°, ΠΊΠ°ΠΊ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ (ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ copy rotation ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½ΠΎ Π·Π΄Π΅ΡΡ ΠΌΡ Π²ΡΡ Ρ ΠΎΡΠΈΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ ΡΠ΅ΡΠ΅Π· pydrivers). Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ pydrivers Π΄Π»Ρ ΠΊΠ°Π½Π°Π»Π° RotX Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΡΠΎ:
ob('Flywheel').RotX/(2*m.pi)*36
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π½Π΅ΡΠΊΠ»ΡΠΆΠΈΠΌ, Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ - Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² ΡΠ°Π΄ΠΈΠ°Π½Π°Ρ , Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ pydriver-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π² Π³ΡΠ°Π΄ΡΡΠ°Ρ , ΠΏΠΎΠ΄Π΅Π»Π΅Π½Π½ΡΡ Π½Π° 10.
ΠΡΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΈ ΠΎΠ±Π° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²Π°Π»Π° Π±ΡΠ΄ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π·Π° Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠ°Ρ ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ»Π΅ΡΠ°, Π½ΠΎ ΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡΡ, ΡΠΌΠ΅Π½ΡΡΠ΅Π½Π½ΠΎΠΉ Π² Π΄Π²Π° ΡΠ°Π·Π° ΠΈ Ρ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ°ΡΠ΅Π½ΠΈΡ:
m.degrees(ob('Flywheel').RotX*-0.5)/10.0
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠ½ΠΊΡΠΈΡΠΌ Π² ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ ΠΠΈΡΠΎΠ½Π° math, ΠΌΡ Π½Π΅ ΡΡΠ°Π»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ Π² Π³ΡΠ°Π΄ΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, Π° Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ degrees(), ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΉ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ math.
ΠΡ ΡΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π²Π°Π» Ρ ΠΊΡΠ»Π°ΡΠΊΠΎΠΌ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΌ ΡΠΎΡΠ½ΠΎ Π²Π½ΠΈΠ·. ΠΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΎΡΠΈ X ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π°Π»Π° Π½Π° Π²Ρ ΠΎΠ΄Π΅ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π²ΡΠ°ΡΠ΅Π½ΠΈΡ Π²Π΅Π΄ΡΡΠ΅Π³ΠΎ Π²Π°Π»Π°, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΠ½ΡΡΡ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΎΠ½ Π΄Π²ΠΈΠ³Π°Π΅ΡΡΡ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΅Π³ΠΎ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π²ΡΠ°ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΡΡΠ°ΡΡ, ΡΡΠΎΠ±Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΈΠΊΠ»Ρ Π²ΠΎΡΠΏΠ»Π°ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΈΠ»ΠΈΠ½Π΄ΡΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ»Π°ΠΏΠ°Π½ Π½Π° Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ Π²Π½ΠΈΠ· ΠΈ Π·Π°ΠΊΡΡΠ²Π°Π΅Ρ ΠΊΠ»Π°ΠΏΠ°Π½ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡΠΊΡΠΎΠΉ Π²ΠΎΡΠΏΠ»Π°ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
ob('DriveShaftPart').RotX/(2*m.pi)*18+9
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π°Π»Π° Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΠΏΠΎΡΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎ Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°ΠΏΠ°Π·Π΄ΡΠ²Π°Π½ΠΈΡ (Π·Π΄Π΅ΡΡ 24, Π½ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΡΠΎΠ³ΠΎ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠ΅):
ob('DriveShaftPart').RotX/(2*m.pi)*18+24
ΠΠ²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ½Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ, Π½ΠΎ Π΅Π³ΠΎ ΡΠΎΡΠ½ΠΎΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ. ΠΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ Π΄Π»ΠΈΠ½Π° ΠΎΡΡΠ΅Π·ΠΊΠ° Q β ΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ β ΠΈ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π½ΡΡΠΎΠΌ Π²Π΅Π΄ΡΡΠ΅Π³ΠΎ Π²Π°Π»Π° ΠΈ ΡΠΎΡΠΊΠΎΠΉ, Π³Π΄Π΅ ΡΠ°ΡΡΠ½ (L Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅) ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΡΡΠ½Π΅ΠΌ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π»ΠΈΠ½Π° ΡΠ°ΡΡΠ½Π° ΠΏΠΎΡΡΠΎΡΠ½Π½Π°, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Q Π±ΡΠ΄Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΎΡ ΡΠ³Π»Π° ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° Ξ± Π²Π΅Π΄ΡΡΠ΅Π³ΠΎ Π²Π°Π»Π°. Π Π°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΡ ΡΠ΅Π½ΡΡΠ° Π²Π΅Π΄ΡΡΠ΅Π³ΠΎ Π²Π°Π»Π°, Π΄ΠΎ ΡΠΎΡΠΊΠΈ, Π³Π΄Π΅ ΡΠ°ΡΡΠ½ ΡΠ²ΡΠ·Π°Π½ Ρ Π²Π΅Π΄ΡΡΠΈΠΌ Π²Π°Π»ΠΎΠΌ, ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ. ΠΡ Π½Π°Π·ΠΎΠ²Π΅ΠΌ ΡΡΠΎ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ R. Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΡΠΎ ΡΡΠΎΡΠΎΠ½Π°ΠΌΠΈ Q, L, ΠΈ R ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΡΠ³ΠΎΠ» Ξ±. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΈ ΠΈΠ· ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ (L, R, ΠΈ Ξ±) ΠΈΠ·Π²Π΅ΡΡΠ½Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΡΠΈΡΠ»ΠΈΡΡ Q, ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅ΠΎΡΠ΅ΠΌΡ ΠΊΠΎΡΠΈΠ½ΡΡΠΎΠ² (http://ru.wikipedia.org/wiki/Π’Π΅ΠΎΡΠ΅ΠΌΠ°_ΠΊΠΎΡΠΈΠ½ΡΡΠΎΠ²). ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ q() Π² ΡΠ°ΠΉΠ»Π΅ pydrivers.py, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π»ΠΈΠ½Ρ Q, ΠΏΡΠΈ Π·Π°Π΄Π°Π½Π½ΡΡ L, R, ΠΈ Ξ±:
def q(l,r,a): return r*cos(a)+sqrt(l**2-(r*sin(a))**2)
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠ°Π½Π°Π»Π° ΠΏΠΎΡΡΠ½Ρ LocZ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²:
p.q(1.542,0.655,ob('DriveShaftPart').RotX)
Π’ΠΎΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ L ΠΈ R Π±ΡΠ»ΠΈ Π²Π·ΡΡΡ ΠΈΠ· ΠΌΠ΅ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π²Π΅ΡΡΠΈΠ½ ΡΠ°ΡΡΠ½Π° ΠΈ Π²Π΅Π΄ΡΡΠ΅Π³ΠΎ Π²Π°Π»Π° Π² ΠΎΠΊΠ½Π΅ Transform Properties. (ΠΊΠ½ΠΎΠΏΠΊΠ° N Π² ΠΎΠΊΠ½Π΅ 3D-Π²ΠΈΠ΄Π°)
ΠΠ»Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ°ΡΡΠ½Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎ ΠΆΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ LocZ-ΠΊΠ°Π½Π°Π»Π°, Π½ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΠΊ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ½Ρ ΠΈ ΡΠ°ΡΡΠ½Π°, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΡΠΎΡΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π»ΠΈ.
ΠΠ΄Π½Π°ΠΊΠΎ, Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠ½Π° Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΎΡΠΈ Z, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π²ΠΎΠΊΡΡΠ³ ΠΎΡΠΈ X Ρ ΡΠ΅Π½ΡΡΠΎΠΌ Π² ΡΠΎΡΠΊΠ΅, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΠ΅ΠΉ ΡΠ°ΡΡΠ½ Ρ ΠΏΠΎΡΡΠ½Π΅ΠΌ. Π£Π³ΠΎΠ» Π²ΡΠ°ΡΠ΅Π½ΠΈΡ (Ξ³ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅) ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΠΈΠ· Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ L, R, ΠΈ Ξ±:
def topa(l,r,a):
Q=q(l,r,a)
ac=acos((Q**2+l**2-r**2)/(2*Q*l))
if a%(2*pi)>pi : ac = -ac
return -ac
Pydriver Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ RotX Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π²ΠΎΡ ΡΠ°ΠΊ:
m.degrees(p.topa(1.542,0.655,ob('DriveShaftPart').RotX))/1 0.0
ΠΠΏΡΡΠΊΠ½ΠΎΠΉ ΠΈ Π²ΡΠΏΡΡΠΊΠ½ΠΎΠΉ ΠΊΠ»Π°ΠΏΠ°Π½Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²Π°Π»ΠΎΠ². ΠΡΠ΅ΡΡΠ°Π½ΠΈΠ΅ ΠΊΡΠ»Π°ΡΠΊΠ° ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ, ΡΠ°ΠΊ ΡΡΠΎ Π·Π΄Π΅ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π½Π΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠΎΡΠΌΡ Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΡΠ°, Π° Π°ΠΏΠΏΡΠΎΠΊΡΠΈΠΌΠΈΡΡΠ΅ΠΌ Π΅Π΅, ΠΎΠ½Π° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ (ΡΠΎ Π΅ΡΡΡ, ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»Π°ΠΏΠ°Π½ Π² ΡΡΠ½ΠΊΡΠΈΠΈ Π΅ΡΠ΅ ΠΎΠΆΠΈΠ²Π»Π΅Π½Π½ΠΎΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ΅). Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΠΏΠ°Π½Π° ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡ ΡΠ³Π»Π° Π²ΡΠ°ΡΠ΅Π½ΠΈΡ:
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π² pydrivers.py ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ spike(), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ³ΠΎΠ» ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π°Π»Π° ΠΊΠ°ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ 0.0 ΠΈ 1.0 ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ΅Π·ΠΊΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π΅Ρ Π² ΡΠ°ΠΉΠΎΠ½Π΅ Π½ΡΠ»Π΅Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π°:
def spike(angle):
t = (cos(angle)+1.0)/2.0
return t**4
Π‘Π΅ΠΉΡΠ°Ρ ΠΊΠ»Π°ΠΏΠ°Π½ Π΄Π²ΠΈΠΆΠ΅ΡΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ, Π½ΠΎ Π»ΠΈΠ½ΠΈΡ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ ΡΠ»Π΅Π΄ΡΠ΅Ρ, Π½Π°ΠΊΠ»ΠΎΠ½Π΅Π½Π° Π½Π° 10 Π³ΡΠ°Π΄ΡΡΠΎΠ² (Π²ΠΏΠ΅ΡΠ΅Π΄ Π΄Π»Ρ Π²ΠΏΡΡΠΊΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΠΏΠ°Π½Π°, Π½Π°Π·Π°Π΄ Π΄Π»Ρ Π²ΡΠΏΡΡΠΊΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΠΏΠ°Π½Π°), ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π΄Π²ΡΠΌΡ ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ, LocZ ΠΈ LocY, ΠΊΠ°ΠΆΠ΄ΡΠΉ Π½ΡΠΆΠ½ΠΎ ΡΠΌΠ½ΠΎΠΆΠΈΡΡ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΠΊΠ»ΠΎΠ½Π½ΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² pydrivers.py:
def valveZ(angle,tilt,travel,offset):
return cos(radians(tilt))*spike(angle)*travel+offset
def valveY(angle,tilt,travel,offset):
return sin(radians(tilt))*spike(angle)*travel+offset
ΠΠ±Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ³Π»Π° ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Tilt (Π½Π°ΠΊΠ»ΠΎΠ½) - Π½Π°ΠΊΠ»ΠΎΠ½ ΠΊΠ»Π°ΠΏΠ°Π½Π° (Π² Π³ΡΠ°Π΄ΡΡΠ°Ρ ), travel β ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° ΠΏΡΡΠΈ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΠΊΠ»Π°ΠΏΠ°Π½ Π²Π΄ΠΎΠ»Ρ Π½Π°ΠΊΠ»ΠΎΠ½Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ, Π° offset (ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠ°ΡΠΈΡ) - Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΠ»Π°ΠΏΠ°Π½Π°. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ pydriver-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ LocZ ΠΈ LocY-ΠΊΠ°Π½Π°Π»ΠΎΠ² Π²ΠΏΡΡΠΊΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΠΏΠ°Π½Π°:
p.valveZ(ob('CamInlet').RotX+m.pi,-10.0,-0.1,6.55)
ΠΈ
p.valveY(ob('CamInlet').RotX+m.pi,-10.0,-0.1,-0.03)
(ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠΏΡΡΠΊΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΠΏΠ°Π½Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Ρ, Π½ΠΎ Ρ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠ³Π»ΠΎΠΌ tilt.)
ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ, Π²ΡΠ΅ IPO-ΠΊΠ°Π½Π°Π»Ρ Π±ΡΠ»ΠΈ ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅. ΠΠΎ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ, Π²Π΅Π΄Ρ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ½Π΅ΡΠ³ΠΈΡ Π»Π°ΠΌΠΏΡ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠΉ Π² ΡΠ²Π΅ΡΡ Π·Π°ΠΆΠΈΠ³Π°Π½ΠΈΡ. Π pydrivers.py ΠΌΡ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ topi(), ΠΊΠΎΡΠΎΡΠ°Ρ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΡΠΎΠΌΠ΅ ΡΠ³Π»Π° Π²ΡΠ°ΡΠ΅Π½ΠΈΡ Π΄Π²ΠΈΠΆΡΡΠ΅Π³ΠΎΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ³ΠΎΠ» h (Π² ΡΠ°Π΄ΠΈΠ°Π½Π°Ρ ) ΠΈ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ i. topi() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠ³ΠΎΠ» Π΄Π²ΠΈΠ³Π°ΡΡΠ΅Π³ΠΎΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ 0 ΠΈ h, ΠΈ Π½ΠΎΠ»Ρ, Π΅ΡΠ»ΠΈ ΡΠ³ΠΎΠ» Π²ΡΠΉΠ΄Π΅Ρ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠ΄Π°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ³ΠΎΠ» Π½Π° Π²Ρ ΠΎΠ΄Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ 2*pi (ΠΊΠΎΠ³Π΄Π° Π΄Π²ΠΈΠ³Π°ΡΡΠΈΠΉΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΠΎΠΉΠ΄Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΡΡΠ³), ΠΌΡ ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΡΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ:
def topi(a,h,i):
m = a%(2*pi)
r=0.0
if m<h: r=i
return r
pydriver-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠ°Π½Π°Π»Π° ΡΠ½Π΅ΡΠ³ΠΈΠΈ (Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ "Energ" Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΡΠΈΠ²ΡΡ IPO), ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
p.topi(ob('DriveShaftPart').RotX/2+m.pi,0.3,0.5)