驗證報告

驗證對象:skull-cam-template-PRINTFIX.pdf —— 一份 AI 產生的 1:1 裁切樣板。

圖面看起來很專業:尺寸線、鑽孔中心、裁切線與參考線分層、組裝順序、凸輪相位圖,一應俱全。

問題是它從來沒有被驗算過。

所有數字都是從 PDF 的向量座標直接解出來的,不是目測;所有結論都有對應的可重跑腳本。

修正版一樣是 AI 做的。差別不在誰做,在有沒有把每一步拿去驗 ——
這份報告裡的每個結論,都對應一支可以重跑的腳本。

結論

原始圖面做不出來。 不是公差問題,是機構本身不成立 —— 其中「轉頭」那一路即使零件全部完美裁切,自由度也是 0,轉不動。

以下數字全部是從 PDF 的向量座標直接讀出來的(pdftocairo + content stream 解析),不是目測。1mm = 2.8346 PDF unit。

致命(轉不動 / 裝不上)

#問題量到的數字
1轉頭連桿無解偏心銷在垂直面畫圓、轉盤銷在水平面畫圓,兩端都是普通旋轉銷且軸線互相垂直。即使讓轉盤自由轉,連桿長度仍要在 64.3~86.6mm 之間變動。這是缺球接頭的 RSSR 空間連桿,剛性連桿長度無解
2頂板轉頭槽開錯 90°槽是 16(沿 x)×4(沿 y);偏心銷實際位移是沿 y 走 ±12 = 24mm。連桿一進槽就頂死
3②點頭凸輪刮底板R22 偏心 8 → 掃出半徑 30;軸心只有 30 高。間隙 0mm
4點頭升降板落在盒子外面從動桿 B 長 86mm → 升降板頂端 z=130~146,頂板面 z=93。它被推到頭部要待的位置。板長應該約 24mm
5頸柱三個尺寸頂板 Ø8 / 頸柱轉盤 Ø6 / 點頭升降板根本沒開頸柱孔(只有 3 個 Ø4)
6連桿第二個孔畫在零件外下顎連桿 55×10,孔在 (6,5) 與 (6,50);轉頭連桿 70×10,孔在 (6,5) 與 (6,65)。x/y 寫反,照描會得到只有一個孔的連桿。應為 (49,5) 與 (64,5)
7下顎不會開合頭骨是正面平板,下顎只有一個垂直板面的中心銷 → 只能在板平面內左右擺

一定要改(不然裝起來很怪)

#問題量到的數字
8推桿豎在臉前面三個從動桿導槽在 y=58,頸柱孔在 y=90 —— 推桿在臉前方 32mm,而且構不到頭裡的下顎和眼球
9手把孔位置錯前板 Ø8 在 (150,25);凸輪軸是側板 Ø6 在 (57,30)。凸輪軸不會穿過前板
10盒體夾不起來前後板 180×90(滿寬)+ 側板 114×90(滿深),兩者都取滿尺寸。側板應為 108
11標註與實形不符頭骨標 84×100,實際輪廓 69.3×91;下顎標 60×34,實際 56.7×29
12頸柱長度沒給全份圖沒有任何一處寫頸柱多長 —— 而它決定所有推桿的長度

修正版做了什麼

保留原設計的靈魂:一根手搖軸、四片凸輪、四個動作(下顎/點頭/眼球/轉頭)。

凸輪輪廓也沿用原圖(水滴、雙凸、偏心圓)。改的是傳動路徑

1. 轉頭:丟掉空間連桿,改成 45° 斜槽

垂直往復 → 繞垂直軸旋轉,本來就需要螺旋、斜齒或斜槽。

轉頭叉口板被凸輪上下強制帶動 16mm(C 形叉口夾住偏心圓),板上開一條 45° 斜槽;

轉盤的臂末端有一支水平銷插在斜槽裡,板上下 16mm → 銷左右 ±8mm → 臂半徑 30 → 轉頭 ±15.5°

全部是平面板 + 一支銷,3mm 板可裁。

