Commit a234656f authored by Scott Sun's avatar Scott Sun

s

parent 520f304d
...@@ -97,7 +97,8 @@ try { ...@@ -97,7 +97,8 @@ try {
// var jobInfo = saveJobInfo({job:job,pcs_step:pcs_step,array_step:array_step,matrixInfo:matrixInfo,matrix_analysis:matrix_analysis},par) // var jobInfo = saveJobInfo({job:job,pcs_step:pcs_step,array_step:array_step,matrixInfo:matrixInfo,matrix_analysis:matrix_analysis},par)
// IKM.msg(jobInfo) // IKM.msg(jobInfo)
// 分析钻孔属性 // todo 镭射切割长度
analysis_drill({job:job,pcs_step:pcs_step,array_step:array_step,matrixInfo:matrixInfo,matrix_analysis:matrix_analysis},par)
...@@ -552,3 +553,21 @@ function selCopyLayer(props){ // 拷贝选择的到辅助层 ...@@ -552,3 +553,21 @@ function selCopyLayer(props){ // 拷贝选择的到辅助层
} }
GEN.selCopyOther({dest:'layer_name',target_layer:layer}) GEN.selCopyOther({dest:'layer_name',target_layer:layer})
} }
function analysis_drill(props){
var job = props.job
var pcs = props.pcs_step
var arr = props.array_step
var matrix_analysis = props.matrix_analysis
var matrixInfo = props.matrixInfo
var matrix = matrixInfo.matrix
// 设置层的孔属性
}
function set_drill_attr(props){ // 镭射孔via,无铜孔npth,其余孔pth
var layer = props.layer
var attr = props.attr
GEN.workLayer({name:layer,display_number:2,clear_before:'yes'})
GEN.selClearFeature()
GEN.selAllFeat()
GEN.selAddAttr({attribute:attr})
}
...@@ -54,12 +54,11 @@ try { ...@@ -54,12 +54,11 @@ try {
// !!! tmp // !!! tmp
par = { par = {
customer: "ats", customer: "tmp",
job_name: "1", job_name: "m3",
path: "C:/Users/Administrator/Desktop/Customer_1" path: "C:/Users/Administrator/Desktop/New data"
} }
var parParams = ["customer", "job_name", "path"]; // par应该有的属性 var parParams = ["customer", "job_name", "path"]; // par应该有的属性
var isParExist = parParams.reduce(function (a, b) { var isParExist = parParams.reduce(function (a, b) {
if (!par.hasOwnProperty(b)) { if (!par.hasOwnProperty(b)) {
...@@ -77,9 +76,13 @@ try { ...@@ -77,9 +76,13 @@ try {
if(!isParExist){throw "par error"} // 如果par没有parParams里的属性 就退出 if(!isParExist){throw "par error"} // 如果par没有parParams里的属性 就退出
var cfg = JSON.parse(IKM.select_value({table:'pub_conf',field:'json_data',where:{path : 'cam/input_data'}})); // 读取配置文件 var cfg = JSON.parse(IKM.select_value({table:'pub_conf',field:'json_data',where:{path : 'cam/input_data'}})); // 读取配置文件
var useCfg = cfg[par.customer.toLowerCase()]; var customer = par.customer.split("_")[0].toLowerCase()
var useCfg = cfg[customer];
addDefaultCfg(cfg.def, useCfg) // 添加默认配置 addDefaultCfg(cfg.def, useCfg) // 添加默认配置
if(customer != par.customer.toLowerCase()){
var cfgType = cfg[par.customer.toLowerCase()]
if(cfgType){ changeCfg(useCfg, cfgType) }
}
var job = par.job_name, path = par.path || useCfg.path, step = useCfg.step, err var job = par.job_name, path = par.path || useCfg.path, step = useCfg.step, err
err = delSameJob({job:job, delSame:useCfg.delSameJob}); if(err){throw err} err = delSameJob({job:job, delSame:useCfg.delSameJob}); if(err){throw err}
// 判断导入方式 处理path // 判断导入方式 处理path
...@@ -189,6 +192,16 @@ function addDefaultCfg(def, use) { ...@@ -189,6 +192,16 @@ function addDefaultCfg(def, use) {
if (key == "ODB" && !use.hasOwnProperty(key)){ use.ODB = val } if (key == "ODB" && !use.hasOwnProperty(key)){ use.ODB = val }
} }
} }
function changeCfg(useCfg,cfgType){
for(var key in cfgType){
var value = cfgType[key]
if(key == "Gerber"){
changeCfg(useCfg.Gerber, cfgType.Gerber)
} else {
useCfg[key] = value
}
}
}
function delSameJob(props){ function delSameJob(props){
var job = props.job var job = props.job
var delSame = props.delSame var delSame = props.delSame
......
...@@ -43,28 +43,31 @@ var GUI = $.gui; ...@@ -43,28 +43,31 @@ var GUI = $.gui;
var Job = $.job; var Job = $.job;
try { try {
var mode = "develop" // develop var mode = "use" // develop
var par = $.par; var par = $.par;
par = {job_name:"1", customer:"ats"} // !! tmp par = {job_name:"2", customer:"ats"} // !! tmp
var cfg = JSON.parse(IKM.select_value({table:'pub_conf',field:'json_data',where:{path : 'cam/input_data'}})); // 读取配置文件 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 useCfg = cfg[par.customer.toLowerCase()].formatData;
if(!useCfg){throw "config error"}
var job = par.job_name var job = par.job_name
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" }
GEN.checkInout({job:job,mode:"out"}); GEN.checkInout({job:job,mode:"out"});
if(useCfg.hasOwnProperty("mergeDrill")){ // todo
// if(mode=="develop"){ IKM.msg("rename")} mergeDrill({job:job})
}
if(mode=="develop"){ IKM.msg("rename")}
if(useCfg.rename){ if(useCfg.rename){
reName({job:job,rule:useCfg.rename}) reName({job:job,rule:useCfg.rename})
} }
// if(mode=="develop"){ IKM.msg("sort")} if(mode=="develop"){ IKM.msg("sort")}
if(useCfg.sort){ if(useCfg.sort){
var err = sortLayer({job:job, rule:useCfg.sort}); // 排序 var err = sortLayer({job:job, rule:useCfg.sort}); // 排序
if (err) {throw err} if (err) {throw err}
} }
// if(mode=="develop"){ IKM.msg("setDrill")} if(mode=="develop"){ IKM.msg("setDrill")}
if(/^yes$/.test(useCfg.setDrill.info)){ if(useCfg.setDrill && /^yes$/.test(useCfg.setDrill.info)){
setDrill({job:job}); // 设置钻孔 setDrill({job:job}); // 设置钻孔
} }
// finally // finally
...@@ -280,3 +283,47 @@ function setDrill(props){ // 设置钻孔 ...@@ -280,3 +283,47 @@ function setDrill(props){ // 设置钻孔
GEN.matrixLayerDrill({job:job,layer:v.layer,start:v.start ,end:v.end}) GEN.matrixLayerDrill({job:job,layer:v.layer,start:v.start ,end:v.end})
}) })
} }
function mergeDrill(props){ // 合并钻孔
var newdrills = []
var job = props.job;
var step = GEN.getStepList({job:job})[0];
var maxDrill = {name:"",value:0};
function getDrl(str){
var num = /(\d+)-(\d+)/ig.exec(str); // 匹配出 num-num
var tmp = [];
for(var i = Number(num[1]);i<num[2];i++){
if(i == 1){
maxDrill = Number(num[2]) > maxDrill.value? {name:str,value:Number(num[2])} : maxDrill;
}
tmp.push("L"+i+"-"+(i+1));
}
return tmp;
}
var matrix = GEN.getMatrix({job:job});
GEN.openStep({job : job,name:step});
for(var key in matrix){
var val = matrix[key];
if(val.layer_type == "drill"){
var mergeTo = getDrl(val.name) // 要合并到的地方
mergeTo.forEach(function(layerName){
if(GEN.isLayerExists({job : job ,layer:layerName.toLowerCase()}) && newdrills.indexOf(layerName.toLowerCase()) < 0){
GEN.deleteLayer({job:job, layer:layerName.toLowerCase()})
}
if(!GEN.isLayerExists({job : job ,layer:layerName.toLowerCase()})){
GEN.createLayer({job:job,layer:layerName.toLowerCase(),conext:'board',type:val.layer_type});
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()});
})
}
}
// 合并到maxDrill独立合并
GEN.createLayer({job:job,layer:"b1-"+maxDrill.value,conext:'board',type:'drill'});
GEN.workLayer({name:"b1-"+maxDrill.value,display_number:1,clear_before:'yes'});
GEN.copyLayer({source_job:job ,mode:'append',source_step:step,source_layer:maxDrill.name,dest_layer:"b1-"+maxDrill.value});
GEN.affectedLayer({affected:"no",mode:"all"});
GEN.closeStep();
return this;
}
...@@ -171,6 +171,98 @@ ...@@ -171,6 +171,98 @@
"text_line_width": 0.0024 "text_line_width": 0.0024
} }
} }
},
"formatData": {
"rename": {
"rule1": [
{ "orig_name" : "pasttop.art", "new_name" : "past_top" },
{ "orig_name" : "pleg.art", "new_name" : "silk_top" },
{ "orig_name" : "soldtop.art", "new_name" : "sm_top" },
{ "orig_name" : "art(\\d+)\\.art", "new_name" : "layer_(1)", "tp": true },
{ "orig_name" : "soldbotm.art", "new_name" : "sm_botm" },
{ "orig_name" : "sleg.art", "new_name" : "silk_bot" },
{ "orig_name" : "pastbotm.art", "new_name" : "past_botm" },
{ "orig_name" : "multipack.art", "new_name" : "array" },
{ "orig_name" : "outline.art", "new_name" : "outline" },
{ "orig_name" : "fab.art", "new_name" : "fab.art" },
{ "orig_name" : "top-enig", "new_name" : "top-enig" },
{ "orig_name" : "bot-enig", "new_name" : "bot-enig" },
{ "orig_name" : "fab_page2", "new_name" : "fab_page2" }
]
},
"sort": {
"sort1": [
{"name":"past_top","context":"board","type":"solder_paste","polarity":"positive"},
{"name":"silk_top","context":"board","type":"silk_screen","polarity":"positive"},
{"name":"sm_top","context":"board","type":"solder_mask","polarity":"positive"},
{"name":"top","context":"board","type":"signal","polarity":"positive"},
{"name":"layer_(\\d+)","context":"board","type":"signal","polarity":"positive"},
{"name":"bottom","context":"board","type":"signal","polarity":"positive"},
{"name":"sm_botm","context":"board","type":"solder_mask","polarity":"positive"},
{"name":"silk_bot","context":"board","type":"silk_screen","polarity":"positive"},
{"name":"past_botm","context":"board","type":"solder_paste","polarity":"positive"},
{"name":"array","context":"board","type":"drill","polarity":"positive"},
{"name":"l(\\d+)-\\d+","context":"board","type":"drill","polarity":"positive"},
{"name":"b(\\d+)-\\d+","context":"board","type":"drill","polarity":"positive"},
{"name":"outline","context":"board","type":"rout","polarity":"positive"},
{"name":"fab.art","context":"board","type":"rout","polarity":"positive"},
{"name":"top-enig","context":"board","type":"rout","polarity":"positive"},
{"name":"bot-enig","context":"board","type":"rout","polarity":"positive"},
{"name":"fab_page2","context":"board","type":"rout","polarity":"positive"}
]
},
"mergeDrill": "",
"setDrill": {
"info": "yes"
},
"autoSave": "yes"
}
},
"tmp_1": {
"Gerber": {
"gerberConfig": {
"drl": {
"nf1": 2,
"nf2": 5,
"units": "inch",
"zeroes": "none",
"decimal": "no",
"nf_comp": 0,
"break_sr": "yes",
"data_type": "ascii",
"separator": "nl",
"threshold": 200,
"drill_only": "no",
"multiplier": 1,
"resolution": 3,
"tool_units": "inch",
"coordinates": "absolute",
"merge_by_rule": "no",
"signed_coords": "no",
"text_line_width": 0.0024
},
"art": {
"nf1": 2,
"nf2": 5,
"units": "inch",
"zeroes": "leading",
"decimal": "no",
"nf_comp": 0,
"break_sr": "yes",
"data_type": "ascii",
"separator": "*",
"threshold": 200,
"drill_only": "no",
"multiplier": 1,
"resolution": 3,
"tool_units": "inch",
"coordinates": "absolute",
"merge_by_rule": "no",
"signed_coords": "no",
"text_line_width": 0.0024
}
}
} }
} }
} }
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