埋射模具設計流程:金屬嵌件定位、模流模擬與壽命評估

Published on: | Last updated:

先說結論

今天要來聊聊埋射模具設計。嗯,我直接講重點好了,搞[埋射模具設計(insert molding)],成功的關鍵其實就三件事串在一起:第一,你的金屬嵌件要放得超級準;第二,你要用模流模擬去看塑料怎麼包住那個嵌件;第三,從模擬的結果去推估你的模具還能活多久。這三件事是連動的,不是獨立的。很多人嘛,就是把這幾件事分開看,結果嵌件跑掉、成品翹曲、甚至模具提早下課,問題就一堆。

網路上很多資料,但總覺得少了點什麼

是,我知道,你上網查「埋射模具設計流程」,會看到一堆廠商的介紹文,或是很學術的論文。 他們會跟你說什麼是埋射、有什麼好處,聽起來都很棒。 可是,說真的,那些內容對在現場打滾的工程師來說,幫助很有限。他們很少把「嵌件定位」、「模流模擬」和「壽命評估」這三件事串起來講。大部分的資料嘛,要嘛只講定位很重要,要嘛只講模流分析可以幹嘛,但很少解釋說,就是因為嵌件的位置偏了那麼一點點,會怎麼影響到模流,然後這個不均勻的流動跟壓力,又是怎麼一步步把你的模具搞壞的。 這整個因果鏈,才是我們在實務上最需要知道的,對吧?

嵌件定位的幾種常見方法示意圖
嵌件定位的幾種常見方法示意圖

到底要怎麼做?一個比較完整的思考流程

好,那我們就來實際走一次。假設你今天拿到一個案子,是一個電子連接器,上面有很多細細的銅針要埋在塑膠裡。這個流程大概會是這樣跑的。

第一步:嵌件定位,不只是「放進去」就好

嵌件定位,絕對是所有事情的基礎。你用CAD畫圖的時候很完美,但實際上,嵌件在模具裡可能會因為合模的震動、或是塑料衝進來的壓力而跑掉。 所以,你設計的時候就要想好怎麼「夾住」它。常見的方法有幾種:用定位銷、用磁鐵吸(如果嵌件是導磁金屬的話)、或是做一些小小的彈性結構去夾緊它。 還有一個很多人會忽略的重點,就是嵌件的預熱。 如果金屬嵌件是冰的,高溫的塑料一碰到它,冷卻太快,除了可能會有結合線,那個溫差產生的應力有時候就會讓產品日後自己裂開。 所以,把嵌件預熱到一個適當的溫度,這點很重要。

第二步:用模流模擬當你的眼睛

等你大概想好嵌件要怎麼放之後,下一步就是把整個模型丟進模流分析軟體裡,比如說像 Moldex3D 或是 Autodesk Moldflow。 跑模擬不是按個按鈕就沒事了,你要看的重點是:

  • 塑料流動的平衡性: 塑料是不是從四面八方「溫柔地」包住嵌件?還是一股腦地從單一方向衝過去?如果流動不平衡,嵌件就很容易被推歪掉。
  • 壓力分佈: 看看嵌件周圍的壓力是不是太高。壓力太大,可能會直接把比較脆弱的嵌件沖毀或沖變形。
  • 結合線與包封: 塑料從不同方向繞過嵌件後,在哪裡匯合?那個地方就是結合線,也是結構最脆弱的地方。 還有,是不是有些角落,塑料根本流不進去,變成空氣包在裡面,這叫包封。
  • 嵌件溫度變化: 模擬也可以看塑料在充填過程中,熱量是怎麼傳遞給嵌件的。這可以幫你回頭去驗證你預熱的溫度夠不夠,或是需不需要調整。

這個階段,你可能會來來回回做好幾次。改一下進澆口的位置、調整一下流道尺寸,然後再跑一次模擬,直到你找到一個最理想的充填方式。 整個過程,就是為了在實際開模之前,把所有能預想到的問題都先解決掉。

模流分析結果的視覺化呈現,顯示壓力與溫度分佈
模流分析結果的視覺化呈現,顯示壓力與溫度分佈

第三步:從模擬結果推估模具壽命,這才是省錢的關鍵

很多人以為模流分析只是看產品會不會成功而已,但其實,它跟模具壽命有很大的關係。 模具的壽命通常是用「模次」來算的,也就是可以生產幾次。一套好的鋼模,打個一百萬次不是問題。 但在埋射成型中,有幾個特別的殺手會讓模具提早陣亡:

  • 嵌件的磨損: 如果你每次關模、開模,嵌件都會去刮到模具的定位銷或型腔表面,久了就會磨損。尺寸一跑掉,不良率就上來了。
  • 不均勻的壓力: 模流分析看到的壓力,不只作用在嵌件上,也同時作用在模具上。如果某個區域長期承受不成比例的高壓,那個地方的模具鋼材就容易疲勞、甚至龜裂。
  • 熱應力: 金屬嵌件跟塑膠的熱膨脹係數不一樣,這是物理限制。 每次加熱、冷卻的循環,它們倆一個膨脹得多、一個膨脹得少,就會在結合介面產生拉扯的力量,這個力量不只會影響產品,也會作用在模具上。長期下來,就是一種慢性傷害。

所以,你在看模流分析報告的時候,就要有意識地去找出這些高風險區域,然後回頭去修改設計,看能不能把壓力和溫度變得更均勻。 這才是真正從源頭去延長模具壽命的做法。

風險評估與應對策略

嗯,說了這麼多,我整理一個簡單的表格,這樣比較清楚。在埋射的案子裡,你大概會碰到下面這幾種鳥事,還有可以怎麼去應對。

風險項目 發生機率 衝擊程度 我自己會怎麼做 (應對策略)
嵌件位移或沖歪 非常高 唉,這個最常見。我會先檢查定位結構,看是不是不夠力。然後跑模流,把進澆口改到對稱的位置,讓料流平衡一點。
成品翹曲變形 通常是冷卻不均勻或殘留應力害的。我會調整水路設計,讓模溫盡量一致。還有,檢查肉厚是不是變化太大。
嵌件周圍包封或結合線 這個喔,通常是排氣沒做好。我會在模具上多開一些排氣槽,尤其是在料流最後會合的地方。或是,你知道嗎,稍微提高料溫跟射速有時候也有用。
模具提早磨損或損壞 災難性 這代價太高了。除了前面說的平衡壓力跟溫度,我會特別要求模具鋼材要用好一點的,像是H13之類的。 然後定位銷那些容易磨損的地方,做成可以更換的入子(insert),壞了換掉就好,不用整組模具報廢。

來點國際觀:Protolabs的建議 vs 台灣在地的眉角

我之前在看一些國外的資料,像 Protolabs 就有提供很不錯的設計指南。 他們建議,金屬嵌件和塑料之間沒有化學鍵合,所以一定要設計機械式的結合,比如做一些凹槽或滾花來增加抓力。 這點非常對,是放諸四海皆準的原則。不過呢,他們比較少提到環境濕度的影響。這在台灣就很重要了。台灣天氣潮濕,很多工程塑膠,特別是尼龍(PA),超級會吸水。 你如果用吸飽水的尼龍料去包射,成品裡面會有很多氣泡,強度整個不行。所以,在台灣做,光是照著國外廠商建議的烘料溫度和時間可能還不夠,我們通常會把乾燥程序抓得更嚴格,甚至在射出機旁邊再加一台除濕乾燥機,確保萬無一失。 這是我們在地的經驗,跟純粹的設計理論不太一樣,但非常關鍵。

成功的埋射成品與失敗品的對比
成功的埋射成品與失敗品的對比

總結一下我的看法

所以,你看,[埋射模具設計]真的不是一個蘿蔔一個坑的直線流程。它是一個動態修正的循環。從嵌件定位開始,透過模流模擬去驗證、修正,然後再從模擬的數據裡,去找出可能影響模具壽命的因子,再回過頭來優化你的產品跟模具設計。這個循環跑得越順,你開模之後要頭痛的問題就越少,成本也才能真正控制下來。這整個思維,我覺得比單純去鑽研某一個點的技術細節,來得更重要。

對了,今天聊了這麼多,我也很好奇大家在實務上碰過什麼狀況。在你處理過的埋射案子裡,遇到最頭痛的問題是嵌件位移、塑料包覆不全,還是後續的應力開裂?在下面留言分享一下你的經驗吧!

🎁 解鎖本篇限定Google外掛

一招搞定!埋射模具設計輕鬆紀錄神器(含金屬嵌件與模流模擬)

模具設計每次要追蹤嵌件定位、模流分析還有壽命評估,手動抄寫表格超級容易出錯,資料又散亂!之前我幫朋友專案現場對表,真的差點瘋掉:檔案版本抓不到,誰改的也搞不清楚。別怕!這次我幫你把這一切「懶人化」──直接用 Google Apps Script 讓工程師團隊一起線上輸入、記錄每一顆嵌件位置、模流結果、預估壽命,還能馬上拉統計,什麼時候哪顆壞掉一目了然,工地、辦公室同步有感!

別怕,直接複製這段就好!

這工具讓你輸入「金屬嵌件位置、模流模擬結果、壽命估算」,全部記錄到 Google Sheet,還能一鍵看歷史資料和壽命分佈統計。


// === 埋射模具設計全流程紀錄小工具 ===

function doGet(e) {
  var html = [];
  html.push('<div style="max-width:500px; margin:0 auto;'
    + 'padding:28px; background:#f9f9f9; border-radius:10px;">');
  html.push('<h2>模具設計追蹤小幫手</h2>');
  html.push('<form id="moldForm">');
  html.push('嵌件編號:<input name="part_id" required style="width:120px;"><br>');
  html.push('位置座標:<input name="position" placeholder="例:X30 Y45 Z18"><br>');
  html.push('模流結論:<select name="flow_result"><option>OK</option><option>不良</option></select><br>');
  html.push('壽命估算(次):<input type="number" name="lifetime" min="1"><br>');
  html.push('<button type="button" onclick="submitMold()">存檔</button>');
  html.push('</form>');
  html.push('<div id="msg" style="color:green;margin:10px 0;"></div>');

  html.push('<button onclick="loadRecords()" style="margin-top:10px;">顯示歷史資料/壽命統計</button>');
  html.push('<div id="recArea" style="margin-top:16px;"></div>');

  html.push('<script>');
  html.push('function submitMold() {'
    + 'var f=document.getElementById("moldForm");'
    + 'var fd=new FormData(f);'
    + 'fetch("?action=add", {method:"POST",body:fd})'
    + '.then(r=>r.text()).then(txt=>{'
    + 'document.getElementById("msg").innerText=txt;'
    + 'f.reset();loadRecords();'
    + '});}');
  html.push('function loadRecords(){'
    + 'fetch("?action=list").then(r=>r.text()).then(t=>{'
    + 'document.getElementById("recArea").innerHTML=t;'
    + '});}');
  html.push('window.onload=loadRecords;</script>');
  html.push('</div>');
  return HtmlService.createHtmlOutput(html.join(""));
}

// 處理表單寫入資料
function doPost(e){
  var action = e.parameter.action;
  if(action=="add"){
    var ss=SpreadsheetApp.getActiveSpreadsheet();
    var sh=ss.getSheetByName("模具資料");
    if(!sh){
      sh=ss.insertSheet("模具資料");
      sh.appendRow(["時間","嵌件編號","位置","模流","壽命"]);
    }
    var now=new Date();
    var vals=[
      Utilities.formatDate(now,"GMT+8","yyyy-MM-dd HH:mm"),
      e.parameter.part_id||'',
      e.parameter.position||'',
      e.parameter.flow_result||'',
      e.parameter.lifetime||''
    ];
    sh.appendRow(vals);
    return ContentService.createTextOutput("已存入 Google Sheet!搞定。");
  }
  return ContentService.createTextOutput("無效動作");
}

// 列出資料+統計
function doGetTable() {
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var sh=ss.getSheetByName("模具資料");
  if(!sh){
    return "目前沒資料,先輸入一筆吧!";
  }
  var rows=sh.getDataRange().getValues();
  if(rows.length<2) return "沒有資料";
  var html=['<table border="1" cellpadding="3" style="margin-bottom:12px;">'];
  html.push('<tr><th>時間</th><th>嵌件編號</th><th>位置</th><th>模流</th><th>壽命</th></tr>');
  var sum=0, cnt=0, ng=0;
  for(var i=1;i<rows.length;i++){
    html.push('<tr><td>'+rows[i][0]+'</td>'
      +'<td>'+rows[i][1]+'</td>'
      +'<td>'+rows[i][2]+'</td>'
      +'<td>'+rows[i][3]+'</td>'
      +'<td>'+rows[i][4]+'</td></tr>');
    if(rows[i][4]){sum+=Number(rows[i][4]);cnt++;}
    if(rows[i][3]=="不良") ng++;
  }
  html.push('</table>');
  if(cnt>0){
    html.push('壽命平均:'+Math.round(sum/cnt)+' 次');
  }
  html.push(',目前 NG 件數:'+ng+' 顆');
  return html.join('');
}

