/*
NAME:
DESCRIPTION: ;
PARAMETER:
[
{
name : 'step_filter',
title : '工作step',
type : 'LineEdit',
property : {tool_tip : '未设定,则手动选择',},
},
{
name : 'units',
title : '单位',
type : 'RadioBox',
property : {
size_policy:'Expanding,Fixed',
item_list:[
{name:'inch',text:'Inch'},
{name:'mm',text:'MM'},
],
tool_tip:'未设定,默认为Inch'
},
pack : {row:1,column:1},
}
]
VERSION_HISTORY:
V1.00 2020-01-22 Shyer Wang
1.新版本
HELP:
功能简介
名称
参数配置
无
注意事项
无
*/
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
var $ = require('topcam.scriptfunc').argv();
var _ = require('lodash');
var database = require("topsin.database");
database.addConnection($.conf.database_conf, "DFM");
var QDfm = database.query("DFM");
if ($.conf.product_type == "aimdfm") {
QDfm.updateRow({
table: "pdm_aimdfm_task",
data: {
current_process_title: $.process_title
},
where: { id: $.task_id }
});
}
var JOB = $.job_name;
var GEN = $.gen;
var PAR = {};
if ($.hasOwnProperty('script_parameter')){
PAR = JSON.parse($.script_parameter);
}
if (!$.hasOwnProperty(PAR["save_job"])) {
PAR["save_job"] = 'No';
}
var step_filter = _.toString(PAR["step_filter"]) == '' ? 'net|array|edit' : PAR["step_filter"];
var Status = 'ok';
var resultData = [];
var Units = _.toString(PAR["units"]) == '' ? 'inch' : PAR["units"] ;
try {
if(_.isEmpty(JOB)) throw "没有传入料号名!";
if(!GEN.isJobExists({job: JOB})) throw "料号:" + JOB + "在Genensis中不存在!";
if(!GEN.isJobOpen({job: JOB})) GEN.openJob({job: JOB});
GEN.checkInout({ "job": JOB, "mode": 'out' });
var steps = GEN.getStepList({ job: JOB });
var work_steps = [];
//将匹配到的step放入work_steps
steps.filter(function (value, index, array) {
var pattern = new RegExp(step_filter);
if (pattern.test(value)) {
work_steps.push(value)
}
});
//循环work_steps
//检查是否存在 T2_ori_analysis 的checklist,存在则删除重新创建
//T2_ori_analysis的checklist中存在如下分析Drill Checks:
/**
T2_ori_analysis_drill
Board - Drill Checks: T2_ori_HDI_dill_analysis
Signal Layer Checks: T2_ori_analysis_signal
Solder Mask Checks: T2_ori_analysis_sm
*/
//运行T2_ori_analysis的checklist
//保存料号
var chklist = 't2_ori_analysis';
var run_nactnum = [1,2,4,7];
work_steps.filter(function (step) {
GEN.openStep({ job: JOB, step: step });
GEN.clearLayers();
GEN.affectedLayer({ mode: 'all', affected: 'no' });
GEN.COM("sel_options,clear_mode=clear_after,display_mode=all_layers,area_inout=inside,area_select=select,select_mode=standard,area_touching_mode=exclude");
GEN.units({ type: Units });
GEN.zoomHome();
//
// var nactNum = 1;
if (!GEN.isChklistExists({ "job": JOB, "step": step, "chklist": chklist })) GEN.COM("chklist_from_lib,chklist=" + chklist);
GEN.chklistShow({ chklist: chklist});
run_nactnum.forEach(function (nact_num) {
GEN.chklistRun({ chklist: chklist, nact: nact_num });
})
GEN.clearLayers();
GEN.affectedLayer({ mode: 'all', affected: 'no' });
});
GEN.saveJob({ "job": JOB });
GEN.checkInout({"job": JOB,"mode":'in'});
// GEN.closeJob({"job": JOB});
QDfm.updateRow({
table: "pdm_aimdfm_task",
data: {
progress: 33.33
},
where: { id: $.task_id }
});
if (GEN.hasError()) {
Status = 'error';
resultData.push({ type: "error", title: "GEN错误!", detail: [{ desc: _.join(GEN.STATUS, "\n") }] });
return {
status: Status,
result_data: resultData
};
} else {
resultData.push({ type: "info", title: "操作完成, 请注意检查!" });
return {
status: Status,
result_data: resultData
};
}
} catch (e){
Status = 'error';
resultData.push({type: "error", title: "脚本执行出错!", detail: [{desc: _.toString(e)}]});
return {status: Status, result_data: resultData};
}