電腦繪圖3dsmax工業產品繪圖Geneva Mechanism 日內瓦機構 (MaxScript)

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

模擬日內瓦機構效果

https://www.youtube.com/embed/nJ0Vh0UGWVw