Commit a56b5476 authored by Scott Sun's avatar Scott Sun

s

parent 7c4785f5
...@@ -102,7 +102,6 @@ try { ...@@ -102,7 +102,6 @@ try {
GEN.openStep({job:job, name:pcs_step}) GEN.openStep({job:job, name:pcs_step})
GEN.units({type:"mm"}) GEN.units({type:"mm"})
_.values(matrix).forEach(function(v){ _.values(matrix).forEach(function(v){
if(v.context == "board" && v.layer_type == "drill"){ if(v.context == "board" && v.layer_type == "drill"){
if(v.type == "laser_drill"){ if(v.type == "laser_drill"){
GEN.affectedLayer({affected:'no',mode:'all'}) GEN.affectedLayer({affected:'no',mode:'all'})
...@@ -307,21 +306,42 @@ try { ...@@ -307,21 +306,42 @@ try {
}) })
}) })
console.log("=========== ===================> 6 set smd bga") console.log("=============================> 6 set smd bga")
var allStep = GEN.getStepList({job:job})
allStep.forEach(function(step){
var hasattrs = [".smd",".bga"] GEN.openStep({job:job,name:step})
var ishasattrs = hasattrs.reduce(function(a,b){ // 判断是否含有.smd属性 console.log(3)
if(!hasAttr({job:job,step:pcs_step,attr:b,layers:analysis_obj.matrixInfo.mOuters})){ a = false } GEN.COM("chklist_single,show=yes,action=valor_cleanup_set_smd")
return a console.log(4)
},true)
if(!ishasattrs){ // 如果找不到.smd 分析.smd
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_work_on=SMD\;BGA)(pp_delete=No)(pp_types=Square\;Rect\;Oval)(pp_other_smd=)(pp_sm=No)(pp_drill=)(pp_rotate=No)(pp_ignore_covered=Yes)(pp_bga_types=Round)(pp_other_bga=)(pp_sm_bga=No)(pp_bga_max_pitch=70)(pp_bga_actions=Set attribute)(pp_bga_suffix=_bga)(pp_identify_gf=)),mode=regular") GEN.COM("chklist_cupd,chklist=valor_cleanup_set_smd,nact=1,params=((pp_layer=.type=signal|mixed&side=top|bottom)(pp_work_on=SMD\;BGA)(pp_delete=No)(pp_types=Square\;Rect\;Oval)(pp_other_smd=)(pp_sm=No)(pp_drill=)(pp_rotate=No)(pp_ignore_covered=Yes)(pp_bga_types=Round)(pp_other_bga=)(pp_sm_bga=No)(pp_bga_max_pitch=70)(pp_bga_actions=Set attribute)(pp_bga_suffix=_bga)(pp_identify_gf=)),mode=regular")
console.log(5)
GEN.COM("get_user_name")
console.log(6)
GEN.COM("get_job_path,job="+job)
console.log(7)
GEN.COM("disp_on")
console.log(8)
GEN.COM("origin_on")
console.log(9)
GEN.COM("chklist_cnf_act,chklist=valor_cleanup_set_smd,nact=1,cnf=no")
console.log(10)
GEN.COM("chklist_run,chklist=valor_cleanup_set_smd,nact=1,area=profile") GEN.COM("chklist_run,chklist=valor_cleanup_set_smd,nact=1,area=profile")
GEN.COM("chklist_close,chklist=valor_cleanup_set_smd,mode=hide") console.log(11)
} GEN.COM("skip_next_pre_hook")
console.log(12)
GEN.COM("chklist_run,chklist=valor_cleanup_set_smd,nact=1,area=profile")
console.log(13)
GEN.COM("get_user_name")
console.log(14)
GEN.COM("skip_current_command")
console.log(15)
GEN.COM("disp_on")
console.log(16)
GEN.COM("origin_on")
console.log(17)
GEN.COM("show_tab,tab=Checklists,show=no")
GEN.closeStep()
})
// GEN.createChklist() // GEN.createChklist()
...@@ -451,8 +471,13 @@ try { ...@@ -451,8 +471,13 @@ try {
},[])[0] },[])[0]
return {layer:v,symbol:symbol,start:matrix[v]["drl_start"],end:matrix[v]["drl_end"]} return {layer:v,symbol:symbol,start:matrix[v]["drl_start"],end:matrix[v]["drl_end"]}
}) })
console.log("===================================> 12 Drill analysis") console.log("==================================> 12 Drill analysis")
var drillRes = analysisDrill(drillToSignals,step) // 钻孔分析结果 var drillRes = analysisDrill(drillToSignals,step) // 钻孔分析结果
console.log("================drillRes:" + _.toString(drillRes));
throw "tmp"
// 数据入库 // 数据入库
Object.keys(res).forEach(function(key){ Object.keys(res).forEach(function(key){
var val = res[key] var val = res[key]
...@@ -474,7 +499,6 @@ try { ...@@ -474,7 +499,6 @@ try {
}) })
// 铜面积 // 铜面积
console.log("=============================> 13 save copper_percent") console.log("=============================> 13 save copper_percent")
// 创建profile
var copper_percent_pcs = signalLayers.map(function(v){ var copper_percent_pcs = signalLayers.map(function(v){
var tmp = {layer:v} var tmp = {layer:v}
tmp.copper_percent = GEN.copperArea({layer1:v}).percent + "%" tmp.copper_percent = GEN.copperArea({layer1:v}).percent + "%"
...@@ -1256,9 +1280,11 @@ function analysisDrill(par, step){ ...@@ -1256,9 +1280,11 @@ function analysisDrill(par, step){
// {"layer":"d1-2","symbol":"r35.0394","start":"top","end":"bottom"} // {"layer":"d1-2","symbol":"r35.0394","start":"top","end":"bottom"}
var job = Job.toLowerCase() var job = Job.toLowerCase()
var res = par.map(function(drill){ var res = par.map(function(drill){
GEN.affectedLayer({affected:"yes",layer:drill.layer,clear_before:"yes",mode:"all"}) GEN.affectedLayer({affected:'no',mode:'all'})
GEN.affectedLayer({affected:'yes',layer:drill.layer})
GEN.selClearFeature() GEN.selClearFeature()
GEN.selectByFilter({feat_types:"pad",include_syms:drill.symbol}) GEN.selectByFilter({feat_types:"pad",include_syms:drill.symbol})
if(GEN.getSelectCount()>0){
// 拷贝到_tmp // 拷贝到_tmp
var tmplayer = drill.layer + "_tmp" var tmplayer = drill.layer + "_tmp"
if(GEN.isLayerExists({job:job,layer:tmplayer})){GEN.deleteLayer({job:job,step:step,layer:tmplayer})} if(GEN.isLayerExists({job:job,layer:tmplayer})){GEN.deleteLayer({job:job,step:step,layer:tmplayer})}
...@@ -1267,20 +1293,9 @@ function analysisDrill(par, step){ ...@@ -1267,20 +1293,9 @@ function analysisDrill(par, step){
GEN.selClearFeature(); GEN.selClearFeature();
[drill.start,drill.end].forEach(function(item, i){ [drill.start,drill.end].forEach(function(item, i){
GEN.workLayer({name:item,display_number:1,clear_before:"yes"}) GEN.workLayer({name:item,display_number:1,clear_before:"yes"})
// GEN.selRefFeat({
// layers: tmplayer,
// use: "filter",
// mode: "touch",
// f_types: "pad",
// pads_as:"shape",
// polarity:"positive",
// include_syms:drill.symbol,
// filter: {
// feat_types:'pad'
// }
// })
GEN.COM("sel_ref_feat", GEN.COM("sel_ref_feat",
{layers:tmplayer,use:"filter",mode:"touch",pads_as:"shape",f_types:"pad",polarity:"positive\;negative",include_syms:drill.symbol}) {layers:tmplayer,use:"filter",mode:"touch",pads_as:"shape",f_types:"pad",polarity:"positive\;negative",include_syms:drill.symbol})
if(GEN.getSelectCount()>0){
var res = "" var res = ""
var pads = GEN.getFeatures({job:job,step:step,layer:item,options:"select"}) var pads = GEN.getFeatures({job:job,step:step,layer:item,options:"select"})
if(pads && pads.length) { if(pads && pads.length) {
...@@ -1297,8 +1312,10 @@ function analysisDrill(par, step){ ...@@ -1297,8 +1312,10 @@ function analysisDrill(par, step){
} else if (i==1){ } else if (i==1){
drill.drl_pad_bot = res drill.drl_pad_bot = res
} }
}
}) })
GEN.deleteLayer({job:job,step:step,layer:tmplayer}) GEN.deleteLayer({job:job,step:step,layer:tmplayer})
}
return drill return drill
}) })
return res return res
...@@ -1344,14 +1361,14 @@ function bgaAnalysis(props){ ...@@ -1344,14 +1361,14 @@ function bgaAnalysis(props){
if (!res.hasOwnProperty(layer.signalL)){ if (!res.hasOwnProperty(layer.signalL)){
res[layer.signalL] = {} res[layer.signalL] = {}
} }
res[layer.signalL].min_bga_size = myFixed(min_symbols_info["min_bga_size"],4) res[layer.signalL].min1_bga_dia = myFixed(min_symbols_info["min_bga_size"],2)
res[layer.signalL].min_bga_openging_size = myFixed(min_symbols_info["min_bga_openging_size"],4) res[layer.signalL].min1_bga_sm_dia = myFixed(min_symbols_info["min_bga_openging_size"],2)
res[layer.signalL].min_bga_pitch = myFixed(min_symbols_info["min_bga_pitch"],4) res[layer.signalL].min1_bga_grid = myFixed(min_symbols_info["min_bga_pitch"],2)
// 分析所有BGA // 分析所有BGA
var all_bga_min_pitch_info = all_bga_min_pitch_anal({job:job, step:step, layer:tmp_layer,solderLayer:layer.solderL}) var all_bga_min_pitch_info = all_bga_min_pitch_anal({job:job, step:step, layer:tmp_layer,solderLayer:layer.solderL})
res[layer.signalL].bga_min_pitch = myFixed(all_bga_min_pitch_info["bga_min_pitch"],4) res[layer.signalL].min2_bga_grid = myFixed(all_bga_min_pitch_info["bga_min_pitch"],2)
res[layer.signalL].bga_min_pitch_pad_size = myFixed(all_bga_min_pitch_info["bga_min_pitch_pad_size"],4) res[layer.signalL].min2_bga_dia = myFixed(all_bga_min_pitch_info["bga_min_pitch_pad_size"],2)
res[layer.signalL].bga_min_pitch_openging_size = myFixed(all_bga_min_pitch_info["bga_min_pitch_openging_size"],4) res[layer.signalL].min2_bga_sm_dia = myFixed(all_bga_min_pitch_info["bga_min_pitch_openging_size"],2)
GEN.deleteLayer({job:job,layer:tmp_layer}) GEN.deleteLayer({job:job,layer:tmp_layer})
} }
}) })
...@@ -1610,16 +1627,7 @@ function hasAttr(props){ // 判断层 有没有部分属性 ...@@ -1610,16 +1627,7 @@ function hasAttr(props){ // 判断层 有没有部分属性
} }
function myFixed(str, num) { function myFixed(str, num) {
if(/^[1-9][0-9]*([.][0-9]+)?$/.test(str)){ if(/^[1-9][0-9]*([.][0-9]+)?$/.test(str)){
var tmp = String(str) return Number(str).toFixed(num)
if(tmp.search(/\./) >= 0){
tmp = tmp.split(".")
if(tmp[1].length > num){
tmp[1] = tmp[1].substr(0, num)
return tmp.join(".")
}
return str
}
return str
} else { } else {
return str return str
} }
......
...@@ -74,7 +74,6 @@ var PAR = {}; ...@@ -74,7 +74,6 @@ var PAR = {};
if ($.hasOwnProperty('script_parameter')){ if ($.hasOwnProperty('script_parameter')){
PAR = JSON.parse($.script_parameter); PAR = JSON.parse($.script_parameter);
} }
try { try {
var par = PAR; var par = PAR;
// var db_path = db.query("",function(q){ // var db_path = db.query("",function(q){
...@@ -129,7 +128,7 @@ try { ...@@ -129,7 +128,7 @@ try {
var path = par.path var path = par.path
console.log("========= ====>path:"+ path) console.log("========= ====>path:"+ path)
if(!fs.exists(path)){throw "path error"} if(!fs.exists(path)){throw "path error"}
var pathInfo = fs.listDir(path, 1) var pathInfo = fs.listDir(path + "/" + db_customer.toLowerCase(), 1)
// 判断存不存在料号文件 // 判断存不存在料号文件
var vc_position = db.query("",function(q){ var vc_position = db.query("",function(q){
return q.selectValue({ return q.selectValue({
...@@ -159,38 +158,32 @@ try { ...@@ -159,38 +158,32 @@ try {
var err = importJob({name:job,db:custCfg.db,path:jobInfo.data[0].file.path},config.delSameJob) var err = importJob({name:job,db:custCfg.db,path:jobInfo.data[0].file.path},config.delSameJob)
if(err){throw err} if(err){throw err}
} else { // 多个tgz文件 说明需要合并 } else { // 多个tgz文件 说明需要合并
console.log("==========合并的情况");
var jobs = jobInfo.data.map(function(item, i){ 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 err = importJob({name:job + "_tmp_" + i,db:custCfg.db,path:item.file.path},config.delSameJob)
if(err){throw err} if(err){throw err}
return job + "_tmp_" + i return job + "_tmp_" + i
}) })
var job_type = {
pcs: "pcs",
cad: "pcs",
stp: "arr",
arr: "arr",
array: "arr"
}
// 分析arr_job 和 pcs_job // 分析arr_job 和 pcs_job
jobs = jobs.map(function(jobname){ jobs = jobs.map(function(jobname){
GEN.openJob({job:jobname}); GEN.openJob({job:jobname});
var step_tmp = GEN.getStepList({job:jobname})[0] var step_tmp = GEN.getStepList({job:jobname})[0]
var type = job_type[step_tmp] var type = getStepType(step_tmp)
return { return {
jobname: jobname, jobname: jobname,
stepname: step_tmp, stepname: step_tmp,
type: type type: type
} }
}) })
var pcs_job = jobs.filter(function(v){return v.type == "pcs"})
var arr_job = jobs.filter(function(v){return v.type == "arr"}) var pcs_job = jobs.filter(function(v){return v.type == "pcs"})[0]
var arr_job = jobs.filter(function(v){return v.type == "arr"})[0]
GEN.copyStep({ // 合并 GEN.copyStep({ // 合并
source_job:arr_job.jobname, source_job:arr_job.jobname,
source_name:arr_job.stepname, source_name:arr_job.stepname,
dest_job:pcs_job.jobname, dest_job:pcs_job.jobname,
dest_name:arr_job.stepname, dest_name:arr_job.stepname,
}); });
GEN.closeJob({ job: arr_job.jobname }); GEN.closeJob({ job: arr_job.jobname });
GEN.deleteJob({ job: arr_job.jobname }); // 合并后 删除array的料号 GEN.deleteJob({ job: arr_job.jobname }); // 合并后 删除array的料号
// 修改pcs料号名称 // 修改pcs料号名称
...@@ -352,4 +345,12 @@ function importJob(props,delSameJob){ ...@@ -352,4 +345,12 @@ function importJob(props,delSameJob){
GEN.importJob(props); GEN.importJob(props);
} }
function getStepType(step){
if(/pcs|cad|orig/ig.test(step)){
return "pcs"
}
if(/stp|arr/ig.test(step)){
return "arr"
}
return pcs
}
...@@ -97,14 +97,19 @@ try { ...@@ -97,14 +97,19 @@ try {
if(!GEN.isJobExists({job:job})){ throw "job "+ job+ " is not exist" } if(!GEN.isJobExists({job:job})){ throw "job "+ job+ " is not exist" }
if(!GEN.isJobOpen({job:job})){GEN.openJob({job:job})} if(!GEN.isJobOpen({job:job})){GEN.openJob({job:job})}
if(GEN.checkInout({job:job,mode:"test"}) != 0 && mode != "develop"){ throw "the job check" } if(GEN.checkInout({job:job,mode:"test"}) != 0 && mode != "develop"){ throw "the job check" }
console.log("Checkout====== ========================>")
GEN.checkInout({job:job,mode:"out"}); GEN.checkInout({job:job,mode:"out"});
console.log("Checkout success==============================>")
// if(config.hasOwnProperty("merge_drill")){ // todo // if(config.hasOwnProperty("merge_drill")){ // todo
// mergeDrill({job:job}) // mergeDrill({job:job})
// } // }
// start martix_tl_name // start martix_tl_name
var matrix = GEN.getMatrix({job:job}) console.log("get matrix ====== ======== job:" + job);
var matrix = GEN.getMatrix({job:job});
console.log("=========matrix:" + _.toString(matrix));
console.log("matrix add tl_name :");
var tl_name_matrix = tlNameMatrix({matrix:matrix,tl_name:custCfg.tl_name}) // 给matrix信息添加tl_name var tl_name_matrix = tlNameMatrix({matrix:matrix,tl_name:custCfg.tl_name}) // 给matrix信息添加tl_name
console.log("tl_name add end:");
var format_cfg = config.data_format // 拿到数据标准化配置 var format_cfg = config.data_format // 拿到数据标准化配置
......
料号名称
0000/222 spt smt top isl2 ... isl7 bottom smb spb rout d_top_isl2 ... d_isl7_bottom drill bot_testpoint bot_stiffener top_osp bot_osp outline top_enig bot_enig top_assem bot_assem
3333333 spt smt top isl2 ... isl7 bottom smb spb rout d_top_isl2 ... d_isl7_bottom drill ssb sst top_testpoint bot_testpoint bot_assy_mate top_assy_mate
1 spt smt top isl2 ... isl7 bottom smb spb rout d_top_isl2 ... d_isl7_bottom drill top_assem bot_assem top_testpoint bot_testpoint
top_osp bot_osp top_enig bot_enig fab_page2 bot_assy_mate top_assy_mate tmp_top_shorts tmp_bot_shorts ssb sst
i3 bottom.art top.art fab.art lay2.art ... lay9.art multipack.art
outline.art pleg.art ppst.art psm.art sleg.art spst.art ssm.art k55387-002-1-10.drl k55387-002-1-2-laser.drl ... k55387-002-1-10.rou
i6 01_topccp_ms... 02ccp_ms... ... 06_botccp_ms... as_topccp_ms... dimensionsccp_ms... outlineccp_ms... pm_topccp_ms... sm_botccp_ms... sm_topccp_ms... ss_botccp_ms... ss_topccp_ms... via_plugccp_ms... ...1-2-laser.drl ...1-6.drl
...@@ -154,7 +154,7 @@ ...@@ -154,7 +154,7 @@
{ {
"valid": function(props){ "valid": function(props){
var file = props.file; var file = props.file;
return /.+\.tgz$/ig.test(file.name) && !(/-a/ig.test(file.baseName)) return /.+\.tgz$/ig.test(file.name)
}, },
"type": "ODB", "type": "ODB",
"format": "ODB" "format": "ODB"
...@@ -267,10 +267,10 @@ ...@@ -267,10 +267,10 @@
} }
], ],
"tl_name": [ "tl_name": [
{"orig_name" : ["^sst$","^past_top$"], "tl_name" : "past_top" }, {"orig_name" : ["^spt$","^past_top$"], "tl_name" : "past_top" },
{"orig_name" : ["^ssb$","^past_botm$"], "tl_name" : "past_botm" }, {"orig_name" : ["^spb$","^past_botm$"], "tl_name" : "past_botm" },
{"orig_name" : ["^spt$","^silk_top$"], "tl_name" : "silk_top" }, {"orig_name" : ["^sst$","^silk_top$"], "tl_name" : "silk_top" },
{"orig_name" : ["^spb$","^silk_bot$"], "tl_name" : "silk_bot" }, {"orig_name" : ["^ssb$","^silk_bot$"], "tl_name" : "silk_bot" },
{"orig_name" : ["^smt$","^sm_top$"], "tl_name" : "sm_top" }, {"orig_name" : ["^smt$","^sm_top$"], "tl_name" : "sm_top" },
{"orig_name" : ["^smb$","^sm_botm$"], "tl_name" : "sm_botm" }, {"orig_name" : ["^smb$","^sm_botm$"], "tl_name" : "sm_botm" },
{"orig_name" : "^top$", "tl_name" : "top" }, {"orig_name" : "^top$", "tl_name" : "top" },
...@@ -405,8 +405,8 @@ ...@@ -405,8 +405,8 @@
"tl_name": [ "tl_name": [
{"orig_name" : ["assytop.art","past_top"], "tl_name" : "past_top" }, {"orig_name" : ["assytop.art","past_top"], "tl_name" : "past_top" },
{"orig_name" : ["assybot.art","past_botm"], "tl_name" : "past_botm" }, {"orig_name" : ["assybot.art","past_botm"], "tl_name" : "past_botm" },
{"orig_name" : ["pleg.art","silk_top"], "tl_name" : "silk_top" }, {"orig_name" : ["pleg.art","^ss_top","silk_top"], "tl_name" : "silk_top" },
{"orig_name" : ["sleg.art","silk_bot"], "tl_name" : "silk_bot" }, {"orig_name" : ["sleg.art","^ss_bot","silk_bot"], "tl_name" : "silk_bot" },
{"orig_name" : ["ssm.art","sm_top"], "tl_name" : "sm_top" }, {"orig_name" : ["ssm.art","sm_top"], "tl_name" : "sm_top" },
{"orig_name" : ["psm.art","sm_bot"], "tl_name" : "sm_botm" }, {"orig_name" : ["psm.art","sm_bot"], "tl_name" : "sm_botm" },
{"orig_name" : ["^top$","^top.art$"], "tl_name" : "top" }, {"orig_name" : ["^top$","^top.art$"], "tl_name" : "top" },
......
/*
NAME:
DESCRIPTION: ;
PARAMETER:
[
]
VERSION_HISTORY:
V1.00 2020-04-17 Scott Sun
1.新版本
HELP:
<html><body bgcolor="#DDECFE">
<font size="3" color="#003DB2"><p>功能简介</p></font>
<p> 数据标准化 </p>
<br>
<font size="3" color="#003DB2"><p>参数配置</p></font>
<p> 客户配置 </p>
<br>
<font size="3" color="#003DB2"><p>注意事项</p></font>
<p> 无 </p>
<br>
</body></html>
*/
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
// 引入模块 包
console.log("==============================================>scott test")
var $ = require('topcam.scriptfunc').argv();
var fs = require('fs');
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 GEN = $.gen;
var Job = $.job_name;
var db = $.db;
var JobId = $.job_id;
var Status = 'ok';
var resultData = [];
var PAR = {};
if ($.hasOwnProperty('script_parameter')){
PAR = JSON.parse($.script_parameter);
}
try {
var job = Job;
if(_.isEmpty(job)) throw "没有传入料号名!";
job = job.toLowerCase()
// 料号验证
if(!GEN.isJobExists({job:job})){ throw "job "+ job+ " is not exist" }
if(!GEN.isJobOpen({job:job})){GEN.openJob({job:job})}
var matrix = GEN.getMatrix({job:job})
var drillLayers = Object.keys(matrix).filter(function(v){return matrix[v].layer_type == "drill"})
var step = "cad"
GEN.openStep({job:job, name:step})
console.log("==================================>drillLayers:"+_.toString(drillLayers))
// 钻孔
var drillToSignals = drillLayers.map(function(v){ // 获取到钻孔层对应的顶层和底层
var simbols = GEN.getLayerSymsHist({job:job,step:step,layer:v})
var symbol = _.values(simbols).sort(function(a,b){return Number(a.size)-Number(b.size)})
.reduce(function(a,b){
if(b.pad!="0"){
a.push(b.symbol)
}
return a
},[])[0]
return {layer:v,symbol:symbol,start:matrix[v]["drl_start"],end:matrix[v]["drl_end"]}
})
console.log("==================================>drillToSignals:"+_.toString(drillToSignals))
var drillRes = analysisDrill(drillToSignals,step) // 钻孔分析结果
console.log("==================================>drillRes:"+_.toString(drillRes))
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};
}
function analysisDrill(par, step){
// {"layer":"d1-2","symbol":"r3.937","start":"top","end":"isl2"}
// {"layer":"d1-2","symbol":"r35.0394","start":"top","end":"bottom"}
var job = Job.toLowerCase()
var res = par.map(function(drill){
GEN.affectedLayer({affected:'no',mode:'all'})
GEN.affectedLayer({affected:'yes',layer:drill.layer})
GEN.selClearFeature()
GEN.selectByFilter({feat_types:"pad",include_syms:drill.symbol})
if(GEN.getSelectCount()>0){
// 拷贝到_tmp
var tmplayer = drill.layer + "_tmp"
if(GEN.isLayerExists({job:job,layer:tmplayer})){GEN.deleteLayer({job:job,step:step,layer:tmplayer})}
GEN.selCopyOther({dest:"layer_name",target_layer:tmplayer})
GEN.affectedLayer({affected:"no",mode:"all"})
GEN.selClearFeature();
[drill.start,drill.end].forEach(function(item, i){
GEN.workLayer({name:item,display_number:1,clear_before:"yes"})
GEN.COM("sel_ref_feat",
{layers:tmplayer,use:"filter",mode:"touch",pads_as:"shape",f_types:"pad",polarity:"positive\;negative",include_syms:drill.symbol})
if(GEN.getSelectCount()>0){
var res = ""
var pads = GEN.getFeatures({job:job,step:step,layer:item,options:"select"})
if(pads && pads.length) {
pads = pads.filter(function(item){
return /^r\d+/.test(item.symbol)
})
pads = pads.sort(function(a,b){
return parseInt(a.symbol) - parseInt(b.symbol)
})
res = pads[0].symbol.slice(1)
}
if ( i == 0) {
drill.drl_pad_top = res
} else if (i==1){
drill.drl_pad_bot = res
}
}
})
GEN.deleteLayer({job:job,step:step,layer:tmplayer})
}
return drill
})
return res
}
\ No newline at end of file
var step = "arr"
console.log(getStepType(step));
var t = "orig"
var step_reg = new RegExp(t)
var list = ["orig", "net"]
list = list.filter(function(v){return step_reg.test(v)})
console.log(list);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment