Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
Scott
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Scott Sun
Scott
Commits
09227f67
Commit
09227f67
authored
Feb 04, 2021
by
Scott Sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
scott
parent
f7696dfa
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
585 additions
and
119 deletions
+585
-119
test.js
GUI测试/test.js
+475
-66
ATS_AIM_customer_data_analysis.js
ats/topcam/ATS_AIM_customer_data_analysis.js
+28
-21
ATS_AIM_data_format.js
ats/topcam/ATS_AIM_data_format.js
+22
-10
ATS_AIM_data_input.js
ats/topcam/ATS_AIM_data_input.js
+47
-9
config_ats.js
ats/topcam/config_ats.js
+13
-13
No files found.
GUI测试/test.js
View file @
09227f67
...
...
@@ -3,74 +3,483 @@ var plugin = require('topsin.gengui');
var
gui
=
plugin
.
newGui
(
plugin
.
__dirname
);
// var tmplayers = gui.selectLayer({
// title: '请选择需拼片原稿层',
// layermatrix: {
// layer1: {
// context:"board",
// row: 1,
// name: "layer1",
// layer_type: "inner"
// },
// layer2: {
// context:"misc",
// row: 2,
// name: "layer2",
// layer_type: "outer"
// }
// },
// layertype: "_default",
// layertypelist: [{
// name: "_default",
// display_name: "_default",
// filter: function (x) {
// return true
// }
// }, ],
// selectmode: 'multiple',
// filter: ".*", // regular expression
// selectmode: "single", // single, multiple
// context: "all", // all, board, misc
// defaultsize: [600, 400], // window size
// gen:null
// });
// console.log(tmplayers);
r
=
gui
.
showForm
({
title
:
"form example"
,
ui
:
{
type
:
'ScrollArea'
,
property
:
{
widget_resizable
:
true
,
frame_shape
:
'NoFrame'
,
align
:
'Top'
},
child
:
{
type
:
'VBoxLayout'
,
property
:
{
margin
:
2
,
spacing
:
20
,
align
:
'Top'
},
pack
:
{
stretch
:
0
},
child
:
[{
type
:
"FormGridLayout"
,
property
:
{
columns
:
2
,
label_alignment
:
'Top | Right'
,
margin
:
10
,
spacing
:
20
},
pack
:
{
stretch
:
0
},
child
:
[
{
name
:
"org_list"
,
type
:
"TableView"
,
pack
:
{
column_span
:
2
,
},
property
:
{
enabled
:
true
,
alternating_row_colors
:
true
,
auto_scroll
:
true
,
data_key_list
:
[
"layer_name"
,
"drill_type"
,
"finish_size"
,
"pcs_count"
,
"array_count"
],
data_keys
:
[
"layer_name"
,
"drill_type"
,
"finish_size"
,
"pcs_count"
,
"array_count"
],
values
:
[
{},
{
"name"
:
"layer_name"
,
"display"
:
"Layer Name"
,
"displayRole"
:
"$layer_name"
,
'resizeMode'
:
'Interactive'
,
"size"
:
"100"
},
{
"name"
:
"drill_type"
,
'resizeMode'
:
'Interactive'
,
"display"
:
"PTH"
,
"displayRole"
:
"$drill_type"
,
"size"
:
"100"
},
{
"name"
:
"finish_size"
,
"display"
:
"Drill size(mm)"
,
"displayRole"
:
"$finish_size"
,
"resizeMode"
:
"ResizeToContents"
,
},
{
"name"
:
"pcs_count"
,
"display"
:
"Qty.(CRD)"
,
"displayRole"
:
"$pcs_count"
,
'resizeMode'
:
'Interactive'
,
"size"
:
"100"
},
{
"name"
:
"array_count"
,
"display"
:
"Qty.(Array)"
,
"displayRole"
:
"$array_count"
,
"size"
:
"100"
}
]
},
initCallback
:
function
(
obj
)
{
obj
.
setDataKeyList
([
"layer_name"
,
"drill_type"
,
"finish_size"
,
"pcs_count"
,
"array_count"
]);
obj
.
setHeaderItem
(
[
{
"name"
:
"layer_name"
,
"display"
:
"Layer Name"
,
"displayRole"
:
"$layer_name"
,
"size"
:
"100"
},
{
"name"
:
"drill_type"
,
"display"
:
"PTH"
,
"displayRole"
:
"$drill_type"
,
"size"
:
"100"
},
{
"name"
:
"finish_size"
,
"display"
:
"Drill size(mm)"
,
"displayRole"
:
"$finish_size"
,
"resizeMode"
:
"ResizeToContents"
,
},
{
"name"
:
"pcs_count"
,
"display"
:
"Qty.(CRD)"
,
"displayRole"
:
"$pcs_count"
,
"size"
:
"100"
},
{
"name"
:
"array_count"
,
"display"
:
"Qty.(Array)"
,
"displayRole"
:
"$array_count"
,
"size"
:
"100"
}
]
);
},
// setter: function (obj, value, self) {
// if (_.isEmpty(value)) {
// this.setState("org_list", "hide");
// this.getObject("org_list").setData("value", []);
// } else {
// this.setState("org_list", "show");
// this.getObject("org_list").setData("value", value);
// }
// },
// getter: function (obj, self) {
// return obj.allDataMap();
// }
}
]
},
{
type
:
'stretch'
}
]
}
},
data
:
{},
runnow
:
true
,
includehide
:
false
,
buttons
:
[{
stock
:
"ok"
,
sensitive
:
true
,
command
:
function
(
data
)
{
r
=
gui
.
selectLayer
({
title
:
"+1s"
,
filter
:
".*"
,
// regular expression
selectmode
:
"single"
,
// single, multiple
// context: "all", // all, board, misc
// layertype: "inner", // default type of layertypelist
defaultsize
:
[
600
,
400
],
// window size
layermatrix
:
{
layer1
:
{
context
:
"board"
,
row
:
1
,
name
:
"layer1"
,
layer_type
:
"inner"
}
},
layer2
:
{
row
:
2
,
name
:
"layer2"
,
layer_type
:
"outer"
{
stock
:
"cancel"
,
sensitive
:
true
,
command
:
function
(
ddata
)
{
}
},
layer3
:
{
context
:
"misc"
,
row
:
3
,
name
:
"layer3"
,
layer_type
:
"inner"
{
stock
:
"help"
,
sensitive
:
true
,
command
:
function
(
data
)
{
console
.
log
(
data
);
}
}
},
layertypelist
:
[
{
name
:
"inner"
,
display_name
:
"Inner"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"inner"
;
}},
{
name
:
"all"
,
display_name
:
"All"
,
filter
:
function
(
x
)
{
return
true
;
}},
{
name
:
"outer"
,
display_name
:
"Outer"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"outer"
;
}}
],
hook
:
function
(
data
)
{},
gen
:
null
});
\ No newline at end of file
});
console
.
log
(
r
);
// return [
// {
// type: "FormGridLayout",
// property: {
// label_alignment: 'AlignTop | AlignRight',
// horizontal_spacing: 20,
// vertical_spacing: 10,
// margin: 20
// },
// child: [
// {
// name: "id",
// type: "LineEdit",
// title: self.ttr("Layer Name"),
// state: function (obj, self) {
// return "hide";
// }
// },
// {
// name: "layer_name",
// type: "LineEdit",
// title: self.ttr("Layer Name")
// },
// {
// name: "attr_data.org_layer_name",
// type: "LineEdit",
// title: self.ttr("Org Layer Name")
// },
// {
// name: "mm.finish_size",
// type: "DoubleLineEdit",
// title: self.ttr("Drill size(mm)"),
// validate: function (obj, val, title, moment, self) {
// if (val != undefined && val != null && val != "") {
// var milFinishSize = _.toNumber(val) * 1000 / 25.4;
// milFinishSize = milFinishSize.toFixed(self.config("precision.mil.finish_size"));
// this.getObject("mil.finish_size").setData("value", milFinishSize);
// this.getObject("finish_size").setData("value", _.toNumber(val) * 1000);
// } else {
// this.getObject("mil.finish_size").setData("value", null);
// this.getObject("finish_size").setData("value", null);
// }
// }
// },
// {
// name: "mil.finish_size",
// type: "DoubleLineEdit",
// title: self.ttr("Drill size(mil)"),
// property: {
// enabled: false
// }
// },
// {
// name: "finish_size",
// type: "DoubleLineEdit",
// title: self.ttr("33Drill size(mil)"),
// state: function (obj, self) {
// return "hide";
// }
// },
// {
// name: "mm.finish_slot_length",
// type: "DoubleLineEdit",
// title: self.ttr("Finish Slot Length"),
// validate: function (obj, val, title, moment, self) {
// if (val != undefined && val != null && val != "") {
// var finishSlotLength = (_.toNumber(val) * 1000).toFixed(self.config("precision.mm.finish_slot_length"));
// this.getObject("finish_slot_length").setData("value", finishSlotLength);
// } else {
// this.getObject("finish_slot_length").setData("value", null);
// }
// }
// },
// {
// name: "finish_slot_length",
// type: "DoubleLineEdit",
// title: self.ttr("Finish Slot Length"),
// state: function (obj, self) {
// return "hide";
// }
// },
// {
// name: "tool_type",
// type: "ComboBox",
// title: self.ttr("Round/slot"),
// property: {
// item_list: TOPENM.enumList("pdm-job-drill-table-tool-type").toComboList()
// }
// },
// {
// name: "drill_type",
// type: "ComboBox",
// title: self.ttr("PTH"),
// property: {
// item_list: TOPENM.enumList("pdm-job-drill-table-drill-type").toComboList()
// },
// validate: function (obj, val, title, moment, self) {
// var CRUD = this.getValue("CRUD");
// if (!/create/i.test(CRUD)) {
// return;
// }
// function numToString(num, digit) {
// numchar = num.toString();
// s = digit - numchar.length;
// var ch = "";
// for (i = 0; i < s; i++) {
// ch += "0";
// }
// return ch + numchar;
// };
// if (val == "laser") {
// this.getObject("tool_num").setData("value", "T01");
// } else {
// var allData = self.allTableDataMap();
// var max = 0;
// _.forEach(allData, function (item) {
// if (item["drill_type"] != "laser" && item["CRUD"] != "create") {
// var tool_num = item["tool_num"];
// var toolNum = _.toNumber(tool_num.replace(/\D/g, ""));
// max = max > toolNum ? max : toolNum;
// }
// })
// max += 1;
// this.getObject("tool_num").setData("value", _.format("T{0}", numToString(max, 2)));
// }
// }
// },
// {
// name: "attr_data.allowance",
// type: "LineEdit",
// title: self.ttr("allowance")
// },
// {
// name: "size_tol_upper",
// type: "DoubleLineEdit",
// title: self.ttr("Tol.+")
// },
// {
// name: "size_tol_lower",
// type: "DoubleLineEdit",
// title: self.ttr("Tol.-")
// },
// {
// name: "pcs_count",
// type: "IntLineEdit",
// title: self.ttr("Qty.(CRD)")
// },
// {
// name: "array_count",
// type: "IntLineEdit",
// title: self.ttr("Qty.(Array)")
// },
// {
// name: "panel_count",
// type: "IntLineEdit",
// title: self.ttr("Qty.(Panel)")
// },
// {
// name: "mm.drill_size",
// type: "DoubleLineEdit",
// title: self.ttr("Drill bit(mm)"),
// validate: function (obj, val, title, moment, self) {
// if (val != undefined && val != null && val != "") {
// var finishSlotLength = (_.toNumber(val) * 1000).toFixed(self.config("precision.mm.drill_size"));
// this.getObject("drill_size").setData("value", finishSlotLength);
// } else {
// this.getObject("drill_size").setData("value", null);
// }
// }
// },
// {
// name: "drill_size",
// type: "DoubleLineEdit",
// title: self.ttr("Drill bit(mm)"),
// state: function (obj, self) {
// return "hide";
// }
// },
// {
// name: "mm.drill_slot_length",
// type: "DoubleLineEdit",
// title: self.ttr("Drill Slot Length"),
// validate: function (obj, val, title, moment, self) {
// if (val != undefined && val != null && val != "") {
// var finishSlotLength = (_.toNumber(val) * 1000).toFixed(self.config("precision.mm.drill_slot_length"));
// this.getObject("drill_slot_length").setData("value", finishSlotLength);
// } else {
// this.getObject("drill_slot_length").setData("value", null);
// }
// }
// },
// {
// name: "drill_slot_length",
// type: "DoubleLineEdit",
// title: self.ttr("Drill Slot Length"),
// state: function (obj, self) {
// return "hide";
// }
// },
// {
// name: "attr_data.org_list",
// type: "TableView",
// title: self.ttr("Combine Data List"),
// initCallback: function (obj, self) {
// obj.setDataKeyList(["layer_name", "drill_type", "finish_size", "pcs_count", "array_count"]);
// obj.setHeaderItem(
// [
// {
// },
// {
// "name": "layer_name",
// "display": self.ttr("Layer Name"),
// "displayRole": "$layer_name",
// "size": "100"
// },
// {
// "name": "drill_type",
// "display": self.ttr("PTH"),
// "displayRole": "$drill_type",
// "size": "100"
// },
// {
// "name": "finish_size",
// "display": self.ttr("Drill size(mm)"),
// "displayRole": "$finish_size",
// "resizeMode": "ResizeToContents",
// },
// {
// "name": "pcs_count",
// "display": self.ttr("Qty.(CRD)"),
// "displayRole": "$pcs_count",
// "size": "100"
// },
// {
// "name": "array_count",
// "display": self.ttr("Qty.(Array)"),
// "displayRole": "$array_count",
// "size": "100"
// }
// ]
// );
// },
// setter: function (obj, value, self) {
// if (_.isEmpty(value)) {
// this.setState("attr_data.org_list", "hide");
// this.getObject("attr_data.org_list").setData("value", []);
// } else {
// this.setState("attr_data.org_list", "show");
// this.getObject("attr_data.org_list").setData("value", value);
// }
// },
// getter: function (obj, self) {
// return obj.allDataMap();
// }
// },
// {
// name: "attr_data.depth_drilling",
// type: "ComboBox",
// title: self.ttr("Depth Drilling"),
// property: {
// item_list: [
// { name: "yes", text: "Yes" },
// { name: "no", text: "No" }
// ]
// },
// validate: function (obj, val, title, moment, self) {
// if (val == "yes") {
// this.setState("attr_data.depth_drilling_side", "show")
// } else {
// this.setState("attr_data.depth_drilling_side", "hide")
// this.getObject("attr_data.depth_drilling_side").setData("value", "");
// }
// }
// },
// {
// name: "attr_data.depth_drilling_side",
// type: "ComboBox",
// title: self.ttr("Depth Drilling Side"),
// property: {
// item_list: [
// { name: "front", text: "Front" },
// { name: "back", text: "Back" }
// ]
// }
// },
// {
// name: "CRUD",
// type: "LineEdit",
// state: function (obj, self) {
// return 'hide';
// }
// },
// {
// name: "tool_num",
// type: "LineEdit",
// state: function (obj, self) {
// return 'hide';
// }
// },
// {
// type: "Stretch"
// }
// ]
// }
// ]
\ No newline at end of file
ats/topcam/ATS_AIM_customer_data_analysis.js
View file @
09227f67
...
...
@@ -487,6 +487,14 @@ try {
var
type
=
(
v
==
"enig_top"
)
?
"top"
:
"bot"
return
{
name
:
v
,
type
:
type
}
})
}
else
{
gold_fingers
=
Object
.
keys
(
tmp_matrix
).
filter
(
function
(
v
){
return
/^past_top$|^past_botm$/ig
.
test
(
v
)})
if
(
gold_fingers
.
length
){
gold_fingers
=
gold_fingers
.
map
(
function
(
v
){
var
type
=
(
v
==
"past_top"
)
?
"top"
:
"bot"
return
{
name
:
v
,
type
:
type
}
})
}
}
ALL
.
gold_fingers
=
gold_fingers
GEN
.
closeStep
()
...
...
@@ -899,7 +907,7 @@ try {
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.exposedArea({layer1:item.signalL,mask1:tmp_gold_info[layer_gold_type],resolution_value:1})
var
tmp_info
=
GEN
.
exposedArea
({
mask1
:
item
.
signalL
,
layer
1
:
tmp_gold_info
[
layer_gold_type
],
resolution_value
:
1
})
var
tmp_info
=
GEN
.
exposedArea
({
layer1
:
item
.
signalL
,
mask
1
:
tmp_gold_info
[
layer_gold_type
],
resolution_value
:
1
})
var
tmp_data
=
{}
if
(
layer_gold_type
==
"top"
)
{
tmp_data
.
sf_area_ref_layer_front
=
tmp_gold_info
[
layer_gold_type
]
...
...
@@ -925,7 +933,7 @@ try {
}
if
(
item
.
solderL
){
// var tmp_info = GEN.copperArea({layer1:item.solderL,resolution_value:1})
var
tmp_info
=
GEN
.
exposedArea
({
mask1
:
item
.
signalL
,
layer
1
:
item
.
solderL
,
resolution_value
:
1
})
var
tmp_info
=
GEN
.
exposedArea
({
layer1
:
item
.
signalL
,
mask
1
:
item
.
solderL
,
resolution_value
:
1
})
// var tmp_info = GEN.exposedArea({layer1:item.signalL,mask1:item.solderL,resolution_value:1})
// {"area":"0.73817","percent":"8.986"}
var
tmp_area
=
tmp_info
.
area
...
...
@@ -940,7 +948,7 @@ try {
layer
:
item
.
signalL
,
layerinfohash
:
{
ref_layer
:
item
.
solderL
,
exposed_area
:
(
tmp_area
*
1.1
*
645.16
/
10000
).
toFixed
(
4
)
exposed_area
:
(
tmp_area
*
645.16
/
10000
).
toFixed
(
4
)
}
})
}
...
...
@@ -1962,27 +1970,26 @@ function analysis(props){
return
"_todo"
}
T_m_p
.
prototype
.
analysis_gold_finger
=
function
(){
//
if
(
!
ALL
.
gold_fingers
){
return
"no"
}
return
ALL
.
gold_fingers
.
length
>
0
?
"yes"
:
"no"
return
"no"
}
T_m_p
.
prototype
.
analysis_glod_finger_area
=
function
(){
//
if
(
ALL
.
gold_fingers
.
length
>
0
){
GEN
.
openStep
({
job
:
this
.
job
,
name
:
this
.
pcs_step
})
var
gold_finger_area
=
{}
var
res
=
0
;
ALL
.
gold_fingers
.
forEach
(
function
(
item
){
var
tmp
=
GEN
.
copperArea
({
layer1
:
item
.
name
,
resolution_value
:
1
}).
percent
res
+=
Number
(
tmp
)
// var tmp = GEN.copperArea({layer1:item.name}).percent + "%"
// var key = item.type == "top" ? "sf_area_gold_area_front" : "sf_area_gold_area_back"
// gold_finger_area[key] = tmp
})
GEN
.
closeStep
()
if
(
res
){
return
String
(
res
.
toFixed
(
4
))
+
"%"
}
//
if(ALL.gold_fingers.length > 0){
//
GEN.openStep({job:this.job, name:this.pcs_step})
//
var gold_finger_area = {}
//
var res = 0;
//
ALL.gold_fingers.forEach(function(item){
//
var tmp = GEN.copperArea({layer1:item.name,resolution_value:1}).percent
//
res += Number(tmp)
//
// var tmp = GEN.copperArea({layer1:item.name}).percent + "%"
//
// var key = item.type == "top" ? "sf_area_gold_area_front" : "sf_area_gold_area_back"
//
// gold_finger_area[key] = tmp
//
})
//
GEN.closeStep()
//
if(res){
//
return String(res.toFixed(4)) + "%"
//
}
}
//
}
return
"_todo"
}
T_m_p
.
prototype
.
analysis_ATS_sm_side
=
function
(){
// 检查防焊层所在面次
...
...
ats/topcam/ATS_AIM_data_format.js
View file @
09227f67
...
...
@@ -424,9 +424,10 @@ try {
GEN
.
workLayer
({
name
:
"outline"
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selAllFeat
()
if
(
GEN
.
getSelectCount
()
>
0
)
{
// GEN.COM("sel_create_profile,create_profile_with_holes=no")
// cutting data
createOutline
({
job
:
job
,
step
:
tmp_step
,
profileRule
:[
"^outline$"
]})
// GEN.COM("sel_create_profile,create_profile_with_holes=no");
// if(!hasProfle({job:job, step:tmp_step})){
createOutline
({
job
:
job
,
step
:
tmp_step
,
profileRule
:[
"^outline$"
]});
// }
}
else
{
createOutline
({
job
:
job
,
step
:
tmp_step
,
profileRule
:
profileRule
})
}
}
else
{
...
...
@@ -439,10 +440,10 @@ try {
GEN
.
workLayer
({
name
:
"outline"
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selAllFeat
()
if
(
GEN
.
getSelectCount
()
>
0
)
{
GEN
.
COM
(
"sel_create_profile,create_profile_with_holes=no"
);
if
(
!
hasProfle
({
job
:
job
,
step
:
tmp_step
})){
createOutline
({
job
:
job
,
step
:
tmp_step
,
profileRule
:[
"^outline$"
]})
}
//
GEN.COM("sel_create_profile,create_profile_with_holes=no");
//
if(!hasProfle({job:job, step:tmp_step})){
createOutline
({
job
:
job
,
step
:
tmp_step
,
profileRule
:[
"^outline$"
]})
//
}
}
else
{
createOutline
({
job
:
job
,
step
:
tmp_step
,
profileRule
:
profileRule
})
}
}
else
if
(
contours
.
length
)
{
...
...
@@ -459,7 +460,15 @@ try {
GEN
.
selAllFeat
()
if
(
GEN
.
getSelectCount
()
>
0
)
{
GEN
.
COM
(
"sel_create_profile,create_profile_with_holes=no"
)
}
}
else
if
(
all_layer
.
indexOf
(
"array"
)
>=
0
)
{
createOutline
({
job
:
job
,
step
:
tmp_step
,
profileRule
:[
"^array$"
]})
GEN
.
workLayer
({
name
:
"array"
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selAllFeat
()
if
(
GEN
.
getSelectCount
()
>
0
)
{
// GEN.COM("sel_create_profile,create_profile_with_holes=no");
// if(!hasProfle({job:job, step:tmp_step})){
createOutline
({
job
:
job
,
step
:
tmp_step
,
profileRule
:[
"^array$"
]})
// }
}
else
{
createOutline
({
job
:
job
,
step
:
tmp_step
,
profileRule
:
profileRule
})
}
}
else
if
(
all_layer
.
indexOf
(
"top"
)
>=
0
)
{
GEN
.
selClearFeature
()
GEN
.
workLayer
({
name
:
"top"
,
display_number
:
2
,
clear_before
:
'yes'
})
...
...
@@ -501,7 +510,10 @@ try {
if
(
GEN
.
GEN_TYPE
==
"genesis"
){
GEN
.
selCreateProfile
()
}
else
{
GEN
.
COM
(
"sel_create_profile,create_profile_with_holes=no"
)
// GEN.COM("sel_create_profile,create_profile_with_holes=no")
// if(!hasProfle({job:job, step:tmp_step})){
createOutline
({
job
:
job
,
step
:
tmp_step
,
profileRule
:[
"^outline$"
]})
// }
}
}
}
...
...
@@ -1173,5 +1185,5 @@ function sendEmail(msg) {
function hasProfle(props) {
var now_profile = GEN.getProfile({job:props.job, step:props.step})
return now_profile.match(/
\n
/ig).length != 1
return now_profile
&& now_profile.match(/
\n
/ig) && now_profile
.match(/
\n
/ig).length != 1
}
\ No newline at end of file
ats/topcam/ATS_AIM_data_input.js
View file @
09227f67
...
...
@@ -229,7 +229,9 @@ try {
throw
"file error"
}
var
importOk
=
false
;
// 是否成功导入
script_info
({
progress
:
10
})
script_info
({
progress
:
10
});
script_info
({
result_severity
:
"ok"
})
if
(
/odb/ig
.
test
(
jobInfo
.
type
)){
// odb导入
script_info
({
msg
:
"Import odb++"
,
result_severity
:
"error"
});
global
.
_ERRORMAG
=
"Fail to import odb++"
;
...
...
@@ -310,8 +312,38 @@ try {
if
(
/gerber/ig
.
test
(
jobInfo
.
type
)){
// gerber导入
script_info
({
msg
:
"Import gerber"
,
result_severity
:
"error"
});
global
.
_ERRORMAG
=
"Fail to import gerber"
;
GEN
.
createJob
({
name
:
job
,
db
:
custCfg
.
db
})
GEN
.
createStep
({
job
:
job
,
name
:
step
})
GEN
.
createJob
({
name
:
job
,
db
:
custCfg
.
db
});
// GEN.COM("new_job,name="+job+",db="+custCfg.db+",customer=,disp_name=,notes=,attributes=")
GEN
.
createStep
({
job
:
job
,
name
:
step
});
// GEN.renameStep({job:job,name:'org',new_name:'cad'})
// GEN.COM("disp_on")
// GEN.COM("origin_on")
// GEN.COM("check_inout,mode=out,type=job,job="+job)
// GEN.COM("check_inout,mode=out,type=job,job="+job)
// GEN.COM("open_job,job="+job+",open_win=yes,disk_map=,job_map=")
// GEN.COM("check_inout,job="+job+",mode=out,ent_type=job")
// GEN.AUX("set_group,group=99")
// GEN.COM("set_step,name=org")
// GEN.COM("open_group,job="+job+",step=org,is_sym=no")
// GEN.AUX("set_group,group=0")
// GEN.COM("open_entity,job="+job+",type=step,name=org,iconic=no")
// GEN.COM("set_subsystem,name=ReadIn")
// GEN.COM("input_create,path=/incam_db/"+custCfg.db+"/jobs/"+job+"/input")
// GEN.COM("open_job,job="+job+",open_win=yes,disk_map=,job_map=")
// GEN.COM("disp_on")
// GEN.COM("origin_on")
// GEN.COM("disp_on")
// GEN.COM("origin_on")
// GEN.COM("create_entity,job="+job+",name="+step+",db=,is_fw=no,type=step,fw_type=form")
// GEN.COM("disp_on")
// GEN.COM("origin_on")
// GEN.COM("disp_on")
// GEN.COM("origin_on")
// GEN.COM("show_tab,tab=Script,show=yes")
jobInfo
.
data
=
jobInfo
.
data
.
filter
(
function
(
v
){
return
v
.
format
})
var
gerberInfo
=
jobInfo
.
data
.
map
(
function
(
item
){
var
gerberCfg
=
JSON
.
parse
(
JSON
.
stringify
(
item
.
format
));
var
file
=
item
.
file
...
...
@@ -347,6 +379,8 @@ try {
}
if
(
!
importOk
){
throw
"import error"
}
script_info
({
progress
:
20
})
script_info
({
result_severity
:
"ok"
})
global
.
_ERRORMAG
=
null
;
reNameStep
(
job
)
if
(
/2171/
.
test
(
par
.
customer
)){
...
...
@@ -401,6 +435,8 @@ try {
// name type date user
resultData
.
push
({
type
:
"info"
,
title
:
"导入资料列表"
,
detail
:
[{
desc
:
import_html
}]
})
script_info
({
msg
:
"Data Readin"
})
script_info
({
result_severity
:
"ok"
})
if
(
mode
===
"aimdfm"
)
{
$
.
QDfm
.
updateRow
({
table
:
"pdm_aimdfm_task"
,
...
...
@@ -610,7 +646,7 @@ function decompression(path, zips) {
var
files
=
fs
.
listDir
(
path
)
var
count
=
0
;
var
zipfiles
=
files
.
filter
(
function
(
item
){
if
(
item
.
suffix
==
"zip"
||
item
.
suffix
==
"rar"
||
item
.
suffix
==
"7z"
||
item
.
suffix
==
"ZIP"
)
{
if
(
/zip/ig
.
test
(
item
.
suffix
)
||
item
.
suffix
==
"rar"
||
item
.
suffix
==
"7z"
||
item
.
suffix
==
"ZIP"
)
{
inputState
.
push
(
item
.
suffix
);
console
.
log
(
"--->path:"
+
item
.
path
)
if
(
zips
.
indexOf
(
item
.
path
)
<
0
){
...
...
@@ -621,7 +657,7 @@ function decompression(path, zips) {
fs
.
rename
(
item
.
path
,
item
.
dir
+
"/"
+
mvname
);
item
.
path
=
item
.
dir
+
"/"
+
mvname
}
var
dir_name
=
item
.
path
.
replace
(
/
\.(
zip|7z|rar
)
$/ig
,
""
);
var
dir_name
=
item
.
path
.
replace
(
/
\.(
zip
x|zip
|7z|rar
)
$/ig
,
""
);
autoUn
(
item
.
path
,
dir_name
);
return
true
}
...
...
@@ -678,12 +714,14 @@ function changePath2(filePath){
tmp
.
push
(
obj
);
}
}
var
list
=
[];
for
(
var
i
=
tmp
.
length
-
1
;
i
>=
0
;
i
--
){
var
newFileName
=
tmp
[
i
].
fileName
.
replace
(
/
\s
*/g
,
''
);
//去除文件名中空格
newFileName
=
newFileName
.
replace
(
/
\?
/g
,
''
);
//去除文件名中?
var
newPath
=
tmp
[
i
].
path
.
replace
(
/^
(
.*
)\/[^\/]
*$/
,
"$1"
);
var
file
=
fs
.
rename
(
tmp
[
i
].
path
,
newPath
+
'/'
+
newFileName
);
list
.
push
(
file
);
}
if
(
tmp
[
i
].
path
!=
(
newPath
+
'/'
+
newFileName
)){
fs
.
rmdir
(
newPath
+
'/'
+
newFileName
)
fs
.
rename
(
tmp
[
i
].
path
,
newPath
+
'/'
+
newFileName
);
}
}
}
\ No newline at end of file
ats/topcam/config_ats.js
View file @
09227f67
...
...
@@ -603,15 +603,15 @@
{
"orig_name"
:
[
"^pm_bot"
,
"spps
\\
.gbr$|paste.sec|secpaste|solderpaste_bottom"
,
"spst
\\
.art|spb
\\
.art"
,
"assy[_-]?bott?o?m?
\\
.art"
,
"past_bot"
,
"paste_bot|spb"
],
"tl_name"
:
"past_botm"
},
{
"orig_name"
:
[
"silk.pri"
,
"pleg
\\
.art|sst
\\
.art"
,
"^ss_top|sscs
\\
.gbr$"
,
"silk_top|sst"
],
"tl_name"
:
"silk_top"
},
{
"orig_name"
:
[
"silk.sec"
,
"sleg
\\
.art|ssb
\\
.art"
,
"^ss_bot|ssps
\\
.gbr$"
,
"silk_bot|ssb"
],
"tl_name"
:
"silk_bot"
},
{
"orig_name"
:
[
"
\\
.st$|
\\
.tsm$|soldermask_top"
,
"mask.top
\\
.art|smt
\\
.art"
,
"mask.pri
\\
.art|smcs
\\
.gbr$"
,
"psm
\\
.art"
,
"sm_top|
smt"
],
"tl_name"
:
"sm_top"
},
{
"orig_name"
:
[
"
\\
.sb$|
\\
.bsm$|soldermask_bottom"
,
"mask.bot
\\
.art|smb
\\
.art"
,
"mask.sec
\\
.art|smps
\\
.gbr$"
,
"ssm
\\
.art"
,
"sm_bot|
smb"
],
"tl_name"
:
"sm_botm"
},
{
"orig_name"
:
[
"
^tm
\\
.art$|
\\
.st$|
\\
.tsm$|soldermask_top"
,
"mask.top
\\
.art|smt
\\
.art"
,
"mask.pri
\\
.art|smcs
\\
.gbr$"
,
"psm
\\
.art"
,
"sm_top|^
smt"
],
"tl_name"
:
"sm_top"
},
{
"orig_name"
:
[
"
^bm
\\
.art$|
\\
.sb$|
\\
.bsm$|soldermask_bottom"
,
"mask.bot
\\
.art|smb
\\
.art"
,
"mask.sec
\\
.art|smps
\\
.gbr$"
,
"ssm
\\
.art"
,
"sm_bot|^
smb"
],
"tl_name"
:
"sm_botm"
},
{
"orig_name"
:
[
"^(?:(?!assy|enig|pm|past|ss|silk|sm|soldermask).)+_top
\
.art$"
,
"^top$"
,
"^top.art$"
],
"tl_name"
:
"top"
},
{
"orig_name"
:
[
"^(?:(?!assy|enig|pm|past|ss|silk|sm|soldermask).)+_bottom
\
.art$"
,
"^bot
\\
.art$"
,
"^bottom$"
,
"^bottom
\\
.art$"
],
"tl_name"
:
"bottom"
},
{
"orig_name"
:
[
"int(
\\
d+)
\\
.art"
],
"tl_name"
:
"l_($1+1)"
},
{
"orig_name"
:
[
"^(?:signal|plane|layer)_(
\\
d+)$"
,
"^l(
\\
d+)$"
,
"_l(
\\
d+)-.{3}
\\
.art$"
,
"lay(
\\
d+)
\\
.art$"
,
"l(
\\
d+).*
\\
.gbr$"
,
"^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+)"
,
"layer_(
\\
d+)"
],
"tl_name"
:
"l_($1)"
},
{
"orig_name"
:
[
"
lay-(
\\
d+)
\\
.art$"
,
"
^(?:signal|plane|layer)_(
\\
d+)$"
,
"^l(
\\
d+)$"
,
"_l(
\\
d+)-.{3}
\\
.art$"
,
"lay(
\\
d+)
\\
.art$"
,
"l(
\\
d+).*
\\
.gbr$"
,
"^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+)"
,
"layer_(
\\
d+)"
],
"tl_name"
:
"l_($1)"
},
{
"orig_name"
:
[
"(
\\
d+)-(
\\
d+)-((?:(?!laser)[a-zA-Z])+)
\\
.drl$"
,
"
\\
.d(
\\
d+)-(
\\
d+)((?:(?!laser)[a-zA-Z])+)$"
],
"tl_name"
:
"d($1)-($2)-($3)"
},
{
"orig_name"
:
[
"_l?(
\\
d+)_l?(
\\
d+)$"
,
"
\\
.ncd(
\\
d)-(
\\
d)$"
,
"
\\
.d(
\\
d+)-(
\\
d+)$"
,
"-(
\\
d+)-(
\\
d+)
\\
.drl$"
,
"(
\\
d+)-(
\\
d+)-laser
\\
.drl$"
,
"d(
\\
d+)-(
\\
d+)"
],
"tl_name"
:
"d_($1)-($2)"
},
{
"orig_name"
:
[
"^drill$"
,
"
\\
.ncdthru$"
],
"tl_name"
:
"drill"
},
{
"orig_name"
:
[
"^
nth_layer$"
,
"^
drill$"
,
"
\\
.ncdthru$"
],
"tl_name"
:
"drill"
},
{
"orig_name"
:
[
"
\\
.rou$"
,
"^rout$"
],
"tl_name"
:
"rout"
},
{
"orig_name"
:
"fab.art"
,
"tl_name"
:
"fab.art"
},
{
"orig_name"
:
[
"multipack.art"
,
"^array$"
],
"tl_name"
:
"array"
},
...
...
@@ -833,20 +833,20 @@
{
"orig_name"
:
[
"^spb$|^pmb
\\
.art$"
,
"
\\
.pmb$|
\\
.spb$"
,
"paste.?bot|soldPasteBot|pastemask.?bot"
,
"past_botm"
],
"tl_name"
:
"past_botm"
},
{
"orig_name"
:
[
"sst|tsilk|silktop"
,
"^sst
\\
.art$"
,
"
\\
.ssa$"
,
"silkscrntop|silkscreentop"
,
"silk.top|silk-top"
],
"tl_name"
:
"silk_top"
},
{
"orig_name"
:
[
"ssb|bsilk|silkbot"
,
"^ssb
\\
.art$"
,
"
\\
.ssb$"
,
"silkscrnbot|silkscreenbot"
,
"silk.bot|silk-bot"
],
"tl_name"
:
"silk_bot"
},
{
"orig_name"
:
[
"
\\
.tsm$|tmask|^smt$
"
,
"^smt
\\
.art$"
,
"
\\
.sma$"
,
"soldmask1top|soldermask.?top"
,
"sm.top|solder.top"
],
"tl_name"
:
"sm_top"
},
{
"orig_name"
:
[
"
\\
.bsm$|bmask|^smb$
"
,
"^smb
\\
.art$"
,
"
\\
.smb$"
,
"soldmask1bot|soldermask.?bot"
,
"sm.bot|solder.bot"
],
"tl_name"
:
"sm_botm"
},
{
"orig_name"
:
[
"^top
\\
.(pho|art)$"
,
"^(?:(?!assy|export|enig|pm|past|paste|silk|mask).)+top
\\
.(pho|art)$"
,
"^top$"
,
"^top
\\
.art$"
],
"tl_name"
:
"top"
},
{
"orig_name"
:
[
"
^soldtop"
,
"
\\
.tsm$|tmask|^smt$|^smtop
"
,
"^smt
\\
.art$"
,
"
\\
.sma$"
,
"soldmask1top|soldermask.?top"
,
"sm.top|solder.top"
],
"tl_name"
:
"sm_top"
},
{
"orig_name"
:
[
"
^soldbot"
,
"
\\
.bsm$|bmask|^smb$|^smbot
"
,
"^smb
\\
.art$"
,
"
\\
.smb$"
,
"soldmask1bot|soldermask.?bot"
,
"sm.bot|solder.bot"
],
"tl_name"
:
"sm_botm"
},
{
"orig_name"
:
[
"^top
\\
.(pho|art)$"
,
"^(?:(?!assy|export|enig|pm|past|paste|silk|mask
|sm|sold
).)+top
\\
.(pho|art)$"
,
"^top$"
,
"^top
\\
.art$"
],
"tl_name"
:
"top"
},
{
"orig_name"
:
[
"
\\
.p(
\\
d+)p$"
,
"^m(
\\
d+)$"
,
"_s(
\\
d+)
\\
.art$"
,
"^(?:(?!ref).)+l(
\\
d+)
\\
.art$"
,
"-(
\\
d+)l
\\
.pho$"
,
"^l(
\\
d+).*
\\
.art$"
,
"^v(
\\
d+)
\\
.art$"
,
"^g(
\\
d+)
\\
.art$"
,
"^s(
\\
d+)
\\
.art$"
,
"
\\
.l(
\\
d+)$"
,
"Copper(
\\
d+)
\\
.ger$"
,
"^laye?r?_?(
\\
d+)"
],
"tl_name"
:
"l_($1)"
},
{
"orig_name"
:
[
"^bottom
\\
.(pho|art)$"
,
"^(?:(?!assy|view|enig|pm|past|paste|silk|mask).)+bot(tom)?
\\
.(pho|art)$"
,
"^bot
\\
.art$"
,
"^bottom$"
,
"^bottom.art$"
],
"tl_name"
:
"bottom"
},
{
"orig_name"
:
[
"^bottom
\\
.(pho|art)$"
,
"^(?:(?!assy|view|enig|pm|past|paste|silk|mask
|sm|sold
).)+bot(tom)?
\\
.(pho|art)$"
,
"^bot
\\
.art$"
,
"^bottom$"
,
"^bottom.art$"
],
"tl_name"
:
"bottom"
},
{
"orig_name"
:
[
"
\\
.d(
\\
d+)$"
],
"tl_name"
:
"d_($1)-($1+1)"
},
{
"orig_name"
:
[
"
\\
.ncd(
\\
d+)-(
\\
d+)$"
,
"(
\\
d+)-(
\\
d+)plated
\\
.ncd"
,
"thruHolePlated_(
\\
d+)_(
\\
d+)
\\
.ncd"
,
"(
\\
d+)
-
(
\\
d+)
\\
.drl$"
,
"^drill(
\\
d+)-(
\\
d+)$"
,
"^d_(
\\
d+)-(
\\
d+)$"
],
"tl_name"
:
"d_($1)-($2)"
},
{
"orig_name"
:
[
"
\\
.ncd(
\\
d+)-(
\\
d+)$"
,
"(
\\
d+)-(
\\
d+)plated
\\
.ncd"
,
"thruHolePlated_(
\\
d+)_(
\\
d+)
\\
.ncd"
,
"(
\\
d+)
[-_]
(
\\
d+)
\\
.drl$"
,
"^drill(
\\
d+)-(
\\
d+)$"
,
"^d_(
\\
d+)-(
\\
d+)$"
],
"tl_name"
:
"d_($1)-($2)"
},
{
"orig_name"
:
[
"
\\
.ncdthru$"
,
"(
\\
d+)-(
\\
d+)-np
\\
.drl$"
,
"ThruHoleNonPlated
\\
.ncd$"
,
"^drill$"
],
"tl_name"
:
"drill"
},
{
"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"
:
[
"p_outline
\\
.art"
,
"panel
\\
.(art|pho)$"
,
"panel-?outline
\\
.pho"
,
"outline
\\
.art$"
,
"
\\
.bol$"
,
"PnlContourNonPlated
\\
.ger"
,
"^outline"
],
"tl_name"
:
"outline"
},
{
"orig_name"
:
[
"topside-golden"
,
"top-enig"
,
"enig_top"
],
"tl_name"
:
"enig_top"
},
{
"orig_name"
:
[
"botside-golden"
,
"bot-enig"
,
"enig_bot"
],
"tl_name"
:
"enig_bot"
},
{
"orig_name"
:
[
"
gold_t"
,
"
topside-golden"
,
"top-enig"
,
"enig_top"
],
"tl_name"
:
"enig_top"
},
{
"orig_name"
:
[
"
gold_b"
,
"
botside-golden"
,
"bot-enig"
,
"enig_bot"
],
"tl_name"
:
"enig_bot"
},
],
"mergerule"
:
{
profile
:[
"silk_top"
,
"past_top"
],
...
...
@@ -918,8 +918,8 @@
{
"orig_name"
:
[
"fab
\\
.art|fab
\\
.gbr"
],
"tl_name"
:
"fab.art"
},
{
"orig_name"
:
[
"pcb-set
\\
.gdo"
,
"^pcb-set
\\
.pho$"
,
"^pcb-set$"
,
"^array$"
],
"tl_name"
:
"array"
},
{
"orig_name"
:
[
"^outline"
],
"tl_name"
:
"outline"
},
{
"orig_name"
:
[
"au[_-]mask[_-]
bot
"
,
"enig_top"
],
"tl_name"
:
"enig_top"
},
{
"orig_name"
:
[
"au[_-]mask[_-]
top
"
,
"enig_bot"
],
"tl_name"
:
"enig_bot"
},
{
"orig_name"
:
[
"au[_-]mask[_-]
top
"
,
"enig_top"
],
"tl_name"
:
"enig_top"
},
{
"orig_name"
:
[
"au[_-]mask[_-]
bot
"
,
"enig_bot"
],
"tl_name"
:
"enig_bot"
},
{
"orig_name"
:
[
"cavitytop"
,
"cavity_top"
],
"tl_name"
:
"cavity_top"
},
{
"orig_name"
:
[
"cavitybottom"
,
"cavity_bot"
],
"tl_name"
:
"cavity_bot"
},
],
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment