驗證報告
驗證對象: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)
實測動作(模擬跑一整圈)
| 曲柄 | 點頭 | 下顎開 | 轉頭 |
|---|---|---|---|
| 0° | 4.0 | 8.3 | 0° |
| 60° | 0.5 | 10.7 | −13.4° |
| 120° | 0.5 | 3.4 | −13.4° |
| 180° | 4.0 | 1.1 | 0° |
| 240° | 7.5 | 3.5 | +13.4° |
| 300° | 7.5 | 5.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.js 的 DOF。
還是 force(力封閉)的地方,只剩兩處,兩處都建議加回位橡皮筋:
- 眼球推桿下行只靠眼球橫桿自重 —— 最弱的一環
- 下顎推桿下行只靠下顎自重(比較重,但快搖一樣會跳)
點頭升降板雖然也是力封閉,但壓著它的是整顆頭的重量,不必處理。
下顎到底靠什麼撐著(第三輪)
你猜對了:支撐就在兩片臉之間。
- 下顎片(6mm)夾在兩片頭骨主片(y=51~54 與 60~63)之間 → 前後方向被夾住
- 下顎向上長出兩支「升支」,升支上各開一條 23mm 滑槽
- 兩支 Ø4 銷穿過兩片臉 + 升支(z=156,x=76 與 104)→ 下顎吊在銷上,只能上下滑
- 滑槽兩端就是限位:推桿掉下去,下顎最多滑到槽底,掉不出來
但你第二個看法也對:白色受推板原本沒接到下顎。
原本受推板在 z=119~122、下顎片從 z=122 起 —— 兩者只有「一條邊碰一條邊」,
膠合面積 0mm²。等於推桿在推一片沒黏住的板子。
因為老師給的板子薄,對接(butt joint)本來就不牢,所以改成榫接:
- 下顎片底部中央長出兩個 5×4 的榫耳(x=84~89、91~96,z=119~123)
- 受推板做成 T 形,前橫條伸到 x=100 套住榫耳,後臂只到 x=84 讓開頸脊
- 榫耳穿過受推板的榫孔再上膠
- 眼球受推板同樣處理(一個 6×3 榫,橫桿左端下伸到 z=164 讓榫孔四周都有料)
榫耳的位置不能亂放:下顎是碗形,下緣從中央 z=122 往兩側一路翹到 z=141。
只有 x=84~96 那段接近平底,榫接得在那裡才有實料。
榫接的膠合面是榫的四個側面 + 對接面,薄板也黏得住;而且兩個零件都還是平板,一樣好裁。
配合公差單邊 0.1mm。掃描器會看到榫在孔裡,那是刻意的,不是干涉。
3mm 板的零件表(直接從模型撈出來的)
3mm 就是這份設計的原生厚度,不用改任何尺寸。 全部的驗證都是在 3mm 下跑的。
重新產生這張表:node bom.js(需要本機 HTTP 開著)。
| 零件 | 外形 mm | 數量 | 3mm 板做法 |
|---|---|---|---|
| 底板 | 180 × 114 | 1 | 1 層 |
| 前板 / 後板 | 180 × 90 | 各 1 | 1 層 |
| 左 / 右側板 | 108 × 90 | 各 1 | 1 層 |
| 頂板 | 180 × 114 | 1 | 1 層(含 2 導槽 + 轉頭槽 + Ø20.6 轉盤孔) |
| 中段導板 | 112 × 45 | 1 | 1 層 |
| 轉頭導片 | 28 × 13 | 2 | 1 層,黏在頂板下形成通道 |
| 曲柄臂 | 16 × 62 | 1 | 2 層 |
| 下顎凸輪(水滴) | 39 × 43 | 1 | 1 層 |
| 眼球凸輪(雙凸) | 36 × 24 | 1 | 1 層 |
| 轉頭凸輪(偏心圓 R20 e8) | 40 × 40 | 1 | 1 層 |
| 點頭凸輪(偏心圓 R12 e4) | 24 × 24 | 1 | 1 層 |
| 下顎推桿 | 39 × 60 | 1 | 2 層 |
| 眼球推桿 | 39 × 117 | 1 | 2 層 |
| 轉頭叉口板 | 44 × 78 | 1 | 1 層(含 Ø40.4 叉口 + 45° 斜槽) |
| 點頭升降板 | 40 × 31 | 1 | 1 層 |
| 頸脊 | 8 × 6 × 110 | 1 | 方棒;或 3mm 疊 2 層再裁 8 寬 |
| 頸脊項圈 | 20 × 16 | 1 | 1 層 |
| 頸脊接合塊 | 20 × 26 | 1 | 1 層,立著黏在頭骨後片與頸脊之間 |
| 轉盤 撥臂 | 18 × 7 | 1 | 1 層 |
| 轉盤 下盤 / 壓片 | Ø30 | 2 | 1 層 |
| 轉盤 凸台 | Ø20 | 1 | 2 層 |
| 頭骨主片 | 68 × 91 | 2 | 1 層(含 2 眼窩 + 鼻孔) |
| 下顎本體 | 54 × 29 | 1 | 2 層 |
| 下顎榫耳 | 5 × 4 | 2 | 2 層(跟本體同一片裁) |
| 下顎升支 | 8 × 32 | 2 | 2 層(含 23mm 滑槽) |
| 下顎受推板 | 38 × 38 | 1 | 1 層(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 解決。
還沒做的
- 回位橡皮筋(老師說可以用,那就用):眼球推桿與下顎推桿下行只靠重力,轉快了會跳。轉頭板已改成叉口強制驅動,不需要橡皮筋。
- 摩擦與間隙:模擬是理想剛體,沒算板材毛邊、孔的鬆緊。凸輪與推桿接觸面記得磨圓上蠟。
- 新的 1:1 裁切樣板:這裡只驗機構,還沒把修正版畫回可列印的 A4 樣板。要的話再說。
- 眼球目前是上下滾(原圖寫「左右溜」)。左右要多一組斜槽,值不值得看你。