Commit 5fddd5fb authored by Scott Sun's avatar Scott Sun

scott

parent 171681b2
104: d xx - xx -np ## yucca
\ No newline at end of file
* 101: 要密码 多个压缩包
* 103: 多套gerber todo
* 110: 无法创建profile todo
* 115: 缺少层 无法创建profile
* 117: gerber 可以使用 ; tgz 获取matrix会报错:
```js
{"message":"Result of expression 'result[result[item]['drl_start']]' [undefined] is not an object.","lineNumber":701,"sourceId":218669104,"fileName":"D:/TopJS/3.3.1/topjs_modules/topcam.gencom/index.js","expressionBeginOffset":26307,"expressionCaretOffset":26340,"expressionEndOffset":26350}
```
* 118: 多gerber tgz也有问题 todo
* 119: 7z 压缩包
* 122: 无法创建profile 创建过程就报错了
* 124/126 undo gerber+tgz
* 131 undo gerber+tgz
* 133: undo profile
* 136: undo 多套文件
* 140 142 143 unfo profile
* 141 undo 无文件
* 144: 无法创建profile
* 147 148 149 undo profile
\ No newline at end of file
...@@ -816,8 +816,8 @@ try { ...@@ -816,8 +816,8 @@ try {
GEN.copyLayer({source_job:job,source_step:step,source_layer:tmp_gold_info[layer_gold_type],dest_layer:tmp_area_layer,mode:'replace',invert:'no'}); GEN.copyLayer({source_job:job,source_step:step,source_layer:tmp_gold_info[layer_gold_type],dest_layer:tmp_area_layer,mode:'replace',invert:'no'});
GEN.COM("clip_area_strt") GEN.COM("clip_area_strt")
GEN.COM("clip_area_end,layers_mode=layer_name,layer="+tmp_area_layer+",area=profile,area_type=rectangle,inout=outside,contour_cut=yes,margin=0,feat_types=line\;pad\;surface\;arc\;text") GEN.COM("clip_area_end,layers_mode=layer_name,layer="+tmp_area_layer+",area=profile,area_type=rectangle,inout=outside,contour_cut=yes,margin=0,feat_types=line\;pad\;surface\;arc\;text")
var tmp_info = GEN.copperArea({layer1:tmp_gold_info[layer_gold_type],resolution_value:1}) // var tmp_info = GEN.copperArea({layer1:tmp_gold_info[layer_gold_type],resolution_value:25.4})
// var tmp_info = GEN.exposedArea({layer1:item.signalL,mask1:tmp_gold_info[layer_gold_type]}) var tmp_info = GEN.exposedArea({layer1:item.signalL,mask1:tmp_gold_info[layer_gold_type],resolution_value:1})
var tmp_data = {} var tmp_data = {}
if(layer_gold_type == "top") { if(layer_gold_type == "top") {
tmp_data.sf_area_ref_layer_front = tmp_gold_info[layer_gold_type] tmp_data.sf_area_ref_layer_front = tmp_gold_info[layer_gold_type]
...@@ -842,8 +842,8 @@ try { ...@@ -842,8 +842,8 @@ try {
} }
} }
if(item.solderL){ if(item.solderL){
var tmp_info = GEN.copperArea({layer1:item.solderL,resolution_value:1}) // var tmp_info = GEN.copperArea({layer1:item.solderL,resolution_value:1})
// var tmp_info = GEN.exposedArea({layer1:item.signalL,mask1:item.solderL}) var tmp_info = GEN.exposedArea({layer1:item.signalL,mask1:item.solderL,resolution_value:1})
// {"area":"0.73817","percent":"8.986"} // {"area":"0.73817","percent":"8.986"}
var tmp_area = tmp_info.area var tmp_area = tmp_info.area
var tmp_percent = tmp_info.percent; var tmp_percent = tmp_info.percent;
......
...@@ -228,11 +228,31 @@ try { ...@@ -228,11 +228,31 @@ try {
script_info({ progress: 50 }) script_info({ progress: 50 })
err = reName({job:job, matrix:after_sort_matrix, cfg:format_cfg}) err = reName({job:job, matrix:after_sort_matrix, cfg:format_cfg})
if(err){throw err} if(err){throw err}
// 处理 yu cca ftdrillx-x-np
// 设置钻孔 var tmp_step = GEN.getStepList({job:job})
err = setDrill({job:job}) GEN.openStep({job:job,name:tmp_step[0]})
if(err){throw err} var layers = Object.keys(GEN.getMatrix({job:job}))
layers.forEach(function(layer) {
if(/^ftdrill(\d+)-(\d+)-np$/ig.test(layer)) {
var $1 = RegExp.$1;
var $2 = RegExp.$2;
// 1. 将此层改为npth属性
// 2. 将此层合并到 ftdrill(\d+)-(\d+)l(如果有)
GEN.workLayer({name:layer,display_number:2,clear_before:'yes'})
GEN.COM("cur_atr_reset")
GEN.COM("cur_atr_set,attribute=.drill,option=non_plated")
GEN.COM("sel_change_atr,mode=add")
GEN.COM("cur_atr_reset")
var target = "ftdrill"+$1+"-"+$2+"l";
if(GEN.isLayerExists({job:job, layer:target})) {
GEN.copyLayer({source_job:job,source_step:tmp_step[0],source_layer:layer,dest_layer:target,mode:"append"})
GEN.deleteLayer({job:job,layer:[layer]})
} else {
GEN.renameLayer({job:job,layer:layer,new_name:target})
}
}
})
GEN.closeStep()
var tmp_matrix = GEN.getMatrix({job:job}) var tmp_matrix = GEN.getMatrix({job:job})
...@@ -261,6 +281,10 @@ try { ...@@ -261,6 +281,10 @@ try {
} }
}) })
// 设置钻孔
err = setDrill({job:job})
if(err){throw err}
script_info({ result_severity: "format create profile" }) script_info({ result_severity: "format create profile" })
script_info({ progress: 55 }) script_info({ progress: 55 })
var all_layer = Object.keys(tmp_matrix) var all_layer = Object.keys(tmp_matrix)
...@@ -268,7 +292,6 @@ try { ...@@ -268,7 +292,6 @@ try {
if(all_layer.indexOf("outline") >= 0) { profileRule.unshift("outline")} if(all_layer.indexOf("outline") >= 0) { profileRule.unshift("outline")}
if(profileRule){ if(profileRule){
// 判断有没有profile // 判断有没有profile
var tmp_step = GEN.getStepList({job:job})[0] var tmp_step = GEN.getStepList({job:job})[0]
GEN.openStep({job:job, name:tmp_step}) GEN.openStep({job:job, name:tmp_step})
var now_profile = GEN.getProfile({job:job, step:tmp_step}) var now_profile = GEN.getProfile({job:job, step:tmp_step})
...@@ -279,16 +302,6 @@ try { ...@@ -279,16 +302,6 @@ try {
script_info({ result_severity: "创建profile失败" }) script_info({ result_severity: "创建profile失败" })
throw "创建profile失败" throw "创建profile失败"
} }
} else {
var now_matrix = GEN.getMatrix({job:job})
var board_layer = Object.keys(now_matrix).filter(function(v){
return now_matrix[v].context == "board"
})
GEN.affectedLayer({affected:'yes',layer: board_layer, clear_before:"yes"})
GEN.selectByFilter({profile:"out"})
if(GEN.getSelectCount() > 0){
GEN.selDelete()
}
} }
} }
...@@ -478,7 +491,7 @@ function setDrill(props){ // 设置钻孔 ...@@ -478,7 +491,7 @@ function setDrill(props){ // 设置钻孔
} }
function doDrill(drills){ // 分析钻孔层 function doDrill(drills){ // 分析钻孔层
return drills.map(function(v){ return drills.map(function(v){
if(v.name == "drill" || v.name=="rout" || v.name=="outline"){ if(v.name == "ftdrill" || v.name=="rout" || v.name=="outline"){
return {start:findSignal(1), end:findSignal(layerCount), layer:v.name} return {start:findSignal(1), end:findSignal(layerCount), layer:v.name}
} else { } else {
var tmp = /(\d+)-(\d+)/ig.exec(v.name); var tmp = /(\d+)-(\d+)/ig.exec(v.name);
...@@ -509,7 +522,6 @@ function reName(props) { // 改名 par{job:要改名的料号, rule: {要改名 ...@@ -509,7 +522,6 @@ function reName(props) { // 改名 par{job:要改名的料号, rule: {要改名
var new_name; var new_name;
var tl_name = item.tl_name var tl_name = item.tl_name
var rule = item.rule var rule = item.rule
if(rule === tl_name){ if(rule === tl_name){
new_name = item.new_name new_name = item.new_name
} else { } else {
...@@ -521,24 +533,28 @@ function reName(props) { // 改名 par{job:要改名的料号, rule: {要改名 ...@@ -521,24 +533,28 @@ function reName(props) { // 改名 par{job:要改名的料号, rule: {要改名
new_name = item.new_name new_name = item.new_name
var params = {} var params = {}
for(var i = 0; i<replaceArr.length;i++){ for(var i = 0; i<replaceArr.length;i++){
if(/\d+/ig.test(replaceArr[i])) {
params["$"+(i+1)] = replaceArr[i] params["$"+(i+1)] = replaceArr[i]
} else {
params["$"+(i+1)] = "'" + replaceArr[i] + "'"
}
} }
replaceArr.forEach(function(v,i){ replaceArr.forEach(function(v,i){
new_name = new_name.replace("($"+(i+1)+")",v) tl_name = tl_name.replace("($"+(i+1)+")",v)
}) })
// {"tl_name":"d1-10-np","new_name":"ftdrill($1)-($2)-($3)"}
// new_name = replaceTlName(new_name) new_name = replaceTlName(new_name)
// function replaceTlName(name){ function replaceTlName(name){
// var tmp = /(\([^)]*\))/ig.exec(name) var tmp = /(\([^)]*\))/ig.exec(name)
// if(!tmp){ return name } if(!tmp){ return name }
// var param_arr = tmp[1].match(/\$\d+/ig) var param_arr = tmp[1].match(/\$\d+/ig)
// var newname = tmp[1] var newname = tmp[1]
// param_arr.forEach(function(v){ param_arr.forEach(function(v){
// newname = newname.replace(new RegExp("\\"+v,"ig"), params[v]) newname = newname.replace(new RegExp("\\"+v,"ig"), params[v])
// }) })
// newname = name.replace(tmp[1],eval(newname)) newname = name.replace(tmp[1],eval(newname))
// return replaceTlName(newname) return replaceTlName(newname)
// } }
} }
return { return {
orig_name: item.name, orig_name: item.name,
...@@ -701,9 +717,11 @@ function createOutline(props){ ...@@ -701,9 +717,11 @@ function createOutline(props){
GEN.deleteLayer({job:job, layer:tmp_outline2}) GEN.deleteLayer({job:job, layer:tmp_outline2})
if(GEN.isLayerExists({job:job,layer:"outline"})){GEN.deleteLayer({job:job,layer:"outline"})} if(GEN.isLayerExists({job:job,layer:"outline"})){GEN.deleteLayer({job:job,layer:"outline"})}
GEN.renameLayer({job:job, layer:l,new_name:'outline'}) GEN.renameLayer({job:job, layer:l,new_name:'outline'})
GEN.deleteLayer({job:job, layer:l})
return true return true
} }
GEN.deleteLayer({job:job, layer:tmp_layer}) GEN.deleteLayer({job:job, layer:l})
GEN.deleteLayer({job:job, layer:[tmp_layer]})
return false return false
} }
} }
......
...@@ -186,7 +186,6 @@ try { ...@@ -186,7 +186,6 @@ try {
IKM.msg("只分析到一个tgz文件 直接导入") IKM.msg("只分析到一个tgz文件 直接导入")
import_info.push({name:jobInfo.data[0].file.name, type:"odb++", date:now(),user:$.user_name}) import_info.push({name:jobInfo.data[0].file.name, type:"odb++", date:now(),user:$.user_name})
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}
...@@ -276,12 +275,10 @@ try { ...@@ -276,12 +275,10 @@ try {
GEN.COM("input_manual") GEN.COM("input_manual")
importOk = true importOk = true
} }
if(!importOk){ script_info({ result_severity: "import error" }); throw "import error"}
if(!importOk){
script_info({ result_severity: "import error" })
throw "import error"}
script_info({ progress: 20 }) script_info({ progress: 20 })
// 导入结束 reNameStep(job)
if(/2171/.test(par.customer)){
var matrix = GEN.getMatrix({job:job}); var matrix = GEN.getMatrix({job:job});
comp = Object.keys(matrix).filter(function(v){ // 如果有comp层 删除 comp = Object.keys(matrix).filter(function(v){ // 如果有comp层 删除
return /^comp_\+_/ig.test(v) return /^comp_\+_/ig.test(v)
...@@ -292,8 +289,7 @@ try { ...@@ -292,8 +289,7 @@ try {
GEN.COM("delete_comp") GEN.COM("delete_comp")
GEN.closeStep() GEN.closeStep()
} }
}
reNameStep(job)
GEN.checkInout({job:job,mode:"out"}) // 结束保存料号 关闭料号 GEN.checkInout({job:job,mode:"out"}) // 结束保存料号 关闭料号
GEN.saveJob({ job: job }); GEN.saveJob({ job: job });
...@@ -465,9 +461,11 @@ function now(){ ...@@ -465,9 +461,11 @@ function now(){
function reNameStep(job) { function reNameStep(job) {
var stepList = GEN.getStepList({job:job}) var stepList = GEN.getStepList({job:job})
if(!stepList){return}
var pcs = [] var pcs = []
var arr = [] var arr = []
stepList.forEach(function(v){ stepList.forEach(function(v){
if(v){
if(v==="cad"){ if(v==="cad"){
pcs.unshift(v) pcs.unshift(v)
} else if(/pcs|cad|orig|pcb/ig.test(v)){ } else if(/pcs|cad|orig|pcb/ig.test(v)){
...@@ -475,6 +473,7 @@ function reNameStep(job) { ...@@ -475,6 +473,7 @@ function reNameStep(job) {
} else if(/stp|arr/ig.test(v)){ } else if(/stp|arr/ig.test(v)){
arr.push(v) arr.push(v)
} }
}
}) })
pcs.forEach(function(v, i){ pcs.forEach(function(v, i){
if (i==0 && v == "cad") { if (i==0 && v == "cad") {
......
...@@ -126,6 +126,7 @@ ...@@ -126,6 +126,7 @@
"signed_coords": "no", "signed_coords": "no",
"text_line_width": 0.0024 "text_line_width": 0.0024
}, },
"Excellon2_1": { "Excellon2_1": {
"nf1": 3, "nf1": 3,
"nf2": 5, "nf2": 5,
...@@ -286,6 +287,26 @@ ...@@ -286,6 +287,26 @@
"signed_coords": "no", "signed_coords": "no",
"text_line_width": 0.0024 "text_line_width": 0.0024
}, },
"Excellon2_9": {
"nf1": 2,
"nf2": 3,
"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": "inch",
"coordinates": "absolute",
"merge_by_rule": "no",
"signed_coords": "no",
"text_line_width": 0.0024
},
"IPC356_1": { "IPC356_1": {
"nf1": 2, "nf1": 2,
"nf2": 4, "nf2": 4,
...@@ -476,7 +497,15 @@ ...@@ -476,7 +497,15 @@
{ {
"valid": function(props){ "valid": function(props){
var file = props.file; var file = props.file;
return /.+\.art$|\.l\d+$|\.r1$|\.sb$|\.st$/ig.test(file.name) return /\.ncd/ig.test(file.name)
},
"type": "Excellon2",
"format": "Excellon2_9"
},
{
"valid": function(props){
var file = props.file;
return /.+\.art$|\.l\d+$|\.r1$|\.sb$|\.st$|\.d\d+-\d+|\.[bt]sm$|\.drwg$|\.p\d+p$/ig.test(file.name)
}, },
"type": "Gerber274x", "type": "Gerber274x",
"format": "Gerber274x_2", "format": "Gerber274x_2",
...@@ -524,7 +553,7 @@ ...@@ -524,7 +553,7 @@
{ {
"valid": function(props){ "valid": function(props){
var file = props.file; var file = props.file;
return /.+\.drl$|\.d(\d+)-(\d+)/ig.test(file.name) return /.+\.drl$/ig.test(file.name)
}, },
"type": "Excellon2", "type": "Excellon2",
"format": "Excellon2_1", "format": "Excellon2_1",
...@@ -540,6 +569,7 @@ ...@@ -540,6 +569,7 @@
if(/yes/ig.test(trailing)){ if(/yes/ig.test(trailing)){
zeroes = "trailing" zeroes = "trailing"
} }
if(!params.nc_param["OUTPUT_UNITS"]){ params.nc_param["OUTPUT_UNITS"] = params.art_param["OUTPUT_UNITS"]}
return { return {
"nf1": params.nc_param["INTEGER_PLACES"]? Number(params.nc_param["INTEGER_PLACES"]) : 3, "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, "nf2": params.nc_param["DECIMAL_PLACES"]? Number(params.nc_param["DECIMAL_PLACES"]) : 5,
...@@ -565,17 +595,19 @@ ...@@ -565,17 +595,19 @@
} }
], ],
"tl_name": [ "tl_name": [
{"orig_name" : ["^pm_top","paste.pri","assytop\\.art","past_top","paste_top"], "tl_name" : "past_top" }, {"orig_name" : ["^pm_top","paste.pri|pripaste","ppst\\.art|spt\\.art","assy[_-]?top\\.art","past_top","paste_top"], "tl_name" : "past_top" },
{"orig_name" : ["^pm_bot","paste.sec","assybot\\.art","past_bot","paste_bot"], "tl_name" : "past_botm" }, {"orig_name" : ["^pm_bot","paste.sec|secpaste","spst\\.art|spb\\.art","assy[_-]?bott?o?m?\\.art","past_bot","paste_bot"], "tl_name" : "past_botm" },
{"orig_name" : ["silk.pri","pleg\\.art","^ss_top","silk_top"], "tl_name" : "silk_top" }, {"orig_name" : ["silk.pri","pleg\\.art|sst\\.art","^ss_top","silk_top"], "tl_name" : "silk_top" },
{"orig_name" : ["silk.sec","sleg\\.art","^ss_bot","silk_bot"], "tl_name" : "silk_bot" }, {"orig_name" : ["silk.sec","sleg\\.art|ssb\\.art","^ss_bot","silk_bot"], "tl_name" : "silk_bot" },
{"orig_name" : ["\\.st$","mask.top\\.art","mask.pri\\.art","psm\\.art","sm_top"], "tl_name" : "sm_top" }, {"orig_name" : ["\\.st$|\\.tsm$","mask.top\\.art|smt\\.art","mask.pri\\.art","psm\\.art","sm_top"], "tl_name" : "sm_top" },
{"orig_name" : ["\\.sb$","mask.bot\\.art","mask.sec\\.art","ssm\\.art","sm_bot"], "tl_name" : "sm_botm" }, {"orig_name" : ["\\.sb$|\\.bsm$","mask.bot\\.art|smb\\.art","mask.sec\\.art","ssm\\.art","sm_bot"], "tl_name" : "sm_botm" },
{"orig_name" : ["^top$","^top.art$"], "tl_name" : "top" }, {"orig_name" : ["main_board_top\\.art$","^top$","^top.art$"], "tl_name" : "top" },
{"orig_name" : ["\\.l(\\d+)$","^l(\\d+).*\\.art$","^0?(\\d+)_.*\\.art$","^l(\\d+)\\.art$","^0(\\d+).*ccp_ms","^s(\\d+)\\.art","lay(\\d+)\\.art","layer_(\\d+)"], "tl_name" : "l_($1)"}, {"orig_name" : ["int(\\d+)\\.art"], "tl_name" : "l_($1+1)"},
{"orig_name" : ["^bottom$","^bottom\\.art$"], "tl_name" : "bottom" }, {"orig_name" : ["^0?(\\d+)[\\D].*\\.art$","\\.p(\\d+)p$","\\.l(\\d+)$","^l(\\d+).*\\.art$","^l(\\d+)\\.art$","^0(\\d+).*ccp_ms","^s(\\d+)\\.art","laye?r?(\\d+)\\.art","layer_(\\d+)"], "tl_name" : "l_($1)"},
{"orig_name" : ["\\.d(\\d+)-(\\d+)([A-Za-z]+)$"], "tl_name" : "d($1)-($2)-($3)"}, {"orig_name" : ["^bot\\.art$","main_board_bottom\\.art$","^bottom$","^bottom\\.art$"], "tl_name" : "bottom" },
{"orig_name" : ["\\.d(\\d+)-(\\d+)$","-(\\d+)-(\\d+)\\.drl$","(\\d+)-(\\d+)-laser\\.drl$","d(\\d+)-(\\d+)"], "tl_name" : "d_($1)-($2)"}, {"orig_name" : ["(\\d+)-(\\d+)-([A-Za-z]+)\\.drl$","\\.d(\\d+)-(\\d+)([A-Za-z]+)$"], "tl_name" : "d($1)-($2)-($3)"},
{"orig_name" : ["\\.ncd(\\d)-(\\d)$","\\.d(\\d+)-(\\d+)$","-(\\d+)-(\\d+)\\.drl$","(\\d+)-(\\d+)-laser\\.drl$","d(\\d+)-(\\d+)"], "tl_name" : "d_($1)-($2)"},
{"orig_name" : ["\\.ncdthru$"], "tl_name" : "drill" },
{"orig_name" : ["\\.rou$","^rout$"], "tl_name" : "rout" }, {"orig_name" : ["\\.rou$","^rout$"], "tl_name" : "rout" },
{"orig_name" : "fab.art", "tl_name" : "fab.art" }, {"orig_name" : "fab.art", "tl_name" : "fab.art" },
{"orig_name" : ["multipack.art","^array$"], "tl_name" : "array" }, {"orig_name" : ["multipack.art","^array$"], "tl_name" : "array" },
...@@ -584,7 +616,7 @@ ...@@ -584,7 +616,7 @@
{"orig_name" : ["^sst\\.art$","bot-enig","enig_bot"], "tl_name" : "enig_bot" } {"orig_name" : ["^sst\\.art$","bot-enig","enig_bot"], "tl_name" : "enig_bot" }
], ],
"mergerule" : { "mergerule" : {
profile:["past_top"] profile:["past_top","sm_top"]
}, },
"extra": [ "extra": [
{ {
...@@ -623,9 +655,9 @@ ...@@ -623,9 +655,9 @@
laser: "via", laser: "via",
via: "via" via: "via"
} }
Object.keys(toolsInfo).forEach(function(row){ Object.keys(toolsInfo).forEach(function(row, i){
var info = toolsInfo[row]; var info = toolsInfo[row];
var numberrow = row - 1; var numberrow = i;
var type = res[numberrow]? res[numberrow].type.toLowerCase() : info.type.toLowerCase(); var type = res[numberrow]? res[numberrow].type.toLowerCase() : info.type.toLowerCase();
var min_tol = res[numberrow]? Math.abs( res[numberrow].tolerance.split("/")[1] * 1000 ): info.min_tol; var min_tol = res[numberrow]? Math.abs( res[numberrow].tolerance.split("/")[1] * 1000 ): info.min_tol;
var max_tol = res[numberrow]? Math.abs(res[numberrow].tolerance.split("/")[0] * 1000) : info.max_tol; var max_tol = res[numberrow]? Math.abs(res[numberrow].tolerance.split("/")[0] * 1000) : info.max_tol;
......
...@@ -99,61 +99,45 @@ try { ...@@ -99,61 +99,45 @@ try {
if(GEN.checkInout({job:job,mode:"test"}) != 0){ throw "the job check" } if(GEN.checkInout({job:job,mode:"test"}) != 0){ throw "the job check" }
GEN.checkInout({job:job,mode:"out"}); GEN.checkInout({job:job,mode:"out"});
} }
job = "1"; job = "88880017_117";
var step = "cad" var step = "cad"
var layer= "drl" var layer= "drl"
if(GEN.isLayerExists({job:job, layer:"pt-rou"})){GEN.deleteLayer({job:'Job',layer:["pt-rou"]})} var func = "function(prop){return GUI.showForm(prop) }"
if(GEN.isLayerExists({job:job, layer:"ol_tmp"})){GEN.deleteLayer({job:'Job',layer:["ol_tmp"]})} var ret = IKM.command(func, {
GEN.createLayer({job:job,layer:'pt-rou',conext:'misc',type:'rout'}) title: "确认是否加减物件",
GEN.matrixMoveRow({job:job,layer:'pt-rou',after:'---'}) size: "200x120",
var feats = GEN.getFeatures({job:job,step:step,layer:layer, options:"feat_index", units:"mm"}) items: {
feats.forEach(function(item) { name: 'main',
if(item.type == "line") { // 槽孔 type: 'FormGridLayout',
var width = parseFloat(item.symbol.slice(1)) property: { margin: 18, spacing: 20, columns: 2 },
var length = width + Math.sqrt((item.xe - item.xs)*(item.xe - item.xs) + (item.ye - item.ys)*(item.ye - item.ys)) pack: {},
if(item.attributes && item.attributes.indexOf(".drill=non_plated") >= 0) { child: [
if(width >= 6050 || length>= 12000){ {
GEN.selLayerFeat({layer:layer, index:index,operation:"select"}); name: "chanegitem",
if(GEN.getSelectCount() > 0){GEN.selMoveOther({target_layer:'ol_tmp',invert:'no',dx:0,dy:0,size:0})} type: "RadioBox",
} property: {
} else if (item.attributes && item.attributes.indexOf(".drill=plated") >= 0) { item_list:[
if(width >= 6050 || length>= 12000){ {name:"yes", text:"yes"},
GEN.selLayerFeat({layer:layer, index:index,operation:"select"}); {name:"yes", text:"yes"}
if(GEN.getSelectCount() > 0){GEN.selMoveOther({target_layer:'pt-rou',invert:'no',dx:0,dy:0,size:0})} ]
} },
} pack: {
} label: "是否加减物件",
if(item.type == "pad") { column_span: 2,
var size = parseFloat(item.symbol.slice(1)); label_alignment: "Left"
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})}
}
}
}
})
// 将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})
{
type: 'stretch'
}
]
},
values: {},
self: this
}, 1);
IKM.msg(ret)
// 保存 // 保存
if(/yes/ig.test(par.auto_save)){ if(/yes/ig.test(par.auto_save)){
GEN.checkInout({job:job,mode:"out"}) // 结束保存料号 关闭料号 GEN.checkInout({job:job,mode:"out"}) // 结束保存料号 关闭料号
......
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