客製化萬向軸從設計到訂製加工,小批量到大批量的成本與交期差異

Published on: | Last updated:

最近有個朋友在搞一個蠻酷的自動化設備專案,結果卡在一個小零件上... 就是「萬向軸」(Universal Joint)。聽起來很冷門對吧?但這東西超重要的,所有需要「轉著彎」傳遞動力的機器都少不了它。他就問我,想客製化幾個,為什麼報價跟交期這麼亂?從天價到佛心價都有,到底水有多深?🤔

欸,這問題問得很好。因為這牽扯到的不只是材料跟加工,更多的是「批量」這個概念在背後搞鬼。今天就來跟大家聊聊,客製化萬向軸這件事,從設計到真的拿到手,少量跟大量生產的成本跟交期到底差在哪。完全是經驗分享,沒什麼業配啦!哈哈。

一句話結論

先講重點:客製化少量萬向軸之所以貴,貴的從來不只是材料,而是那些看不見的「一次性設定成本」,像是開模具(雖然現在很多不用)、寫加工程式、準備特殊刀具跟夾具,這些東西不管你做1件還是100件,都得花一次。所以量少的時候,這些成本就全部攤在你那幾件可憐的樣品上,單價當然就爆炸高。🚀

大家都在講規格,但沒人說的秘密是...

我去看了一下,網路上很多廠商都在秀他們的機器多厲害、精度多高、有沒有ISO 9001認證之類的。這當然很重要,但他們很少會跟你說實話,就是「非重複性工程成本」(NRE, Non-Recurring Engineering)才是小批量訂單的惡夢。

你想想,工廠為了做你那獨一無二的萬向軸,工程師要花時間把你的設計圖轉成CNC機能讀懂的G-code,這可能就要好幾個小時。 然後,現場師傅要找出適合的材料,把機台上的夾具、刀具全部換成對應你零件的組合,試跑第一件,拿出來量測看看尺寸對不對... 這一整套流程跑下來,半天一天就過去了。這些時間,都是錢啊!💰

所以當你只訂5個,這整天的成本就由這5個來分。但如果你訂5000個,同樣的設定成本除以5000,幾乎就跟沒有一樣。這就是最關鍵的差異,也是很多剛接觸硬體開發的朋友最容易踩的坑。

設計階段的3D模型示意
設計階段的3D模型示意

那到底要怎麼從零開始?

好,假設你真的有需求,不管是為了自己的專案還是公司要開發新產品,流程大概是這樣跑的:

首先,最重要的絕對是「釐清你的需求」。這聽起來像廢話,但真的超多人死在第一步。你要非常清楚:

  • 扭力要多大? (Torque) - 這是決定尺寸跟材料的關鍵。
  • 轉速多快? (RPM) - 高轉速需要考慮動平衡跟潤滑。
  • 最大擺動角度多少? (Operating Angle) - 角度太大,傳統的萬向軸會GG,可能要考慮用等速萬向節(CV Joint)。
  • 工作環境? - 會不會碰到水?高溫?還是有腐蝕性化學品?這會影響到材料跟後續的表面處理。

把這些都想清楚,最好畫個簡單的草圖,標上關鍵尺寸,就可以去找廠商討論了。有經驗的廠商會根據你的需求,幫你完善設計,或者直接告訴你用他們的標準品改一下就好,省錢省時。

再來是「材料選擇」。這部分學問也很大,不過不用擔心,廠商通常會給建議。最常見的大概就是S45C中碳鋼,便宜又好用。 如果需要承受更大的衝擊或扭力,可能會用到SCM440鉻鉬合金鋼,然後再做熱處理來增加表面硬度跟韌性。 熱處理這個步驟超重要,它能讓零件的壽命延長好幾倍,但...沒錯,它也要錢,而且會稍微增加交期。 沒預算?那至少跟廠商確認一下材料本身是不是有經過調質處理。

CNC車銑複合機正在加工萬向軸的十字軸
CNC車銑複合機正在加工萬向軸的十字軸

小批量 vs. 大批量,殘酷的現實對比

說了這麼多,直接列表格給你看最清楚。假設我們要做一個手掌大小的客製化萬向軸,看看小批量(例如20件,做樣品或小專案用)跟大批量(例如1000件,準備量產)的差別在哪。

項目 小批量生產 (約20件) 大批量生產 (約1000件)
單位成本 貴到想哭 😭。可能是一個量產零件的5到20倍。所有的設定、程式、刀具成本都攤在這幾件上。 相對親民很多。設定成本被稀釋掉了,主要只剩下材料跟機器運轉的費用。
總交期 不一定比較快喔!從設計溝通、備料到加工完成,抓個3-6週很正常。因為工廠可能要排單,不會為了你幾個小零件就插隊。 反而比較穩定。一旦排上線,因為數量夠,工廠會把它當成一個正式的生產任務。但首次生產的總前置時間可能長達2-3個月,因為要更嚴謹的規劃。
設計變更彈性 超高!這就是小批量的最大優點。第一批做完發現有問題?改設計圖,下一批馬上就能做新的。 幾乎是零。當1000件的材料都切下去,甚至已經開始加工了,你才說要改... 那就只能整批作廢,老闆會想殺了你。😅
適合情境 新產品開發、功能驗證(Proof of Concept)、學術研究、少量多樣的客製化設備。基本上就是「花錢買彈性跟驗證機會」。 產品設計已經凍結,通過所有測試,準備正式上市銷售。或是標準設備的穩定消耗品。

在台灣做跟在國外訂,有差嗎?

這個問題也很有趣。我朋友當時也有想過,要不要乾脆從國外,比如德國或美國的專業大廠訂。老實說,國外大廠的產品,特別是歐洲的,在材料跟標準化方面真的沒話說,文件給得非常齊全,什麼材質證明、動平衡報告、壽命曲線等等,非常嚴謹。如果你是要用在航太或醫療設備上,那可能真的得考慮他們。

不過呢,在台灣做有個無可取代的優勢:彈性跟溝通速度。 尤其對小批量客製化來說,你很常需要跟工廠的師傅或老闆直接溝通,「啊這個地方幫我倒個角」、「那個孔徑幫我加大0.1mm」之類的。這種微調,在台灣的加工廠,常常是一通電話、一個LINE訊息就解決了。你要是跟國外大廠溝通,光是郵件來回、等他那邊的工程師回覆,可能一個禮拜就過去了。而且,台灣很多中小企業的加工廠,非常習慣處理這種少量多樣的「急單」或「怪單」,他們甚至會給你一些你沒想過的加工建議,幫你省成本。

再來,材料標準也有些微差異。例如我們習慣講S45C中碳鋼,這是JIS(日本工業規格)的編號,在美國可能對應的是AISI 1045。 雖然化學成分跟機械性質很接近,但不是100%相同。如果你設計的產品是要外銷到特定區域,就要注意一下當地市場習慣的材料標準,免得到時候文件對不起來。

成品細節對照:左邊是CNC加工完的初版,右邊是經過熱處理與染黑防鏽處理的最終版。
成品細節對照:左邊是CNC加工完的初版,右邊是經過熱處理與染黑防鏽處理的最終版。

所以說到底,這整件事就是一個取捨(Trade-off)。沒有最好的選擇,只有最適合你當下狀況的選擇。你是急著要拿到東西驗證想法,而且未來設計還可能大改?那就勇敢地花錢做小批量吧,這筆錢是買保險、買彈性。如果你的產品已經成熟到不行,未來一年就是要賣個幾千幾萬組,那當然要想辦法湊到大批量的門檻,去跟廠商談一個漂亮的單價。

希望今天的分享對正在搞硬體開發的朋友有點幫助啦!這東西水雖然深,但只要抓住「設定成本」這個核心概念去思考,很多報價單你就能看懂了。😉

對了,想問問大家,如果是你們自己的專案,在預算有限的情況下,你會選擇花多一點錢做幾組高品質的樣品來驗證,還是會為了壓低單價,冒險一次下單比較大的批量?在下面留言分享你的想法吧!👇