2. 點頭與轉頭解耦:頸柱做成「方孔花鍵」

轉盤中央開 8×6 方孔,套在同斷面的頸脊上 —— 可以上下滑、不能相對轉

於是點頭(上下 8mm)和轉頭(±15.5°)可以同時發生,互不干擾。轉盤本身高度固定在 z=77。

3. 頸柱移到頭部後方,做成「脊板」

原設計頸柱走頭部正中央 → 會穿過下顎片和眼球桿。

改成 8 寬×6 厚的扁棒站在 y=66~72(下顎在 54~60、眼球桿在 63~66),再用接合塊黏到頭骨後片。

頭的重心只前伸 12mm,8mm 斷面撐得住。

4. 頭裡的零件改「頂推 + 重力回位」,不用銷接

頭會上下 8mm 又左右轉 ±15.5°,任何從底座上來的銷接連桿都會被扭死。

改成:推桿頂端只是「頂」在下顎/眼球桿的受推板上,靠重力回位。

頭轉的時候,接觸點在受推板上滑一下就好 —— 已驗證接觸點跑動範圍在受推板內

(下顎 x 68.1~73.4 / 受推板 62~86;眼球 x 52.6~58.0 / 受推板 42~70)。

5. 下顎改「垂直下滑」

正面平板的頭骨,下顎要開合就得往下滑,不能單銷旋轉。

下顎加兩支「升支」(像真的下顎骨),升支上開 23mm 滑槽,套在頭骨主片的兩支 Ø4 銷上。

下顎張開 = 凸輪 11.2mm + 點頭 8mm,相對頭部總行程 11.6mm,槽長 24mm 夠。

6. 凸輪軸抬高、升降板進盒子裡

軸心 z=30 → 36(②凸輪最大半徑 28,留 8mm 間隙)。

升降板改成一片水平板直接躺在點頭凸輪上,位置縮到 x=78~118 完全避開推桿(不用開缺口)。

兩支導柱下插底板、上插中段導板,防止它歪與轉。

7. 推桿加厚到 6mm

眼球推桿全長 114mm,3mm 板會抖。6mm 板抗彎剛度是 8 倍(t³)。

導引點:頂板 + 中段導板 z=70。


修正版關鍵尺寸


盒體      180(x) × 114(y) × 90(z),板厚 3;側板改 108 深
凸輪軸    y=57, z=36, Ø6
凸輪 x    眼球 54 / 下顎 70 / 轉頭 124 / 點頭 110(必須與推桿同 x)
凸輪      眼球=雙凸 r12~18(每轉兩次) 下顎=水滴 r14.8~26
          轉頭=偏心 R20 e8 → r12~28   點頭=偏心 R12 e4 → r8~16
相位      下顎 0° / 點頭 90° / 眼球 180° / 轉頭 270°
推桿長    下顎 57 / 眼球 117,厚 6mm;寬腳只留 6mm 高
頸脊      8 寬 × 6 厚,y=69,由升降板頂起
轉盤      下盤 z=84~87 / 凸台 87~93(穿頂板)/ 壓片 93~96;方孔 8.6×6.6,撥銷半徑 30、z=82.5
斜槽      45°,銷 y = (82.5 − 板底高) + 42.5;叉口高 40.4(夾 Ø40 偏心圓)
頭骨      主片 y=51~54 與 60~63;下顎 54~60(6mm);眼球桿 63~66
          頭骨底面 z=125(+點頭 0~8)

實測動作(模擬跑一整圈)

曲柄點頭下顎開轉頭
4.08.3
60°0.510.7−13.4°
120°0.53.4−13.4°
180°4.01.1
240°7.53.5+13.4°
300°7.55.9+13.4°

四個動作錯開,連續無跳動。


干涉掃描(不是用眼睛看的)

「檢查 15 項全過」只證明我想到的那 15 個配對沒問題,不等於沒干涉。

所以另外做了一次全零件掃描:每片木板登記自己的「2D 外形 + 孔 + 厚度」,

在板內佈 1mm 網格取樣點,曲柄轉一圈取 72 個角度,兩兩互測「A 的點有沒有落進 B 的實體裡」。

