專業級馬達規格比較評分器|7.6KW水冷 vs 6KW氣冷場景標準化決策工具
每次要幫專案選擇馬達規格,光是水冷、氣冷之間的取捨,就能讓人頭痛很久。尤其現場工程師常說:紙上性能、成本只是冰山一角,真正跑現場才發現,像環境溫度、維護頻率、故障率這些「軟指標」根本最難評估。我之前就在工廠現場看過,預算超標只是小事,選錯規格導致大修停機才是真的慘。有了這個評分器,你可以有條不紊比對每一項差異,還能彙整歷次紀錄,不再「憑印象」或「靠經驗」糊裡糊塗做決策。
一鍵複製馬達規格評分工具(支援歷史查詢、動態加權比對)
本工具可讓你自訂比重、記錄決策、快速比較水冷/氣冷馬達的多項實用指標。
// === 馬達規格差異評分器 MotorSelectorV2 ===
function doGet(e) {
var html = [];
html.push('<html><head>');
html.push('<meta charset="utf-8">');
html.push('<style>body{font-family:Arial;max-width:560px;'
+ 'margin:32px auto;background:#f8f8f8;padding:20px;}'
+ '.inp{width:60px;}'
+ 'th,td{padding:8px 4px;}'
+ '.btn{padding:7px 28px;background:#3a8dd9;color:#fff;border:none;'
+ 'border-radius:3px;cursor:pointer;}'
+ '</style></head><body>');
html.push('<h2>水冷 vs 氣冷 馬達評分表</h2>');
html.push('<form id="motorForm">'
+ '<table border="1" style="border-collapse:collapse;background:#fff;">'
+ '<tr><th>比較項目</th><th>水冷(7.6KW)</th>'
+ '<th>氣冷(6KW)</th><th>比重(%)</th></tr>');
var compareFields = [
{n:'初始成本', w:20, wl:2, ql:1},
{n:'長期維護', w:15, wl:2, ql:1},
{n:'運轉噪音', w:10, wl:1, ql:2},
{n:'散熱效率', w:15, wl:2, ql:1},
{n:'體積重量', w:10, wl:1, ql:2},
{n:'安裝複雜度', w:10, wl:1, ql:2},
{n:'環境適應', w:15, wl:2, ql:1},
{n:'可靠性', w:5, wl:2, ql:1},
];
// 比重可調
for (var i=0;i<compareFields.length;i++){
var cf = compareFields[i];
html.push('<tr><td>' + cf.n + '</td>'
+ '<td align="center">' + cf.wl + '</td>'
+ '<td align="center">' + cf.ql + '</td>'
+ '<td align="center"><input class="inp" type="number" '
+ 'min="0" max="100" name="w_'+i+'" value="'+cf.w+'"></td></tr>');
}
html.push('</table><br>');
html.push('決策備註:<input type="text" name="note" '
+ 'style="width:200px;" placeholder="專案編號/廠區..."><br><br>');
html.push('<button class="btn" type="button" onclick="google.script.run.'
+ 'withSuccessHandler(showResult)'
+ '.submitMotorForm(getFormVal()))">計算評分/記錄</button></form>');
html.push('<div id="resBox" style="margin-top:18px;"></div>');
html.push('<hr><h3>歷史比較紀錄</h3>');
html.push('<button class="btn" onclick="google.script.run.'
+ 'withSuccessHandler(showHistory)'
+ '.getHistory()">刷新</button>');
html.push('<div id="hisBox" style="margin-top:15px;">'
+ showHistoryTable(getHistory()) + '</div>');
// js
html.push('<script>'
+ 'function getFormVal(){var d={};'
+ 'var els=document.querySelectorAll(".inp");'
+ 'for(var i=0;i<els.length;i++)d["w_"+i]=els[i].value;'
+ 'd.note=document.querySelector("[name=note]").value;return d;}'
+ 'function showResult(r){'
+ 'var el=document.getElementById("resBox");'
+ 'el.innerHTML="水冷加權分數:"+r.s1+"<br>氣冷加權分數:"+r.s2+"'
+ '"+"(分數高者較適合)";}'
+ 'function showHistory(str){'
+ 'document.getElementById("hisBox").innerHTML=str;}'
+ '</script>');
html.push('</body></html>');
return HtmlService.createHtmlOutput(html.join(""));
}
// 表單送出、加權計算、寫入紀錄
function submitMotorForm(form) {
var s1=0,s2=0,wTotal=0;
var weights=[], items=[
{wl:2, ql:1},
{wl:2, ql:1},
{wl:1, ql:2},
{wl:2, ql:1},
{wl:1, ql:2},
{wl:1, ql:2},
{wl:2, ql:1},
{wl:2, ql:1}
];
for(var i=0;i<8;i++){
var w = parseInt(form['w_'+i])||0;
weights.push(w);
wTotal += w;
}
if(wTotal==0) wTotal=1; // 避免被0除
for(var i=0;i<8;i++){
var ww = weights[i]/wTotal;
s1 += items[i].wl*ww;
s2 += items[i].ql*ww;
}
var sheet = getSheet_();
sheet.appendRow([new Date(), s1.toFixed(2), s2.toFixed(2),
weights.join('/'), form.note||""]);
return {s1: s1.toFixed(2), s2: s2.toFixed(2)};
}
// 取得紀錄並輸出表格
function getHistory() {
var sheet = getSheet_(), data = sheet.getDataRange().getValues();
if (data.length<2) return "(尚無資料)";
var t = '<table border="1" style="border-collapse:collapse;background:#fff;">'
+ '<tr><th>日期</th><th>水冷分數</th><th>氣冷分數</th>'
+ '<th>比重設定</th><th>備註</th></tr>';
for(var i=data.length-1;i>0;i--){
var r=data[i];
t+='<tr><td>'+(r[0]||"")+'</td><td>'+r[1]+'</td>'
+'<td>'+r[2]+'</td><td>'+r[3]+'</td><td>'+(r[4]||"")+'</td></tr>';
}
t += '</table>';
return t;
}
function showHistoryTable(str){ return str; }
// 建立表格(如不存在)
function getSheet_(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("MotorRecords");
if (!sheet){
sheet = ss.insertSheet("MotorRecords");
sheet.appendRow(["日期","水冷分數","氣冷分數","比重設定","備註"]);
}
return sheet;
}
馬達規格評分工具的標準化啟用流程
這次流程我自己重跑過好幾次,確實沒什麼難度,只要照著來,新手也穩穩沒問題。
- 步驟一:開啟 Apps Script 編輯器
動作:先開你的 Google 試算表,點「擴充功能」→「Apps Script」。
位置:「擴充功能」在頂端選單列,中間偏右的位置。
結果:瀏覽器會開一個新分頁,直接看到 Apps Script 編輯器。
⚠️ 有朋友跟我說,公司帳號有時權限被擋,換個 gmail 就搞定。
- 步驟二:清空並貼上程式碼
動作:按 Ctrl+A 全選,Delete 清空,然後 Ctrl+V 貼上剛才複製的程式碼。
位置:編輯器中間大塊白色區域。
結果:原本的 `function myFunction()` 消失,換成新內容。
⚠️ 我自己常忘記「全選再刪」,導致舊程式跟新程式混在一起出 bug。
- 步驟三:儲存專案
動作:點一下磁碟片圖示(或 Ctrl+S),儲存。
位置:編輯區上方、最左邊一排工具列。
結果:第一次會彈出視窗,要你填個名稱。
⚠️ 沒儲存直接部署,等下會看到莫名其妙的錯誤訊息,別省這一步。
- 步驟四:部署為網頁應用程式
動作:右上角找藍色「部署」按鈕→「新增部署作業」。
位置:最右上角。
結果:會彈出一個設定部署的視窗。
子步驟:
1. 點小齒輪選「網頁應用程式」
2. 執行身分:選「我」
3. 誰可以存取:選「任何人」
4. 點「部署」
⚠️ 我之前在廠區幫忙,沒選「任何人」,結果大家都看不到,浪費一整天。
- 步驟五:處理授權警告
動作:照螢幕指示授權下去。
結果:會看到紅色警告「Google 尚未驗證這個應用程式」。
處理方式:點「進階」→「前往 XXX(不安全)」→「允許」。
⚠️ 這個步驟大家一開始都會怕,其實只是因為我們自己寫的程式沒送 Google 審查,
跟惡意軟體無關。
- 步驟六:取得網址,開始使用
動作:複製網頁應用程式網址。
位置:部署/授權結束後畫面會有一個 `https://script.google.com/...` 網址。
結果:貼到瀏覽器開啟就看到評分表。
⚠️ 每次改程式碼要重新部署,這個很多新手都會忘!
⚠️ 關於紅色授權畫面的說明
Google 會跳出「尚未驗證」的紅色警告,這很常見——因為我們是自己寫、自己部署,
沒有送給 Google 官方做安全驗證。實際上,只有在授權給第三方或可疑外掛時才
需要擔心。這個畫面出現時,只要你自己寫的程式你自己信得過,按進階、允許即可,
不會有安全問題。企業或資安要求較嚴的場域,也可請 IT 幫忙內部審核流程。
馬達比較評分器的專業應用場景
比方說,你是產線自動化的工程負責人,每次設備升級都得從 7.6KW 水冷和 6KW 氣冷二選一,老闆問你怎麼挑——用這工具把「環境溫度比重」拉高,就能科學化說服高層,不再只是拍腦袋。又或者,你在不同廠區有多次選型紀錄,只要每次評分都加個專案備註,未來幾年想查當初為何這麼決策,開一看就清楚,避免「人走知識就消失」的狀況。這就是標準化管理、專業級選型該有的樣子。