From b22f98b88de2b9987fa9e48787af9acdf60be874 Mon Sep 17 00:00:00 2001 From: "scott.sun" <scott.sun@topibd.com> Date: Tue, 13 Oct 2020 13:03:47 +0800 Subject: [PATCH] scott --- ats/topcam/20200929_wistarn.md | 7 + ats/topcam/ATS_AIM_customer_data_analysis.js | 3 +- ats/topcam/ATS_AIM_data_format.js | 19 +- ats/topcam/config_ats.js | 46 ++-- ats/topcam/emai.js | 6 +- public_script/SEC_DRC_analysis.js | 7 - public_script/scotttest.js | 233 +++++++++++++------ 7 files changed, 214 insertions(+), 107 deletions(-) diff --git a/ats/topcam/20200929_wistarn.md b/ats/topcam/20200929_wistarn.md index c656f69..bfa8e48 100644 --- a/ats/topcam/20200929_wistarn.md +++ b/ats/topcam/20200929_wistarn.md @@ -1,2 +1,9 @@ ## wistarn +* 100 rule更改 ok +* 101 102 103(profile错误) 7z压缩包 +* 104 多套gerber文件 +* 106 107 113 147 æ— æ–‡ä»¶ +* 114 profile 直接创建失败 +* 136 139 144 å¤šå¥—æ•°æ® +* 141 tgz+gerber多套 \ No newline at end of file diff --git a/ats/topcam/ATS_AIM_customer_data_analysis.js b/ats/topcam/ATS_AIM_customer_data_analysis.js index 13562c4..732dd65 100644 --- a/ats/topcam/ATS_AIM_customer_data_analysis.js +++ b/ats/topcam/ATS_AIM_customer_data_analysis.js @@ -1031,9 +1031,8 @@ try { }) }); var err = mail.sendMail({ - host:'cshas.ats.net', + host:"10.90.79.37", port:"25", - auth_method:mail.AuthMethod.LOGIN, connection_type:mail.ConnectionType.TCP, // user:'ferre.zhang@cn.ats.net', // password:'159482673Sun', diff --git a/ats/topcam/ATS_AIM_data_format.js b/ats/topcam/ATS_AIM_data_format.js index bd199ab..c5981ea 100644 --- a/ats/topcam/ATS_AIM_data_format.js +++ b/ats/topcam/ATS_AIM_data_format.js @@ -128,7 +128,8 @@ try { } } if(/string/ig.test(typeof(mergeRule.drill[0]))){ // drill层 计算 - var drill_layers = [] + var drill_layers = []; + var tmp_layers = []; var matrix = GEN.getMatrix({job:job}) // 计算最大值 var layers = Object.keys(matrix) @@ -144,6 +145,7 @@ try { var tmp = reg.exec(v) var num1 = Number(tmp[1]) var num2 = Number(tmp[2]) + tmp_layers.push({num1:num1,num2:num2,layer:v}) if(num1==1){ drill_layers.push({num1:num1,num2:num2,layer:v}) } @@ -152,6 +154,10 @@ try { } }) var max = maxnum.sort(function(a,b){return b-a})[0] + if (drill_layers.length > 0 && String(drill_layers[0].num2) == "NaN") { + var maxLayer = tmp_layers.filter(function(v) {return v.num1 == max}) + GEN.COM("matrix_rename_layer",{job:job,matrix:"matrix",layer:maxLayer[0].layer,new_name:"drill"}) + } var drill_layer = drill_layers.filter(function(v){return v.num2 == max}) if(drill_layer.length){ drill_layer = drill_layer[0].layer @@ -204,7 +210,6 @@ try { profileRule = mergeRule.profile } } - // start martix_tl_name console.log("get matrix ====== ======== job:" + job); var matrix = GEN.getMatrix({job:job}); @@ -600,6 +605,7 @@ function reName(props) { // 改å par{job:è¦æ”¹å的料å·, rule: {è¦æ”¹å } function mergeLaser(props){ // åˆå¹¶é’»å” + var tmp = [] if(!props.mergeRule){return} var mergeRuleRegs = props.mergeRule.regs var mergeTlname = props.mergeRule.tl_name @@ -644,12 +650,18 @@ function mergeLaser(props){ // åˆå¹¶é’»å” newdrills.push(layerName.toLowerCase()) } GEN.workLayer({name:layerName.toLowerCase(),display_number:1,clear_before:'yes'}); - GEN.copyLayer({source_job:job ,mode:'append',source_step:step,source_layer:val.name,dest_layer:layerName.toLowerCase()}); + GEN.copyLayer({source_job:job ,mode:'append',source_step:step,source_layer:val.name,dest_layer:layerName.toLowerCase()}); + if(/drl|drill/ig.test(val.name) && tmp.indexOf(val.name) < 0) { + tmp.push(val.name) + } }) } } GEN.affectedLayer({affected:"no",mode:"all"}); GEN.clearLayers(); + tmp.forEach(function(layer) { + GEN.COM("matrix_rename_layer,job="+job+",matrix=matrix,layer="+layer+",new_name="+layer.replace(/drl|drill/, "merage")) + }) GEN.closeStep(); return newdrills } @@ -678,6 +690,7 @@ function createOutline(props){ 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.affectedLayer({affected:'no',mode:'all'}) GEN.closeStep() var tmp_outline diff --git a/ats/topcam/config_ats.js b/ats/topcam/config_ats.js index 796b602..1309afc 100644 --- a/ats/topcam/config_ats.js +++ b/ats/topcam/config_ats.js @@ -190,8 +190,8 @@ "Excellon2_4": { "nf1": 2, "nf2": 3, - "units": "mm", - "zeroes": "leading", + "units": "inch", + "zeroes": "trailing", "decimal": "no", "nf_comp": 0, "break_sr": "yes", @@ -201,7 +201,7 @@ "drill_only": "no", "multiplier": 1, "resolution": 3, - "tool_units": "mm", + "tool_units": "inch", "coordinates": "absolute", "merge_by_rule": "no", "signed_coords": "no", @@ -828,7 +828,7 @@ { "valid": function(props){ var file = props.file; - return /.+\.ger$/ig.test(file.name) || /\.gdo$|\.bol$|\.gdo$|\.pma$|\.sma$|\.smb$|\.ssa$|\.ssb$/ig.test(file.name) || + return /.+\.ger$/ig.test(file.name) || /\.pho$|\.bol$|\.gdo$|\.pma$|\.pmb$|\.spa$|\.spb$\.sma$|\.smb$|\.ssa$|\.ssb$/ig.test(file.name) || /.+\.l\d+$/ig.test(file.name) }, "type": "Gerber274x", @@ -943,25 +943,33 @@ } ], "tl_name": [ - {"orig_name" : ["^pmt\\.art$","\\.pma$","SoldPasteTop\\.ger","past_top"], "tl_name" : "past_top" }, - {"orig_name" : ["^pmb\\.art$","\\.pmb$","SoldPasteBot\\.ger","past_botm"], "tl_name" : "past_botm" }, - {"orig_name" : ["tsilk","^sst\\.art$","\\.ssa$","SilkScrnTop\\.ger","silk_top"], "tl_name" : "silk_top" }, - {"orig_name" : ["bsilk","^ssb\\.art$","\\.ssb$","SilkScrnBot\\.ger","silk_bot"], "tl_name" : "silk_bot" }, - {"orig_name" : ["tmask","^smt\\.art$","\\.sma$","SoldMask1Top\\.ger","sm_top"], "tl_name" : "sm_top" }, - {"orig_name" : ["bmask","^smb\\.art$","\\.smb$","SoldMask1Bot\\.ger","sm_bot"], "tl_name" : "sm_botm" }, - {"orig_name" : ["^top$","^top.art$"], "tl_name" : "top" }, - {"orig_name" : ["^l(\\d+).*\\.art$","^v(\\d+)\\.art$","^g(\\d+)\\.art$","^s(\\d+)\\.art$","\\.l(\\d+)$","Copper(\\d+)\\.ger$","^layer_(\\d+)"], "tl_name" : "l_($1)"}, - {"orig_name" : ["^bot\\.art$","^bottom$","^bottom.art$"], "tl_name" : "bottom" }, + {"orig_name" : ["^pmt\\.art$","\\.pma$|\\.spa$","paste.top|soldPasteTop|pastemask.?top","past_top"], "tl_name" : "past_top" }, + {"orig_name" : ["^pmb\\.art$","\\.pmb$|\\.spb$","paste.bot|soldPasteBot|pastemask.?bot","past_botm"], "tl_name" : "past_botm" }, + {"orig_name" : ["tsilk","^sst\\.art$","\\.ssa$","silkscrntop|silkscreentop","silk.top|silk-top"], "tl_name" : "silk_top" }, + {"orig_name" : ["bsilk","^ssb\\.art$","\\.ssb$","silkscrnbot|silkscreenbot","silk.bot|silk-bot"], "tl_name" : "silk_bot" }, + {"orig_name" : ["tmask","^smt\\.art$","\\.sma$","soldmask1top|soldermask.?top","sm.top|solder.top"], "tl_name" : "sm_top" }, + {"orig_name" : ["bmask","^smb\\.art$","\\.smb$","soldmask1bot|soldermask.?bot","sm.bot|solder.bot"], "tl_name" : "sm_botm" }, + {"orig_name" : ["^(?:(?!assy|enig|pm|past|paste|silk|mask).)+top\\.(pho|art)$","^top$","^top\\.art$"], "tl_name" : "top" }, + {"orig_name" : ["^(?:(?!ref).)+l(\\d)\\.art$","-(\\d+)l\\.pho$","^l(\\d+).*\\.art$","^v(\\d+)\\.art$","^g(\\d+)\\.art$","^s(\\d+)\\.art$","\\.l(\\d+)$","Copper(\\d+)\\.ger$","^layer_(\\d+)"], "tl_name" : "l_($1)"}, + {"orig_name" : ["^(?:(?!assy|enig|pm|past|paste|silk|mask).)+bot\\.(pho|art)$","^bot\\.art$","^bottom$","^bottom.art$"], "tl_name" : "bottom" }, {"orig_name" : ["\\.d(\\d+)$"], "tl_name" : "d_($1)-($1+1)"}, {"orig_name" : ["thruHolePlated_(\\d+)_(\\d+)\\.ncd","(\\d+)-(\\d+)\\.drl$","^drill(\\d+)-(\\d+)$","^d_(\\d+)-(\\d+)$"], "tl_name" : "d_($1)-($2)"}, - {"orig_name" : ["ThruHoleNonPlated\\.ncd$","^drill$"], "tl_name" : "drill" }, + {"orig_name" : ["(\\d+)-(\\d+)-np\\.drl$","ThruHoleNonPlated\\.ncd$","^drill$"], "tl_name" : "drill" }, {"orig_name" : ["\\.rou$","^rout$"], "tl_name" : "rout" }, {"orig_name" : "fab.art", "tl_name" : "fab.art" }, - {"orig_name" : ["multipack.art","^array$"], "tl_name" : "array" }, - {"orig_name" : ["outline\\.art$","\\.bol$","PnlContourNonPlated\\.ger","^outline"], "tl_name" : "outline" }, - {"orig_name" : ["top-enig","enig_top"], "tl_name" : "enig_top" }, - {"orig_name" : ["bot-enig","enig_bot"], "tl_name" : "enig_bot" }, - ] + {"orig_name" : ["multipack\\.art","^array$"], "tl_name" : "array" }, + {"orig_name" : ["p_outline\\.art","panel\\.art$","paneloutline\\.pho","outline\\.art$","\\.bol$","PnlContourNonPlated\\.ger","^outline"], "tl_name" : "outline" }, + {"orig_name" : ["topside-golden","top-enig","enig_top"], "tl_name" : "enig_top" }, + {"orig_name" : ["botside-golden","bot-enig","enig_bot"], "tl_name" : "enig_bot" }, + ], + "mergerule" : { + profile:["silk_top"], + drill:["(\\d+)-(\\d+)\\.drl$","\\.d(\\d+)$"], + laser : { + tl_name: "drill($1)-($2)", + regs: ["(\\d+)-(\\d+)\\.drl$"] + } + } }, "Vivo":{ "step": "cad", diff --git a/ats/topcam/emai.js b/ats/topcam/emai.js index f8887ef..fa937d2 100644 --- a/ats/topcam/emai.js +++ b/ats/topcam/emai.js @@ -3,10 +3,10 @@ var error = require('topsin.error'); var err = mail.sendMail({ // host:'smtp.exmail.qq.com', // host:'cshas.ats.net', - host:"cshas.ats.net", - port: "25", + host:"10.90.79.37", + port:"25", // auth_method:mail.AuthMethod.LOGIN, - // connection_type:mail.ConnectionType.TCP, + connection_type:mail.ConnectionType.TCP, // user: "ferre.zhang@cn.ats.net", // user:'scott.sun@topibd.com', // password:'159482673Sun', diff --git a/public_script/SEC_DRC_analysis.js b/public_script/SEC_DRC_analysis.js index 37cb9ab..8d9f79f 100644 --- a/public_script/SEC_DRC_analysis.js +++ b/public_script/SEC_DRC_analysis.js @@ -487,13 +487,6 @@ try { GEN.closeStep() }) - - - - - - - diff --git a/public_script/scotttest.js b/public_script/scotttest.js index 25890b4..80b77f7 100644 --- a/public_script/scotttest.js +++ b/public_script/scotttest.js @@ -5,9 +5,15 @@ PARAMETER: [ { name : 'step', - title : 'step', + title : 'æ“作step', type : 'LineEdit', - property : {tool_tip : 'ç›®æ ‡step,默认是orig'}, + property : {tool_tip : 'æ“作step,默认是net'}, + }, + { + name : 'cutting_marign', + title : '切除profile外数值', + type : 'LineEdit', + property : {tool_tip : '切除profile外数值,默认是0.2mm'}, }, { name : 'auto_save', @@ -24,16 +30,16 @@ PARAMETER: ] VERSION_HISTORY: - V1.00 2020-09-01 Scott Sun + V1.00 2020-04-20 Scott Sun 1.新版本 HELP: <html><body bgcolor="#DDECFE"> <font size="3" color="#003DB2"><p>功能简介</p></font> - <p> æ ‡é¢˜ </p> + <p> åˆ é™¤æ¿å¤– </p> <br> <font size="3" color="#003DB2"><p>傿•°é…ç½®</p></font> - <p> stepä¿¡æ¯ </p> + <p> 切除值 </p> <br> <font size="3" color="#003DB2"><p>注æ„事项</p></font> <p> æ— </p> @@ -42,15 +48,13 @@ PARAMETER: */ ////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// -console.log("==============================>template"); +console.log("==============================>åˆ é™¤æ¿å¤–"); // å¼•å…¥æ¨¡å— åŒ… var $ = require('topcam.scriptfunc').argv(); var fs = require('fs'); var _ = require('lodash'); var mode = $.ikm ? "topcam" : "aimdfm"; var IKM = $.ikm; -require("topsin.genmath") -var genMath = new GenMath(); if (IKM==undefined ) { IKM = require('topcam.ikm6')($) } var GEN = $.gen; var GUI = $.gui || {}; @@ -58,91 +62,174 @@ var Job = $.job || $.job_name; var JobId = $.job_id; var db = $.db || IKM.db var PAR = {} -if ($.par) { PAR = $.par } else if ($.hasOwnProperty('script_parameter')){ PAR = JSON.parse($.script_parameter); } +if ($.par) { + PAR = $.par +} else if ($.hasOwnProperty('script_parameter')){ + PAR = JSON.parse($.script_parameter); +} if (mode === "aimdfm") { var database = require("topsin.database"); database.addConnection($.conf.database_conf, "DFM"); var QDfm = database.query("DFM"); $.QDfm = QDfm; if ($.conf.product_type == "aimdfm") { - QDfm.updateRow({ table: "pdm_aimdfm_task", data: { current_process_title: $.process_title }, where: { id: $.task_id } }); + QDfm.updateRow({ + table: "pdm_aimdfm_task", + data: { + current_process_title: $.process_title + }, + where: { id: $.task_id } + }); } } var Status = 'ok'; var resultData = []; -var par = PAR; -var default_par = { - step: "orig", - auto_save: "No", - units:"mm" -} -for(var key in default_par){ if (!par.hasOwnProperty(key) || par[key] == ""){ par[key] = default_par[key] }} -var job = Job; + try { - if(_.isEmpty(job)){throw "傿•°jobä¸å˜åœ¨"} else { job = job.toLowerCase() } + var par = PAR; + var default_par = { + step:"net", + cutting_marign: "0.2mm", + auto_save: "No", + } + for(var key in default_par){ // 设置默认属性 + if (!par.hasOwnProperty(key) || par[key] == ""){ + par[key] = default_par[key] + } + } + par.cutting_marign = parseFloat(par.cutting_marign) + if(!/^(([^0][0-9]+|0)\.([0-9]{1,2})$)|^([^0][0-9]+|0)$/ig.test(par.cutting_marign)){throw "cutting_marign failed"} + var cutting_marign_symbol = "r" + String(par.cutting_marign * 1000) + + if(_.isEmpty(Job)){throw "傿•°Jobä¸å˜åœ¨"} + var job = "08ha0010hq0a0" 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" } else { GEN.checkInout({job:job,mode:"out"}) } } - var stepList = GEN.getStepList({job:job}) - stepList = stepList.filter(function(step){ - var reg = new RegExp(par.step,"ig") - return reg.test(step) + if(mode == "aimdfm"){ + if(GEN.checkInout({job:job,mode:"test"}) != 0){ throw "the job check" } + GEN.checkInout({job:job,mode:"out"}); + } + // 通过matrix获å–board层 + var matrix = GEN.getMatrix({job:job}) + var board_layers = Object.keys(matrix).reduce(function(a,b){ + if(matrix[b].context == "board"){ + a.push(b) + } + return a + },[]) + var all_layers = Object.keys(matrix) + var outline_layer = ["gko","gm1","ol"] + outline_layer = outline_layer.filter(function(v){ + return all_layers.indexOf(v) >=0 }) - 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(); - - var feas = GEN.getFeatures({job:job,step:step,layer:"tmp",surface:1,units:"mm"}) - IKM.msg(featsToLimits(feas)) - - + // å½±å“board层 + var steplist = GEN.getStepList({job:job}) + steplist = steplist.filter(function(v){ + var tmpreg = new RegExp(par.step,"ig") + return tmpreg.test(v) }) + steplist.forEach(function(step){ + GEN.openStep({job:job,name:step}) + GEN.units({type:"mm"}) + var outline_tmp = "outline_tmp" + // 创建outlineå‚考层 + if(GEN.isLayerExists({job:job,layer:outline_tmp})){ + GEN.deleteLayer({job:job, layer:outline_tmp}) + } + GEN.COM("profile_to_rout,layer="+outline_tmp+",width=1") + GEN.clearLayers() + // 切除profile以外0.2mm(cutting_marign)物件 + board_layers.forEach(function(layer){ + if (outline_layer.indexOf(layer)<0){ + GEN.affectedLayer({affected:"no", mode: "all"}) + // GEN.workLayer({name:layer,display_number:1,clear_before:'yes'}); + // GEN.clipArea({layers_mode:'affected_layers',area:'profile',inout:'outside',margin:0,contour_cut:'no'}); + GEN.workLayer({name:layer,display_number:2,clear_before:'yes'}) + GEN.selectByFilter({profile:"out"}) + // GEN.selRefFeat({layers:outline_tmp,use:'filter',mode:'include'}); + if(GEN.getSelectCount()>0){GEN.selDelete()} + GEN.COM("clip_area_strt") + GEN.COM("clip_area_end,layers_mode=affected_layers,layer=,area=profile,area_type=rectangle,inout=outside,contour_cut=yes,margin=0,feat_types=line\;pad\;surface\;arc\;text") - + // var outline_ref = 'ol_tl_tmp'; + // var tmp_work_layer = '_tmp_work_layer'; + // if(GEN.isLayerExists({job:job,layer:tmp_work_layer})){ + // GEN.deleteLayer({job:job,layer:[tmp_work_layer],step:step}) + // } + // if(GEN.isLayerExists({job:job,layer:outline_ref})){ + // GEN.deleteLayer({job:job,layer:[outline_ref],step:step}) + // } + // GEN.createLayer({job:job,layer:tmp_work_layer,conext:'misc',type:'document',delete_exists:"yes"}) + // GEN.createLayer({job:job,layer:outline_ref,conext:'misc',type:'document',delete_exists:"yes"}) + // GEN.workLayer({name:outline_tmp,display_number:2,clear_before:'yes'}) + // GEN.selCopyOther({dest:'layer_name',target_layer:outline_ref,invert:'no',dx:0,dy:0,size:0}) + // GEN.affectedLayer({affected:'yes',layer:[outline_ref],clear_before:'yes'}); + // GEN.COM('sel_resize',{size:200,corner_ctl:'no'}); + // GEN.workLayer({name:layer,display_number:2,clear_before:'yes'}) + // GEN.selRefFeat({layers:outline_ref,use:'filter',mode:'cover'}); + // if ( GEN.getSelectCount() > 0 ) { + // GEN.selCopyOther({dest:'layer_name',target_layer:tmp_work_layer,invert:'no',dx:0,dy:0,size:0}); + // GEN.affectedLayer({affected:'yes',mode:'single',layer:tmp_work_layer,clear_before:'yes'}); + // GEN.COM('sel_all_feat'); + // GEN.selChangeSym({symbol:'r1'}); + // GEN.affectedLayer({affected:'yes',mode:'single',layer:outline_ref,clear_before:'yes'}); + // GEN.COM('sel_all_feat'); + // GEN.selChangeSym({symbol:'r2'}); + // GEN.affectedLayer({affected:'yes',mode:'single',layer:tmp_work_layer,clear_before:'yes'}); + // GEN.selRefFeat({layers:outline_ref,use:'filter',mode:'cover'}); + // GEN.selReverse(); + // if ( GEN.getSelectCount() > 0 ){GEN.selDelete() }; + // GEN.affectedLayer({affected:'yes',mode:'single',layer:layer,clear_before:'yes'}); + // GEN.selRefFeat({layers:tmp_work_layer,use:'filter',mode:'include'}); + // if ( GEN.getSelectCount() > 0 ){GEN.selDelete() }; + // } + // GEN.deleteLayer({job:job,layer:[outline_ref,tmp_work_layer]}); + } + }) + GEN.affectedLayer({affected:'no',mode:'all'}) + GEN.deleteLayer({job:job,layer:[outline_tmp]}) + }) // ä¿å˜ - if(/yes/ig.test(par.auto_save)){GEN.checkInout({job:job,mode:"out"}); GEN.saveJob({ job: job });GEN.checkInout({job:job,mode:"in"});GEN.closeJob({job:job});} else {GEN.checkInout({job:job,mode:"in"})} - if (mode === "aimdfm") { - $.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}; } - }else { return "Done" } + if(/yes/ig.test(par.auto_save)){ + GEN.checkInout({job:job,mode:"out"}) // 结æŸä¿å˜æ–™å· 关闿–™å· + GEN.saveJob({ job: job }); + GEN.checkInout({job:job,mode:"in"}) + GEN.closeJob({job:job}) + } else { + GEN.checkInout({job:job,mode:"in"}) + } + if (mode === "aimdfm") { + $.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 + }; + } + }else { + return "Done" + } } catch (e) { - IKM.msg(_.join(GEN.STATUS, "\n"));IKM.msg(e);Status = 'error'; + IKM.msg(_.join(GEN.STATUS, "\n")) + IKM.msg(e) + Status = 'error'; resultData.push({type: "error", title: "脚本执行出错!", detail: [{desc: _.toString(e)}]}); - return (mode === "aimdfm") ? {status: Status, result_data: resultData} : "Error"; + return (mode === "aimdfm") ? {status: Status, result_data: resultData} : "Error"; } - - -function featsToLimits(feats) { - feats.forEach(function(item) { - if(item.feats) { - var polygon = genMath.profile2Polygon(item.feats.join("\n"),0) - var res = polygon.reduce(function(a,b){ - a.xmin = b.x > a.xmin ? a.xmin : b.x; - a.ymin = b.y > a.ymin ? a.ymin : b.y; - a.xmax = b.x < a.xmax ? a.xmax : b.x; - a.ymax = b.y < a.ymax ? a.ymax : b.y; - return a - }, { - xmin: polygon[0].x, - ymin: polygon[0].y, - xmax: polygon[0].x, - ymax: polygon[0].y - }) - res.xsize = Math.abs(res.xmax - res.xmin) - res.ysize = Math.abs(res.ymax - res.ymin) - res.xc = res.xmin + res.xsize/2 - res.yc = res.ymin + res.ysize/2 - item.limits = res - } - }) - return feats -} -- 2.21.0