Commit 171681b2 authored by Scott Sun's avatar Scott Sun

scott

parent 2a1e0011
104: d xx - xx -np
\ No newline at end of file
......@@ -135,8 +135,7 @@ var resultData = [];
var ALL = {}
var Omatrix = {};
try {
script_info({ result_severity: "analysis start" })
script_info({ progress: 65 })
console.log("=============================================>anaysis_start");
var par = PAR;
var vc_src_01005_pad_result = par.vc_src_01005_pad_result
......@@ -151,6 +150,8 @@ try {
// 检查料号是否能够check out
if(GEN.checkInout({job:job,mode:"test"}) != 0){ throw "the job check" }
GEN.checkInout({job:job,mode:"out"});
script_info({ result_severity: "analysis start" })
script_info({ progress: 65 })
var pcs_step = par.pcs_step == "" ? "cad" : par.pcs_step;
var array_step = par.array_step == "" ? "stp" : par.array_step;
var step_list = GEN.getStepList({job:job})
......@@ -174,6 +175,7 @@ try {
if(GEN.getSelectCount()>0){
// unSelect()
// if(GEN.getSelectCount() > 0){
// GEN.COM("cur_atr_reset")
// GEN.COM("cur_atr_set,attribute=.drill,option=via")
// GEN.COM("sel_change_atr,mode=add")
// }
......@@ -195,6 +197,7 @@ try {
if(GEN.getSelectCount()>0){
// unSelect()
// if(GEN.getSelectCount() > 0){
// GEN.COM("cur_atr_reset")
// GEN.COM("cur_atr_set,attribute=.drill,option=plated")
// GEN.COM("sel_change_atr,mode=add")
// }
......@@ -203,6 +206,7 @@ try {
if(GEN.getSelectCount() > 0){
// unSelect()
// if(GEN.getSelectCount() > 0){
// GEN.COM("cur_atr_reset")
// GEN.COM("cur_atr_set,attribute=.drill,option=non_plated")
// GEN.COM("sel_change_atr,mode=add")
// }
......@@ -2105,6 +2109,7 @@ function min_symbols_anal(props){ // 分析最 symbols
GEN.workLayer({name:solderL_tmp,display_number:2,clear_before:"yes"})
GEN.selContourize()
GEN.COM("sel_cont2pad,match_tol=0,restriction=,min_size=5,max_size=100,suffix=+++")
GEN.COM("cur_atr_reset")
GEN.COM("cur_atr_set,attribute=.smd")
GEN.COM("sel_change_atr,mode=add")
var ck = "tmp_chk"
......@@ -2251,6 +2256,7 @@ function all_bga_min_pitch_anal(props){ // 分析所有bga中间距最小的
GEN.workLayer({name:solder_layer_tmp,display_number:2,clear_before:"yes"})
GEN.selContourize()
GEN.COM("sel_cont2pad,match_tol=0,restriction=,min_size=5,max_size=100,suffix=+++")
GEN.COM("cur_atr_reset")
GEN.COM("cur_atr_set,attribute=.smd")
GEN.COM("sel_change_atr,mode=add")
var ck = "tmp_chk"
......
......@@ -221,9 +221,7 @@ try {
if(ret.err){throw err}
var after_sort_matrix = ret.sortNames
// 设置钻孔
err = setDrill({job:job, matrix:after_sort_matrix})
if(err){throw err}
// 改名
script_info({ result_severity: "format rename" })
......@@ -231,6 +229,11 @@ try {
err = reName({job:job, matrix:after_sort_matrix, cfg:format_cfg})
if(err){throw err}
// 设置钻孔
err = setDrill({job:job})
if(err){throw err}
var tmp_matrix = GEN.getMatrix({job:job})
// 钻孔名称再次更改
......@@ -250,6 +253,7 @@ try {
if (ftdrill_layer[ftdrill_layer.length-1]!= v){
GEN.matrixMoveRow({ job:job,layer:"ftdrill",after:ftdrill_layer[ftdrill_layer.length-1] })
}
hasMainDrill = !hasMainDrill
} else if(chabie>1 && chabie < layer_count - 1){
// 改名
GEN.renameLayer({job:job,layer:v,new_name:v.substr(0,v.length-1)})
......@@ -272,6 +276,7 @@ try {
createOutline({job:job, step:tmp_step, matrix: tmp_matrix, profileRule:profileRule})
var hasProfile = GEN.getProfile({job:job, step:tmp_step})
if(hasProfile.match(/\n/ig).length == 1){
script_info({ result_severity: "创建profile失败" })
throw "创建profile失败"
}
} else {
......@@ -452,15 +457,15 @@ function sortLayer(props){ // 排序方法 {job:要排序的料号, rule: {要
function setDrill(props){ // 设置钻孔
var job = props.job
var matrix = props.matrix
var matrix = _.values(GEN.getMatrix({job:job}))
// 获取所有的钻孔层
var drillLayer =matrix.filter(function(v){
return (v.attr.type == "drill" || v.attr.type == "rout") && v.attr.context == "board"
return (v.layer_type == "drill" || v.layer_type == "rout") && v.context == "board"
})
// 获取所有single层
var signalLayer =matrix.filter(function(v){
return v.attr.type == "signal" && v.attr.context == "board"
return v.layer_type == "signal" && v.context == "board"
})
console.log("=================>setdrill:drillLayer:" + _.toString(drillLayer));
console.log("=================>setdrill:signalLayer:" + _.toString(signalLayer));
......@@ -473,10 +478,10 @@ function setDrill(props){ // 设置钻孔
}
function doDrill(drills){ // 分析钻孔层
return drills.map(function(v){
if(v.tl_name == "drill" || v.tl_name=="rout" || v.tl_name=="outline"){
if(v.name == "drill" || v.name=="rout" || v.name=="outline"){
return {start:findSignal(1), end:findSignal(layerCount), layer:v.name}
} else {
var tmp = /(\d+)-(\d+)/ig.exec(v.tl_name);
var tmp = /(\d+)-(\d+)/ig.exec(v.name);
if(tmp){
var start = findSignal(tmp[1]);
var end = findSignal(tmp[2]);
......@@ -504,12 +509,14 @@ function reName(props) { // 改名 par{job:要改名的料号, rule: {要改名
var new_name;
var tl_name = item.tl_name
var rule = item.rule
if(rule === tl_name){
new_name = item.new_name
} else {
var reg = new RegExp(rule,"ig")
var tmp = reg.exec(tl_name)
if(!tmp){return undefined}
// ["1","10","np"]
var replaceArr = tmp.slice(1)
new_name = item.new_name
var params = {}
......@@ -517,20 +524,21 @@ function reName(props) { // 改名 par{job:要改名的料号, rule: {要改名
params["$"+(i+1)] = replaceArr[i]
}
replaceArr.forEach(function(v,i){
tl_name = tl_name.replace("($"+(i+1)+")",v)
})
new_name = replaceTlName(new_name)
function replaceTlName(name){
var tmp = /(\([^)]*\))/ig.exec(name)
if(!tmp){ return name }
var param_arr = tmp[1].match(/\$\d+/ig)
var newname = tmp[1]
param_arr.forEach(function(v){
newname = newname.replace(new RegExp("\\"+v,"ig"), params[v])
new_name = new_name.replace("($"+(i+1)+")",v)
})
newname = name.replace(tmp[1],eval(newname))
return replaceTlName(newname)
}
// new_name = replaceTlName(new_name)
// function replaceTlName(name){
// var tmp = /(\([^)]*\))/ig.exec(name)
// if(!tmp){ return name }
// var param_arr = tmp[1].match(/\$\d+/ig)
// var newname = tmp[1]
// param_arr.forEach(function(v){
// newname = newname.replace(new RegExp("\\"+v,"ig"), params[v])
// })
// newname = name.replace(tmp[1],eval(newname))
// return replaceTlName(newname)
// }
}
return {
orig_name: item.name,
......
This diff is collapsed.
......@@ -30,7 +30,7 @@ PARAMETER:
HELP:
<html><body bgcolor="#DDECFE">
<font size="3" color="#003DB2"><p>功能简介</p></font>
<p> ol转孔 </p>
<p> 分刀与合刀 </p>
<br>
<font size="3" color="#003DB2"><p>参数配置</p></font>
<p> step信息 </p>
......@@ -51,13 +51,10 @@ var mode = $.ikm ? "topcam" : "aimdfm";
var IKM = $.ikm;
if (IKM==undefined ) { IKM = require('topcam.ikm6')($) }
var GEN = $.gen;
require("topsin.genmath")
var zip = require('topsin.zip');
var GUI = $.gui || {};
var Job = $.job || $.job_name;
var JobId = $.job_id;
var db = $.db || IKM.db
var genMath = new GenMath();
var PAR = {}
if ($.par) {
PAR = $.par
......@@ -87,8 +84,7 @@ try {
var default_par = {
step: "unit",
auto_save: "No",
units: "mm",
rout: "ol"
units: 'mm'
}
for(var key in default_par){ // 设置默认属性
if (!par.hasOwnProperty(key) || par[key] == ""){
......@@ -103,98 +99,58 @@ try {
if(GEN.checkInout({job:job,mode:"test"}) != 0){ throw "the job check" }
GEN.checkInout({job:job,mode:"out"});
}
var step = "unit"
// var layer = "gto_font"
// GEN.workLayer({name:layer,display_number:2,clear_before:'yes'})
// var tmp_con = GEN.MOUSE({type:'r',text:"Please Select"});
// GEN.COM("filter_area_strt")
// GEN.COM("filter_area_xy,x="+tmp_con.x1+",y="+tmp_con.y1)
// GEN.COM("filter_area_xy,x="+tmp_con.x2+",y="+tmp_con.y2)
// GEN.COM("filter_area_end,layer=,filter_name=popup,operation=select,area_type=rectangle,inside_area=yes,intersect_area=no")
// if(GEN.getSelectCount() > 0) {
// var tmp_layer = layer + '_temp'
// // 倾斜文字处理
// // 1. 拷贝到辅助层
// if(GEN.isLayerExists({job:job, layer:tmp_layer})){GEN.deleteLayer({job:job, layer:[tmp_layer]})}
// GEN.selCopyOther({dest:'layer_name',target_layer:tmp_layer})
// GEN.workLayer({name:tmp_layer,display_number:2,clear_before:'yes'})
// GEN.selCopyOther({dest:'layer_name',target_layer:"_ok"})
// var limits = GEN.getLayerLimits({job:job,step:step,layer:tmp_layer, units:"mm"})
// for (var key in limits) {
// limits[key] = limits[key] - 0;
// }
// limits.xc = limits.xmin + limits.xsize/2
// limits.yc = limits.ymin + limits.ysize/2
job = "1";
var step = "cad"
var layer= "drl"
// // 获取里面有几个字母 每一个字母的limits信息
// GEN.selChangeSym({symbol:"r1"})
// GEN.selContourize()
// var feas = GEN.getFeatures({job:job,step:"unit",layer:tmp_layer,options:"feat_index",units:"mm"})
// var limits_info = [];
// feas.forEach(function(item) {
// var index = item.index;
// GEN.selLayerFeat({layer:tmp_layer, index:index,operation:"select"});
// if(GEN.getSelectCount() > 0) {
// var tmp_l = GEN.getLayerLimits({job:job,step:step,layer:tmp_layer, units:"mm", options:"select"})
// for (var key in tmp_l) {
// tmp_l[key] = tmp_l[key] - 0;
// }
// tmp_l.xc = tmp_l.xmin + tmp_l.xsize/2
// tmp_l.yc = tmp_l.ymin + tmp_l.ysize/2
// limits_info.push({index:index, limits:tmp_l })
// GEN.selClearFeature()
// }
// })
// var rodata = []
// limits_info.forEach(function (item, i) {
// if(limits_info[i+1]){
// rodata.push(getRodate({
// xs : item.limits.xc,
// ys : item.limits.yc,
// xe : limits_info[i+1].limits.xc,
// ye : limits_info[i+1].limits.yc
// }))
// }
// })
// var angle = rodata.reduce(function(a,b) {return a + b}) / rodata.length;
// if (Math.abs(angle) < 10) { angle = 0 }
// GEN.workLayer({name:"_ok",display_number:2,clear_before:'yes'});
// GEN.selTransform({mode:'anchor',oper:"rotate",x_anchor:limits.xc,y_anchor:limits.yc,angle:angle})
// // 按照中心放大
// var limits2 = GEN.getLayerLimits({job:job,step:step,layer:tmp_layer, units:"mm"})
// for (var key in limits) {
// limits2[key] = limits2[key] - 0;
// }
// limits2.xc = limits2.xmin + limits2.xsize/2
// limits2.yc = limits2.ymin + limits2.ysize/2
// GEN.selTransform({mode:'anchor',oper:'scale',x_anchor:limits2.xc,y_anchor:limits2.yc,x_scale:1.2,y_scale:1})
// GEN.selTransform({mode:'anchor',oper:"rotate",x_anchor:limits.xc,y_anchor:limits.yc,angle:360 - angle})
// }
if(GEN.isLayerExists({job:job, layer:"pt-rou"})){GEN.deleteLayer({job:'Job',layer:["pt-rou"]})}
if(GEN.isLayerExists({job:job, layer:"ol_tmp"})){GEN.deleteLayer({job:'Job',layer:["ol_tmp"]})}
GEN.createLayer({job:job,layer:'pt-rou',conext:'misc',type:'rout'})
GEN.matrixMoveRow({job:job,layer:'pt-rou',after:'---'})
var feats = GEN.getFeatures({job:job,step:step,layer:layer, options:"feat_index", units:"mm"})
feats.forEach(function(item) {
if(item.type == "line") { // 槽孔
var width = parseFloat(item.symbol.slice(1))
var length = width + Math.sqrt((item.xe - item.xs)*(item.xe - item.xs) + (item.ye - item.ys)*(item.ye - item.ys))
if(item.attributes && item.attributes.indexOf(".drill=non_plated") >= 0) {
if(width >= 6050 || length>= 12000){
GEN.selLayerFeat({layer:layer, index:index,operation:"select"});
if(GEN.getSelectCount() > 0){GEN.selMoveOther({target_layer:'ol_tmp',invert:'no',dx:0,dy:0,size:0})}
}
} else if (item.attributes && item.attributes.indexOf(".drill=plated") >= 0) {
if(width >= 6050 || length>= 12000){
GEN.selLayerFeat({layer:layer, index:index,operation:"select"});
if(GEN.getSelectCount() > 0){GEN.selMoveOther({target_layer:'pt-rou',invert:'no',dx:0,dy:0,size:0})}
}
}
}
if(item.type == "pad") {
var size = parseFloat(item.symbol.slice(1));
if(item.attributes && item.attributes.indexOf(".drill=non_plated") >= 0) {
if(size > 6000 ){
GEN.selLayerFeat({layer:layer, index:index,operation:"select"});
if(GEN.getSelectCount() > 0){GEN.selMoveOther({target_layer:'ol_tmp',invert:'no',dx:0,dy:0,size:0})}
}
} else if (item.attributes && item.attributes.indexOf(".drill=plated") >= 0) {
if(size > 12000 ){
GEN.selLayerFeat({layer:layer, index:index,operation:"select"});
if(GEN.getSelectCount() > 0){GEN.selMoveOther({target_layer:'pt-rou',invert:'no',dx:0,dy:0,size:0})}
}
}
}
})
// IKM.msg(feas[0].feats)
// 将ol_tmp 和 pt-rou的转为非闭合图形
GEN.clearLayers()
GEN.affectedLayer({affected:'yes',layer:["ol_tmp", "pt-rou"], clear_before:"yes"})
GEN.COM("sel_contourize,accuracy=0,break_to_islands=yes,clean_hole_size=0,clean_hole_mode=x_and_y")
GEN.COM("sel_surf2outline,width=1")
GEN.affectedLayer({affected:'no',mode:'all'})
GEN.workLayer({name:'ol_tmp',display_number:2,clear_before:'yes'})
GEN.selMoveOther({target_layer:'ol',invert:'no',dx:0,dy:0,size:0})
// var ret = genMath.profile2Polygon(feas[0].feats)
// COM tools_tab_reset
// COM tools_tab_add,num=1,shape=hole,type=via,min_tol=0,max_tol=1,bit=,drill_size=300
// COM tools_tab_add,num=2,shape=hole,type=via,min_tol=0,max_tol=0,bit=,drill_size=500
// COM tools_tab_add,num=3,shape=hole,type=plate,min_tol=0,max_tol=0,bit=,drill_size=700
// COM tools_tab_add,num=4,shape=hole,type=plate,min_tol=0,max_tol=0,bit=,drill_size=800
// COM tools_tab_add,num=5,shape=hole,type=plate,min_tol=0,max_tol=0,bit=,drill_size=900
// COM tools_tab_add,num=6,shape=hole,type=plate,min_tol=0,max_tol=0,bit=,drill_size=1000
// COM tools_tab_add,num=7,shape=hole,type=nplate,min_tol=0,max_tol=0,bit=,drill_size=1600
// COM tools_tab_add,num=8,shape=hole,type=plate,min_tol=0,max_tol=0,bit=,drill_size=3000
// COM tools_tab_add,num=9,shape=hole,type=nplate,min_tol=0,max_tol=0,bit=,drill_size=3300
// COM tools_set,layer=drl,thickness=3235.96,user_params=,slots=no
setTool({
job:job,
step:step,
layer:"drl_tmp",
callback: function (toolinfo) {
IKM.msg(toolinfo)
}
})
......@@ -228,75 +184,3 @@ try {
return (mode === "aimdfm") ? {status: Status, result_data: resultData} : "Error";
}
function selCopyLayer(props){ // 拷贝选择的到辅助层
var layer = props.layer
var job = props.job
if(GEN.isLayerExists({job:job,layer:layer})){
GEN.deleteLayer({job:job,layer:layer})
}
GEN.selCopyOther({dest:'layer_name',target_layer:layer})
}
function getMinSym(sym) {
var min_size;
for (var key in sym) {
var info = sym[key]
if(info.size){info.size = Number(info.size)}
if(!info.size) {
var width = Number(info.width)
var height = Number(info.height)
info.size = width > height ? height : width;
}
if(info.size) {
if(!min_size){min_size = info.size}
else if (info.size < min_size) {
min_size = info.size
}
}
}
return min_size
}
function getRodate(props){
var xs = props.xs;
var ys = props.ys;
var xe = props.xe;
var ye = props.ye;
var y = ye - ys;
var x = xe - xs;
var r = Math.atan(y / x)
return r*180/Math.PI
}
function setTool(props) {
var job = props.job;
var step = props.step;
var layer = props.layer;
var tool_info = GEN.getTool({job:job, step: step , layer:layer, units:"mm"})
// 操作tool_info
props.callback(tool_info)
GEN.COM("tools_show,layer="+layer)
GEN.COM("tools_tab_reset")
var typehash = {
non_plated:"nplate",
plated:"plate",
via:"via",
laser:"via"
}
Object.keys(tool_info).forEach(function(key){
var item = tool_info[key]
if (item.shape == "hole") {
GEN.COM("tools_tab_add,num="+key
+",shape="+item.shape+",type="+typehash[item.type]+",min_tol="+item.min_tol+
",max_tol="+item.max_tol+",bit=,finish_size="+item.finish_size+
",drill_size="+item.drill_size+",combined=yes,orig_size=0")
} else if (item.shape == "slot") {
GEN.COM("tools_tab_add,num="+key+",shape=slot,type="+typehash[item.type]+",min_tol="+item.min_tol+",max_tol="+item.max_tol+",finish_size="+item.finish_size+
",bit=,drill_size="+item.drill_size+",slot_len="+item.slot_len)
}
})
GEN.COM("tools_set,layer="+layer+",slots=by_length")
}
\ No newline at end of file
This diff is collapsed.
saveMeans({job:job,step:pcs_step,chklist:oChecklistName})
function mkPath(path, list) {
if (list.length) {
var newPath = path + '/' + list.shift()
if (!fs.dirExists(newPath)) {fs.mkdir(newPath)}
return mkPath(newPath, list)
} else {
return path
}
}
function saveMeans(props){
var job = props.job
var custstep = props.step
var chklist = props.chklist
var nact = props.nact
var jobpath = GEN.getJobPath({job: job})
var filter = props.filter
var afterPath = mkPath(jobpath, ["user", "opencam", "steps"])
var steps;
if (custstep) {
steps = [custstep]
} else {
steps = GEN.getStepList({job: job})
}
if(!steps || steps.length==0){
return
}
steps.forEach(function (step) {
var chkPath = mkPath(afterPath, [step, "chk"])
var chks
if (chklist) {chks = [chklist]}else {
chks = GEN.getChecklist({job: job,step: step})
}
if(chks && chks.length){
chks.forEach(function (item, i) {
var afterChkPath = mkPath(chkPath, [item])
var hdr = "{\n\
\"title\": \"" + item + "\",\n\
\"sequence\": " + (i + 1) + "\n\
}"
fs.writeFile(afterChkPath + "/hdr", _.toString(hdr))
var nacts = []
if (nact) {
nacts = [nact]
} else {
var nactCount = GEN.getChklistActCount({job:job,step:step,chklist:item})
for (var i = 0; i < nactCount; i++) {
nacts.push(i+1)
}
}
if(nacts.length > 0){
var actionPath = mkPath(afterChkPath, ["actions"])
nacts.forEach(function(index){
var titleFile = GEN.INFO({
entity_type: "check",
entity_path: job + "/" + step + "/" + item,
data_type: "TITLE",
options: "action=" + index,
parse:'no'
})
var title = fs.readFile(titleFile)
title = title.split("=")[1].trim()
title = title.substring(1, title.length-1)
var nackPath = mkPath(actionPath, [index+"-"+title])
fs.writeFile(nackPath + "/hdr", "{\n\
\"title\": \"" + (index + "-" + title) + "\",\n\
\"sequence\": " + index + ",\n\
\"dfm_name\": \"" + title + "\"\n\
}")
var displayFile = GEN.INFO({
entity_type: 'check',
entity_path: job + "/" + step + "/" + item,
data_type: 'MEAS_DISP_ID',
options: "action=" + index,
parse:'no'
});
fs.writeFile(nackPath + "/disp", fs.readFile(displayFile))
var measFile = GEN.INFO({entity_type:'check', entity_path:job+'/'+step+'/'+item, data_type:'MEAS', options:"index+action="+index, parse:'no'});
var means
if(filter){ // 处理过滤
var fileArray = []
var file = fs.openFile(measFile,'r');
while(!file.atEnd()) {
fileArray.push(file.readLine())
}
if(Array.isArray(filter)){
var nowFilter = filter.filter(function(item2){
for (var key in item2) {
var value = item2[key]
if (!Array.isArray(value)){
item2[key] = [value]
}
}
return item2.step.indexOf(step)>=0 && item2.chk.indexOf(item)>=0 && item2.nact.indexOf(index)>=0
})
if (nowFilter.length > 0){
var nowfilter = nowFilter.map(function(v){return v.filter}).reduce(function(a,b){
b.forEach(function(v2){
if (a.indexOf(v2)<0){
a.push(v2)
}
})
return a
},[])
fileArray = fileArray.filter(function(line){
var flag = false
nowfilter.forEach(function(f){
var reg = new RegExp(f, "ig")
if (reg.test(line)){
flag = true
}
})
return flag
})
}
} else if (typeof filter == "object") {
if (filter[step] && filter[step][item] && filter[step][item][String(index)]) {
var nowFilter = filter[step][item][String(index)]
if (!Array.isArray(nowFilter)){nowFilter = [nowFilter]}
fileArray = fileArray.filter(function(line){
var flag = false
nowFilter.forEach(function(f){
var reg = new RegExp(f, "ig")
if (reg.test(line)){
flag = true
}
})
return flag
})
}
}
means = fileArray.join("\n")
} else {
means = fs.readFile(measFile)
}
fs.writeFile(nackPath + "/meas", means)
})
}
})
}
})
}
// 自定义信息
saveCustChk({job:job,custChk:custChk})
function saveCustChk(props){
var job = props.job
var chkinfo = props.custChk
var path = mkPath(GEN.getJobPath({job: job}), ["user", "opencam", "steps"])
chkinfo.forEach(function(chk){
var ckpath = mkPath(path, [chk.step, "chk","custom_chk"])
// 写入action hdr
fs.writeFile(ckpath+"/hdr", "{\n\
\"title\": \"cust_chk\",\n\
\"sequence\": 0\n\
}")
var actionPath = mkPath(ckpath, ["actions"])
chk.action.forEach(function(action, i){
var nact = i + 1
var nactPath = mkPath(actionPath, [nact+"-"+action.name])
// nactPath 写入 meas hdr display
fs.writeFile(nactPath + "/hdr", "{\n\
\"title\": \"" + (nact + "-" + action.name) + "\",\n\
\"sequence\": " + nact + ",\n\
\"dfm_name\": \"" + action.name + "\"\n\
}")
if (Array.isArray(action.meas)){
action.meas = action.meas.map(function(mea, i){
return mea + " " + nact + " R " + String(i + 1)
})
action.meas = action.meas.join("\n")
} else {
action.meas = action.meas + " " + nact + " G " + 1
}
if (!/string/ig.test(typeof action.disp) ) {
action.disp = action.disp.workLayer + " "+ nact+" "+action.disp.showLayers.join(" ")
}
fs.writeFile(nactPath + "/disp", action.disp)
fs.writeFile(nactPath + "/meas", action.meas)
})
})
}
\ 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