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

s

parent 9a209ab7
......@@ -4,46 +4,16 @@
PARAMETER:
[
{
name : 'step_filter',
title : 'Step过滤',
name : 'customer',
title : 'CUSTOMER 名',
type : 'LineEdit',
property : {tool_tip : '过滤step信息'}
property : {tool_tip : '客户名称'}
},
{
name : 'rename_rule',
title : '改名规则',
type : 'TextEdit',
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:'是否自动保存料号开关'
}
name : 'job_name',
title : '料号名',
type : 'LineEdit',
property : {tool_tip : '料号名'}
}
]
......@@ -73,54 +43,32 @@ var GUI = $.gui;
var Job = $.job;
try {
var config = {
rename: {
rule1: [
{ 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: [
{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"
var mode = "develop" // develop
var par = $.par;
par = {job_name:"1", customer:"ats"} // !! tmp
var cfg = JSON.parse(IKM.select_value({table:'pub_conf',field:'json_data',where:{path : 'cam/input_data'}})); // 读取配置文件
var useCfg = cfg[par.customer.toLowerCase()].formatData;
var job = par.job_name
if(!GEN.isJobExists({job:job})){ throw "job "+ job+ " is not exist" }
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"});
if(config.rename){
reName({job:job,rule:config.rename})
// if(mode=="develop"){ IKM.msg("rename")}
if(useCfg.rename){
reName({job:job,rule:useCfg.rename})
}
if(config.sort.length){
sortLayer({job:job, rule:config.sort}); // 排序
// if(mode=="develop"){ IKM.msg("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}); // 设置钻孔
}
// 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.closeJob({job:job})
......@@ -131,7 +79,6 @@ catch (error) {
return 'Error';
}
function reName(props) { // 改名 par{job:要改名的料号, rule: {要改名的规则}
var job = props.job
if(Array.isArray(props.rule)){
......@@ -212,6 +159,31 @@ function getRenameCount(names,rule,signalCount){ // 返回改名匹配结果
function sortLayer(props){ // 排序方法 {job:要排序的料号, rule: {要改名的规则}
var job = props.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 matrixFirst = matriName[0]; // 记录matrix中第一位
var sortNames = [];
......@@ -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 drillLayer = Object.keys(martrix).filter(function(v){
......
......@@ -65,6 +65,36 @@
"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": {
......
{
"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