From 0d4bbd5eaf109be15cb464899bd5ac651d8ace72 Mon Sep 17 00:00:00 2001 From: "scott.sun" <scott.sun@topibd.com> Date: Wed, 30 Sep 2020 15:10:05 +0800 Subject: [PATCH] scott --- ats/topcam/ATS_AIM_customer_data_analysis.js | 2 +- ...ame_and_sort.js => ATS_AIM_data_format.js} | 60 +++++++++++++++---- ...IM_input_data.js => ATS_AIM_data_input.js} | 0 template.js | 17 +----- 4 files changed, 51 insertions(+), 28 deletions(-) rename ats/topcam/{ATS_AIM_layer_rename_and_sort.js => ATS_AIM_data_format.js} (92%) rename ats/topcam/{ATS_AIM_input_data.js => ATS_AIM_data_input.js} (100%) diff --git a/ats/topcam/ATS_AIM_customer_data_analysis.js b/ats/topcam/ATS_AIM_customer_data_analysis.js index 42c3e4c..a326e2d 100644 --- a/ats/topcam/ATS_AIM_customer_data_analysis.js +++ b/ats/topcam/ATS_AIM_customer_data_analysis.js @@ -984,7 +984,7 @@ try { IKM.msg("export") - + script_info({ result_severity: "analysis export" }) script_info({ progress: 95 }) diff --git a/ats/topcam/ATS_AIM_layer_rename_and_sort.js b/ats/topcam/ATS_AIM_data_format.js similarity index 92% rename from ats/topcam/ATS_AIM_layer_rename_and_sort.js rename to ats/topcam/ATS_AIM_data_format.js index 105ed3d..8fcdd31 100644 --- a/ats/topcam/ATS_AIM_layer_rename_and_sort.js +++ b/ats/topcam/ATS_AIM_data_format.js @@ -305,10 +305,10 @@ try { var hasProfile = GEN.getProfile({job:job, step:tmp_step}) GEN.closeStep() if(hasProfile.match(/\n/ig).length == 1){ - createOutline({job:job, step:tmp_step, matrix: tmp_matrix, profileRule:profileRule}) + createOutline({job:job, step:tmp_step, profileRule:profileRule}) } } else { - createOutline({job:job, step:tmp_step, matrix: tmp_matrix, profileRule:profileRule}) + createOutline({job:job, step:tmp_step, profileRule:profileRule}) } var hasProfile = GEN.getProfile({job:job, step:tmp_step}) if(hasProfile.match(/\n/ig).length == 1){ @@ -660,7 +660,7 @@ function createOutline(props){ var job = props.job var step = props.step - var matrix = props.matrix + var matrix = GEN.getMatrix({job:job}) var outlines = Object.keys(matrix).filter(function(v){ var flag = false profileRule.forEach(function(rule){ @@ -672,7 +672,14 @@ function createOutline(props){ return flag }) console.log("----outlines------->:" + _.toString(outlines)); - var drill_layer = Object.keys(matrix).filter(function(v){return matrix[v].layer_type=="drill" && matrix[v].context == "board"}) + var drill_layer = Object.keys(matrix).filter(function(v){return matrix[v].layer_type=="drill" && matrix[v].context == "board"}) + var tmp = "drill_all"; + if(GEN.isLayerExists({job:job, layer:tmp})) { GEN.deleteLayer({job:job, layer:tmp})} + GEN.openStep({job:job, name:step}) + GEN.affectedLayer({affected:'yes',layer:drill_layer}) + GEN.selCopyOther({dest:'layer_name',target_layer:tmp,invert:'no',dx:0,dy:0,size:0}) + GEN.closeStep() + var tmp_outline if(outlines.length){ if( outlines.length){ @@ -693,7 +700,9 @@ function createOutline(props){ GEN.affectedLayer({affected:'no',mode:'all'}) GEN.workLayer({name:l,display_number:2,clear_before:"yes"}) var bk = l + "_bk" + var bk2 = l + "_bk2" selCopyLayer({job:job,layer:bk}) + selCopyLayer({job:job,layer:bk2}) GEN.workLayer({name:bk,display_number:2,clear_before:"yes"}) l = bk GEN.selectByFilter({feat_types:"line\;arc"}) @@ -708,14 +717,29 @@ function createOutline(props){ GEN.selReverse() if(GEN.getSelectCount()>0){GEN.selDelete()} GEN.selContourize() - GEN.selectByFilter({feat_types:"surface"}) - GEN.selReverse() - if(GEN.getSelectCount()>0){GEN.selDelete()} + if(!/1352/ig.test(PAR.customer) ){ + GEN.selectByFilter({feat_types:"surface"}) + GEN.selReverse() + if(GEN.getSelectCount()>0){GEN.selDelete()} + } var tmp_layer = l+"+++" - GEN.selRefFeat({layers:drill_layer[0],use:'filter',mode:'touch'}) + GEN.selRefFeat({layers:tmp,use:'filter',mode:'touch'}) if(GEN.getSelectCount() > 0){ var tmp_outline2 = l + "_tmp" - selCopyLayer({job:job,layer:tmp_outline2}) + selCopyLayer({job:job,layer:tmp_outline2}) + if(/1352/ig.test(PAR.customer) ){ + // 1. worklayer bk2 åˆ é™¤éžçº¿ 递归touch tmp_outline2 + GEN.workLayer({name:bk2,display_number:2,clear_before:"yes"}) + GEN.selectByFilter({feat_types:"pad;surface;text"}) + if(GEN.getSelectCount() > 0) {GEN.selDelete()} + touch(tmp_outline2) + // 2. worklayer tmp_outline2 cuttingdata selContourize + GEN.workLayer({name:tmp_outline2,display_number:2,clear_before:"yes"}) + GEN.COM("sel_cut_data,det_tol=1,con_tol=1,rad_tol=0.1,filter_overlaps=no,delete_doubles=no,use_order=yes,ignore_width=yes,ignore_holes=none,start_positive=yes,polarity_of_touching=same") + GEN.selContourize() + GEN.deleteLayer({job:job, layer:bk2}) + GEN.deleteLayer({job:job, layer:tmp_outline2 + "+++"}) + } GEN.workLayer({name:l,display_number:2,clear_before:"yes"}) GEN.selAllFeat() GEN.selDelete() @@ -725,7 +749,7 @@ function createOutline(props){ GEN.selAllFeat() selCopyLayer({job:job,layer:l}) GEN.workLayer({name:l,display_number:2,clear_before:"yes"}) - GEN.selClearFeature() + GEN.selClearFeature() GEN.selCreateProfile() GEN.selectByFilter({profile:"in"}) if(GEN.getSelectCount()> 0){GEN.selDelete()} @@ -736,10 +760,22 @@ function createOutline(props){ GEN.deleteLayer({job:job, layer:l}) return true } - GEN.deleteLayer({job:job, layer:l}) - GEN.deleteLayer({job:job, layer:[tmp_layer]}) + GEN.deleteLayer({job:job, layer:l}) + GEN.deleteLayer({job:job, layer:bk2}) + GEN.deleteLayer({job:job, layer:[tmp_layer]}) + GEN.deleteLayer({job:job, layer:[tmp_layer]}) return false } + + GEN.deleteLayer({job:job, layer:[tmp]}) +} + +function touch(layer) { + GEN.selRefFeat({layers:layer,use:"filter",mode:"touch"}) + if(GEN.getSelectCount() > 0) { + GEN.selMoveOther({target_layer:layer,invert:'no',dx:0,dy:0,size:0}) + touch(layer) + } } function selCopyLayer(props){ // æ‹·è´é€‰æ‹©çš„到辅助层 diff --git a/ats/topcam/ATS_AIM_input_data.js b/ats/topcam/ATS_AIM_data_input.js similarity index 100% rename from ats/topcam/ATS_AIM_input_data.js rename to ats/topcam/ATS_AIM_data_input.js diff --git a/template.js b/template.js index 4289746..80c2907 100644 --- a/template.js +++ b/template.js @@ -86,22 +86,9 @@ try { var reg = new RegExp(par.step,"ig") return reg.test(step) }) - stepList.forEach(function(step){ - GEN.openStep({job:job,name: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: par.units }); - GEN.zoomHome(); - - - - - - - GEN.closeStep() - }) + GEN.PAUSE("Ok") + IKM.msg("Ok") // ä¿å˜ -- 2.21.0