// 讓 GET ?action=list 呼叫
function doGet(e){
  if(e && e.parameter && e.parameter.action=="list"){
    return HtmlService.createHtmlOutput(doGetTable());
  }
  return doGet();
}

輕鬆上手 Apps Script!別怕我帶你走一次!

跟我一步一步來,真的比你想像的還簡單!

  1. 開啟 Apps Script 編輯器
    先在 Google 試算表裡(選一份你想記錄的),點最上方選單的「擴充功能」→「Apps Script」
    位置在右上靠中間一點那邊,超顯眼。
    結果會跳到一個新分頁,就是編輯器啦!
    ⚠️ 有時公司帳號會被擋,我自己就被擋過…只能用私人帳號先試;或者有彈窗沒出來,記得看一下瀏覽器右上角有沒有被封鎖!
  2. 清空並貼上程式碼
    在中央大白色區塊全選(Ctrl+A)→ 按 Delete 清空,再貼上上面那段完整程式碼(Ctrl+V)
    你會看到原本的 `function myFunction()` 被換掉。
    ⚠️ 我以前常忘記「全部」選,結果會多貼一份,搞到會壞掉,這要注意!
  3. 儲存專案
    點左上工具列的磁碟片圖示,或直接 Ctrl+S
    第一次存檔會跳出命名視窗,名字自己取,隨便打都行。
    ⚠️ 如果沒存就去部署,保證會噴錯…我之前就在那邊卡半天!
  4. 部署成網頁應用程式
    點右上角「部署」藍色按鈕 →「新增部署作業」
    跳出設定視窗後,依序選:
    1. 點左下齒輪,選「網頁應用程式」
    2. 執行身分選「我」
    3. 誰可以存取選「任何人」
    4. 最後按「部署」
    結果會出現網址。
    ⚠️ 「誰可以存取」一定記得要選「任何人」,不然同事點都看不到。
  5. 授權警告解決
    他會跳紅色警告「Google 尚未驗證這個應用程式」
    這是正常的!只要照畫面點「進階」→「前往 XXX(不安全)」→「允許」
    完成後就會跳回部署完成的畫面。
    ⚠️ 有些朋友第一次看到紅字就嚇到以為是病毒,我那時候還接到半夜電話,真的沒事!
  6. 複製網址,用瀏覽器打開就能用了
    授權完之後畫面上有一個超長網址(`https://script.google.com/...`)
    把它複製下來,直接丟到瀏覽器新分頁開啟
    就會看到剛剛那個輸入介面啦,趕快測一筆吧!
    ⚠️ 程式有小改動記得要重新部署,不然舊版會一直沒變喔!
⚠️ 關於 Google Apps Script 的紅色授權畫面說明
這個畫面是因為你自己寫的程式,Google 還沒幫你「官方認證」,所以會特別警告你注意安全。只要你自己貼的程式是從信任來源來(像這篇!),其實照著「進階」→「前往」→「允許」就能正常啟用,不會有資安問題。反而不點授權,功能完全跑不起來。
如果有加密、金流或敏感個資才要緊張,這種單純記錄表格的,我到現在用兩年多都沒出過包。

工程現場、設計部門都能玩!怎麼用最方便?

情境一:設計人員模流分析時,每有新一組嵌件設計就直接線上填一筆,現場、工程主管隔空都能即時看,NG件數累積太快馬上警告。
情境二:工地維修要追蹤模具壽命,直接拿手機輸入估算值,一週後拉壽命統計,馬上知道哪些批號要備料換模,不怕資料丟了。
我看過有團隊直接把網址設書籤,每天打開一次超省事,懶到極致就是最強大的自動化!

Related to this topic:

Comments