diff --git a/ats/analysis/ATS_AIM_customer_data_analysis.js b/ats/analysis/ATS_AIM_customer_data_analysis.js index 0eb2307c0f67c6d25f1d2d111e1d4a55c4e00998..4b631839884ba37bc35b490ed3b0482585e0a688 100644 --- a/ats/analysis/ATS_AIM_customer_data_analysis.js +++ b/ats/analysis/ATS_AIM_customer_data_analysis.js @@ -9,6 +9,12 @@ type : 'LineEdit', property : {tool_tip : 'pcs stepå,默认是cad'} }, + { + name : 'cam_type', + title : 'cam_type', + type : 'LineEdit', + property : {tool_tip : 'cam_type'} + }, { name : 'vc_src_01005_pad_result', title : 'vc_src_01005_pad_result', @@ -114,7 +120,7 @@ try { if(v.context == "board" && v.layer_type == "drill"){ if(v.type == "laser_drill"){ GEN.affectedLayer({affected:'no',mode:'all'}) - GEN.workLayer({name:v.name,display_number:2,clear_before:'yes'}) + GEN.workLayer({name:v.odb_name,display_number:2,clear_before:'yes'}) GEN.selClearFeature() GEN.selAllFeat() if(GEN.getSelectCount()>0){ @@ -125,7 +131,7 @@ try { GEN.selClearFeature() } else if(v.type == "main_drill" || v.type == "blind_drill" || v.type == "bury_drill") { GEN.affectedLayer({affected:'no',mode:'all'}) - GEN.workLayer({name:v.name,display_number:2,clear_before:'yes'}) + GEN.workLayer({name:v.odb_name,display_number:2,clear_before:'yes'}) GEN.selClearFeature() GEN.selRefFeat({layers:v.drl_start,use:'filter',mode:'touch',f_types:"pad"}) GEN.selRefFeat({layers:v.drl_end,use:'filter',mode:'touch',f_types:"pad"}) @@ -172,23 +178,23 @@ try { if(drl_side == "Top"){ if((drl_start_num-1)==0){ drl_filler = "None" } else { - var top_l = "d" + (drl_start_num-1) + "-" + (drl_end_num-1) + var top_l = "ftdrill" + (drl_start_num-1) + "-" + (drl_end_num-1) + "l" if(GEN.isLayerExists({job:job, layer:top_l})){ GEN.clearLayers() GEN.selClearFeature() GEN.workLayer({name:top_l,display_number:2,clear_before:'yes'}) - GEN.selRefFeat({layers:drill.name,use:'filter',mode:'touch'}) + GEN.selRefFeat({layers:drill.odb_name,use:'filter',mode:'touch'}) if(GEN.getSelectCount()>0){ GEN.selClearFeature() drl_filler="Via Filling" } } } - var bot_l = "d" + (drl_start_num+1) + "-" + (drl_end_num+1) + var bot_l = "ftdrill" + (drl_start_num+1) + "-" + (drl_end_num+1) + "l" if(GEN.isLayerExists({job:job, layer:bot_l})){ GEN.clearLayers() GEN.selClearFeature() - GEN.workLayer({name:drill.name,display_number:2,clear_before:'yes'}) + GEN.workLayer({name:drill.odb_name,display_number:2,clear_before:'yes'}) GEN.selRefFeat({layers:bot_l,use:'filter',mode:'touch'}) if(GEN.getSelectCount()>0){ GEN.selClearFeature() @@ -200,23 +206,23 @@ try { }else if (drl_side == "Bot"){ if((drl_end_num-layerCount)==0){ drl_filler = "None" } else { - var top_l = "d" + (drl_start_num+1) + "-" + (drl_end_num+1) + var top_l = "ftdrill" + (drl_start_num+1) + "-" + (drl_end_num+1) + "l" if(GEN.isLayerExists({job:job, layer:top_l})){ GEN.clearLayers() GEN.selClearFeature() GEN.workLayer({name:top_l,display_number:2,clear_before:'yes'}) - GEN.selRefFeat({layers:drill.name,use:'filter',mode:'touch'}) + GEN.selRefFeat({layers:drill.odb_name,use:'filter',mode:'touch'}) if(GEN.getSelectCount()>0){ GEN.selClearFeature() drl_filler="Via Filling" } } } - var bot_l = "d" + (drl_start_num-1) + "-" + (drl_end_num-1) + var bot_l = "ftdrill" + (drl_start_num-1) + "-" + (drl_end_num-1) + "l" if(GEN.isLayerExists({job:job, layer:bot_l})){ GEN.clearLayers() GEN.selClearFeature() - GEN.workLayer({name:drill.name,display_number:2,clear_before:'yes'}) + GEN.workLayer({name:drill.odb_name,display_number:2,clear_before:'yes'}) GEN.selRefFeat({layers:bot_l,use:'filter',mode:'touch'}) if(GEN.getSelectCount()>0){ GEN.selClearFeature() @@ -227,8 +233,9 @@ try { }else{ drill_info.drl_overlap = "No" } } } else { - GEN.workLayer({name:drill.name,display_number:2,clear_before:'yes'}) - GEN.selectByFilter({attribute:'.drill',option:'plated'}) + GEN.clearLayers() + GEN.workLayer({name:drill.odb_name,display_number:2,clear_before:'yes'}) + GEN.selectByFilter({attribute:[{attribute:".drill",option:"plated"}],profile:"in"}) if(GEN.getSelectCount()>0){ GEN.selClearFeature() drill_info.drl_type = "PTH" @@ -336,10 +343,10 @@ try { return {name:v, type:type}}) // glod_finger - var gold_fingers = Object.keys(tmp_matrix).filter(function(v){return /^top_enig$|^bot_enig$/ig.test(v)}) + var gold_fingers = Object.keys(tmp_matrix).filter(function(v){return /^enig_top$|^enig_bot$/ig.test(v)}) if(gold_fingers.length){ gold_fingers = gold_fingers.map(function(v){ - var type = (v=="top_enig") ? "top" : "bot" + var type = (v=="enig_top") ? "top" : "bot" return {name:v, type:type} }) } @@ -503,11 +510,11 @@ try { }) }) - // console.log("=============================> 6 set smd bga") + console.log("=============================> 6 set smd bga genesistype:" + GEN.GEN_TYPE) var allStep = GEN.getStepList({job:job}) allStep.forEach(function(step){ GEN.openStep({job:job,name:step}) - if(GEN.GEN_TYPE == "genesis"){ + if(par.cam_type == "genesis"){ GEN.COM("chklist_single,action=valor_cleanup_set_smd,show=yes") GEN.COM("chklist_cupd,chklist=valor_cleanup_set_smd,nact=1,params=((pp_layer=.type=signal|mixed&side=top|bottom)(pp_drill=No)(pp_rotate=No)(pp_ignore_covered=Yes)(pp_sm=No)(pp_types=Square\;Rect\;Oval)(pp_other=)(pp_delete=No)),mode=regular") GEN.COM("chklist_run,chklist=valor_cleanup_set_smd,nact=1,area=profile") @@ -852,16 +859,16 @@ function ANALYSIS_STACKUP(props){ layer.side = layer.enum_tl_side; layer.input_file_name = layer.file_name; layer.odb_row_num = layer.row; - if (layer.odb_name == 'drill'){ + if (layer.odb_name == 'ftdrill'){ layer.name = 'drill'; layer.drl_start_num = 1; layer.drl_end_num = layer_count; layer.drl_from_num = 1; layer.drl_to_num = layer_count; layer.type = 'main_drill'; - } - else if (/^d(\d+)\-(\d+)$/.test(layer.odb_name)){ - var tmp = /^d(\d+)\-(\d+)$/.exec(layer.odb_name) + } + else if (/^ftdrill(\d+)-(\d+)l$/.test(layer.odb_name)){ // /^d(\d+)\-(\d+)$/ + var tmp = /^ftdrill(\d+)-(\d+)l$/.exec(layer.odb_name) var drl_star = tmp[1]; var drl_end = tmp[2]; layer.name = 'd' + drl_star + '-' + drl_end; @@ -1005,10 +1012,15 @@ function save_job_info(props){ // ä¿å˜æ–™å·ä¿¡æ¯ function save_layerinfo(props){ // ä¿å˜å±‚ä¿¡æ¯ var jobid = props.jobid; var layer = props.layer; + // if(Omatrix[layer] && Omatrix[layer].tl_name){ + // if(!(/^drill/ig.test(Omatrix[layer].tl_name))){ + // layer = Omatrix[layer].tl_name + // } + // } if(Omatrix[layer] && Omatrix[layer].tl_name){ - if(!(/^drill/ig.test(Omatrix[layer].tl_name))){ + // if(!(/^drill/ig.test(Omatrix[layer].tl_name))){ layer = Omatrix[layer].tl_name - } + // } } var layerinfohash = props.layerinfohash; Object.keys(layerinfohash).forEach(function(key){ @@ -1159,8 +1171,8 @@ function analysis(props){ laser_layers = laser_layers.sort(function(a,b){return Number(a.row)-Number(b.row)}) var laser_info = {} for(var i = 0; i < laser_layers.length-1; i++){ - var start_layer = laser_layers[i].name - var cover_layer = laser_layers[i+1].name + var start_layer = laser_layers[i].odb_name + var cover_layer = laser_layers[i+1].odb_name GEN.workLayer({name:start_layer,display_number:2,clear_before:'yes'}) GEN.selClearFeature() GEN.selRefFeat({layers:cover_layer,use:'filter',mode:'cover'}) @@ -1177,9 +1189,9 @@ function analysis(props){ var via_vias_info = [] function analysis_via_number(layers){ if(layers.length < 2){return} - var startlayer = layers[0].name + "_cover" + var startlayer = layers[0].odb_name + "_cover" GEN.selClearFeature() - GEN.workLayer({name:layers[0].name,display_number:2,clear_before:'yes'}) + GEN.workLayer({name:layers[0].odb_name,display_number:2,clear_before:'yes'}) GEN.selAllFeat() selCopyLayer({job:t.job,layer:startlayer}) var end_index = start_cover_next(startlayer,layers,0) @@ -1194,13 +1206,13 @@ function analysis(props){ layers = layers.slice(1) GEN.workLayer({name:start,display_number:2,clear_before:'yes'}) GEN.selClearFeature() - GEN.selRefFeat({layers:layers[0].name,use:'filter',mode:'cover'}) + GEN.selRefFeat({layers:layers[0].odb_name,use:'filter',mode:'cover'}) var count = GEN.getSelectCount() if (count < 1) { GEN.deleteLayer({job:t.job,layer:start}) return ++end_index } - var nextstartlayer = layers[0].name + "_cover" + var nextstartlayer = layers[0].odb_name + "_cover" selCopyLayer({job:t.job,layer:nextstartlayer}) GEN.deleteLayer({job:t.job,layer:start}) return start_cover_next(nextstartlayer,layers,++end_index) @@ -1631,6 +1643,9 @@ function analysisChkAttr(par) { } return a }, "N/A") + if(hash[v][key]=="N/A"){ + hash[v][key] = 999 + } }) }) return hash @@ -2052,3 +2067,5 @@ function has_steps(props){ return res.indexOf(pcs_step) >= 0 } + + diff --git a/ats/input/ATS_AIM_data_input.js b/ats/input/ATS_AIM_data_input.js index 348a63201bdc7866bde5f90664b93c9c04a49edd..84fda8801ec80fdb56d21c08bc04be7a72d1077f 100644 --- a/ats/input/ATS_AIM_data_input.js +++ b/ats/input/ATS_AIM_data_input.js @@ -138,9 +138,9 @@ try { }) }); var job_file_baseName = job - if(vc_position && vc_position != "" && !(/null/ig.test(vc_position))){ - job_file_baseName = job_file_baseName + "_" + vc_position - } + // if(vc_position && vc_position != "" && !(/null/ig.test(vc_position))){ + // job_file_baseName = job_file_baseName + "_" + vc_position + // } var jobFile = pathInfo.filter(function(v){return v.baseName.toLowerCase() == job_file_baseName}) if(jobFile.length == 0){throw "job file is not exist"} var jobFiles = [] // 记录è¦åˆ†æžçš„æ–‡ä»¶ @@ -160,9 +160,10 @@ try { } else { // 多个tgz文件 说明需è¦åˆå¹¶ console.log("==========åˆå¹¶çš„æƒ…况"); var jobs = jobInfo.data.map(function(item, i){ - var err = importJob({name:job + "_tmp_" + i,db:custCfg.db,path:item.file.path},config.delSameJob) + var tmp_job_name = job + "_tmp_" + i + var err = importJob({name:tmp_job_name,db:custCfg.db,path:item.file.path},config.delSameJob) if(err){throw err} - return job + "_tmp_" + i + return tmp_job_name }) // 分æžarr_job å’Œ pcs_job jobs = jobs.map(function(jobname){ diff --git a/config_ats.js b/config_ats.js index e47e574b722feede8ac79b3dd32d2836d4b73e22..e784fa4565e3c9a27f6b7cdd2df98a509670dc97 100644 --- a/config_ats.js +++ b/config_ats.js @@ -267,8 +267,8 @@ } ], "tl_name": [ - {"orig_name" : ["top_enig"], "tl_name" : "top_enig" }, - {"orig_name" : ["bot_enig"], "tl_name" : "bot_enig" }, + {"orig_name" : ["top_enig","top-enig","enig_top"], "tl_name" : "enig_top" }, + {"orig_name" : ["bot_enig","bot-enig","enig_bot"], "tl_name" : "enig_bot" }, {"orig_name" : ["^spt$","^past_top$"], "tl_name" : "past_top" }, {"orig_name" : ["^spb$","^past_botm$"], "tl_name" : "past_botm" }, {"orig_name" : ["^sst$","^silk_top$"], "tl_name" : "silk_top" }, @@ -419,8 +419,8 @@ {"orig_name" : "fab.art", "tl_name" : "fab.art" }, {"orig_name" : ["multipack.art","^array$"], "tl_name" : "array" }, {"orig_name" : ["^outline"], "tl_name" : "outline" }, - {"orig_name" : ["top-enig","top_enig"], "tl_name" : "top_enig" }, - {"orig_name" : ["bot-enig","bot_enig"], "tl_name" : "bot_enig" }, + {"orig_name" : ["top-enig","enig_top"], "tl_name" : "enig_top" }, + {"orig_name" : ["bot-enig","enig_bot"], "tl_name" : "enig_bot" }, ] }, "New_data": { @@ -548,19 +548,19 @@ } }, "data_format": [ - {"tl_name":"top_enig" , "new_name":"top_enig" , "attr":{ "context":"board", "type":"document" }}, + {"tl_name":"enig_top" , "new_name":"enig_top" , "attr":{ "context":"board", "type":"document" }}, {"tl_name":"past_top" , "new_name":"past_top" , "attr":{ "context":"board", "type":"solder_paste" }}, {"tl_name":"silk_top" , "new_name":"silk_top" , "attr":{ "context":"board", "type":"silk_screen" }}, {"tl_name":"sm_top" , "new_name":"sm_top" , "attr":{ "context":"board", "type":"solder_mask" }}, {"tl_name":"^top$" , "new_name":"top" , "attr":{ "context":"board", "type":"signal" }}, - {"tl_name":"l_(\\d+)","new_name":"layer_($1)" ,"attr":{"context":"board","type":"signal"}}, + {"tl_name":"l_(\\d+)","new_name":"l($1)" ,"attr":{"context":"board","type":"signal"}}, {"tl_name":"^bottom$","new_name":"bottom" ,"attr":{"context":"board","type":"signal"}}, {"tl_name":"sm_botm" , "new_name":"sm_botm" , "attr":{ "context":"board", "type":"solder_mask" }}, {"tl_name":"silk_bot" , "new_name":"silk_bot" , "attr":{ "context":"board", "type":"silk_screen" }}, {"tl_name":"past_botm" , "new_name":"past_botm" , "attr":{ "context":"board", "type":"solder_paste" }}, - {"tl_name":"bot_enig" , "new_name":"bot_enig" , "attr":{ "context":"board", "type":"document" }}, - {"tl_name":"d_(\\d+)-(\\d+)","new_name":"d($1)-($2)" ,"attr":{"context":"board","type":"drill"}}, - {"tl_name":"drill","new_name":"drill" ,"attr":{"context":"board","type":"drill"}}, + {"tl_name":"enig_bot" , "new_name":"enig_bot" , "attr":{ "context":"board", "type":"document" }}, + {"tl_name":"d_(\\d+)-(\\d+)","new_name":"ftdrill($1)-($2)l" ,"attr":{"context":"board","type":"drill"}}, + {"tl_name":"drill","new_name":"ftdrill" ,"attr":{"context":"board","type":"drill"}}, {"tl_name":"rout","new_name":"rout" ,"attr":{"context":"board","type":"rout"}}, {"tl_name":"outline","new_name":"outline" ,"attr":{"context":"board","type":"rout"}}, {"tl_name":"array","new_name":"array" ,"attr":{"context":"misc"}}, diff --git a/test/mytest.js b/test/mytest.js index 1abd2666b8e4e3f3c77d27f9af118e57fbe56cbd..8898a24562e955e6410444d0395ce11f01f85f1f 100644 --- a/test/mytest.js +++ b/test/mytest.js @@ -16,7 +16,7 @@ try { var layer = "l3" GEN.copyLayer({source_job:job, source_step:step,source_layer:"gko",dest_layer:"gko_tmp"}) - + GEN.selectByFilter({profile:"in"}) return "Done" } catch (e) { IKM.msg(e)