
var $ = require('topcam.scriptfunc').argv();
var _ = require('lodash');
var JOB = $.job_name;
var GEN = $.gen;
var ikm = $.ikm;
try {
    console.log("===================begin=================");

    var config = {
        check: "t2_ori_analysis",
        units: 'mm',
        nacts: [1,2,4,7],
        stepFilter: function(item){ return /^net\d*$|^array$/ig.test(item) }
    }
    if(!JOB) {throw '没有传入料号名!'} // 判断传没传入JOB
    if(!GEN.isJobExists({job:JOB})) {throw '料号'+JOB+'在genesis中不存在'} // 判断genesis中是否存在料号
    if(!GEN.isJobOpen({job:JOB})) {GEN.openJob({job:JOB})}  // 如果料号没打开 先打开料号
    GEN.checkInout({job:JOB,mode:'out'}) // 锁住料号权限
    var steplist = GEN.getStepList({job: JOB})  // 获取step列表
    steplist = config.stepFilter ? steplist.filter(config.stepFilter) : steplist // 根据条件过滤step列表
    _.forEach(steplist, function (step) {  // 循环获取step的checklist
        // 初始化
        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: config.units });
        GEN.zoomHome();
        // 判断check存不存在
        if(!GEN.isChklistExists({job:JOB,step:step,chklist:config.check})){
            GEN.COM("chklist_from_lib,chklist=" + config.check); // 不存在要从lib copy一个
        }
        
        GEN.chklistShow({chklist:config.check})
        _.forEach(config.nacts,function(nact){
            GEN.chklistRun({chklist:config.check,nact:nact})  // 运行checklist
        })
        GEN.chklistClose({chklist:config.check})   // 关闭checklist
        GEN.closeStep({ job: JOB, name: step }) // 关闭step
        GEN.clearLayers();  // 结束重置
		GEN.affectedLayer({ mode: 'all', affected: 'no' });
    }) 
    GEN.saveJob({job:JOB})
    GEN.checkInout({job:JOB,mode:'in'})
    return 'Done';
} catch (error) {
    error = error || 'error'
    return error
}
