Commit b9d75c41 authored by Scott Sun's avatar Scott Sun

s

parent 33a8d68a
...@@ -122,7 +122,7 @@ try { ...@@ -122,7 +122,7 @@ try {
// 如果genesis已经存在这个料号 // 如果genesis已经存在这个料号
err = delSameJob({job:job,delSame:config.delSameJob}); if(err){throw err}; err = delSameJob({job:job,delSame:config.delSameJob}); if(err){throw err};
var custCfg = config.customer[par.customer] var custCfg = config.customer[par.customer]
if(!custCfg){throw "config error"} if(!custCfg){throw "customer config error:"+par.customer}
custCfg.db = par.db || custCfg.db custCfg.db = par.db || custCfg.db
var step = custCfg.step.toLowerCase() var step = custCfg.step.toLowerCase()
// 获取路径下文件信息 // 获取路径下文件信息
......
...@@ -369,6 +369,18 @@ function reName(props) { // 改名 par{job:要改名的料号, rule: {要改名 ...@@ -369,6 +369,18 @@ function reName(props) { // 改名 par{job:要改名的料号, rule: {要改名
GEN.renameLayer({job:job,layer:v.orig_name,new_name:v.new_name}) GEN.renameLayer({job:job,layer:v.orig_name,new_name:v.new_name})
} }
}); });
// 最后 如果第一个 最后一个不是top bottom 就手动修改
var afterMatrix = GEN.getMatrix({job:job})
var signals = Object.keys(afterMatrix).filter(function(v){return afterMatrix[v].layer_type=="signal" && afterMatrix[v].context=="board"})
signals = signals.sort(function(a,b){return afterMatrix[a].row - afterMatrix[b].row})
var topSignal = signals[0]
var botSignal = signals[signals.length -1]
if(topSignal !== "top"){
GEN.renameLayer({job:job,layer:topSignal,new_name:"top"})
}
if(botSignal !== "bottom"){
GEN.renameLayer({job:job,layer:botSignal,new_name:"bottom"})
}
} }
function mergeDrill(props){ // 合并钻孔 function mergeDrill(props){ // 合并钻孔
......
...@@ -205,7 +205,7 @@ ...@@ -205,7 +205,7 @@
{"orig_name" : ["_isl(\\d+)_bottom"], "tl_name" : "d_($1)-($1+1)"} {"orig_name" : ["_isl(\\d+)_bottom"], "tl_name" : "d_($1)-($1+1)"}
] ]
}, },
"yucca": { "Yucca": {
"step": "cad", "step": "cad",
"rules": [ "rules": [
{ {
......
...@@ -11,8 +11,16 @@ var JobId = $.job_id; ...@@ -11,8 +11,16 @@ var JobId = $.job_id;
try { try {
IKM.msg(1) var job = "4"
var tmp = [{signalL:"top",solderL:"sm_top"}, {signalL:"top",solderL:null}]
// exposed
tmp.forEach(function(item){
if(item.solderL){
IKM.msg(GEN.exposedArea({layer1:item.signalL,mask1:item.solderL}))
// {"area":"0.73817","percent":"8.986"}
}
})
return "Done" return "Done"
} catch (e) { } catch (e) {
IKM.msg(e) IKM.msg(e)
......
var func = function (ARGV) { try {
var jobId = ARGV["job_id"]; var query = new TSqlQueryV2(T_SQLCNT_POOL.getSqlDatabase());
var tableName = "pdm_job_" + ARGV["jobcategory"] + "_layer"; var selector = new TSqlSelectorV2;
//GUI.msgbox({text: TDataParse.variant2JsonStr(tableName)}); selector.setTable("pdm_job_work_layer");
var db = new TSqlQueryV2(T_SQLCNT_POOL.getSqlDatabase()); selector.setField(["name"]);
db.begin(); selector.setWhere("job_id", this.jobId);
try { selector.addWhere('type', 'outer');
var oLayers = db.selectMapMap({ selector.setOrder("row_num", 1);
table: tableName, var layerList = query.selectArrayValue(selector);
field: ["odb_name", "release_status"], if (query.lastError().isValid()) {
where: { throw query.lastError();
job_id: jobId }
},
uniquefield: "odb_name"
});
if (db.lastError().isValid()) throw db.lastError();
//GUI.msgbox({text: TDataParse.variant2JsonStr(oLayers)});
db.deleteRow({ selector.clear();
table: tableName, selector.setTable("pdm_job_layerattr");
where: { selector.setField(["attr_name", "layer", "value"]);
job_id: jobId selector.setWhere("job_id", this.jobId);
selector.addWhere('layer', layerList);
var attrList = query.selectArrayMap(selector);
if (query.lastError().isValid()) {
throw query.lastError();
} }
});
if (db.lastError().isValid()) throw db.lastError(); selector.clear();
selector.setTable("pdm_job_work_layer");
var fieldLst = ["name", "odb_context", "odb_type", "odb_polarity", "odb_side", "drl_start", "drl_end", selector.setField(["odb_name", "side"]);
"row_num", "type", "drl_start_num", "drl_end_num", "drl_from_num", "drl_to_num", "drl_connect_to", selector.setWhere("job_id", this.jobId);
"odb_name", "side", "stackup_num", "customer_field", "input_file_name", "odb_row_num" selector.addWhere('odb_context', 'board');
]; selector.setOrder("type", "solder_mask");
var nameList = query.selectArrayMap(selector);
for (var i = 0; i < ARGV["layers"].length; i++) { if (query.lastError().isValid()) {
layerName = ARGV["layers"][i]; throw query.lastError();
var layerInfo = ARGV["matrix"][layerName];
var tmpData = {
"job_id": jobId,
"name": layerInfo["name"]
};
if (ARGV["releasestatus"] != undefined && ARGV["releasestatus"] != null && ARGV["releasestatus"].length > 0 &&
ARGV["releasestatus"][layerInfo["odb_name"]] != undefined && ARGV["releasestatus"][layerInfo["odb_name"]] != null) {
tmpData["release_status"] = ARGV["releasestatus"];
} else {
tmpData["release_status"] = oLayers.hasOwnProperty(layerInfo["odb_name"]) ? oLayers[layerInfo["odb_name"]]["release_status"] : null;
} }
for (n = 0; n < fieldLst.length; n++) {
tmpData[fieldLst[n]] = layerInfo[fieldLst[n]]; 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"];
} }
//GUI.msgbox({text: TDataParse.variant2JsonStr(tmpData)}); })
db.insertRow({
table: tableName, var dataMap = {};
data: tmpData _.each(attrList, function (valueMap) {
}); var tempList = [];
if (db.lastError().isValid()) throw db.lastError(); if (!_.isEmpty(dataMap[valueMap["layer"]])) {
tempList = dataMap[valueMap["layer"]];
} }
db.commit();
return new TDataResponse(); tempList.push(valueMap);
} catch (err) { dataMap[valueMap["layer"]] = tempList;
print(err.text()); })
db.rollback();
return new TDataResponse(err, ""); 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
});
} }
\ 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