Geneva Mechanism 日內瓦機構 MaxScript
Geneva Drive 運動在許多設備和機械中各種形式的可轉位設備應用,將連續旋轉的傳動轉換為間歇旋轉的運動齒輪機構。
- 傳動曲柄半徑 Drive Crank Radius
- 傳動插槽數量 Driven Slot Quantity
- 傳動銷直徑 Drive Pin Diameter
- 傳動銷允許間隙 Allowed Clearance
- 中心距離 Center Distance
- 日內瓦車輪半徑 Geneva Wheel Radius
研究日內瓦機構於 3ds max 使用 MaxScript 的運動角度計算。目前謹初步旋轉計算,間隙細節尚未考量。
三角形計算函數 (MaxScript)
fn gTrigonometric La Lb Lc gAngle = ( semip = (La + Lb + Lc) / 2 Const = sqrt(semip * (semip - La) * (semip - Lb) * (semip - Lc)) if gAngle == "A" then asin(2 * Const / (Lb * Lc)) else if gAngle == "B" then asin(2 * Const / (La * Lc)) else 180 - asin(2 * Const / (Lb * Lc)) - asin(2 * Const / (La * Lc)) )
依據 La, Lb, Lc 三個邊長計算角度,可以選擇 (A 或 B)
傳動輪旋轉角速度
Loops = Y / 360 -- 超出一圈 360 度的處理 Y_Circle = Y - (360 * (Loops as Integer)) as Float -- 只一圈 360 度 R_Rotation = Y_Circle
處於槽口中間時
if( Y_Circle > -55 and Y_Circle < -54) then R_Rotation = -54.98 -- 處於槽口中間時 else if(R_Rotation < -110) then R_Rotation = -110 -- 超出碰撞範圍時
得到 R_Rotation 傳動輪旋轉角度,範圍 0 ~ 360 度。
計算 B 邊長
A_Side_Length = 71.7592 -- A 邊長 C_Side_Length = 122.0656 -- C 邊長 B_Side_Length = sqrt((pow A_Side_Length 2) + (pow C_Side_Length 2) - (2 * A_Side_Length * C_Side_Length * cos(radToDeg(R_Rotation + 54.9956) * (PI / 180))))
計算日內瓦車輪角速度
D_Angle = gTrigonometric A_Side_Length B_Side_Length C_Side_Length "A"
※ 使用 gTrigonometric 三角形計算函數 (MaxScript) 輸出時則再依三角形來判斷。
if(R_Rotation < -54.9) then degToRad(D_Angle + 36 - (72 * (Loops as Integer))) -- 72 = 360/5 傳動插槽數量 else if(R_Rotation > -55.1) then -degToRad(D_Angle - 36 - (72 * (-Loops as Integer))) else 54.98