/* NAME: DESCRIPTION: 描述; PARAMETER: [ { name : 'step', title : 'step', type : 'LineEdit', property : {tool_tip : '目标step,默认是orig'} }, { name : 'auto_save', title : '自动保存', type : 'RadioBox', property : { item_list:[ {name:'yes',text:'YES'}, {name:'no',text:'NO'}, ], tool_tip:'是否自动保存料号开关' } } ] VERSION_HISTORY: V1.00 2021-03-08 Scott Sun 1.新版本 HELP:

功能简介

标题

参数配置

step信息


注意事项


*/ // 引入模块 包 外部参数 let $ = require('topcam.scriptfunc').argv(); let fs = require("fs"); let _ = require('lodash'); let mode = $.ikm ? "topcam" : "aimdfm"; if(!$.ikm) { $.ikm = require('topcam.ikm6')($) } let IKM = $.ikm; let GEN = $.gen; let Job = $.job || $.job_name; let JobId = $.job_id; let db = $.db || IKM.db; let GUI = $.gui; let PAR = {}; if ($.par) { PAR = $.par } else if ($.hasOwnProperty('script_parameter')) { PAR = JSON.parse($.script_parameter); } if (mode === "aimdfm") { IKM.crud("updateRow", { table: "pdm_aimdfm_task", data: { current_process_title: $.process_title }, where: { id: $.task_id } }) } let Status = 'ok'; let resultData = []; let par = PAR; // 接收参数 let default_par = { // 设置默认参数 step: "orig", auto_save: "No", units: "mm" } for (let key in default_par) { if (!par.hasOwnProperty(key) || par[key] == "") { par[key] = default_par[key] } } // 定义变量; let job = Job.toLowerCase(); try { // 常规验证 准备工作 if (!GEN.isJobExists({ job: job })) { throw "料号" + job + "不存在" } if (!GEN.isJobOpen({ job: job })) { GEN.openJob({ job: job }) } if (mode == "aimdfm") { if (GEN.checkInout({job: job,mode: "test"}) != 0) { throw "the job check" } GEN.checkInout({job: job,mode: "out"}); } IKM.msg(IKM.command(`function(props){ return GUI.showForm({ 'title': "Add Script", 'use_core_engine': true, 'size': '400x300', 'items': { name:"user", type:"LineEdit", title:"User", property:{}, pack:{ label:"User" } }, 'values':{ 'user':'TestUserName' }, 'include_hidden_items': true, }) }`,{}, 1).data) // 保存料号 if (/yes/ig.test(par.auto_save)) { GEN.checkInout({ job, mode: "out" }); GEN.saveJob({ job }); GEN.checkInout({ job, mode: "in" }); } // 结尾返回 固定写法 let Return = "Done" if (mode === "aimdfm") { IKM.crud("updateRow", { table: "pdm_aimdfm_task", data: { progress: 100 }, where: { id: $.task_id } }) let tmperr = { type: "info", title: "操作完成, 请注意检查!" } if (GEN.hasError()) { Status = 'error'; tmperr = { type: "error", title: "GEN错误!", detail: [{ desc: GEN.STATUS.join("\n") }] } } resultData.push(tmperr); Return = { status: Status, result_data: resultData }; } _Return_Label_ = Return } catch (e) { if(GEN.STATUS.length > 0) { IKM.msg(GEN.STATUS.join("\n")); } IKM.msg(e); Status = 'error'; resultData.push({ type: "error", title: "脚本执行出错!", detail: [{ desc: _.toString(e) }] }); _Return_Label_ = (mode === "aimdfm") ? { status: Status, result_data: resultData } : "Error"; } /** * 获取层别 * @param {Object} 过滤选项 * @returns {Array} */ function getLayer(props = {}){ let matrix = GEN.getMatrix({job:job}) return Object.keys(matrix).reduce((a,b)=>{ let info = matrix[b]; let ret = true; for (let key in props) { if (info[key]) { if(/object string|object number/ig.test({}.toString.call(props[key]))){ if(props[key] != info[key]){ ret = false } } if(/object RegExp/ig.test({}.toString.call(props[key]))){ let reg = new RegExp(props[key],"ig") if(!reg.test(info[key])){ ret = false } } if(/object function/ig.test({}.toString.call(props[key]))){ if(!props[key](info[key])){ ret = false } } } } if (ret) { a.push(props.res == "info" ? info : b) } return a },[]) }