29 片木板、約 12 萬個取樣點。留 1mm 容差,所以「貼合接觸」不算干涉。

第一次掃出 31 組。扣掉腳本自身的兩個問題(長條料只取樣 3 層會漏、原始圖面那組零件混進來)之後,

真正的設計錯誤有這些,都已修正:

掃到的真正的原因修法
下顎凸輪 ✕ 點頭升降板下顎凸輪在 x=84,但下顎推桿在 x=70 —— 推桿根本沒踩在自己的凸輪上凸輪移到 x=70
中段導板 ✕ 下顎/眼球推桿推桿下段「寬腳」16mm 高,會頂到 z=64 的導板;導板的槽只讓窄桿身過寬腳降到 6mm、導板抬到 z=70
推桿 ✕ 受推板(下顎、眼球)推桿頂端穿進受推板 2mm,而不是頂在它底面下顎推桿 60→57、眼球推桿 122→114
頸脊 ✕ 轉盤 / 轉盤臂我把頸脊做成「不會轉」,但方孔花鍵的重點就是它要跟著轉;轉盤臂還從頸脊斷面裡長出來頸脊跟著轉;臂改成從半徑 8 才起算
頂板/升降板的頸脊孔8×6 斷面轉 ±15.5° 時外廓會脹到 9.4×8.0,原本 9.2×7.2 的孔會卡死孔放大到 11×9.6
頸脊接合塊 ✕ 下顎 / 頭骨主片接合塊做太厚,咬進下顎片 1mm、埋進頭骨主片改成剛好填在頭骨後片與頸脊之間的 3mm
眼球橫桿 ✕ 連接片、受推板我把同一個零件畫成兩片疊在同一個平面上併成一片 L 形;受推板改成對接不是重疊

修完重掃:轉一整圈、72 個角度、零干涉。

重跑掃描:node collide.js(需要本機 HTTP 開著)。

約束盤點(第二輪:亞澤指出「這樣不會掉出來嗎」)

干涉掃描只證明「零件不會互相穿過」,沒有證明「零件被固定住」。這是兩件事。

所以又做了一次逐件的自由度盤點:每個動件的 6 個自由度分別由什麼約束,

並且區分 form(形封閉,靠形狀,拿不掉)force(力封閉,靠重力,快搖或翻倒會脫開)

盤出來的問題與修法:

問題修法
轉頭板垂直方向完全沒約束 —— 凸輪只能把它頂上去,沒有任何東西把它壓回來(它不像其他推桿有零件的重量壓著)改成 C 形叉口(Scotch yoke):上下兩條平行邊夾住 Ø40 偏心圓,上下都是強制驅動。實測間隙 0.20mm、叉底離凸輪 3.0mm
凸輪軸可以沿軸向抽出來兩顆 Ø14 軸環抵住側板內側
轉盤軸向沒固定,原本只畫了一個裝飾用的軸承環改成 Ø20 凸台穿過頂板 Ø20.6 孔,下盤在頂板下、壓片在頂板上 → 被頂板夾住
升降板被三個讓位缺口切成四段(缺口貫穿整個板深)把升降板縮到 x=78~118,完全避開推桿與轉頭板 → 一個缺口都不用開
升降板的兩支導柱沒有對應的孔,而且上端懸空板上開 Ø4.8 孔;導柱下插底板、上插中段導板,兩端都有支撐
下顎受推板沒接到下顎 —— 它停在 y=62,下顎片在 y=54~60,中間空 2mm受推板改從下顎片背面 y=60 接出去
頸脊只靠兩片 3mm 板導引,基距 13mm,會晃轉盤凸台做成 12mm 高的方孔,直接當頸脊的導套
撥臂 7mm 寬卻要穿 5.2mm 的斜槽撥臂只到半徑 26,改由 Ø4 撥銷穿槽

修完仍然是零干涉。完整的盤點表在網頁右側「約束盤點」區,或看 mech.jsDOF

還是 force(力封閉)的地方,只剩兩處,兩處都建議加回位橡皮筋:

