Commit 520f304d authored by Scott Sun's avatar Scott Sun

s

parent 9a209ab7
...@@ -4,46 +4,16 @@ ...@@ -4,46 +4,16 @@
PARAMETER: PARAMETER:
[ [
{ {
name : 'step_filter', name : 'customer',
title : 'Step过滤', title : 'CUSTOMER 名',
type : 'LineEdit', type : 'LineEdit',
property : {tool_tip : '过滤step信息'} property : {tool_tip : '客户名称'}
}, },
{ {
name : 'rename_rule', name : 'job_name',
title : '改名规则', title : '料号名',
type : 'TextEdit', type : 'LineEdit',
property : {tool_tip : '支持正则匹配'}, property : {tool_tip : '料号名'}
setter:function(obj,value,self){
obj.setPlainText(value);
},
getter:function(obj,self){
return obj.plainText
}
},
{
name : 'sort_rule',
title : '排序规则',
type : 'TextEdit',
property : {tool_tip : '支持正则匹配'},
setter:function(obj,value,self){
obj.setPlainText(value);
},
getter:function(obj,self){
return obj.plainText
}
},
{
name : 'auto_save',
title : '自动保存',
type : 'RadioBox',
property : {
item_list:[
{name:'yes',text:'YES'},
{name:'no',text:'NO'},
],
tool_tip:'是否自动保存料号开关'
}
} }
] ]
...@@ -73,54 +43,32 @@ var GUI = $.gui; ...@@ -73,54 +43,32 @@ var GUI = $.gui;
var Job = $.job; var Job = $.job;
try { try {
var config = { var mode = "develop" // develop
rename: { var par = $.par;
rule1: [ par = {job_name:"1", customer:"ats"} // !! tmp
{ orig_name : 'd_top_.+(\\d+)', new_name : 'd1-(1)' }, var cfg = JSON.parse(IKM.select_value({table:'pub_conf',field:'json_data',where:{path : 'cam/input_data'}})); // 读取配置文件
{ orig_name : 'd_.+(\\d+)_bottom', new_name : 'd(1)-(last)' }, var useCfg = cfg[par.customer.toLowerCase()].formatData;
{ orig_name : 'd_.+(\\d+)_.+(\\d+)', new_name : 'd(1)-(2)'} var job = par.job_name
]
},
sort: [
{name:'comp_+_top',context:'board',type:'components',polarity:'positive'},
{name:'sst',context:'board',type:'solder_paste',polarity:'positive'},
{name:'spt',context:'board',type:'solder_paste',polarity:'positive'},
{name:'smt',context:'board',type:'solder_mask',polarity:'positive'},
{name:'top',context:'board',type:'signal',polarity:'positive'},
{name:'isl(\\d+)',context:'board',type:'signal',polarity:'positive'},
{name:'bottom',context:'board',type:'signal',polarity:'positive'},
{name:'smb',context:'board',type:'solder_mask',polarity:'positive'},
{name:'spb',context:'board',type:'solder_paste',polarity:'positive'},
{name:'ssb',context:'board',type:'solder_paste',polarity:'positive'},
{name:'comp_+_bot',context:'board',type:'components',polarity:'positive'},
{name:'d(\\d+)-\\d+',context:'board',type:'drill',polarity:'positive'},
{name:'drill',context:'board',type:'drill',polarity:'positive'},
{name:'rout',context:'board',type:'rout',polarity:'positive'}
],
setDrill: 'yes',
auto_save:'yes'
}
var job = "1"
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){ throw "the job check" } if(GEN.checkInout({job:job,mode:"test"}) != 0 && mode != "develop"){ throw "the job check" }
GEN.checkInout({job:job,mode:"out"}); GEN.checkInout({job:job,mode:"out"});
if(config.rename){ // if(mode=="develop"){ IKM.msg("rename")}
reName({job:job,rule:config.rename}) if(useCfg.rename){
reName({job:job,rule:useCfg.rename})
} }
if(config.sort.length){ // if(mode=="develop"){ IKM.msg("sort")}
sortLayer({job:job, rule:config.sort}); // 排序 if(useCfg.sort){
var err = sortLayer({job:job, rule:useCfg.sort}); // 排序
if (err) {throw err}
} }
if(/^yes$/.test(config.setDrill)){ // if(mode=="develop"){ IKM.msg("setDrill")}
if(/^yes$/.test(useCfg.setDrill.info)){
setDrill({job:job}); // 设置钻孔 setDrill({job:job}); // 设置钻孔
} }
// finally // finally
if (/^yes$/ig.test(config.auto_save)) { GEN.saveJob({ job: job }); } if (/^yes$/ig.test(useCfg.autoSave)) { GEN.saveJob({ job: job }); }
GEN.checkInout({job:job,mode:"in"}); GEN.checkInout({job:job,mode:"in"});
GEN.closeJob({job:job}) GEN.closeJob({job:job})
...@@ -131,7 +79,6 @@ catch (error) { ...@@ -131,7 +79,6 @@ catch (error) {
return 'Error'; return 'Error';
} }
function reName(props) { // 改名 par{job:要改名的料号, rule: {要改名的规则} function reName(props) { // 改名 par{job:要改名的料号, rule: {要改名的规则}
var job = props.job var job = props.job
if(Array.isArray(props.rule)){ if(Array.isArray(props.rule)){
...@@ -210,8 +157,33 @@ function getRenameCount(names,rule,signalCount){ // 返回改名匹配结果 ...@@ -210,8 +157,33 @@ function getRenameCount(names,rule,signalCount){ // 返回改名匹配结果
} }
function sortLayer(props){ // 排序方法 {job:要排序的料号, rule: {要改名的规则} function sortLayer(props){ // 排序方法 {job:要排序的料号, rule: {要改名的规则}
var job = props.job var job = props.job
var matrix = GEN.getMatrix({job:job}); var matrix = GEN.getMatrix({job:job});
var matriNames = Object.keys(matrix)
// 找出所有排序规则中契合度最高的
var ruleKey = {}
Object.keys(props.rule).forEach(function(key){
var rule = props.rule[key]
ruleKey[key] = 0
var regs = rule.map(function(item){
return new RegExp(item.name,'ig')
})
matriNames.forEach(function(name){
var isSort = regs.reduce(function(a,b){
if(b.test(name)){a = true}
return a}, false)
if(isSort){ruleKey[key]++}
})
})
var maxRule = {key:"", value: 0}
Object.keys(ruleKey).forEach(function(key){
var value = ruleKey[key]
if (value>=maxRule.value){
maxRule.key = key
maxRule.value = value
}
})
if(props.rule[maxRule.key]){props.rule = props.rule[maxRule.key]}else{return "sort rule error"}
var matriName = Object.keys(matrix).sort(function(a,b){return matrix[a].row - matrix[b].row}) var matriName = Object.keys(matrix).sort(function(a,b){return matrix[a].row - matrix[b].row})
var matrixFirst = matriName[0]; // 记录matrix中第一位 var matrixFirst = matriName[0]; // 记录matrix中第一位
var sortNames = []; var sortNames = [];
...@@ -262,7 +234,8 @@ function sortLayer(props){ // 排序方法 {job:要排序的料号, rule: {要 ...@@ -262,7 +234,8 @@ function sortLayer(props){ // 排序方法 {job:要排序的料号, rule: {要
} }
} }
function setDrill(){ // 设置钻孔 function setDrill(props){ // 设置钻孔
var job = props.job
var martrix = GEN.getMatrix({job:job}); var martrix = GEN.getMatrix({job:job});
// 获取所有的钻孔层 // 获取所有的钻孔层
var drillLayer = Object.keys(martrix).filter(function(v){ var drillLayer = Object.keys(martrix).filter(function(v){
......
...@@ -65,6 +65,36 @@ ...@@ -65,6 +65,36 @@
"text_line_width": 0.0024 "text_line_width": 0.0024
} }
} }
},
"formatData": {
"rename": {
"rule1": [
{ "orig_name" : "isl(\\d+)", "new_name" : "l(1)" },
{ "orig_name" : "d_top_.+(\\d+)", "new_name" : "d1-(1)" },
{ "orig_name" : "d_.+(\\d+)_bottom", "new_name" : "d(1)-(last)" },
{ "orig_name" : "d_.+(\\d+)_.+(\\d+)", "new_name" : "d(1)-(2)"}
]
},
"sort": {
"sort1": [
{"name":"sst","context":"board","type":"solder_paste","polarity":"positive"},
{"name":"spt","context":"board","type":"solder_paste","polarity":"positive"},
{"name":"smt","context":"board","type":"solder_mask","polarity":"positive"},
{"name":"top","context":"board","type":"signal","polarity":"positive"},
{"name":"l(\\d+)","context":"board","type":"signal","polarity":"positive"},
{"name":"bottom","context":"board","type":"signal","polarity":"positive"},
{"name":"smb","context":"board","type":"solder_mask","polarity":"positive"},
{"name":"spb","context":"board","type":"solder_paste","polarity":"positive"},
{"name":"ssb","context":"board","type":"solder_paste","polarity":"positive"},
{"name":"d(\\d+)-\\d+","context":"board","type":"drill","polarity":"positive"},
{"name":"drill","context":"board","type":"drill","polarity":"positive"},
{"name":"rout","context":"board","type":"rout","polarity":"positive"}
]
},
"setDrill": {
"info": "yes"
},
"autoSave": "yes"
} }
}, },
"def": { "def": {
......
{
"ats": {
"rename": {
"rule1": [
{ "orig_name" : "isl(\\d+)", "new_name" : "l(1)" },
{ "orig_name" : "d_top_.+(\\d+)", "new_name" : "d1-(1)" },
{ "orig_name" : "d_.+(\\d+)_bottom", "new_name" : "d(1)-(last)" },
{ "orig_name" : "d_.+(\\d+)_.+(\\d+)", "new_name" : "d(1)-(2)"}
]
},
"sort": {
"sort1": [
{"name":"sst","context":"board","type":"solder_paste","polarity":"positive"},
{"name":"spt","context":"board","type":"solder_paste","polarity":"positive"},
{"name":"smt","context":"board","type":"solder_mask","polarity":"positive"},
{"name":"top","context":"board","type":"signal","polarity":"positive"},
{"name":"isl(\\d+)","context":"board","type":"signal","polarity":"positive"},
{"name":"bottom","context":"board","type":"signal","polarity":"positive"},
{"name":"smb","context":"board","type":"solder_mask","polarity":"positive"},
{"name":"spb","context":"board","type":"solder_paste","polarity":"positive"},
{"name":"ssb","context":"board","type":"solder_paste","polarity":"positive"},
{"name":"d(\\d+)-\\d+","context":"board","type":"drill","polarity":"positive"},
{"name":"drill","context":"board","type":"drill","polarity":"positive"},
{"name":"rout","context":"board","type":"rout","polarity":"positive"}
]
},
"setDrill": {
"info": "yes"
},
"autoSave": "yes"
},
"tmp": {
"margeDrl": {
},
"rename": {
},
"sort": {
},
"autoSave": "yes"
}
}
\ No newline at end of file
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