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
b22f98b8
Commit
b22f98b8
authored
Oct 13, 2020
by
Scott Sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
scott
parent
9080de4b
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
214 additions
and
107 deletions
+214
-107
20200929_wistarn.md
ats/topcam/20200929_wistarn.md
+7
-0
ATS_AIM_customer_data_analysis.js
ats/topcam/ATS_AIM_customer_data_analysis.js
+1
-2
ATS_AIM_data_format.js
ats/topcam/ATS_AIM_data_format.js
+16
-3
config_ats.js
ats/topcam/config_ats.js
+27
-19
emai.js
ats/topcam/emai.js
+3
-3
SEC_DRC_analysis.js
public_script/SEC_DRC_analysis.js
+0
-7
scotttest.js
public_script/scotttest.js
+160
-73
No files found.
ats/topcam/20200929_wistarn.md
View file @
b22f98b8
## wistarn
## wistarn
*
100 rule更改 ok
*
101 102 103(profile错误) 7z压缩包
*
104 多套gerber文件
*
106 107 113 147 无文件
*
114 profile 直接创建失败
*
136 139 144 多套数据
*
141 tgz+gerber多套
\ No newline at end of file
ats/topcam/ATS_AIM_customer_data_analysis.js
View file @
b22f98b8
...
@@ -1031,9 +1031,8 @@ try {
...
@@ -1031,9 +1031,8 @@ try {
})
})
});
});
var
err
=
mail
.
sendMail
({
var
err
=
mail
.
sendMail
({
host
:
'cshas.ats.net'
,
host
:
"10.90.79.37"
,
port
:
"25"
,
port
:
"25"
,
auth_method
:
mail
.
AuthMethod
.
LOGIN
,
connection_type
:
mail
.
ConnectionType
.
TCP
,
connection_type
:
mail
.
ConnectionType
.
TCP
,
// user:'ferre.zhang@cn.ats.net',
// user:'ferre.zhang@cn.ats.net',
// password:'159482673Sun',
// password:'159482673Sun',
...
...
ats/topcam/ATS_AIM_data_format.js
View file @
b22f98b8
...
@@ -128,7 +128,8 @@ try {
...
@@ -128,7 +128,8 @@ try {
}
}
}
}
if
(
/string/ig
.
test
(
typeof
(
mergeRule
.
drill
[
0
]))){
// drill层 计算
if
(
/string/ig
.
test
(
typeof
(
mergeRule
.
drill
[
0
]))){
// drill层 计算
var
drill_layers
=
[]
var
drill_layers
=
[];
var
tmp_layers
=
[];
var
matrix
=
GEN
.
getMatrix
({
job
:
job
})
var
matrix
=
GEN
.
getMatrix
({
job
:
job
})
// 计算最大值
// 计算最大值
var
layers
=
Object
.
keys
(
matrix
)
var
layers
=
Object
.
keys
(
matrix
)
...
@@ -144,6 +145,7 @@ try {
...
@@ -144,6 +145,7 @@ try {
var
tmp
=
reg
.
exec
(
v
)
var
tmp
=
reg
.
exec
(
v
)
var
num1
=
Number
(
tmp
[
1
])
var
num1
=
Number
(
tmp
[
1
])
var
num2
=
Number
(
tmp
[
2
])
var
num2
=
Number
(
tmp
[
2
])
tmp_layers
.
push
({
num1
:
num1
,
num2
:
num2
,
layer
:
v
})
if
(
num1
==
1
){
if
(
num1
==
1
){
drill_layers
.
push
({
num1
:
num1
,
num2
:
num2
,
layer
:
v
})
drill_layers
.
push
({
num1
:
num1
,
num2
:
num2
,
layer
:
v
})
}
}
...
@@ -152,6 +154,10 @@ try {
...
@@ -152,6 +154,10 @@ try {
}
}
})
})
var
max
=
maxnum
.
sort
(
function
(
a
,
b
){
return
b
-
a
})[
0
]
var
max
=
maxnum
.
sort
(
function
(
a
,
b
){
return
b
-
a
})[
0
]
if
(
drill_layers
.
length
>
0
&&
String
(
drill_layers
[
0
].
num2
)
==
"NaN"
)
{
var
maxLayer
=
tmp_layers
.
filter
(
function
(
v
)
{
return
v
.
num1
==
max
})
GEN
.
COM
(
"matrix_rename_layer"
,{
job
:
job
,
matrix
:
"matrix"
,
layer
:
maxLayer
[
0
].
layer
,
new_name
:
"drill"
})
}
var
drill_layer
=
drill_layers
.
filter
(
function
(
v
){
return
v
.
num2
==
max
})
var
drill_layer
=
drill_layers
.
filter
(
function
(
v
){
return
v
.
num2
==
max
})
if
(
drill_layer
.
length
){
if
(
drill_layer
.
length
){
drill_layer
=
drill_layer
[
0
].
layer
drill_layer
=
drill_layer
[
0
].
layer
...
@@ -204,7 +210,6 @@ try {
...
@@ -204,7 +210,6 @@ try {
profileRule
=
mergeRule
.
profile
profileRule
=
mergeRule
.
profile
}
}
}
}
// start martix_tl_name
// start martix_tl_name
console
.
log
(
"get matrix ====== ======== job:"
+
job
);
console
.
log
(
"get matrix ====== ======== job:"
+
job
);
var
matrix
=
GEN
.
getMatrix
({
job
:
job
});
var
matrix
=
GEN
.
getMatrix
({
job
:
job
});
...
@@ -600,6 +605,7 @@ function reName(props) { // 改名 par{job:要改名的料号, rule: {要改名
...
@@ -600,6 +605,7 @@ function reName(props) { // 改名 par{job:要改名的料号, rule: {要改名
}
}
function mergeLaser(props){ // 合并钻孔
function mergeLaser(props){ // 合并钻孔
var tmp = []
if(!props.mergeRule){return}
if(!props.mergeRule){return}
var mergeRuleRegs = props.mergeRule.regs
var mergeRuleRegs = props.mergeRule.regs
var mergeTlname = props.mergeRule.tl_name
var mergeTlname = props.mergeRule.tl_name
...
@@ -644,12 +650,18 @@ function mergeLaser(props){ // 合并钻孔
...
@@ -644,12 +650,18 @@ function mergeLaser(props){ // 合并钻孔
newdrills.push(layerName.toLowerCase())
newdrills.push(layerName.toLowerCase())
}
}
GEN.workLayer({name:layerName.toLowerCase(),display_number:1,clear_before:'yes'});
GEN.workLayer({name:layerName.toLowerCase(),display_number:1,clear_before:'yes'});
GEN.copyLayer({source_job:job ,mode:'append',source_step:step,source_layer:val.name,dest_layer:layerName.toLowerCase()});
GEN.copyLayer({source_job:job ,mode:'append',source_step:step,source_layer:val.name,dest_layer:layerName.toLowerCase()});
if(/drl|drill/ig.test(val.name) && tmp.indexOf(val.name) < 0) {
tmp.push(val.name)
}
})
})
}
}
}
}
GEN.affectedLayer({affected:"
no
",mode:"
all
"});
GEN.affectedLayer({affected:"
no
",mode:"
all
"});
GEN.clearLayers();
GEN.clearLayers();
tmp.forEach(function(layer) {
GEN.COM("
matrix_rename_layer
,
job
=
"+job+"
,
matrix
=
matrix
,
layer
=
"+layer+"
,
new_name
=
"+layer.replace(/drl|drill/, "
merage
"))
})
GEN.closeStep();
GEN.closeStep();
return newdrills
return newdrills
}
}
...
@@ -678,6 +690,7 @@ function createOutline(props){
...
@@ -678,6 +690,7 @@ function createOutline(props){
GEN.openStep({job:job, name:step})
GEN.openStep({job:job, name:step})
GEN.affectedLayer({affected:'yes',layer:drill_layer})
GEN.affectedLayer({affected:'yes',layer:drill_layer})
GEN.selCopyOther({dest:'layer_name',target_layer:tmp,invert:'no',dx:0,dy:0,size:0})
GEN.selCopyOther({dest:'layer_name',target_layer:tmp,invert:'no',dx:0,dy:0,size:0})
GEN.affectedLayer({affected:'no',mode:'all'})
GEN.closeStep()
GEN.closeStep()
var tmp_outline
var tmp_outline
...
...
ats/topcam/config_ats.js
View file @
b22f98b8
...
@@ -190,8 +190,8 @@
...
@@ -190,8 +190,8 @@
"Excellon2_4"
:
{
"Excellon2_4"
:
{
"nf1"
:
2
,
"nf1"
:
2
,
"nf2"
:
3
,
"nf2"
:
3
,
"units"
:
"
mm
"
,
"units"
:
"
inch
"
,
"zeroes"
:
"
lead
ing"
,
"zeroes"
:
"
trail
ing"
,
"decimal"
:
"no"
,
"decimal"
:
"no"
,
"nf_comp"
:
0
,
"nf_comp"
:
0
,
"break_sr"
:
"yes"
,
"break_sr"
:
"yes"
,
...
@@ -201,7 +201,7 @@
...
@@ -201,7 +201,7 @@
"drill_only"
:
"no"
,
"drill_only"
:
"no"
,
"multiplier"
:
1
,
"multiplier"
:
1
,
"resolution"
:
3
,
"resolution"
:
3
,
"tool_units"
:
"
mm
"
,
"tool_units"
:
"
inch
"
,
"coordinates"
:
"absolute"
,
"coordinates"
:
"absolute"
,
"merge_by_rule"
:
"no"
,
"merge_by_rule"
:
"no"
,
"signed_coords"
:
"no"
,
"signed_coords"
:
"no"
,
...
@@ -828,7 +828,7 @@
...
@@ -828,7 +828,7 @@
{
{
"valid"
:
function
(
props
){
"valid"
:
function
(
props
){
var
file
=
props
.
file
;
var
file
=
props
.
file
;
return
/.+
\.
ger$/ig
.
test
(
file
.
name
)
||
/
\.
gdo$|
\.
bol$|
\.
gdo$|
\.
pma$|
\.
sma$|
\.
smb$|
\.
ssa$|
\.
ssb$/ig
.
test
(
file
.
name
)
||
return
/.+
\.
ger$/ig
.
test
(
file
.
name
)
||
/
\.
pho$|
\.
bol$|
\.
gdo$|
\.
pma$|
\.
pmb$|
\.
spa$|
\.
spb$
\.
sma$|
\.
smb$|
\.
ssa$|
\.
ssb$/ig
.
test
(
file
.
name
)
||
/.+
\.
l
\d
+$/ig
.
test
(
file
.
name
)
/.+
\.
l
\d
+$/ig
.
test
(
file
.
name
)
},
},
"type"
:
"Gerber274x"
,
"type"
:
"Gerber274x"
,
...
@@ -943,25 +943,33 @@
...
@@ -943,25 +943,33 @@
}
}
],
],
"tl_name"
:
[
"tl_name"
:
[
{
"orig_name"
:
[
"^pmt
\\
.art$"
,
"
\\
.pma$
"
,
"SoldPasteTop
\\
.ger
"
,
"past_top"
],
"tl_name"
:
"past_top"
},
{
"orig_name"
:
[
"^pmt
\\
.art$"
,
"
\\
.pma$
|
\\
.spa$"
,
"paste.top|soldPasteTop|pastemask.?top
"
,
"past_top"
],
"tl_name"
:
"past_top"
},
{
"orig_name"
:
[
"^pmb
\\
.art$"
,
"
\\
.pmb$
"
,
"SoldPasteBot
\\
.ger
"
,
"past_botm"
],
"tl_name"
:
"past_botm"
},
{
"orig_name"
:
[
"^pmb
\\
.art$"
,
"
\\
.pmb$
|
\\
.spb$"
,
"paste.bot|soldPasteBot|pastemask.?bot
"
,
"past_botm"
],
"tl_name"
:
"past_botm"
},
{
"orig_name"
:
[
"tsilk"
,
"^sst
\\
.art$"
,
"
\\
.ssa$"
,
"
SilkScrnTop
\\
.ger"
,
"silk_
top"
],
"tl_name"
:
"silk_top"
},
{
"orig_name"
:
[
"tsilk"
,
"^sst
\\
.art$"
,
"
\\
.ssa$"
,
"
silkscrntop|silkscreentop"
,
"silk.top|silk-
top"
],
"tl_name"
:
"silk_top"
},
{
"orig_name"
:
[
"bsilk"
,
"^ssb
\\
.art$"
,
"
\\
.ssb$"
,
"
SilkScrnBot
\\
.ger"
,
"silk_
bot"
],
"tl_name"
:
"silk_bot"
},
{
"orig_name"
:
[
"bsilk"
,
"^ssb
\\
.art$"
,
"
\\
.ssb$"
,
"
silkscrnbot|silkscreenbot"
,
"silk.bot|silk-
bot"
],
"tl_name"
:
"silk_bot"
},
{
"orig_name"
:
[
"tmask"
,
"^smt
\\
.art$"
,
"
\\
.sma$"
,
"
SoldMask1Top
\\
.ger"
,
"sm_
top"
],
"tl_name"
:
"sm_top"
},
{
"orig_name"
:
[
"tmask"
,
"^smt
\\
.art$"
,
"
\\
.sma$"
,
"
soldmask1top|soldermask.?top"
,
"sm.top|solder.
top"
],
"tl_name"
:
"sm_top"
},
{
"orig_name"
:
[
"bmask"
,
"^smb
\\
.art$"
,
"
\\
.smb$"
,
"
SoldMask1Bot
\\
.ger"
,
"sm_
bot"
],
"tl_name"
:
"sm_botm"
},
{
"orig_name"
:
[
"bmask"
,
"^smb
\\
.art$"
,
"
\\
.smb$"
,
"
soldmask1bot|soldermask.?bot"
,
"sm.bot|solder.
bot"
],
"tl_name"
:
"sm_botm"
},
{
"orig_name"
:
[
"^
top$"
,
"^top
.art$"
],
"tl_name"
:
"top"
},
{
"orig_name"
:
[
"^
(?:(?!assy|enig|pm|past|paste|silk|mask).)+top
\\
.(pho|art)$"
,
"^top$"
,
"^top
\\
.art$"
],
"tl_name"
:
"top"
},
{
"orig_name"
:
[
"^l(
\\
d+).*
\\
.art$"
,
"^v(
\\
d+)
\\
.art$"
,
"^g(
\\
d+)
\\
.art$"
,
"^s(
\\
d+)
\\
.art$"
,
"
\\
.l(
\\
d+)$"
,
"Copper(
\\
d+)
\\
.ger$"
,
"^layer_(
\\
d+)"
],
"tl_name"
:
"l_($1)"
},
{
"orig_name"
:
[
"^
(?:(?!ref).)+l(
\\
d)
\\
.art$"
,
"-(
\\
d+)l
\\
.pho$"
,
"^
l(
\\
d+).*
\\
.art$"
,
"^v(
\\
d+)
\\
.art$"
,
"^g(
\\
d+)
\\
.art$"
,
"^s(
\\
d+)
\\
.art$"
,
"
\\
.l(
\\
d+)$"
,
"Copper(
\\
d+)
\\
.ger$"
,
"^layer_(
\\
d+)"
],
"tl_name"
:
"l_($1)"
},
{
"orig_name"
:
[
"^bot
\\
.art$"
,
"^bottom$"
,
"^bottom.art$"
],
"tl_name"
:
"bottom"
},
{
"orig_name"
:
[
"^
(?:(?!assy|enig|pm|past|paste|silk|mask).)+bot
\\
.(pho|art)$"
,
"^
bot
\\
.art$"
,
"^bottom$"
,
"^bottom.art$"
],
"tl_name"
:
"bottom"
},
{
"orig_name"
:
[
"
\\
.d(
\\
d+)$"
],
"tl_name"
:
"d_($1)-($1+1)"
},
{
"orig_name"
:
[
"
\\
.d(
\\
d+)$"
],
"tl_name"
:
"d_($1)-($1+1)"
},
{
"orig_name"
:
[
"thruHolePlated_(
\\
d+)_(
\\
d+)
\\
.ncd"
,
"(
\\
d+)-(
\\
d+)
\\
.drl$"
,
"^drill(
\\
d+)-(
\\
d+)$"
,
"^d_(
\\
d+)-(
\\
d+)$"
],
"tl_name"
:
"d_($1)-($2)"
},
{
"orig_name"
:
[
"thruHolePlated_(
\\
d+)_(
\\
d+)
\\
.ncd"
,
"(
\\
d+)-(
\\
d+)
\\
.drl$"
,
"^drill(
\\
d+)-(
\\
d+)$"
,
"^d_(
\\
d+)-(
\\
d+)$"
],
"tl_name"
:
"d_($1)-($2)"
},
{
"orig_name"
:
[
"ThruHoleNonPlated
\\
.ncd$"
,
"^drill$"
],
"tl_name"
:
"drill"
},
{
"orig_name"
:
[
"
(
\\
d+)-(
\\
d+)-np
\\
.drl$"
,
"
ThruHoleNonPlated
\\
.ncd$"
,
"^drill$"
],
"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"
},
{
"orig_name"
:
[
"outline
\\
.art$"
,
"
\\
.bol$"
,
"PnlContourNonPlated
\\
.ger"
,
"^outline"
],
"tl_name"
:
"outline"
},
{
"orig_name"
:
[
"p_outline
\\
.art"
,
"panel
\\
.art$"
,
"paneloutline
\\
.pho"
,
"outline
\\
.art$"
,
"
\\
.bol$"
,
"PnlContourNonPlated
\\
.ger"
,
"^outline"
],
"tl_name"
:
"outline"
},
{
"orig_name"
:
[
"top-enig"
,
"enig_top"
],
"tl_name"
:
"enig_top"
},
{
"orig_name"
:
[
"topside-golden"
,
"top-enig"
,
"enig_top"
],
"tl_name"
:
"enig_top"
},
{
"orig_name"
:
[
"bot-enig"
,
"enig_bot"
],
"tl_name"
:
"enig_bot"
},
{
"orig_name"
:
[
"botside-golden"
,
"bot-enig"
,
"enig_bot"
],
"tl_name"
:
"enig_bot"
},
]
],
"mergerule"
:
{
profile
:[
"silk_top"
],
drill
:[
"(
\\
d+)-(
\\
d+)
\\
.drl$"
,
"
\\
.d(
\\
d+)$"
],
laser
:
{
tl_name
:
"drill($1)-($2)"
,
regs
:
[
"(
\\
d+)-(
\\
d+)
\\
.drl$"
]
}
}
},
},
"Vivo"
:{
"Vivo"
:{
"step"
:
"cad"
,
"step"
:
"cad"
,
...
...
ats/topcam/emai.js
View file @
b22f98b8
...
@@ -3,10 +3,10 @@ var error = require('topsin.error');
...
@@ -3,10 +3,10 @@ var error = require('topsin.error');
var
err
=
mail
.
sendMail
({
var
err
=
mail
.
sendMail
({
// host:'smtp.exmail.qq.com',
// host:'smtp.exmail.qq.com',
// host:'cshas.ats.net',
// host:'cshas.ats.net',
host
:
"
cshas.ats.net
"
,
host
:
"
10.90.79.37
"
,
port
:
"25"
,
port
:
"25"
,
// auth_method:mail.AuthMethod.LOGIN,
// auth_method:mail.AuthMethod.LOGIN,
//
connection_type:mail.ConnectionType.TCP,
connection_type
:
mail
.
ConnectionType
.
TCP
,
// user: "ferre.zhang@cn.ats.net",
// user: "ferre.zhang@cn.ats.net",
// user:'scott.sun@topibd.com',
// user:'scott.sun@topibd.com',
// password:'159482673Sun',
// password:'159482673Sun',
...
...
public_script/SEC_DRC_analysis.js
View file @
b22f98b8
...
@@ -487,13 +487,6 @@ try {
...
@@ -487,13 +487,6 @@ try {
GEN
.
closeStep
()
GEN
.
closeStep
()
})
})
...
...
public_script/scotttest.js
View file @
b22f98b8
This diff is collapsed.
Click to expand it.
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