點頭升降板雖然也是力封閉,但壓著它的是整顆頭的重量,不必處理。

下顎到底靠什麼撐著(第三輪)

你猜對了:支撐就在兩片臉之間。

但你第二個看法也對:白色受推板原本沒接到下顎。

原本受推板在 z=119~122、下顎片從 z=122 起 —— 兩者只有「一條邊碰一條邊」,

膠合面積 0mm²。等於推桿在推一片沒黏住的板子。

因為老師給的板子薄,對接(butt joint)本來就不牢,所以改成榫接:

榫耳的位置不能亂放:下顎是碗形,下緣從中央 z=122 往兩側一路翹到 z=141。

只有 x=84~96 那段接近平底,榫接得在那裡才有實料。

榫接的膠合面是榫的四個側面 + 對接面,薄板也黏得住;而且兩個零件都還是平板,一樣好裁。

配合公差單邊 0.1mm。掃描器會看到榫在孔裡,那是刻意的,不是干涉。

3mm 板的零件表(直接從模型撈出來的)

3mm 就是這份設計的原生厚度,不用改任何尺寸。 全部的驗證都是在 3mm 下跑的。

重新產生這張表:node bom.js(需要本機 HTTP 開著)。

零件外形 mm數量3mm 板做法
底板180 × 11411 層
前板 / 後板180 × 90各 11 層
左 / 右側板108 × 90各 11 層
頂板180 × 11411 層(含 2 導槽 + 轉頭槽 + Ø20.6 轉盤孔)
中段導板112 × 4511 層
轉頭導片28 × 1321 層,黏在頂板下形成通道
曲柄臂16 × 6212 層
下顎凸輪(水滴)39 × 4311 層
眼球凸輪(雙凸)36 × 2411 層
轉頭凸輪(偏心圓 R20 e8)40 × 4011 層
點頭凸輪(偏心圓 R12 e4)24 × 2411 層
下顎推桿39 × 6012 層
眼球推桿39 × 11712 層
轉頭叉口板44 × 7811 層(含 Ø40.4 叉口 + 45° 斜槽)
點頭升降板40 × 3111 層
頸脊8 × 6 × 1101方棒;或 3mm 疊 2 層再裁 8 寬
頸脊項圈20 × 1611 層
頸脊接合塊20 × 2611 層,立著黏在頭骨後片與頸脊之間
轉盤 撥臂18 × 711 層
轉盤 下盤 / 壓片Ø3021 層
轉盤 凸台Ø2012 層
頭骨主片68 × 9121 層(含 2 眼窩 + 鼻孔)
下顎本體54 × 2912 層
下顎榫耳5 × 422 層(跟本體同一片裁)
下顎升支8 × 3222 層(含 23mm 滑槽)
下顎受推板38 × 3811 層(T 形,含 2 榫孔)

| 眼球橫桿 | 76 × 32 | 1 | 1 層(含 2 滑槽 + 1 榫孔) |

| 眼球受推板 | 28 × 26 | 1 | 1 層 |

| 眼球受推板的榫 | 6 × 3 | 1 | 1 層 |

另外要的非板材:Ø6 圓棒(凸輪軸,約 215 長)、Ø4 圓棒(滑銷 ×4、撥銷 ×1)、

Ø4 圓棒(升降板導柱 ×2,長 76)、Ø14 軸環 ×2、Ø7 握把、橡皮筋 ×2。

「2 層疊合」= 兩片 3mm 對貼成 6mm,外形一模一樣,榫孔/滑槽要對齊。

板厚不是 3mm 的話

回位力小得可怕(3mm 時下顎自重才 0.045N、眼球桿 0.033N),板越薄越依賴橡皮筋。

推桿的側向勁度跟厚度三次方成正比:1mm 厚受 0.2N 側力會歪 9.5mm,等於一根麵條。

所以推桿、凸輪、軸承、轉盤凸台、頸脊這幾樣一定要疊回原厚度,其餘可以照薄的做。