🎁 解鎖本篇限定Google外掛
```html

只要 3 分鐘:萬向軸成本與交期自動試算+歷史追蹤工具

做客製化萬向軸報價,光是比較「小批量」跟「大批量」的成本和交期就能搞死半個工程部門。每次設計參數一換,Excel 又要重算一次,一天花在這裡少說 30 分鐘。
我就曾經遇過同事手滑,少打一個零,整批預算全亂。還有工廠回報交期時,因為版本搞混報錯,結案被客戶罵翻。這工具,就是要解決這些最花時間的重複麻煩。

直接複製這段,三合一功能搞定試算+追蹤

這個工具讓你快速輸入設計參數,選數量、自動算單價&交期,同時記錄每一筆歷史,少報價錯誤,節省至少 90% 反覆溝通時間。


// === 萬向軸報價與交期試算小工具 ===

function doGet(e) {
  var html = [];
  html.push('<div style="padding:32px;max-width:480px;'
    + 'margin:40px auto;background:#fafbfc;border-radius:12px;'
    + 'box-shadow:0 2px 12px #ddd;">');
  html.push('<h2>萬向軸報價/交期試算(支援歷史查詢)</h2>');
  
  // 表單輸入區
  html.push('<form id="mainForm">');
  html.push('設計長度(mm):<input type="number" name="len" required '
    + 'style="width:60px;" min="10" max="2000"><br>');
  html.push('材質:<select name="mat"><option>SUS304'
    + '</option><option>S45C</option>'
    + '<option>SCM440</option></select><br>');
  html.push('數量:<select name="qty">'
    + '<option>5</option>'
    + '<option>10</option>'
    + '<option>20</option>'
    + '<option>50</option>'
    + '<option>100</option>'
    + '<option>200</option>'
    + '</select><br>');
  html.push('<button type="submit" '
    + 'style="margin-top:12px;">立即試算</button>');
  html.push('</form>');
  html.push('<div id="result" style="margin-top:20px;color:#173300;"></div>');
  html.push('<hr>');

  html.push('<button onclick="refreshHist()" '
    + 'style="margin-bottom:8px;">刷新歷史紀錄</button>');
  html.push('<div id="history">載入中...</div>');
  
  // 簡單腳本
  html.push('<script>'
    + 'function qs(a){return document.querySelector(a);}'
    + 'qs("#mainForm").onsubmit=function(e){'
    + 'e.preventDefault();'
    + 'qs("#result").innerHTML="計算中...";'
    + 'google.script.run.withSuccessHandler(function(res){'
    + 'qs("#result").innerHTML=res.msg;refreshHist();'
    + '}).handleForm(new FormData(this));};'
    + 'function refreshHist(){'
    + 'qs("#history").innerHTML="查詢中...";'
    + 'google.script.run.withSuccessHandler(function(txt){'
    + 'qs("#history").innerHTML=txt;'
    + '}).getHistory();}'
    + 'window.onload=refreshHist;'
    + '</script>');
  html.push('</div>');
  return HtmlService.createHtmlOutput(html.join(''));
}

// 表單處理邏輯
function handleForm(formData) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet()
    .getSheetByName('萬向軸紀錄');
  if(!sheet){ // 沒有就自動建
    sheet = SpreadsheetApp.getActiveSpreadsheet()
      .insertSheet('萬向軸紀錄');
    sheet.appendRow(['時間','長度','材質','數量','單價','總價','預估交期']);
  }
  var len = Number(formData.get('len'));
  var mat = String(formData.get('mat'));
  var qty = Number(formData.get('qty'));
  // 單價估算法則
  var base = (mat=='SUS304'? 220: (mat=='SCM440'? 280:160));
  var size_rate = len > 1000 ? 1.5 : (len > 300 ? 1.15 : 1.0);
  var qty_disc = qty>=100 ? 0.75 : (qty>=20 ? 0.9 : 1.0); // 批量折扣
  var unit_price = Math.round(base * size_rate * qty_disc);
  // 交期規則
  var lead = 7 + Math.ceil(len/100*0.5) + (qty>=100?12:(qty>=20?5:0));
  var total = unit_price * qty;
  // 寫入Sheet
  sheet.appendRow([
    new Date(), len, mat, qty, unit_price, total, lead+' 天'
  ]);
  return {msg:'單價:'+unit_price+' 元/支|總價:'+total
    +' 元<br>預估交期:'+lead+' 天'};
}

// 歷史查詢
function getHistory(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet()
    .getSheetByName('萬向軸紀錄');
  if(!sheet) return '目前沒有紀錄';
  var vals = sheet.getDataRange().getValues();
  if(vals.length<2) return '目前沒有紀錄';
  var arr=['<table border="1" style="font-size:13px;border-collapse:collapse;">'
    +'<tr><th>時間</th><th>長度</th>'
    +'<th>材質</th><th>數量</th><th>單價</th>'
    +'<th>總價</th><th>交期</th></tr>'];
  for(var i=vals.length-1;i>=1;i--){ // 最新在上
    arr.push('<tr>');
    for(var j=0;j<vals[0].length;j++){
      var v=vals[i][j];
      if(j==0 && v instanceof Date) v=Utilities.formatDate(v,
        Session.getScriptTimeZone(),'MM/dd HH:mm');
      arr.push('<td>'+v+'</td>');
    }
    arr.push('</tr>');
  }
  arr.push('</table>');
  return arr.join('');
}

6 步驟 3 分鐘完成萬向軸試算系統

依照這個步驟下去,沒用過 Apps Script 也能穩穩完成:

  1. 開啟 Apps Script 編輯器
    動作:打開 Google 試算表 → 點「擴充功能」→「Apps Script」
    位置:「擴充功能」在最上方選單中間偏右
    結果:瀏覽器會新開一個分頁,顯示 Apps Script 編輯器
    ⚠️ 有一次我用公司帳號,結果公司管理員直接擋掉 Apps Script 存取,浪費我一早時間。如果開不起來先確認用的是個人帳號。
  2. 清空並貼上程式碼
    動作:點選中間白色區域,Ctrl+A 全選→ Delete 刪掉→ 再 Ctrl+V 貼上上面程式碼
    位置:編輯器中央輸入區域
    結果:原本的預設 function myFunction() 被新的工具碼整個取代
    ⚠️ 有工程師問我「舊程式不用先存嗎?」這種只做專案管理的帳號會一直複製新專案,沒差。除非有寫很重要的腳本,不然直接全清最快。
  3. 儲存專案
    動作:點左上角磁碟片「儲存」圖示或 Ctrl+S
    位置:編輯器最上方工具列左側
    結果:第一次會跳出輸入專案名稱(名字隨便,別卡在這)
    ⚠️ 我自己就遇過沒按存,結果部署完一個舊版本還以為壞掉。千萬記得先存再部署。
  4. 部署為網頁應用程式
    動作:點右上角藍色「部署」→「新增部署作業」
    位置:「部署」按鈕就在畫面右上角,很顯眼
    結果:跳出一個新的設定小視窗
    子步驟:
    1. 在彈出視窗點齒輪圖示,選「網頁應用程式」
    2. 「執行身分」請選「我」
    3. 「誰可以存取」選「任何人」
    4. 按下「部署」按鈕
    ⚠️「誰可以存取」這步絕對不要選錯。有一次同事沒選「任何人」,結果其他部門連網址都打不開,瘋狂問我是不是壞了。
  5. 處理授權警告
    動作:按照流程點擊同意,直到完成
    結果:看到紅色「Google 尚未驗證這個應用程式」
    處理:點「進階」→「前往XXX(不安全)」→「允許」
    ⚠️ 有朋友第一次看到紅色警告以為自己中了病毒,不敢繼續。這只是 Google 為了保護你,每次新腳本都會出現。自己用沒事。
  6. 取得網址,開始使用
    動作:複製授權完畫面出現的網頁應用程式網址
    位置:就在部署完的畫面會直接顯示 `https://script.google.com/...`
    結果:貼到新分頁,直接就能用這個萬向軸試算工具
    ⚠️ 工廠如果回報參數變更、你改了計算規則,記得要重新部署一次。否則新功能用戶端會看不到。
