入熱パス間記録作成
入熱・パス間温度・積層図
PC設定 — スプレッドシート連携 & QRコード生成
Step 1 Google Apps Script URLを入力して「接続確認」してください
URLを入力して「接続確認」してください
Step 2 このHTMLファイルのURLまたはパスを入力してQRコードを生成してください
Google Apps Script コード
以下のコードをGoogleスプレッドシートのApps Scriptに貼り付けてください
// =====================================================
// 入熱パス間記録作成 — Google Apps Script
// =====================================================
// 【設定手順】
// 1. Google スプレッドシートを新規作成
// 2. メニュー「拡張機能」→「Apps Script」を開く
// 3. このコードを全選択して貼り付け
// 4. メニュー「デプロイ」→「新しいデプロイ」
// 5. 種類:「ウェブアプリ」、実行ユーザー:「自分」、
//    アクセスできるユーザー:「全員」を選択して「デプロイ」
// 6. 表示されたWebアプリのURLをHTMLアプリに設定
// =====================================================

var SHEET_NAME_RECORDS = '溶接記録';
var SHEET_NAME_CONDITIONS = '作業条件';

function doPost(e) {
  var result = { status: 'error', message: '' };
  try {
    var data = JSON.parse(e.postData.contents);
    var ss = SpreadsheetApp.getActiveSpreadsheet();

    if (data.type === 'pass') {
      // パス記録をシートに書き込む
      writePassRecord(ss, data);
      result = { status: 'ok', message: 'パス記録を保存しました' };

    } else if (data.type === 'condition') {
      // 作業条件をシートに書き込む
      writeCondition(ss, data);
      result = { status: 'ok', message: '作業条件を保存しました' };

    } else if (data.type === 'clear') {
      // 記録のクリア
      clearRecords(ss);
      result = { status: 'ok', message: 'クリアしました' };
    }
  } catch (err) {
    result = { status: 'error', message: err.toString() };
  }

  return ContentService
    .createTextOutput(JSON.stringify(result))
    .setMimeType(ContentService.MimeType.JSON);
}

function doGet(e) {
  // 接続確認用
  return ContentService
    .createTextOutput(JSON.stringify({ status: 'ok', message: '接続OK' }))
    .setMimeType(ContentService.MimeType.JSON);
}

// ── パス記録シートへの書き込み ──
function writePassRecord(ss, data) {
  var sheet = ss.getSheetByName(SHEET_NAME_RECORDS);
  if (!sheet) {
    sheet = ss.insertSheet(SHEET_NAME_RECORDS);
    // ヘッダー行
    var headers = [
      '記録日時', 'パス#', '電流(A)', '電圧(V)', '速度(mm/min)',
      '入熱(kJ/mm)', 'パス間温度(°C)', '判定', '時刻',
      '溶接技能者', '記録者', '材質', 'ワイヤ種類', 'ワイヤ径(mm)', '溶接機', '温度測定器'
    ];
    sheet.appendRow(headers);
    sheet.getRange(1, 1, 1, headers.length)
      .setFontWeight('bold')
      .setBackground('#E85D24')
      .setFontColor('#ffffff');
    sheet.setFrozenRows(1);
    sheet.setColumnWidth(1, 150);
  }

  var now = new Date();
  var row = [
    Utilities.formatDate(now, 'Asia/Tokyo', 'yyyy/MM/dd HH:mm:ss'),
    data.passNo,
    data.I,
    data.V,
    data.v,
    data.Qmm,
    data.ipTemp || '',
    data.ok ? 'OK' : 'NG',
    data.time || '',
    data.welder || '',
    data.recorder || '',
    data.material || '',
    data.wireType || '',
    data.wireDia || '',
    data.machine || '',
    data.thermometer || ''
  ];
  sheet.appendRow(row);

  // 判定セルに色付け
  var lastRow = sheet.getLastRow();
  var judgeCell = sheet.getRange(lastRow, 8);
  if (data.ok) {
    judgeCell.setBackground('#E1F5EE').setFontColor('#0F6E56');
  } else {
    judgeCell.setBackground('#FCEBEB').setFontColor('#791F1F');
  }
}

// ── 作業条件シートへの書き込み ──
function writeCondition(ss, data) {
  var sheet = ss.getSheetByName(SHEET_NAME_CONDITIONS);
  if (!sheet) {
    sheet = ss.insertSheet(SHEET_NAME_CONDITIONS);
  } else {
    sheet.clearContents();
  }

  var now = new Date();
  var rows = [
    ['入熱パス間記録', ''],
    ['記録日時', Utilities.formatDate(now, 'Asia/Tokyo', 'yyyy/MM/dd HH:mm:ss')],
    ['', ''],
    ['溶接技能者', data.welder || ''],
    ['記録者', data.recorder || ''],
    ['', ''],
    ['テストピース材質', data.material || ''],
    ['溶接ワイヤ種類', data.wireType || ''],
    ['溶接ワイヤ径(mm)', data.wireDia || ''],
    ['溶接機', data.machine || ''],
    ['温度測定器', data.thermometer || '']
  ];
  rows.forEach(function(row) { sheet.appendRow(row); });

  sheet.getRange(1, 1, 1, 2).setFontWeight('bold').setFontSize(13);
  sheet.getRange(1, 1).setFontColor('#E85D24');
  sheet.setColumnWidth(1, 160);
  sheet.setColumnWidth(2, 260);
}

// ── 記録クリア ──
function clearRecords(ss) {
  var sheet = ss.getSheetByName(SHEET_NAME_RECORDS);
  if (sheet && sheet.getLastRow() > 1) {
    sheet.deleteRows(2, sheet.getLastRow() - 1);
  }
}
担当者
試験体・材料
機器
溶接条件入力
MIG / MAG 固定
入熱量
kJ/mm
溶接エネルギー
J/mm
電流密度
A/mm²
電力
kW
入熱量 Q = η × I × V / v × 60 (kJ/mm)
測定値入力
測定温度
°C
管理範囲
°C
判定

記録一覧
記録なし
開先形状・試験体条件

積層・パス構成
パス種別:
ルートパス 充填パス 仕上げパス 裏当て金 パス数: 0
+ パス種別を選んで「層を追加」をクリック
自動送信設定
自動送信:オフ
溶接パス記録台帳
パス#電流(A)電圧(V)速度(mm/min) 入熱(kJ/mm)パス間温度(°C)判定時刻
記録なし
総パス数
0
平均入熱
kJ/mm
OK率