但配合尺寸(頭部夾層位置、槽寬、榫厚)全都綁在板厚上,改材料就要改圖。

切割檔自檢(第四輪:亞澤看著雷切圖抓出來的)

前三層驗證(幾何檢查 → 干涉掃描 → 約束盤點)全部通過之後,亞澤打開切割檔,

連續看出三件事,每一件都是前面三層結構上不可能抓到的:

「下顎有兩個方孔,其中一個還飄在輪廓外」

干涉掃描永遠抓不到這種錯 —— 不存在的材料不會跟任何東西相撞

下顎是碗形,下緣從中央 z=122 往兩側一路翹到 z=141;我把榫孔開在 x=66~82,

那裡根本沒有料。

→ 新增零件自檢:每個孔都必須完全落在輪廓內。一跑就抓到五個壞孔,

另外三個是誰都沒發現的(轉頭斜槽超出板子上緣、導柱孔破出升降板後緣、

眼球滑槽破出橫桿右緣)。

「這眼框有問題嗎」

眼球滑銷孔離眼窩圓心只有 11.7mm,而 11+2.1=13.1 —— 孔咬進眼窩,差 1.4mm。

零件自檢只看「孔在不在輪廓內」,看不到孔跟孔之間。

→ 新增肉厚自檢:量每個孔到其他孔、到外輪廓的最短距離,3mm 板的下限抓 2.0mm。

一跑抓到 13 處,最薄的就是那個眼窩(0.13mm)。滑銷改到 x=62/118,肉厚變 4mm。

「受推板有兩個方洞,但下巴沒有兩個凸?還是你用膠的?」

被抓到了:下顎在切割檔裡其實是三片(本體 + 兩個榫耳 + 兩支升支),

同名但分開畫,雷切出來要靠膠黏成一片 —— 那榫接就白做了。

→ 寫了外形合併工具(addRect),把榫耳與升支沿著輪廓的上下緣併進本體,

下顎變成真正的一整片。同時新增單件自檢:同名零件如果同平面又相接,

就是被拆成多片,直接報錯。

零件數 48 → 39 片(少掉的就是那些本來要用膠黏的碎片)。

現在的驗證是四層

抓什麼抓不到什麼
零件自檢孔跑到輪廓外孔跟孔咬在一起
肉厚自檢孔太靠近、料太薄零件之間的空間干涉
單件自檢同一零件被拆成多片動起來會不會撞
幾何檢查 + 干涉掃描 + 約束盤點行程、碰撞、固定上面那三種

四層都是被指出來才補的。單一種檢查看起來多完整,都會有它結構上看不到的東西。

能不能不用圓棒(第五輪)

亞澤問「有些連接可以不用圓棒、用板材嗎」。逐項判之後,八成可以:

原本判斷改成
升降板導柱 Ø4 ×2可以,而且更好升降導片 10×76 板材 ×2。封閉長槽比圓孔多定住一個旋轉自由度
下顎/眼球滑銷 Ø4 ×4可以滑榫 3×4 板材小榫 ×4,黏進頭骨主片的方孔
軸環 Ø14 ×2可以板材圓片(中心 Ø6.2),黏在軸上抵住側板外側
頸脊 8×6 方棒可以3mm 板疊 2 層再裁 8mm 寬
手搖握把 Ø7可以3mm 板疊 4 層做 12mm 方柄
凸輪軸 Ø6不行要在軸承裡連續旋轉。板材疊出來的方軸不是圓的,會卡、會把孔磨成橢圓
轉盤撥銷 Ø4不建議要一邊沿 45° 斜槽滑、一邊跟著撥臂轉 ±15.5°。方榫在平行槽裡會別死;硬要用就得把槽開寬到容得下對角線,多 1.7mm 曠量

改完之後採購清單從七種圓棒縮到兩支

改導片時掃描抓到一次干涉(導片撞到頸脊項圈 2×2×9mm),項圈由 20×16 縮成 16×14 解決。

還沒做的

骷髏頭凸輪玩具 · 3mm 合板 · 1:1 · 尺寸取自樣板 PDF 的向量座標