⚠️ 關於紅色授權畫面的完整解釋
Google 看到你用自己寫的 Apps Script 部署新工具,都會跳「尚未驗證」的紅色警告畫面。這不是中毒,也不是駭客,是你沒送交 Google 官方審核的正常現象。照步驟點「進階」→「前往...」→「允許」就能繼續。如果是自己或內部團隊用,沒有安全疑慮。放心使用。

這工具真的省下多少?兩個現場真實案例

1. 專案客戶突然要小批量測試 10 支,詢價要估 20、50、100 支的差異。以前算一輪要回頭查三次、手工比價還會算錯。現在 30 秒填參數自動比較,10 天工作一個月省下 4 小時。
2. 幫生產管理,對接三家加工廠,同時做不同材質和長度。以前每次都忘記歷史資料,主管追查都要問 Excel 過去檔案。現在直接查詢歷史紀錄,誰什麼時候下單、成本變化、交期拉長一目瞭然。真的不踩雷了。

```

Related to this topic:

Comments

  1. profile
    Guest 2026-01-15 Reply
    其實,剛前陣子才跟做機械設備的朋友閒聊到這個 - 萬向軸要客製化,每次只要遇到新設計或是那種一點點的小批量,成本直接往上噴,而且時間也拖超長。記得之前有個汽車零件廠來問,他們只需要二十組特殊規格的萬向軸,圖紙什麼的倒還好啦,溝通OK,但設計和打樣就光花了差不多兩週吧。有夠慢。然後因為數量真的太小了,加工廠CNC總會先排大單,我們這邊永遠在等,那就……只能認啊。 材料也是,小批根本沒什麼議價空間,要啥就只能照單全收,結果下來總成本直接比量產貴很多倍。如果今天能開大批量,單價漂亮很多、加工廠態度也會轉好,大致從原料進場到運送那些細節彈性都拉高超多。不過現實情況就是,有些客戶要求一直改、然後又是試水溫的小訂單,公司內部資源調度卡卡,好像每次都只能邊談邊協調,一堆眉角。 有時候想說未來如果能弄什麼共用庫存還是模組化件那種,也許可以救一下交期跟成本,不過話講歸講啦,目前還不是這個世界,多半還是一案一案慢慢磨吧。