Commit a445aa63 authored by Scott Sun's avatar Scott Sun

s

parent 23a1f4bb
...@@ -127,7 +127,7 @@ try { ...@@ -127,7 +127,7 @@ try {
var step = custCfg.step.toLowerCase() var step = custCfg.step.toLowerCase()
// 获取路径下文件信息 // 获取路径下文件信息
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, 1)
// 判断存不存在料号文件 // 判断存不存在料号文件
...@@ -148,27 +148,42 @@ try { ...@@ -148,27 +148,42 @@ 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文件 说明需要合并
var mergeFiles = jobInfo.data.filter(function(item){ var jobs = jobInfo.data.map(function(item, i){
var err = importJob({name:item.file.baseName,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 /yes/ig.test(item.format.isMerge) return job + "_tmp_" + i
}) })
var arr_job = mergeFiles[0] var job_type = {
var arr_step; pcs: "pcs",
var steplist = GEN.getStepList({job:arr_job.file.baseName}) cad: "pcs",
if(steplist.indexOf(arr_job.format.arrStep) < 0){ stp: "arr",
arr_step = steplist[0] arr: "arr",
}else{arr_step = arr_job.format.arrStep} array: "arr"
GEN.openJob({job:job}); }
GEN.openJob({job:arr_job.file.baseName}); // 分析arr_job 和 pcs_job
jobs = jobs.map(function(jobname){
GEN.openJob({job:jobname});
var step_tmp = GEN.getStepList({job:jobname})[0]
var type = job_type[step_tmp]
return {
jobname: jobname,
stepname: step_tmp,
type: type
}
})
var pcs_job = jobs.filter(function(v){return v.type == "pcs"})
var arr_job = jobs.filter(function(v){return v.type == "arr"})
GEN.copyStep({ // 合并 GEN.copyStep({ // 合并
source_job:arr_job.file.baseName, source_job:arr_job.jobname,
source_name:arr_step, source_name:arr_job.stepname,
dest_job:job, dest_job:pcs_job.jobname,
dest_name:arr_step, dest_name:arr_job.stepname,
}); });
GEN.closeJob({ job: arr_job.file.baseName });
GEN.deleteJob({ job: arr_job.file.baseName }); // 合并后 删除array的料号 GEN.closeJob({ job: arr_job.jobname });
GEN.deleteJob({ job: arr_job.jobname }); // 合并后 删除array的料号
// 修改pcs料号名称
GEN.COM("rename_entity,job=,is_fw=no,type=job,fw_type=form,name="+pcs_job.jobname+",new_name="+job)
} }
importOk = true importOk = true
} }
......
var config = { (function(){return {
"formats": { "formats": {
"ODB": {}, "ODB": {},
"ODB_1": { "ODB_1": {
...@@ -6,7 +6,7 @@ var config = { ...@@ -6,7 +6,7 @@ var config = {
"arrStep": "stp", "arrStep": "stp",
"isMerge": "yes" "isMerge": "yes"
}, },
"Gerber274x_1": { // cust1 "Gerber274x_1": {
"nf1": 3, "nf1": 3,
"nf2": 4, "nf2": 4,
"units": "mm", "units": "mm",
...@@ -26,7 +26,7 @@ var config = { ...@@ -26,7 +26,7 @@ var config = {
"signed_coords": "no", "signed_coords": "no",
"text_line_width": 0.0024 "text_line_width": 0.0024
}, },
"Gerber274x_2": { // cust2 "Gerber274x_2": {
"nf1": 3, "nf1": 3,
"nf2": 5, "nf2": 5,
"units": "inch", "units": "inch",
...@@ -46,7 +46,7 @@ var config = { ...@@ -46,7 +46,7 @@ var config = {
"signed_coords": "no", "signed_coords": "no",
"text_line_width": 0.0024 "text_line_width": 0.0024
}, },
"Excellon1_1":{ // cust1 "Excellon1_1":{
"nf1": 3, "nf1": 3,
"nf2": 0, "nf2": 0,
"units": "mm", "units": "mm",
...@@ -66,7 +66,7 @@ var config = { ...@@ -66,7 +66,7 @@ var config = {
"signed_coords": "no", "signed_coords": "no",
"text_line_width": 0.0024 "text_line_width": 0.0024
}, },
"Excellon2_1": { // cust2 "Excellon2_1": {
"nf1": 3, "nf1": 3,
"nf2": 5, "nf2": 5,
"units": "mm", "units": "mm",
...@@ -106,7 +106,7 @@ var config = { ...@@ -106,7 +106,7 @@ var config = {
"signed_coords": "no", "signed_coords": "no",
"text_line_width": 0.0024 "text_line_width": 0.0024
}, },
"Excellon2_3": { // cust2 "Excellon2_3": {
"nf1": 2, "nf1": 2,
"nf2": 5, "nf2": 5,
"units": "inch", "units": "inch",
...@@ -126,7 +126,7 @@ var config = { ...@@ -126,7 +126,7 @@ var config = {
"signed_coords": "no", "signed_coords": "no",
"text_line_width": 0.0024 "text_line_width": 0.0024
}, },
"IPC356_1": { // cust2 "IPC356_1": {
"nf1": 2, "nf1": 2,
"nf2": 4, "nf2": 4,
"units": "inch", "units": "inch",
...@@ -148,9 +148,7 @@ var config = { ...@@ -148,9 +148,7 @@ var config = {
} }
}, },
"customer": { "customer": {
"Customer_1": { "2171": {
"path": "C:/Users/Administrator/Desktop/Customer_1",
"db": "genesis",
"step": "cad", "step": "cad",
"rules": [ "rules": [
{ {
...@@ -166,75 +164,11 @@ var config = { ...@@ -166,75 +164,11 @@ var config = {
{ {
"valid": function(props){ "valid": function(props){
var file = props.file; var file = props.file;
var job = props.job; return /.+\.tgz$/ig.test(file.name) && !(/-a/ig.test(file.baseName))
return /.+\.tgz$/ig.test(file.name) && job == file.baseName
}, },
"type": "ODB", "type": "ODB",
"format": "ODB" "format": "ODB"
}, },
{
"valid": function(props){
var file = props.file;
return /.+\.drd$/ig.test(file.name)
},
"type": "Excellon1",
"format": "Excellon1_1"
},
{
"valid": function(props){
var file = props.file;
return /.+\.phd$/ig.test(file.name)
},
"type": "Gerber274x",
"format": "Gerber274x_1"
}
],
"tl_name": [
{"orig_name" : "^spt$", "tl_name" : "spt" },
{"orig_name" : "^smt$", "tl_name" : "smt" },
{"orig_name" : "^smb$", "tl_name" : "smb" },
{"orig_name" : "^spb$", "tl_name" : "spb" },
{"orig_name" : "^ssb$", "tl_name" : "ssb" },
{"orig_name" : "^sst$", "tl_name" : "sst" },
{"orig_name" : "^top$", "tl_name" : "top" },
{"orig_name" : "^drill$", "tl_name" : "drill" },
{"orig_name" : "^rout$", "tl_name" : "rout" },
{"orig_name" : "^bottom$", "tl_name" : "bottom" },
{"orig_name" : ["^isl(\\d+)$","^layer_(\\d+)$"], "tl_name" : "l_($1)"},
{"orig_name" : ["_isl(\\d+)_isl(\\d+)","d(\\d+)-(\\d+)"], "tl_name" : "d_($1)-($2)"},
{"orig_name" : ["_top_isl(\\d+)"], "tl_name" : "d_1-($1)"},
{"orig_name" : ["_isl(\\d+)_bottom"], "tl_name" : "d_($1)-($1+1)"}
]
},
"Customer_2": {
"path": "C:/Users/Administrator/Desktop/Customer_2",
"db": "genesis",
"step": "cad",
"rules": [
{
"valid": function(props){
var file = props.file;
return /.+\.tgz$/ig.test(file.name)
},
"type": "ODB",
"format": "ODB"
},
{
"valid": function(props){
var file = props.file;
return /.+\.ipc$/ig.test(file.name)
},
"type": "IPC356",
"format": "IPC356_1"
},
{
"valid": function(props){
var file = props.file;
return /.+\.rou$/ig.test(file.name)
},
"type": "Excellon2",
"format": "Excellon2_3"
},
{ {
"valid": function(props){ "valid": function(props){
var file = props.file; var file = props.file;
...@@ -324,349 +258,6 @@ var config = { ...@@ -324,349 +258,6 @@ var config = {
} }
} }
} }
}
],
"tl_name": [
{"orig_name" : ["assytop.art","past_top"], "tl_name" : "past_top" },
{"orig_name" : ["assybot.art","past_botm"], "tl_name" : "past_botm" },
{"orig_name" : ["pleg.art","silk_top"], "tl_name" : "silk_top" },
{"orig_name" : ["sleg.art","silk_bot"], "tl_name" : "silk_bot" },
{"orig_name" : ["ssm.art","sm_top"], "tl_name" : "sm_top" },
{"orig_name" : ["psm.art","sm_bot"], "tl_name" : "sm_botm" },
{"orig_name" : ["^top$","^top.art$"], "tl_name" : "top" },
{"orig_name" : ["^0(\\d+).*ccp_ms","^s(\\d+)\.art","lay(\\d+)\\.art","layer_(\\d+)"], "tl_name" : "l_($1)"},
{"orig_name" : ["^bottom$","^bottom.art$"], "tl_name" : "bottom" },
{"orig_name" : ["-(\\d+)-(\\d+)\.drl$","(\\d+)-(\\d+)-laser\.drl$","d(\\d+)-(\\d+)"], "tl_name" : "d_($1)-($2)"},
{"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","^outline$"], "tl_name" : "outline" },
{"orig_name" : "top-enig", "tl_name" : "top-enig" },
{"orig_name" : "bot-enig", "tl_name" : "bot-enig" },
{"orig_name" : "fab_page2", "tl_name" : "fab_page2" },
]
},
"New_data": {
"path": "C:/Users/Administrator/Desktop/New data",
"db": "genesis",
"step": "cad",
"rules": [
{
"valid": function(props){
var file = props.file;
return /.+\.tgz$/ig.test(file.name)
},
"type": "ODB",
"format": "ODB"
},
{
"valid": function(props){
var file = props.file;
return /.+\.art$/ig.test(file.name)
},
"type": "Gerber274x",
"format": "Gerber274x_2",
"format_params": function(props){
var params = props.params
if(params.art_param){
var leading = params.art_param["SUPPRESS_LEAD_ZEROES"]
var trailing = params.art_param["SUPPRESS_TRAIL_ZEROES"]
var zeroes = "none"
if(/yes/ig.test(leading)){
zeroes = "leading"
}
if(/yes/ig.test(trailing)){
zeroes = "trailing"
}
var nf1,nf2
if(params.art_param.hasOwnProperty("FORMAT")){
var tmp = params.art_param["FORMAT"].split(".")
if(/\d+/ig.test(tmp[0])){nf1 = Number(tmp[0])}
if(/\d+/ig.test(tmp[1])){nf2 = Number(tmp[1])}
}
return {
"nf1": nf1 || 3,
"nf2": nf2 || 5,
"units": /METRIC|MM/ig.test(params.art_param["OUTPUT_UNITS"])? "mm" :"inch",
"zeroes": zeroes,
"decimal": "no",
"nf_comp": 0,
"break_sr": "yes",
"data_type": "ascii",
"separator": "*",
"threshold": 200,
"drill_only": "no",
"multiplier": 1,
"resolution": 3,
"tool_units": /METRIC|MM/ig.test(params.art_param["OUTPUT_UNITS"])? "mm" :"inch",
"coordinates": "absolute",
"merge_by_rule": "no",
"signed_coords": "no",
"text_line_width": 0.0024
}
}
}
},
{
"valid": function(props){
var file = props.file;
return /.+\.drl$/ig.test(file.name)
},
"type": "Excellon2",
"format": "Excellon2_1",
"format_params": function(props){
var params = props.params
if(params.nc_param){
var leading = params.nc_param["SUPPRESS_LEAD_ZEROES"]
var trailing = params.nc_param["SUPPRESS_TRAIL_ZEROES"]
var zeroes = "none"
if(/yes/ig.test(leading)){
zeroes = "leading"
}
if(/yes/ig.test(trailing)){
zeroes = "trailing"
}
return {
"nf1": params.nc_param["INTEGER_PLACES"]? Number(params.nc_param["INTEGER_PLACES"]) : 3,
"nf2": params.nc_param["DECIMAL_PLACES"]? Number(params.nc_param["DECIMAL_PLACES"]) : 5,
"units": /METRIC|MM/ig.test(params.nc_param["OUTPUT_UNITS"])? "mm" :"inch",
"zeroes": zeroes,
"decimal": "no",
"nf_comp": 0,
"break_sr": "yes",
"data_type": "ascii",
"separator": "nl",
"threshold": 200,
"drill_only": "no",
"multiplier": 1,
"resolution": 3,
"tool_units": /METRIC|MM/ig.test(params.nc_param["OUTPUT_UNITS"])? "mm" :"inch",
"coordinates": params.nc_param["COORDINATES"]? params.nc_param["COORDINATES"].toLowerCase() :"absolute",
"merge_by_rule": "no",
"signed_coords": "no",
"text_line_width": 0.0024
}
}
}
}
],
"tl_name": [
{"orig_name" : "pasttop.art", "tl_name" : "past_top" },
{"orig_name" : "pleg.art", "tl_name" : "silk_top" },
{"orig_name" : "soldtop.art", "tl_name" : "sm_top" },
{"orig_name" : ["top.art","^top$"], "tl_name" : "top" },
{"orig_name" : ["art(\\d+)\\.art","layer_(\\d+)"], "tl_name" : "l_($1)"},
{"orig_name" : ["bottom.art","^bottom$"], "tl_name" : "bottom" },
{"orig_name" : "soldbotm.art", "tl_name" : "sm_botm" },
{"orig_name" : "sleg.art", "tl_name" : "silk_bot" },
{"orig_name" : "pastbotm.art", "tl_name" : "past_botm" },
{"orig_name" : "multipack.art", "tl_name" : "array" },
{"orig_name" : "outline.art", "tl_name" : "outline" },
{"orig_name" : "fab.art", "tl_name" : "fab" },
{"orig_name" : "top-enig", "tl_name" : "top-enig" },
{"orig_name" : "bot-enig", "tl_name" : "bot-enig" },
{"orig_name" : "fab_page2", "tl_name" : "fab_page2" },
{"orig_name" : ["(\\d+)-(\\d+)$","d(\\d+)-(\\d+)"], "tl_name" : "d_($1)-($2)"}
]
}
},
"data_format": [
{"tl_name":"past_top" , "new_name":"past_top" , "attr":{ "context":"board", "type":"solder_paste" }},
{"tl_name":"silk_top" , "new_name":"silk_top" , "attr":{ "context":"board", "type":"solder_paste" }},
{"tl_name":"sm_top" , "new_name":"sm_top" , "attr":{ "context":"board", "type":"solder_mask" }},
{"tl_name":"^top$" , "new_name":"top" , "attr":{ "context":"board", "type":"signal" }},
{"tl_name":"l_(\\d+)","new_name":"layer_($1)" ,"attr":{"context":"board","type":"signal"}},
{"tl_name":"^bottom$","new_name":"bottom" ,"attr":{"context":"board","type":"signal"}},
{"tl_name":"sm_botm" , "new_name":"sm_botm" , "attr":{ "context":"board", "type":"solder_mask" }},
{"tl_name":"silk_bot" , "new_name":"silk_bot" , "attr":{ "context":"board", "type":"solder_paste" }},
{"tl_name":"past_botm" , "new_name":"past_botm" , "attr":{ "context":"board", "type":"solder_paste" }},
{"tl_name":"d_(\\d+)-(\\d+)","new_name":"d($1)-($2)" ,"attr":{"context":"board","type":"drill"}},
{"tl_name":"drill","new_name":"drill" ,"attr":{"context":"board","type":"drill"}},
{"tl_name":"rout","new_name":"rout" ,"attr":{"context":"board","type":"rout"}},
{"tl_name":"array","new_name":"array" ,"attr":{"context":"misc"}},
{"tl_name":"outline","new_name":"outline" ,"attr":{"context":"misc"}},
{"tl_name":"fab.art","new_name":"fab.art" ,"attr":{"context":"misc"}}
],
"delSameJob": "yes"
}
module.exports = config
/*
(function(){return {
"formats": {
"ODB": {},
"ODB_1": {
"comments": "",
"arrStep": "stp",
"isMerge": "yes"
},
"Gerber274x_1": { // cust1
"nf1": 3,
"nf2": 4,
"units": "mm",
"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
},
"Gerber274x_2": { // cust2
"nf1": 3,
"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
},
"Excellon1_1":{ // cust1
"nf1": 3,
"nf2": 0,
"units": "mm",
"zeroes": "leading",
"decimal": "yes",
"nf_comp": 0,
"break_sr": "yes",
"data_type": "ascii",
"separator": "nl",
"threshold": 200,
"drill_only": "no",
"multiplier": 1,
"resolution": 3,
"tool_units": "mm",
"coordinates": "absolute",
"merge_by_rule": "no",
"signed_coords": "no",
"text_line_width": 0.0024
},
"Excellon2_1": { // cust2
"nf1": 3,
"nf2": 5,
"units": "mm",
"zeroes": "leading",
"decimal": "no",
"nf_comp": 0,
"break_sr": "yes",
"data_type": "ascii",
"separator": "nl",
"threshold": 200,
"drill_only": "no",
"multiplier": 1,
"resolution": 3,
"tool_units": "mm",
"coordinates": "absolute",
"merge_by_rule": "no",
"signed_coords": "no",
"text_line_width": 0.0024
},
"Excellon2_2": {
"nf1": 2,
"nf2": 3,
"units": "inch",
"zeroes": "leading",
"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
},
"Excellon2_3": { // cust2
"nf1": 2,
"nf2": 5,
"units": "inch",
"zeroes": "trailing",
"decimal": "no",
"nf_comp": 0,
"break_sr": "yes",
"data_type": "ascii",
"separator": "nl",
"threshold": 200,
"drill_only": "no",
"multiplier": 1,
"resolution": 3,
"tool_units": "mm",
"coordinates": "absolute",
"merge_by_rule": "no",
"signed_coords": "no",
"text_line_width": 0.0024
},
"IPC356_1": { // cust2
"nf1": 2,
"nf2": 4,
"units": "inch",
"zeroes": "none",
"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
}
},
"customer": {
"Customer_1": {
"path": "C:/Users/Administrator/Desktop/Customer_1",
"db": "genesis",
"step": "cad",
"rules": [
{
"valid": function(props){
var file = props.file;
var job = props.job;
var reg = new RegExp("^"+job+"-a","ig")
return /.+\.tgz$/ig.test(file.name) && reg.test(file.baseName)
},
"type": "ODB",
"format": "ODB_1"
},
{
"valid": function(props){
var file = props.file;
var job = props.job;
return /.+\.tgz$/ig.test(file.name) && job == file.baseName
},
"type": "ODB",
"format": "ODB"
}, },
{ {
"valid": function(props){ "valid": function(props){
...@@ -686,15 +277,16 @@ module.exports = config ...@@ -686,15 +277,16 @@ module.exports = config
} }
], ],
"tl_name": [ "tl_name": [
{"orig_name" : "^spt$", "tl_name" : "spt" }, {"orig_name" : ["^sst$","^past_top$"], "tl_name" : "past_top" },
{"orig_name" : "^smt$", "tl_name" : "smt" }, {"orig_name" : ["^ssb$","^past_botm$"], "tl_name" : "past_botm" },
{"orig_name" : "^smb$", "tl_name" : "smb" }, {"orig_name" : ["^spt$","^silk_top$"], "tl_name" : "silk_top" },
{"orig_name" : "^spb$", "tl_name" : "spb" }, {"orig_name" : ["^spb$","^silk_bot$"], "tl_name" : "silk_bot" },
{"orig_name" : "^ssb$", "tl_name" : "ssb" }, {"orig_name" : ["^smt$","^sm_top$"], "tl_name" : "sm_top" },
{"orig_name" : "^sst$", "tl_name" : "sst" }, {"orig_name" : ["^smb$","^sm_botm$"], "tl_name" : "sm_botm" },
{"orig_name" : "^top$", "tl_name" : "top" }, {"orig_name" : "^top$", "tl_name" : "top" },
{"orig_name" : "^drill$", "tl_name" : "drill" }, {"orig_name" : "^drill$", "tl_name" : "drill" },
{"orig_name" : "^rout$", "tl_name" : "rout" }, {"orig_name" : ["outline.art","^outline$"], "tl_name" : "outline" },
{"orig_name" : ["^rout$","\\.rou$"], "tl_name" : "rout" },
{"orig_name" : "^bottom$", "tl_name" : "bottom" }, {"orig_name" : "^bottom$", "tl_name" : "bottom" },
{"orig_name" : ["^isl(\\d+)$","^layer_(\\d+)$"], "tl_name" : "l_($1)"}, {"orig_name" : ["^isl(\\d+)$","^layer_(\\d+)$"], "tl_name" : "l_($1)"},
{"orig_name" : ["_isl(\\d+)_isl(\\d+)","d(\\d+)-(\\d+)"], "tl_name" : "d_($1)-($2)"}, {"orig_name" : ["_isl(\\d+)_isl(\\d+)","d(\\d+)-(\\d+)"], "tl_name" : "d_($1)-($2)"},
...@@ -702,9 +294,7 @@ module.exports = config ...@@ -702,9 +294,7 @@ module.exports = config
{"orig_name" : ["_isl(\\d+)_bottom"], "tl_name" : "d_($1)-($1+1)"} {"orig_name" : ["_isl(\\d+)_bottom"], "tl_name" : "d_($1)-($1+1)"}
] ]
}, },
"Customer_2": { "Yucca": {
"path": "C:/Users/Administrator/Desktop/Customer_2",
"db": "genesis",
"step": "cad", "step": "cad",
"rules": [ "rules": [
{ {
...@@ -823,27 +413,26 @@ module.exports = config ...@@ -823,27 +413,26 @@ module.exports = config
} }
], ],
"tl_name": [ "tl_name": [
{"orig_name" : "pasttop.art", "tl_name" : "past_top" }, {"orig_name" : ["assytop.art","past_top"], "tl_name" : "past_top" },
{"orig_name" : "pleg.art", "tl_name" : "silk_top" }, {"orig_name" : ["assybot.art","past_botm"], "tl_name" : "past_botm" },
{"orig_name" : "soldtop.art", "tl_name" : "sm_top" }, {"orig_name" : ["pleg.art","silk_top"], "tl_name" : "silk_top" },
{"orig_name" : ["top.art","^top$"], "tl_name" : "top" }, {"orig_name" : ["sleg.art","silk_bot"], "tl_name" : "silk_bot" },
{"orig_name" : ["lay(\\d+)\\.art","layer_(\\d+)"], "tl_name" : "l_($1)"}, {"orig_name" : ["ssm.art","sm_top"], "tl_name" : "sm_top" },
{"orig_name" : ["bottom.art","^bottom$"], "tl_name" : "bottom" }, {"orig_name" : ["psm.art","sm_bot"], "tl_name" : "sm_botm" },
{"orig_name" : "soldbotm.art", "tl_name" : "sm_botm" }, {"orig_name" : ["^top$","^top.art$"], "tl_name" : "top" },
{"orig_name" : "sleg.art", "tl_name" : "silk_bot" }, {"orig_name" : ["^0(\\d+).*ccp_ms","^s(\\d+)\.art","lay(\\d+)\\.art","layer_(\\d+)"], "tl_name" : "l_($1)"},
{"orig_name" : "pastbotm.art", "tl_name" : "past_botm" }, {"orig_name" : ["^bottom$","^bottom.art$"], "tl_name" : "bottom" },
{"orig_name" : "multipack.art", "tl_name" : "array" }, {"orig_name" : ["-(\\d+)-(\\d+)\.drl$","(\\d+)-(\\d+)-laser\.drl$","d(\\d+)-(\\d+)"], "tl_name" : "d_($1)-($2)"},
{"orig_name" : "outline.art", "tl_name" : "outline" }, {"orig_name" : ["\\.rou$","^rout$"], "tl_name" : "rout" },
{"orig_name" : "fab.art", "tl_name" : "fab" }, {"orig_name" : "fab.art", "tl_name" : "fab.art" },
{"orig_name" : ["multipack.art","^array$"], "tl_name" : "array" },
{"orig_name" : ["^outline"], "tl_name" : "outline" },
{"orig_name" : "top-enig", "tl_name" : "top-enig" }, {"orig_name" : "top-enig", "tl_name" : "top-enig" },
{"orig_name" : "bot-enig", "tl_name" : "bot-enig" }, {"orig_name" : "bot-enig", "tl_name" : "bot-enig" },
{"orig_name" : "fab_page2", "tl_name" : "fab_page2" }, {"orig_name" : "fab_page2", "tl_name" : "fab_page2" },
{"orig_name" : ["-(\\d+)-(\\d+)\.drl","(\\d+)-(\\d+)-laser\.drl","d(\\d+)-(\\d+)"], "tl_name" : "d_($1)-($2)"}
] ]
}, },
"New_data": { "New_data": {
"path": "C:/Users/Administrator/Desktop/New data",
"db": "genesis",
"step": "cad", "step": "cad",
"rules": [ "rules": [
{ {
...@@ -946,34 +535,43 @@ module.exports = config ...@@ -946,34 +535,43 @@ module.exports = config
} }
], ],
"tl_name": [ "tl_name": [
{"orig_name" : "pasttop.art", "tl_name" : "past_top" }, {"orig_name" : ["pasttop.art","^past_top$","top_solderpaste"], "tl_name" : "past_top" },
{"orig_name" : "pleg.art", "tl_name" : "silk_top" }, {"orig_name" : ["^silk_top\\.art$","pleg.art","^silk_top$","top_silkscreen"], "tl_name" : "silk_top" },
{"orig_name" : "soldtop.art", "tl_name" : "sm_top" }, {"orig_name" : ["_r1\\.phd$","_r1\\.fph$","^smt\\.art$","soldtop.art","^sm_top$","top_soldermask"], "tl_name" : "sm_top" },
{"orig_name" : ["top.art","^top$"], "tl_name" : "top" }, {"orig_name" : ["^top.art$","^top$"], "tl_name" : "top" },
{"orig_name" : ["art(\\d+)\\.art","layer_(\\d+)"], "tl_name" : "l_($1)"}, {"orig_name" : ["_l(\\d+)\\.phd$","_l(\\d+)\\.fph$","^in_(\\d+)\\.art$","^l(\\d+)\\.art$","inner_(\\d+)\\.art","layer_(\\d+)"], "tl_name" : "l_($1)"},
{"orig_name" : ["bottom.art","^bottom$"], "tl_name" : "bottom" }, {"orig_name" : ["^bot.art$","^bottom.art","^bottom$"], "tl_name" : "bottom" },
{"orig_name" : "soldbotm.art", "tl_name" : "sm_botm" }, {"orig_name" : ["_r\\d\\.phd$","_r\\d\\.fph$","^smb\\.art$","soldbotm.art","^sm_botm$","bot_soldermask"], "tl_name" : "sm_botm" },
{"orig_name" : "sleg.art", "tl_name" : "silk_bot" }, {"orig_name" : ["^silk_bottom\\.art$","sleg.art","^silk_bot$","bot_silkscreen"], "tl_name" : "silk_bot" },
{"orig_name" : "pastbotm.art", "tl_name" : "past_botm" }, {"orig_name" : ["pastbotm.art","^past_botm$","bot_solderpaste"], "tl_name" : "past_botm" },
{"orig_name" : ["^nc_drill$","^drill$"], "tl_name" : "drill" },
{"orig_name" : "multipack.art", "tl_name" : "array" }, {"orig_name" : "multipack.art", "tl_name" : "array" },
{"orig_name" : "outline.art", "tl_name" : "outline" }, {"orig_name" : ["\\.rou$","^rout$"], "tl_name" : "rout" },
{"orig_name" : "fab.art", "tl_name" : "fab" }, {"orig_name" : ["outline.art","^outline$"], "tl_name" : "outline" },
{"orig_name" : ["fab.art","fab"], "tl_name" : "fab" },
{"orig_name" : "top-enig", "tl_name" : "top-enig" }, {"orig_name" : "top-enig", "tl_name" : "top-enig" },
{"orig_name" : "bot-enig", "tl_name" : "bot-enig" }, {"orig_name" : "bot-enig", "tl_name" : "bot-enig" },
{"orig_name" : "fab_page2", "tl_name" : "fab_page2" }, {"orig_name" : "fab_page2", "tl_name" : "fab_page2" },
{"orig_name" : ["(\\d+)-(\\d+)$","d(\\d+)-(\\d+)"], "tl_name" : "d_($1)-($2)"} {"orig_name" : ["_d(\\d)(\\d+)\\.drd","_d(\\d)(\\d+)\\.fdr","^d(\\d)(\\d+)\\.art$","(\\d+)-(\\d+)-laser\\.drl","d(\\d+)-(\\d+)"], "tl_name" : "d_($1)-($2)"}
] ]
} }
}, },
"data_format": [ "data_format": [
{"tl_name":"^top$" , "new_name":"top" , "attr":{ "context":"board", "type":"signal" }}, // new_name 里支持特殊变量 {"tl_name":"past_top" , "new_name":"past_top" , "attr":{ "context":"board", "type":"solder_paste" }},
{"tl_name":"silk_top" , "new_name":"silk_top" , "attr":{ "context":"board", "type":"solder_paste" }},
{"tl_name":"sm_top" , "new_name":"sm_top" , "attr":{ "context":"board", "type":"solder_mask" }},
{"tl_name":"^top$" , "new_name":"top" , "attr":{ "context":"board", "type":"signal" }},
{"tl_name":"l_(\\d+)","new_name":"layer_($1)" ,"attr":{"context":"board","type":"signal"}}, {"tl_name":"l_(\\d+)","new_name":"layer_($1)" ,"attr":{"context":"board","type":"signal"}},
{"tl_name":"^bottom$","new_name":"bottom" ,"attr":{"context":"board","type":"signal"}}, {"tl_name":"^bottom$","new_name":"bottom" ,"attr":{"context":"board","type":"signal"}},
{"tl_name":"sm_botm" , "new_name":"sm_botm" , "attr":{ "context":"board", "type":"solder_mask" }},
{"tl_name":"silk_bot" , "new_name":"silk_bot" , "attr":{ "context":"board", "type":"solder_paste" }},
{"tl_name":"past_botm" , "new_name":"past_botm" , "attr":{ "context":"board", "type":"solder_paste" }},
{"tl_name":"d_(\\d+)-(\\d+)","new_name":"d($1)-($2)" ,"attr":{"context":"board","type":"drill"}}, {"tl_name":"d_(\\d+)-(\\d+)","new_name":"d($1)-($2)" ,"attr":{"context":"board","type":"drill"}},
{"tl_name":"drill","new_name":"drill" ,"attr":{"context":"board","type":"drill"}}, {"tl_name":"drill","new_name":"drill" ,"attr":{"context":"board","type":"drill"}},
{"tl_name":"rout","new_name":"rout" ,"attr":{"context":"board","type":"rout"}} {"tl_name":"rout","new_name":"rout" ,"attr":{"context":"board","type":"rout"}},
{"tl_name":"outline","new_name":"outline" ,"attr":{"context":"board","type":"rout"}},
{"tl_name":"array","new_name":"array" ,"attr":{"context":"misc"}},
{"tl_name":"fab.art","new_name":"fab.art" ,"attr":{"context":"misc"}}
], ],
"delSameJob": "yes" "delSameJob": "yes"
}})() }})()
\ No newline at end of file
*/
\ No newline at end of file
...@@ -154,18 +154,7 @@ ...@@ -154,18 +154,7 @@
{ {
"valid": function(props){ "valid": function(props){
var file = props.file; var file = props.file;
var job = props.job; return /.+\.tgz$/ig.test(file.name) && !(/-a/ig.test(file.baseName))
var reg = new RegExp("^"+job+"-a","ig")
return /.+\.tgz$/ig.test(file.name) && reg.test(file.baseName)
},
"type": "ODB",
"format": "ODB_1"
},
{
"valid": function(props){
var file = props.file;
var job = props.job;
return /.+\.tgz$/ig.test(file.name) && job == file.baseName
}, },
"type": "ODB", "type": "ODB",
"format": "ODB" "format": "ODB"
...@@ -559,13 +548,13 @@ ...@@ -559,13 +548,13 @@
}, },
"data_format": [ "data_format": [
{"tl_name":"past_top" , "new_name":"past_top" , "attr":{ "context":"board", "type":"solder_paste" }}, {"tl_name":"past_top" , "new_name":"past_top" , "attr":{ "context":"board", "type":"solder_paste" }},
{"tl_name":"silk_top" , "new_name":"silk_top" , "attr":{ "context":"board", "type":"solder_paste" }}, {"tl_name":"silk_top" , "new_name":"silk_top" , "attr":{ "context":"board", "type":"silk_screen" }},
{"tl_name":"sm_top" , "new_name":"sm_top" , "attr":{ "context":"board", "type":"solder_mask" }}, {"tl_name":"sm_top" , "new_name":"sm_top" , "attr":{ "context":"board", "type":"solder_mask" }},
{"tl_name":"^top$" , "new_name":"top" , "attr":{ "context":"board", "type":"signal" }}, {"tl_name":"^top$" , "new_name":"top" , "attr":{ "context":"board", "type":"signal" }},
{"tl_name":"l_(\\d+)","new_name":"layer_($1)" ,"attr":{"context":"board","type":"signal"}}, {"tl_name":"l_(\\d+)","new_name":"layer_($1)" ,"attr":{"context":"board","type":"signal"}},
{"tl_name":"^bottom$","new_name":"bottom" ,"attr":{"context":"board","type":"signal"}}, {"tl_name":"^bottom$","new_name":"bottom" ,"attr":{"context":"board","type":"signal"}},
{"tl_name":"sm_botm" , "new_name":"sm_botm" , "attr":{ "context":"board", "type":"solder_mask" }}, {"tl_name":"sm_botm" , "new_name":"sm_botm" , "attr":{ "context":"board", "type":"solder_mask" }},
{"tl_name":"silk_bot" , "new_name":"silk_bot" , "attr":{ "context":"board", "type":"solder_paste" }}, {"tl_name":"silk_bot" , "new_name":"silk_bot" , "attr":{ "context":"board", "type":"silk_screen" }},
{"tl_name":"past_botm" , "new_name":"past_botm" , "attr":{ "context":"board", "type":"solder_paste" }}, {"tl_name":"past_botm" , "new_name":"past_botm" , "attr":{ "context":"board", "type":"solder_paste" }},
{"tl_name":"d_(\\d+)-(\\d+)","new_name":"d($1)-($2)" ,"attr":{"context":"board","type":"drill"}}, {"tl_name":"d_(\\d+)-(\\d+)","new_name":"d($1)-($2)" ,"attr":{"context":"board","type":"drill"}},
{"tl_name":"drill","new_name":"drill" ,"attr":{"context":"board","type":"drill"}}, {"tl_name":"drill","new_name":"drill" ,"attr":{"context":"board","type":"drill"}},
......
...@@ -42,7 +42,7 @@ PARAMETER: ...@@ -42,7 +42,7 @@ PARAMETER:
*/ */
////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////
console.log("==============================>set origin"); console.log("=================== =======>set origin");
// 引入模块 包 // 引入模块 包
var $ = require('topcam.scriptfunc').argv(); var $ = require('topcam.scriptfunc').argv();
var fs = require('fs'); var fs = require('fs');
......
...@@ -10,10 +10,13 @@ var Job = $.job; ...@@ -10,10 +10,13 @@ var Job = $.job;
var JobId = $.job_id; var JobId = $.job_id;
try { try {
var job = "1" var job = "sj"
var step = "cad" var step = "orig"
var matrix = GEN.getMatrix({job:job}) var tmp2 = "tmp2"
IKM.msg(matrix) var layer = "l3"
GEN.copyLayer({source_job:job, source_step:step,source_layer:"gko",dest_layer:"gko_tmp"})
return "Done" return "Done"
} catch (e) { } catch (e) {
IKM.msg(e) IKM.msg(e)
......
var tmp = "12.5466"
console.log(tmp.toFixed(2));
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);
[{ ["GEN_TYPE", "ERROR_HANDLE", "GENESIS_DIR", "GENESIS_VER", "GENESIS_EDIR", "GENESIS_TMP",
CHILDREN : "COMMS", "DIR_PREFIX", "STATUS", "INFO_RESULT", "sendCommand", "blankStatusResults", "sendCommandToPipe",
[ "COM", "getReply", "VON", "VOF", "SU_ON", "SU_OFF", "PAUSE", "MOUSE", "AUX", "DO_INFO", "INFO", "parse",
{ "clearInfoResult", "dbutil", "hooksSkip", "getJobPath", "shellwords", "hasError", "currentJob", "currentStep",
CHILDREN : "getWorkLayer", "getAffectLayer", "getDispLayers", "getJobList", "getUserName", "getJobDbName", "isJobExists",
[ "isJobOpen", "createJob", "openJob", "closeJob", "deleteJob", "deleteStep", "importJob", "listOpenJobs", "isStepExists",
{ "createStep", "setGroup", "openStep", "closeStep", "getStepList", "getMatrix", "matrixAddLayer", "matrixMoveRow", "matrixAddStep",
default_value_mode : 'customize', "matrixDeleteStep", "matrixCopyStep", "matrixCopyLayer", "openMatrix", "matrixRefresh", "matrixLayerAttr", "matrixLayerDrill",
display_style : {"validateSignal" : "anyDataChanged()", "getLayerCount", "getTool", "toolSet", "outputPostScript", "outputRs274x", "outputDxf", "isLayerExists", "createLayer",
"initCallback" : function (obj, self) { "deleteLayer", "getLayerLimits", "getSymbolLimits", "getProfileLimits", "affectedLayer", "getSelectCount", "selCopyOther",
obj.setShowGrid(true); "selMoveOther", "clearLayers", "workLayer", "zoomArea", "units", "selectByFilter", "highlightByFilter", "selRefFeat", "filterSet",
obj.setDataKeyList(["item", "min_line_width", "min_line_spacing", "min_line2pad", "min_pad2pad"]); "checkInout", "saveJob", "copyJob", "copyLayer", "getChecklist", "chklistFromLib", "createChklist", "isChklistExists", "chklistShow",
obj.setHeaderItem([ "chklistRun", "getCheckMeas", "runSingleDfm", "copperArea", "exposedArea", "selContourize", "zoomHome", "panelSize", "srFill",
{}, "addPad", "addLine", "addArc", "transCoordinate", "addText", "getTextRect", "addRectangle", "addPolygon", "selFill", "selReverse",
{ "selDelete", "panelSR", "flattenLayer", "getSymbolFeatures", "getFeatures", "copyStep", "selChangeSym", "selBoardNetFeat", "displayLayer",
name: 'item', "getNcsetsList", "getNcsetReg", "selCreateStep", "selMoveRepeat", "createSymbol", "isSymbolExists", "openSymbol", "closeSymbol", "getCheckAttr",
display: 'Item', "getProfile", "clearHighlight", "selBreak", "getUnits", "getLayerSymsHist", "getSymbolSymsHist", "netlistPageOpen", "netlistRecalc", "netlistCompare",
dataType: "string", "netlistPageClose", "selClearFeature", "getSRLimits", "getSR", "getActiveArea", "chklistCupd", "getChklistRange", "chklistErfRange", "chklistErf",
displayRole: "$item" "chklistRereadErf", "chklistSelectAct", "chklistSelectAll", "getChklistActCount", "chklistCreateLyrs", "getStepLimits", "selMove", "selSubstitute",
}, "selTransform", "getSR1", "getRepeat", "getSubSteps", "getDatum", "getStepAttr", "getJobAttr", "setJobAttr", "getLPD", "getLPM", "setCurrentAttribute",
{ "attributeReset", "selAddAttr", "setOrigin", "setDatum", "selNetFeat", "getOrigin", "origin", "chklistResShow", "chklistClose", "getDbList",
name: 'min_line_width', "getLayerAttr", "isJobChanged", "isStepChanged", "isLayerChanged", "getSymbolHistory", "selectRectangle", "renameLayer", "renameStep",
display: 'Line Width', "setLayerAttr", "setStepAttr", "getToolUser", "getToolThick", "getToolSlots", "cadNetlistExists", "netlistExists", "isLayerEmpty",
dataType: "string", "changeText", "getGenVersion", "getLayerFeatHist", "getSymbolList", "copySymbol", "clipArea",
size: "160", "compareLayers", "von", "vof",
displayRole: "$min_line_width" "dispOn", "dispOff", "errOn", "errOff", "selCreateProfile", "selAllFeat", "selResize", "breakStep", "delStepType"]
}, \ No newline at end of file
{
name: 'min_line_spacing',
display: 'Spacing Line to Line',
dataType: "string",
size: "160",
displayRole: "$min_line_spacing"
},
{
name: 'min_line2pad',
display: 'Spacing Line to Pad',
dataType: "string",
size: "160",
displayRole: "$min_line2pad"
},
{
name: 'min_pad2pad',
display: 'Spacing Pad to Pad',
dataType: "string",
displayRole: "$min_pad2pad"
},
]);
},
"setter" : function (obj, value, self) {
var loadList = [];
if ((value != '') && (value != undefined)) {
var dataList = JSON.parse(value);
// for (var i = 0; i < dataList.length; i++) {
// valueMap = dataList[i];
// valueMap["item"] = "L" + i;
// loadList.push(valueMap);
// }
obj.loadData(dataList);
}
},
"getter" : function (obj, self) {
return JSON.stringify(obj.allDataMap());
},
"property" : {"minimum_height" : 200},
"type" : "TableView"},
getter_func : function () {
try {
var query = new TSqlQueryV2(T_SQLCNT_POOL.getSqlDatabase());
var selector = new TSqlSelectorV2;
selector.setTable("pdm_job_work_layer");
selector.setField(["name"]);
selector.setWhere("job_id", this.jobId);
selector.addWhere('odb_context', 'board');
selector.addWhere('odb_type', 'signal');
selector.setOrder("row_num", 1);
var nameList = query.selectArrayValue(selector);
if (query.lastError().isValid()) {
throw query.lastError();
}
selector.clear();
selector.setTable("pdm_job_layerattr");
selector.setField(["attr_name", "layer", "value"])
selector.setWhere("layer", nameList);
selector.addWhere("job_id", this.jobId);
var dataList = query.selectArrayMap(selector);
if (query.lastError().isValid()) {
throw query.lastError();
}
var dataMap = {};
_.each(dataList, function (valueMap) {
var tempList = [];
if (!_.isEmpty(dataMap[valueMap["layer"]])) {
tempList = dataMap[valueMap["layer"]];
}
tempList.push(valueMap);
dataMap[valueMap["layer"]] = tempList;
})
var retMap = {};
for (var key in dataMap) {
var tempMap = {};
_.each(dataMap[key], function (itemMap) {
tempMap[itemMap["attr_name"]] = itemMap["value"];
})
retMap[key] = tempMap;
}
var retList = [];
for (var key in retMap) {
var tempMap = retMap[key];
tempMap["item"] = key;
retList.push(tempMap);
}
var disqualificationList = [];
var layerList = [];
var laserList = [];
var retMap = {};
var remarkList = [];
_.each(retList, function (valueMap) {
var num = "";
if (valueMap["item"] == "top") {
num = "Front";
} else if (valueMap["item"] == "bottom") {
num = "Back";
} else {
num = "L" + valueMap["item"].replace(/[^0-9]/ig, "")
}
if (_.toNumber(valueMap["min_line_spacing"]) < 60) {
disqualificationList.push(num);
} else if (_.toNumber(valueMap["min_line2pad"]) < 60) {
disqualificationList.push(num);
} else if (_.toNumber(valueMap["min_pad2pad"]) < 60) {
disqualificationList.push(num);
}
if (_.toNumber(valueMap["min_line_width"]) < 60) {
layerList.push(num);
}
if (_.toNumber(valueMap["min_ar"]) < 60) {
laserList.push(num);
}
})
retMap["remark"] = disqualificationList.join(",");
remarkList.push(retMap);
retMap = {};
retMap["remark"] = layerList.join(",");
remarkList.push(retMap);
retMap = {};
retMap["remark"] = laserList.join(",");
remarkList.push(retMap);
this.model.setWorkValues({ 'remark_tableview': JSON.stringify(remarkList) });
return JSON.stringify(retList);
}
catch (e) {
print(e);
GUI.msgbox({
title: 'Error',
detail: e
});
}
},
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'min_dim_tableview',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : '',
title_i18n : {},
tooltip : '',
type : 'customize',
validate : '',
}
],
default_value_mode : 'Spec',
display_style : {"property" : {"minimum_heigh" : 600}},
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'min_dim',
save_value_func : '',
set_value_condition : '',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Min.Dim(μm)',
title_i18n : {},
tooltip : '',
type : 'category',
validate : '',
}
,
{
CHILDREN :
[
{
default_value_mode : 'customize',
display_style : {"validateSignal" : "anyDataChanged()",
"initCallback" : function (obj, self) {
obj.setShowGrid(true);
obj.setDataKeyList(["item", "l1", "l2", "l3", "l4", "l5", "l6", "l7", "l8", "l9", "l10", "l11", "l12", "l13", "l14", "l15", "l16", "l17", "l18", "l19", "l20", "drill_connect_layer", "drill_connect_point"]);
obj.setHeaderItem([
{},
{
name: 'item',
display: 'Item',
dataType: "string",
displayRole: "$item",
size: "120"
},
{
name: 'l1',
display: 'L1',
dataType: "string",
size: "80",
displayRole: "$l1"
},
{
name: 'l2',
display: 'L2',
dataType: "string",
size: "80",
displayRole: "$l2"
},
{
name: 'l3',
display: 'L3',
dataType: "string",
size: "80",
displayRole: "$l3"
},
{
name: 'l4',
display: 'L4',
dataType: "string",
size: "80",
displayRole: "$l4"
},
{
name: 'l5',
display: 'L5',
dataType: "string",
size: "80",
displayRole: "$l5"
},
{
name: 'l6',
display: 'L6',
dataType: "string",
size: "80",
displayRole: "$l6"
},
{
name: 'l7',
display: 'L7',
dataType: "string",
size: "80",
displayRole: "$l7"
},
{
name: 'l8',
display: 'L8',
dataType: "string",
size: "80",
displayRole: "$l8"
},
{
name: 'l9',
display: 'L9',
dataType: "string",
size: "80",
displayRole: "$l9"
},
{
name: 'l10',
display: 'L10',
dataType: "string",
size: "80",
displayRole: "$l10"
},
{
name: 'l11',
display: 'L11',
dataType: "string",
size: "80",
displayRole: "$l11"
},
{
name: 'l12',
display: 'L12',
dataType: "string",
size: "80",
displayRole: "$l12"
},
{
name: 'l13',
display: 'L13',
dataType: "string",
size: "80",
displayRole: "$l13"
},
{
name: 'l14',
display: 'L14',
dataType: "string",
size: "80",
displayRole: "$l14"
},
{
name: 'l15',
display: 'L15',
dataType: "string",
size: "80",
displayRole: "$l15"
},
{
name: 'l16',
display: 'L16',
dataType: "string",
size: "80",
displayRole: "$l16"
},
{
name: 'l17',
display: 'L17',
dataType: "string",
size: "80",
displayRole: "$l17"
},
{
name: 'l18',
display: 'L18',
dataType: "string",
size: "80",
displayRole: "$l18"
},
{
name: 'l19',
display: 'L19',
dataType: "string",
size: "80",
displayRole: "$l19"
},
{
name: 'l20',
display: 'L20',
dataType: "string",
size: "80",
displayRole: "$l20"
},
{
name: 'drill_connect_layer',
display: 'Connect Layer',
dataType: "string",
displayRole: "$drill_connect_layer",
size: "120"
},
{
name: 'drill_connect_point',
display: 'Connect Point',
dataType: "string",
displayRole: "$drill_connect_point",
size: "120"
}
]);
},
"setter" : function (obj, value, self) {
if ((value != '') && (value != undefined)) {
var dataList = JSON.parse(value);
obj.loadData(dataList);
}
},
"getter" : function (obj, self) {
return JSON.stringify(obj.allDataMap());
},
"property" : {"minimum_height" : 200},
"type" : "TableView"},
getter_func : function () {
var query = new TSqlQueryV2(T_SQLCNT_POOL.getSqlDatabase());
var selector = new TSqlSelectorV2;
selector.setTable("pdm_job_work_layer");
selector.setField(["name", "drl_start_num", "drl_end_num"]);
selector.setWhere("job_id", this.jobId);
selector.addWhere('odb_context', 'board');
selector.addWhere('odb_type', 'drill');
selector.setOrder("row_num", 1);
var drillList = query.selectArrayMap(selector);
if (query.lastError().isValid()) {
throw query.lastError();
}
selector.clear();
selector.setTable("pdm_job_work_layer");
selector.setField(["name"]);
selector.setWhere("job_id", this.jobId);
selector.addWhere('odb_context', 'board');
selector.addWhere('odb_type', 'signal');
selector.setOrder("row_num", 1);
var signalList = query.selectArrayValue(selector);
if (query.lastError().isValid()) {
throw query.lastError();
}
selector.clear();
selector.setTable("pdm_job_layerattr");
selector.setField(["attr_name", "layer", "value"]);
selector.setWhere("job_id", this.jobId);
selector.addWhere('layer', signalList);
var layerCopList = query.selectArrayMap(selector);
if (query.lastError().isValid()) {
throw query.lastError();
}
var retList = [];
var tempMap = {};
_.each(layerCopList, function (itemMap) {
if (itemMap["attr_name"] == "copper_percent") {
if (itemMap["layer"] == "top") {
tempMap["l1"] = itemMap["value"];
} else if (itemMap["layer"] == "bottom") {
tempMap["l" + signalList.length] = itemMap["value"];
} else {
var num = itemMap["layer"].replace(/[^0-9]/ig, "");
tempMap["l" + num] = itemMap["value"];
}
}
tempMap["item"] = "Card Copper";
// if(itemMap["layer"] == key && itemMap["attr_name"] == "copper_percent"){
// tempMap["copper_percent"] = itemMap["value"];
// }
})
retList.push(tempMap);
var layerNumMap = {};
_.each(drillList, function (valueMap) {
var drlStartNum = valueMap["drl_start_num"];
var drlEndNum = valueMap["drl_end_num"];
var layerNumList = [];
var length = _.toNumber(drlEndNum) - _.toNumber(drlStartNum);
for (var i = 0; i <= length; i++) {
var layerNum = _.toNumber(drlStartNum) + i;
layerNumList.push(layerNum);
}
layerNumMap[valueMap["name"]] = layerNumList;
})
for (var key in layerNumMap) {
var layerNumList = layerNumMap[key];
selector.clear();
selector.setTable("pdm_job_work_layer");
selector.setField(["name"]);
selector.setWhere("job_id", this.jobId);
selector.addWhere('odb_context', 'board');
selector.addWhere('odb_type', 'signal');
selector.addWhere('row_num', layerNumList);
selector.setOrder("row_num", 1);
var layerList = query.selectArrayValue(selector);
if (query.lastError().isValid()) {
throw query.lastError();
}
selector.clear();
selector.setTable("pdm_job_layerattr");
selector.setField(["attr_name", "layer", "value"]);
selector.setWhere("job_id", this.jobId);
selector.addWhere('layer', key);
var attrList = query.selectArrayMap(selector);
if (query.lastError().isValid()) {
throw query.lastError();
}
var dataMap = {};
_.each(attrList, function (valueMap) {
var tempList = [];
if (!_.isEmpty(dataMap[valueMap["layer"]])) {
tempList = dataMap[valueMap["layer"]];
}
tempList.push(valueMap);
dataMap[valueMap["layer"]] = tempList;
})
var retMap = {};
for (var key in dataMap) {
var tempMap = {};
_.each(dataMap[key], function (itemMap) {
_.each(layerList, function (layerName) {
if (itemMap["attr_name"] == ("drl_pad_" + layerName)) {
tempMap[layerName] = itemMap["value"];
} else if (itemMap["attr_name"] == "drill_connect_layer"
|| itemMap["attr_name"] == "drill_connect_point") {
tempMap[itemMap["attr_name"]] = itemMap["value"];
}
})
})
retMap[key] = tempMap;
}
for (var key in retMap) {
var tempMap = retMap[key];
for (var str in tempMap) {
if (str == "top") {
tempMap["l1"] = tempMap["top"];
delete tempMap["top"];
} else if (str == "bottom") {
tempMap["l" + layerList.length] = tempMap["bottom"];
delete tempMap["bottom"];
} else if (str == "drill_connect_point" || str == "drill_connect_layer") {
continue;
}
else {
var num = str.replace(/[^0-9]/ig, "");
tempMap["l" + num] = tempMap[str];
}
}
tempMap["item"] = key;
retList.push(tempMap);
}
}
return JSON.stringify(retList);
},
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'qec_tableview',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : '',
title_i18n : {},
tooltip : '',
type : 'customize',
validate : '',
}
],
default_value_mode : 'Spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'qec',
save_value_func : '',
set_value_condition : '',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Via-Pad Diameter (mils) at Laser/Core-Technical & Copper Distribution',
title_i18n : {},
tooltip : '',
type : 'category',
validate : '',
}
,
{
CHILDREN :
[
{
CHILDREN :
[
{
default_value_mode : 'customize',
display_style : {"validateSignal" : "anyDataChanged()",
"initCallback" : function (obj, self) {
obj.setShowGrid(true);
obj.setDataKeyList(["item", "smallest_pad", "smallest_pitch"]);
obj.setHeaderItem([
{},
{
name: 'item',
display: 'Item',
dataType: "string",
displayRole: "$item",
size: "180"
},
{
name: 'smallest_pad',
display: 'Smallest Pad',
dataType: "string",
size: "260",
displayRole: "$smallest_pad"
},
{
name: 'smallest_pitch',
display: 'Smallest Pitch',
dataType: "string",
displayRole: "$smallest_pitch"
},
]);
},
"setter" : function (obj, value, self) {
var itemList = ["BGA Grid(c2c)", "Ball Dia", "Number of Balls", "SM Opening Dia"];
var loadList = [];
if ((value != '') && (value != undefined)) {
var dataList = JSON.parse(value);
for (var i = 0; i < dataList.length; i++) {
var valueMap = dataList[i];
valueMap["item"] = itemList[i];
loadList.push(valueMap);
}
obj.loadData(loadList);
}
// else {
// for (var i = 0; i < itemList.length; i++) {
// var valueMap = {};
// valueMap["item"] = itemList[i];
// loadList.push(valueMap);
// }
// obj.loadData(loadList);
// }
},
"getter" : function (obj, self) {
return JSON.stringify(obj.allDataMap());
},
"property" : {"minimum_height" : 200},
"type" : "TableView"},
getter_func : function () {
var query = new TSqlQueryV2(T_SQLCNT_POOL.getSqlDatabase());
var selector = new TSqlSelectorV2;
selector.setTable("pdm_job_work_layer");
selector.setField(["name"]);
selector.setWhere("job_id", this.jobId);
selector.addWhere('type', 'outer');
selector.setOrder("row_num", 1);
var layerList = query.selectArrayValue(selector);
if (query.lastError().isValid()) {
throw query.lastError();
}
selector.clear();
selector.setTable("pdm_job_layerattr");
selector.setField(["attr_name", "layer", "value"]);
selector.setWhere("job_id", this.jobId);
selector.addWhere('layer', layerList);
var attrList = query.selectArrayMap(selector);
if (query.lastError().isValid()) {
throw query.lastError();
}
var dataMap = {};
_.each(attrList, function (valueMap) {
var tempList = [];
if (!_.isEmpty(dataMap[valueMap["attr_name"]])) {
tempList = dataMap[valueMap["attr_name"]];
}
tempList.push(valueMap);
dataMap[valueMap["attr_name"]] = tempList;
})
var itemPadList = ["min_bga_pitch", "min_bga_size", "min_bga_num_of_bolls", "min_bga_openging_size"];
var itemPitchList = ["bga_min_pitch", "bga_min_pitch_pad_size", "bga_min_pitch_num_of_bolls", "bga_min_pitch_openging_size"];
var retList = [];
for (var i = 0; i < itemPadList.length; i++) {
var itemPad = itemPadList[i];
var itemPitch = itemPitchList[i];
var retPadMap = {};
var retPitchMap = {};
var tempPadList = dataMap[itemPad];
var tempPitchList = dataMap[itemPitch];
_.each(tempPadList, function (itemMap) {
retPadMap[itemMap["layer"]] = itemMap["value"];
})
_.each(tempPitchList, function (itemMap) {
retPitchMap[itemMap["layer"]] = itemMap["value"];
})
var retMap = {};
var minPad = retPadMap["top"];
for (var key in retPadMap) {
if (minPad > retPadMap[key]) {
minPad = retPadMap[key];
}
}
var minPitch = retPitchMap["top"];
for (var key in retPitchMap) {
if (minPitch > retPitchMap[key]) {
minPitch = retPitchMap[key];
}
}
retMap["smallest_pad"] = minPad;
retMap["smallest_pitch"] = minPitch;
retList.push(retMap);
}
return JSON.stringify(retList);
},
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'bga_tableview',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : '',
title_i18n : {},
tooltip : '',
type : 'customize',
validate : '',
}
],
default_value_mode : 'Spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'bga',
save_value_func : '',
set_value_condition : '',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'BGA(mils)',
title_i18n : {},
tooltip : '',
type : 'category',
validate : '',
}
,
{
CHILDREN :
[
{
default_value_mode : 'customize',
display_style : {"validateSignal" : "anyDataChanged()",
"initCallback" : function (obj, self) {
obj.setShowGrid(true);
obj.setDataKeyList(["item", "top", "bottom"]);
obj.setHeaderItem([
{},
{
name: 'item',
display: 'Item',
dataType: "string",
displayRole: "$item",
size: "200"
},
{
name: 'top',
display: 'Front',
dataType: "string",
size: "240",
displayRole: "$top"
},
{
name: 'bottom',
display: 'Back',
dataType: "string",
displayRole: "$bottom"
},
]);
},
"setter" : function (obj, value, self) {
var itemList = ["Min.SMD Width", "Length", "SMD-Grid(c2c)", "SM Opening Width", "SM Opening Length", "SM Opening Points", "Test PIN Count"];
var loadList = [];
if ((value != '') && (value != undefined)) {
var dataList = JSON.parse(value);
for (var i = 0; i < dataList.length; i++) {
var valueMap = dataList[i];
valueMap["item"] = itemList[i];
loadList.push(valueMap);
}
obj.loadData(loadList);
} else {
for (var i = 0; i < itemList.length; i++) {
var valueMap = {};
valueMap["item"] = itemList[i];
loadList.push(valueMap);
}
obj.loadData(loadList);
}
},
"getter" : function (obj, self) {
return JSON.stringify(obj.allDataMap());
},
"property" : {"minimum_height" : 200},
"type" : "TableView"},
getter_func : function () {
var query = new TSqlQueryV2(T_SQLCNT_POOL.getSqlDatabase());
var selector = new TSqlSelectorV2;
selector.setTable("pdm_job_work_layer");
selector.setField(["name"]);
selector.setWhere("job_id", this.jobId);
selector.addWhere('type', 'outer');
selector.setOrder("row_num", 1);
var layerList = query.selectArrayValue(selector);
if (query.lastError().isValid()) {
throw query.lastError();
}
selector.clear();
selector.setTable("pdm_job_layerattr");
selector.setField(["attr_name", "layer", "value"]);
selector.setWhere("job_id", this.jobId);
selector.addWhere('layer', layerList);
var attrList = query.selectArrayMap(selector);
if (query.lastError().isValid()) {
throw query.lastError();
}
var dataMap = {};
_.each(attrList, function (valueMap) {
var tempList = [];
if (!_.isEmpty(dataMap[valueMap["attr_name"]])) {
tempList = dataMap[valueMap["attr_name"]];
}
tempList.push(valueMap);
dataMap[valueMap["attr_name"]] = tempList;
})
var itemList = ["min_smd_width", "min_smd_length", "min_smd_pitch", "min_smd_opening_width", "min_smd_opening_length", "sm_opening_count"];
var retList = [];
_.each(itemList, function (item) {
var retMap = {};
var tempList = dataMap[item];
_.each(tempList, function (itemMap) {
retMap[itemMap["layer"]] = itemMap["value"];
})
retList.push(retMap);
})
var tempMap = {};
_.each(dataMap["sm_opening_count"], function (item) {
tempMap[item["layer"]] = _.toNumber(item["value"]) * 0.85;
})
retList.push(tempMap);
return JSON.stringify(retList);
},
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'smd_tableview',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : '',
title_i18n : {},
tooltip : '',
type : 'customize',
validate : '',
}
],
default_value_mode : 'Spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'smd',
save_value_func : '',
set_value_condition : '',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'SMD(mils)',
title_i18n : {},
tooltip : '',
type : 'category',
validate : '',
}
],
default_value_mode : '',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'hlayout',
save_value_func : '',
set_value_condition : '',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'layout',
title_i18n : {},
tooltip : '',
type : 'layout',
validate : '',
}
,
{
CHILDREN :
[
{
CHILDREN :
[
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'ATS_surface_area_base_on',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Org Surface Area Based On',
title_i18n : '',
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'carbon_Area_front',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Carbon Area Front (d㎡)',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'carbon_Area_back',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Carbon Area Back(d㎡)',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
],
default_value_mode : '',
display_style : {"type" : "FormGridLayout",
"property" : {"columns" : 3}},
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'surface_area_layout1',
save_value_func : '',
set_value_condition : '',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'layout',
title_i18n : {},
tooltip : '',
type : 'layout',
validate : '',
}
,
{
default_value_mode : 'customize',
display_style : {"validateSignal" : "anyDataChanged()",
"pack" : {"layout_type" : 2},
"initCallback" : function (obj, self) {
obj.setShowGrid(true);
obj.setDataKeyList(["item", "exposed_area", "gold", "full_type", "ref_layer", "ref_type"]);
obj.setHeaderItem([
{},
{
name: 'item',
display: 'Item',
dataType: "string",
displayRole: "$item"
},
{
name: 'exposed_area',
display: 'Exposed',
dataType: "string",
displayRole: "$exposed_area"
},
{
name: 'gold',
display: 'Gold',
dataType: "string",
displayRole: "$gold"
},
{
name: 'full_type',
display: 'Full Type',
dataType: "string",
displayRole: "$full_type"
},
{
name: 'ref_layer',
display: 'Ref.Layer',
dataType: "string",
displayRole: "$ref_layer"
},
{
name: 'ref_type',
display: 'Ref.Type',
dataType: "string",
displayRole: "$ref_type"
}
]);
},
"setter" : function (obj, value, self) {
var itemList = ["Front", "Back", "Total"];
var loadList = [];
if ((value != '') && (value != undefined)) {
var dataList = JSON.parse(value);
var tempMap = {};
var exposedArea = 0;
for (var i = 0; i < dataList.length; i++) {
var valueMap = dataList[i];
valueMap["item"] = itemList[i];
exposedArea = exposedArea + _.toNumber(valueMap["exposed_area"]);
loadList.push(valueMap);
}
tempMap["item"] = "Total";
tempMap["exposed_area"] = exposedArea;
loadList.push(tempMap);
obj.loadData(loadList);
}
},
"getter" : function (obj, self) {
return JSON.stringify(obj.allDataMap());
},
"property" : {"minimum_height" : 200},
"type" : "TableView"},
getter_func : function () {
try {
var query = new TSqlQueryV2(T_SQLCNT_POOL.getSqlDatabase());
var selector = new TSqlSelectorV2;
selector.setTable("pdm_job_work_layer");
selector.setField(["name"]);
selector.setWhere("job_id", this.jobId);
selector.addWhere('type', 'outer');
selector.setOrder("row_num", 1);
var layerList = query.selectArrayValue(selector);
if (query.lastError().isValid()) {
throw query.lastError();
}
selector.clear();
selector.setTable("pdm_job_layerattr");
selector.setField(["attr_name", "layer", "value"]);
selector.setWhere("job_id", this.jobId);
selector.addWhere('layer', layerList);
var attrList = query.selectArrayMap(selector);
if (query.lastError().isValid()) {
throw query.lastError();
}
selector.clear();
selector.setTable("pdm_job_work_layer");
selector.setField(["odb_name", "side"]);
selector.setWhere("job_id", this.jobId);
selector.addWhere('odb_context', 'board');
selector.setOrder("type", "solder_mask");
var nameList = query.selectArrayMap(selector);
if (query.lastError().isValid()) {
throw query.lastError();
}
var goldMap = {};
var refLayerMap = {};
_.each(nameList, function (item) {
if (item["odb_name"] == "gold") {
goldMap[item["side"]] = item["odb_name"];
} else if (item["odb_name"] == "ref_layer") {
refLayerMap[item["side"]] = item["odb_name"];
}
})
var dataMap = {};
_.each(attrList, function (valueMap) {
var tempList = [];
if (!_.isEmpty(dataMap[valueMap["layer"]])) {
tempList = dataMap[valueMap["layer"]];
}
tempList.push(valueMap);
dataMap[valueMap["layer"]] = tempList;
})
var retMap = {};
for (var key in dataMap) {
var tempMap = {};
_.each(dataMap[key], function (itemMap) {
tempMap[itemMap["attr_name"]] = itemMap["value"];
})
retMap[key] = tempMap;
}
var itemList = ["top", "bottom"];
var retList = [];
_.each(itemList, function (item) {
var tempMap = retMap[item];
tempMap["gold"] = goldMap[item];
tempMap["ref_layer"] = refLayerMap[item];
retList.push(tempMap);
})
return JSON.stringify(retList);
}
catch (e) {
print(e);
GUI.msgbox({
title: 'Error',
detail: e
});
}
},
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'carbon_area_tableview',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : '',
title_i18n : {},
tooltip : '',
type : 'customize',
validate : '',
}
],
default_value_mode : 'Spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'surface_area',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Surface Area(sqdm)',
title_i18n : {},
tooltip : '',
type : 'category',
validate : '',
}
,
{
CHILDREN :
[
{
CHILDREN :
[
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'layer_count',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Board layer',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'vc_pcs_count_on_panel',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Single cards per panel',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : {"pack" : {"column_span" : 2}},
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'structure',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Structure',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'vc_card_size_l',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Card Size L',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'vc_card_size_w',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Card Size W',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'vc_array_size_l',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Array Size L',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'vc_array_size_w',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Array Size W',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'depth_drilling',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Depth drilling',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'depth_routing',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Depth routing',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'milling_bit_size',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Milling bit size',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'milling_length',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Milling length',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'solder_mask_side',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'SM',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'silk_screen_side',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'ID',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'laser_via_on_buried_hole',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Laser Via on Buried hole',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'vc_src_01005_pad_result',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : '01005 Pad',
title_i18n : '',
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'vc_src_EDGE_PLATING',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Edge plating',
title_i18n : '',
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'edge_plating_length',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Edge plating Length',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'ATS_technology_25dc',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : '2.5 DC Technology',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'ATS_technology_25dr',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : '2.5 DR Technology',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'gold_finger',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Gold Finger',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'glod_finger_area',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Glod Finger Area',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
,
{
default_value_mode : 'spec',
display_style : {"pack" : {"column_span" : 2}},
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'stack_vias_more',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Stack Vias >= 12 layer(for above 14 AL)',
title_i18n : {},
tooltip : '',
type : 'jobattr',
validate : '',
}
],
default_value_mode : '',
display_style : {"type" : "FormGridLayout",
"property" : {"columns" : 4}},
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'original_items_layout1',
save_value_func : '',
set_value_condition : '',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'layout',
title_i18n : {},
tooltip : '',
type : 'layout',
validate : '',
}
],
default_value_mode : 'Spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'original_items',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Original Items',
title_i18n : {},
tooltip : '',
type : 'category',
validate : '',
}
,
{
CHILDREN :
[
{
default_value_mode : 'customize',
display_style : {"validateSignal" : "anyDataChanged()",
"initCallback" : function (obj, self) {
obj.setShowGrid(true);
obj.setDataKeyList(["item", "laser_cutting_length", "base_on_which_layer"]);
obj.setHeaderItem([
{},
{
name: 'item',
display: 'Item',
dataType: "string",
displayRole: "$item"
},
{
name: 'laser_cutting_length',
display: 'Length',
dataType: "string",
displayRole: "$laser_cutting_length"
},
{
name: 'base_on_which_layer',
display: 'Base on which layer',
dataType: "string",
displayRole: "$base_on_which_layer"
},
]);
},
"setter" : function (obj, value, self) {
var itemList = ["Front", "Back"];
var loadList = [];
if ((value != '') && (value != undefined)) {
var dataList = JSON.parse(value);
var tempMap = {};
for (var i = 0; i < dataList.length; i++) {
var valueMap = dataList[i];
valueMap["item"] = itemList[i];
loadList.push(valueMap);
}
obj.loadData(loadList);
}
// else {
// for (var i = 0; i < itemList.length; i++) {
// var valueMap = {};
// valueMap["item"] = itemList[i];
// loadList.push(valueMap);
// }
// obj.loadData(loadList);
// }
},
"getter" : function (obj, self) {
return JSON.stringify(obj.allDataMap());
},
"property" : {"minimum_height" : 200},
"type" : "TableView"},
getter_func : function () {
try {
var query = new TSqlQueryV2(T_SQLCNT_POOL.getSqlDatabase());
var selector = new TSqlSelectorV2;
selector.setTable("pdm_job_work_layer");
selector.setField(["name"]);
selector.setWhere("job_id", this.jobId);
selector.addWhere('type', 'outer');
selector.setOrder("row_num", 1);
var layerList = query.selectArrayValue(selector);
if (query.lastError().isValid()) {
throw query.lastError();
}
selector.clear();
selector.setTable("pdm_job_layerattr");
selector.setField(["attr_name", "layer", "value"]);
selector.setWhere("job_id", this.jobId);
selector.addWhere('layer', layerList);
var attrList = query.selectArrayMap(selector);
if (query.lastError().isValid()) {
throw query.lastError();
}
var dataMap = {};
_.each(attrList, function (valueMap) {
var tempList = [];
if (!_.isEmpty(dataMap[valueMap["layer"]])) {
tempList = dataMap[valueMap["layer"]];
}
tempList.push(valueMap);
dataMap[valueMap["layer"]] = tempList;
})
var retMap = {};
for (var key in dataMap) {
var tempMap = {};
_.each(dataMap[key], function (itemMap) {
tempMap[itemMap["attr_name"]] = itemMap["value"];
})
retMap[key] = tempMap;
}
var itemList = ["top", "bottom"];
var retList = [];
_.each(itemList, function (item) {
var tempMap = retMap[item];
retList.push(tempMap);
})
return JSON.stringify(retList);
}
catch (e) {
print(e);
GUI.msgbox({
title: 'Error',
detail: e
});
}
},
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'laser_cutting_length_tableview',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : '',
title_i18n : {},
tooltip : '',
type : 'customize',
validate : '',
}
],
default_value_mode : 'Spec',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'laser_cutting_length',
save_value_func : '',
set_value_condition : '',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Laser cutting Length(m)',
title_i18n : {},
tooltip : '',
type : 'category',
validate : '',
}
,
{
default_value_mode : 'customize',
display_style : {"validateSignal" : "anyDataChanged()",
"initCallback" : function (obj, self) {
obj.setShowGrid(true);
obj.setDataKeyList(["item", "remark"]);
obj.setHeaderItem([
{},
{
name: 'item',
display: 'Item',
dataType: "string",
displayRole: "$item",
size: "510"
},
{
name: 'remark',
display: 'Layer Information',
dataType: "string",
displayRole: "$remark"
},
]);
},
"setter" : function (obj, value, self) {
var itemList = ["LDI Layers Check Base on Org Info", "Layers with Line Width <60 um", "Layers with Laser A/R <60 um(Maybe changed After laser size Changed)"];
var loadList = [];
if ((value != '') && (value != undefined)) {
var dataList = JSON.parse(value);
for (var i = 0; i < dataList.length; i++) {
var valueMap = dataList[i];
valueMap["item"] = itemList[i];
loadList.push(valueMap);
}
obj.loadData(loadList);
}
// } else {
// for (var i = 0; i < itemList.length; i++) {
// var valueMap = {};
// valueMap["item"] = itemList[i];
// loadList.push(valueMap);
// }
// obj.loadData(loadList);
// }
},
"getter" : function (obj, self) {
return JSON.stringify(obj.allDataMap());
},
"property" : {"minimum_height" : 200},
"type" : "TableView"},
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'remark_tableview',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : '',
title_i18n : {},
tooltip : '',
type : 'customize',
validate : '',
}
,
{
CHILDREN :
[
{
default_value_mode : 'customize',
display_style : {"type" : "DateEdit"},
getter_func : function () {
try {
var query = new TSqlQueryV2(T_SQLCNT_POOL.getSqlDatabase());
var selector = new TSqlSelectorV2;
selector.setTable("pdm_job_jobattr");
selector.setField(["value"]);
selector.setWhere("job_id", this.jobId);
selector.addWhere("attr_name","import_date")
var date = query.selectValue(selector);
if (query.lastError().isValid()) {
throw query.lastError();
}
return date;
}
catch (e) {
print(e);
GUI.msgbox({
title: 'Error',
detail: e
});
}
},
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'partnumber_layout1_customize2',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Import Date',
title_i18n : {},
tooltip : '',
type : 'customize',
validate : '',
}
,
{
default_value_mode : 'customize',
display_style : '',
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'partnumber_layout1_customize3',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'Source',
title_i18n : {},
tooltip : '',
type : 'customize',
validate : '',
}
],
default_value_mode : '',
display_style : {"type" : "FormGridLayout",
"property" : {"columns" : 2}},
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'all_layout2',
save_value_func : '',
set_value_condition : '',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'layout',
title_i18n : {},
tooltip : '',
type : 'layout',
validate : '',
}
],
default_value_mode : 'Spec',
display_style : {"type" : "Widget"},
getter_func : '',
interface : '',
layer_list : '',
merge_func : '',
merge_mode : '',
merge_param : '',
name : 'all_category',
save_value_func : '',
set_value_condition : 'default',
set_value_func_pars : '',
set_value_mode : '',
setter_func : '',
state : '',
title : 'All',
title_i18n : {},
tooltip : '',
type : 'category',
validate : '',
}
]
\ 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