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
c41be807
Commit
c41be807
authored
5 years ago
by
Scott Sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
s
parent
3e3d572f
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
61 additions
and
43 deletions
+61
-43
ATS_AIM_customer_data_analysis.js
ats/analysis/ATS_AIM_customer_data_analysis.js
+45
-28
ATS_AIM_data_input.js
ats/input/ATS_AIM_data_input.js
+6
-5
config_ats.js
config_ats.js
+9
-9
mytest.js
test/mytest.js
+1
-1
No files found.
ats/analysis/ATS_AIM_customer_data_analysis.js
View file @
c41be807
...
...
@@ -9,6 +9,12 @@
type : 'LineEdit',
property : {tool_tip : 'pcs step名,默认是cad'}
},
{
name : 'cam_type',
title : 'cam_type',
type : 'LineEdit',
property : {tool_tip : 'cam_type'}
},
{
name : 'vc_src_01005_pad_result',
title : 'vc_src_01005_pad_result',
...
...
@@ -114,7 +120,7 @@ try {
if
(
v
.
context
==
"board"
&&
v
.
layer_type
==
"drill"
){
if
(
v
.
type
==
"laser_drill"
){
GEN
.
affectedLayer
({
affected
:
'no'
,
mode
:
'all'
})
GEN
.
workLayer
({
name
:
v
.
name
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
workLayer
({
name
:
v
.
odb_
name
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selClearFeature
()
GEN
.
selAllFeat
()
if
(
GEN
.
getSelectCount
()
>
0
){
...
...
@@ -125,7 +131,7 @@ try {
GEN
.
selClearFeature
()
}
else
if
(
v
.
type
==
"main_drill"
||
v
.
type
==
"blind_drill"
||
v
.
type
==
"bury_drill"
)
{
GEN
.
affectedLayer
({
affected
:
'no'
,
mode
:
'all'
})
GEN
.
workLayer
({
name
:
v
.
name
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
workLayer
({
name
:
v
.
odb_
name
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selClearFeature
()
GEN
.
selRefFeat
({
layers
:
v
.
drl_start
,
use
:
'filter'
,
mode
:
'touch'
,
f_types
:
"pad"
})
GEN
.
selRefFeat
({
layers
:
v
.
drl_end
,
use
:
'filter'
,
mode
:
'touch'
,
f_types
:
"pad"
})
...
...
@@ -172,23 +178,23 @@ try {
if
(
drl_side
==
"Top"
){
if
((
drl_start_num
-
1
)
==
0
){
drl_filler
=
"None"
}
else
{
var
top_l
=
"
d"
+
(
drl_start_num
-
1
)
+
"-"
+
(
drl_end_num
-
1
)
var
top_l
=
"
ftdrill"
+
(
drl_start_num
-
1
)
+
"-"
+
(
drl_end_num
-
1
)
+
"l"
if
(
GEN
.
isLayerExists
({
job
:
job
,
layer
:
top_l
})){
GEN
.
clearLayers
()
GEN
.
selClearFeature
()
GEN
.
workLayer
({
name
:
top_l
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selRefFeat
({
layers
:
drill
.
name
,
use
:
'filter'
,
mode
:
'touch'
})
GEN
.
selRefFeat
({
layers
:
drill
.
odb_
name
,
use
:
'filter'
,
mode
:
'touch'
})
if
(
GEN
.
getSelectCount
()
>
0
){
GEN
.
selClearFeature
()
drl_filler
=
"Via Filling"
}
}
}
var
bot_l
=
"
d"
+
(
drl_start_num
+
1
)
+
"-"
+
(
drl_end_num
+
1
)
var
bot_l
=
"
ftdrill"
+
(
drl_start_num
+
1
)
+
"-"
+
(
drl_end_num
+
1
)
+
"l"
if
(
GEN
.
isLayerExists
({
job
:
job
,
layer
:
bot_l
})){
GEN
.
clearLayers
()
GEN
.
selClearFeature
()
GEN
.
workLayer
({
name
:
drill
.
name
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
workLayer
({
name
:
drill
.
odb_
name
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selRefFeat
({
layers
:
bot_l
,
use
:
'filter'
,
mode
:
'touch'
})
if
(
GEN
.
getSelectCount
()
>
0
){
GEN
.
selClearFeature
()
...
...
@@ -200,23 +206,23 @@ try {
}
else
if
(
drl_side
==
"Bot"
){
if
((
drl_end_num
-
layerCount
)
==
0
){
drl_filler
=
"None"
}
else
{
var
top_l
=
"
d"
+
(
drl_start_num
+
1
)
+
"-"
+
(
drl_end_num
+
1
)
var
top_l
=
"
ftdrill"
+
(
drl_start_num
+
1
)
+
"-"
+
(
drl_end_num
+
1
)
+
"l"
if
(
GEN
.
isLayerExists
({
job
:
job
,
layer
:
top_l
})){
GEN
.
clearLayers
()
GEN
.
selClearFeature
()
GEN
.
workLayer
({
name
:
top_l
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selRefFeat
({
layers
:
drill
.
name
,
use
:
'filter'
,
mode
:
'touch'
})
GEN
.
selRefFeat
({
layers
:
drill
.
odb_
name
,
use
:
'filter'
,
mode
:
'touch'
})
if
(
GEN
.
getSelectCount
()
>
0
){
GEN
.
selClearFeature
()
drl_filler
=
"Via Filling"
}
}
}
var
bot_l
=
"
d"
+
(
drl_start_num
-
1
)
+
"-"
+
(
drl_end_num
-
1
)
var
bot_l
=
"
ftdrill"
+
(
drl_start_num
-
1
)
+
"-"
+
(
drl_end_num
-
1
)
+
"l"
if
(
GEN
.
isLayerExists
({
job
:
job
,
layer
:
bot_l
})){
GEN
.
clearLayers
()
GEN
.
selClearFeature
()
GEN
.
workLayer
({
name
:
drill
.
name
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
workLayer
({
name
:
drill
.
odb_
name
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selRefFeat
({
layers
:
bot_l
,
use
:
'filter'
,
mode
:
'touch'
})
if
(
GEN
.
getSelectCount
()
>
0
){
GEN
.
selClearFeature
()
...
...
@@ -227,8 +233,9 @@ try {
}
else
{
drill_info
.
drl_overlap
=
"No"
}
}
}
else
{
GEN
.
workLayer
({
name
:
drill
.
name
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selectByFilter
({
attribute
:
'.drill'
,
option
:
'plated'
})
GEN
.
clearLayers
()
GEN
.
workLayer
({
name
:
drill
.
odb_name
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selectByFilter
({
attribute
:[{
attribute
:
".drill"
,
option
:
"plated"
}],
profile
:
"in"
})
if
(
GEN
.
getSelectCount
()
>
0
){
GEN
.
selClearFeature
()
drill_info
.
drl_type
=
"PTH"
...
...
@@ -336,10 +343,10 @@ try {
return
{
name
:
v
,
type
:
type
}})
// glod_finger
var
gold_fingers
=
Object
.
keys
(
tmp_matrix
).
filter
(
function
(
v
){
return
/^
top_enig$|^bot_enig
$/ig
.
test
(
v
)})
var
gold_fingers
=
Object
.
keys
(
tmp_matrix
).
filter
(
function
(
v
){
return
/^
enig_top$|^enig_bot
$/ig
.
test
(
v
)})
if
(
gold_fingers
.
length
){
gold_fingers
=
gold_fingers
.
map
(
function
(
v
){
var
type
=
(
v
==
"
top_enig
"
)
?
"top"
:
"bot"
var
type
=
(
v
==
"
enig_top
"
)
?
"top"
:
"bot"
return
{
name
:
v
,
type
:
type
}
})
}
...
...
@@ -503,11 +510,11 @@ try {
})
})
// console.log("=============================> 6 set smd bga"
)
console
.
log
(
"=============================> 6 set smd bga genesistype:"
+
GEN
.
GEN_TYPE
)
var
allStep
=
GEN
.
getStepList
({
job
:
job
})
allStep
.
forEach
(
function
(
step
){
GEN
.
openStep
({
job
:
job
,
name
:
step
})
if
(
GEN
.
GEN_TYPE
==
"genesis"
){
if
(
par
.
cam_type
==
"genesis"
){
GEN
.
COM
(
"chklist_single,action=valor_cleanup_set_smd,show=yes"
)
GEN
.
COM
(
"chklist_cupd,chklist=valor_cleanup_set_smd,nact=1,params=((pp_layer=.type=signal|mixed&side=top|bottom)(pp_drill=No)(pp_rotate=No)(pp_ignore_covered=Yes)(pp_sm=No)(pp_types=Square
\
;Rect
\
;Oval)(pp_other=)(pp_delete=No)),mode=regular"
)
GEN
.
COM
(
"chklist_run,chklist=valor_cleanup_set_smd,nact=1,area=profile"
)
...
...
@@ -852,7 +859,7 @@ function ANALYSIS_STACKUP(props){
layer
.
side
=
layer
.
enum_tl_side
;
layer
.
input_file_name
=
layer
.
file_name
;
layer
.
odb_row_num
=
layer
.
row
;
if
(
layer
.
odb_name
==
'drill'
){
if
(
layer
.
odb_name
==
'
ft
drill'
){
layer
.
name
=
'drill'
;
layer
.
drl_start_num
=
1
;
layer
.
drl_end_num
=
layer_count
;
...
...
@@ -860,8 +867,8 @@ function ANALYSIS_STACKUP(props){
layer
.
drl_to_num
=
layer_count
;
layer
.
type
=
'main_drill'
;
}
else
if
(
/^
d
(\d
+
)\-(\d
+
)
$/
.
test
(
layer
.
odb_name
)){
var
tmp
=
/^
d
(\d
+
)\-(\d
+
)
$/
.
exec
(
layer
.
odb_name
)
else
if
(
/^
ftdrill
(\d
+
)
-
(\d
+
)
l$/
.
test
(
layer
.
odb_name
)){
// /^d(\d+)\-(\d+)$/
var
tmp
=
/^
ftdrill
(\d
+
)
-
(\d
+
)
l
$/
.
exec
(
layer
.
odb_name
)
var
drl_star
=
tmp
[
1
];
var
drl_end
=
tmp
[
2
];
layer
.
name
=
'd'
+
drl_star
+
'-'
+
drl_end
;
...
...
@@ -1005,10 +1012,15 @@ function save_job_info(props){ // 保存料号信息
function
save_layerinfo
(
props
){
// 保存层信息
var
jobid
=
props
.
jobid
;
var
layer
=
props
.
layer
;
// if(Omatrix[layer] && Omatrix[layer].tl_name){
// if(!(/^drill/ig.test(Omatrix[layer].tl_name))){
// layer = Omatrix[layer].tl_name
// }
// }
if
(
Omatrix
[
layer
]
&&
Omatrix
[
layer
].
tl_name
){
if
(
!
(
/^drill/ig
.
test
(
Omatrix
[
layer
].
tl_name
))){
//
if(!(/^drill/ig.test(Omatrix[layer].tl_name))){
layer
=
Omatrix
[
layer
].
tl_name
}
//
}
}
var
layerinfohash
=
props
.
layerinfohash
;
Object
.
keys
(
layerinfohash
).
forEach
(
function
(
key
){
...
...
@@ -1159,8 +1171,8 @@ function analysis(props){
laser_layers
=
laser_layers
.
sort
(
function
(
a
,
b
){
return
Number
(
a
.
row
)
-
Number
(
b
.
row
)})
var
laser_info
=
{}
for
(
var
i
=
0
;
i
<
laser_layers
.
length
-
1
;
i
++
){
var
start_layer
=
laser_layers
[
i
].
name
var
cover_layer
=
laser_layers
[
i
+
1
].
name
var
start_layer
=
laser_layers
[
i
].
odb_
name
var
cover_layer
=
laser_layers
[
i
+
1
].
odb_
name
GEN
.
workLayer
({
name
:
start_layer
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selClearFeature
()
GEN
.
selRefFeat
({
layers
:
cover_layer
,
use
:
'filter'
,
mode
:
'cover'
})
...
...
@@ -1177,9 +1189,9 @@ function analysis(props){
var
via_vias_info
=
[]
function
analysis_via_number
(
layers
){
if
(
layers
.
length
<
2
){
return
}
var
startlayer
=
layers
[
0
].
name
+
"_cover"
var
startlayer
=
layers
[
0
].
odb_
name
+
"_cover"
GEN
.
selClearFeature
()
GEN
.
workLayer
({
name
:
layers
[
0
].
name
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
workLayer
({
name
:
layers
[
0
].
odb_
name
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selAllFeat
()
selCopyLayer
({
job
:
t
.
job
,
layer
:
startlayer
})
var
end_index
=
start_cover_next
(
startlayer
,
layers
,
0
)
...
...
@@ -1194,13 +1206,13 @@ function analysis(props){
layers
=
layers
.
slice
(
1
)
GEN
.
workLayer
({
name
:
start
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selClearFeature
()
GEN
.
selRefFeat
({
layers
:
layers
[
0
].
name
,
use
:
'filter'
,
mode
:
'cover'
})
GEN
.
selRefFeat
({
layers
:
layers
[
0
].
odb_
name
,
use
:
'filter'
,
mode
:
'cover'
})
var
count
=
GEN
.
getSelectCount
()
if
(
count
<
1
)
{
GEN
.
deleteLayer
({
job
:
t
.
job
,
layer
:
start
})
return
++
end_index
}
var
nextstartlayer
=
layers
[
0
].
name
+
"_cover"
var
nextstartlayer
=
layers
[
0
].
odb_
name
+
"_cover"
selCopyLayer
({
job
:
t
.
job
,
layer
:
nextstartlayer
})
GEN
.
deleteLayer
({
job
:
t
.
job
,
layer
:
start
})
return
start_cover_next
(
nextstartlayer
,
layers
,
++
end_index
)
...
...
@@ -1631,6 +1643,9 @@ function analysisChkAttr(par) {
}
return
a
},
"N/A"
)
if
(
hash
[
v
][
key
]
==
"N/A"
){
hash
[
v
][
key
]
=
999
}
})
})
return
hash
...
...
@@ -2052,3 +2067,5 @@ function has_steps(props){
return
res
.
indexOf
(
pcs_step
)
>=
0
}
This diff is collapsed.
Click to expand it.
ats/input/ATS_AIM_data_input.js
View file @
c41be807
...
...
@@ -138,9 +138,9 @@ try {
})
});
var
job_file_baseName
=
job
if
(
vc_position
&&
vc_position
!=
""
&&
!
(
/null/ig
.
test
(
vc_position
))){
job_file_baseName
=
job_file_baseName
+
"_"
+
vc_position
}
//
if(vc_position && vc_position != "" && !(/null/ig.test(vc_position))){
//
job_file_baseName = job_file_baseName + "_" + vc_position
//
}
var
jobFile
=
pathInfo
.
filter
(
function
(
v
){
return
v
.
baseName
.
toLowerCase
()
==
job_file_baseName
})
if
(
jobFile
.
length
==
0
){
throw
"job file is not exist"
}
var
jobFiles
=
[]
// 记录要分析的文件
...
...
@@ -160,9 +160,10 @@ try {
}
else
{
// 多个tgz文件 说明需要合并
console
.
log
(
"==========合并的情况"
);
var
jobs
=
jobInfo
.
data
.
map
(
function
(
item
,
i
){
var
err
=
importJob
({
name
:
job
+
"_tmp_"
+
i
,
db
:
custCfg
.
db
,
path
:
item
.
file
.
path
},
config
.
delSameJob
)
var
tmp_job_name
=
job
+
"_tmp_"
+
i
var
err
=
importJob
({
name
:
tmp_job_name
,
db
:
custCfg
.
db
,
path
:
item
.
file
.
path
},
config
.
delSameJob
)
if
(
err
){
throw
err
}
return
job
+
"_tmp_"
+
i
return
tmp_job_name
})
// 分析arr_job 和 pcs_job
jobs
=
jobs
.
map
(
function
(
jobname
){
...
...
This diff is collapsed.
Click to expand it.
config_ats.js
View file @
c41be807
...
...
@@ -267,8 +267,8 @@
}
],
"tl_name"
:
[
{
"orig_name"
:
[
"top_enig"
],
"tl_name"
:
"top_enig
"
},
{
"orig_name"
:
[
"bot_enig"
],
"tl_name"
:
"bot_enig
"
},
{
"orig_name"
:
[
"top_enig"
,
"top-enig"
,
"enig_top"
],
"tl_name"
:
"enig_top
"
},
{
"orig_name"
:
[
"bot_enig"
,
"bot-enig"
,
"enig_bot"
],
"tl_name"
:
"enig_bot
"
},
{
"orig_name"
:
[
"^spt$"
,
"^past_top$"
],
"tl_name"
:
"past_top"
},
{
"orig_name"
:
[
"^spb$"
,
"^past_botm$"
],
"tl_name"
:
"past_botm"
},
{
"orig_name"
:
[
"^sst$"
,
"^silk_top$"
],
"tl_name"
:
"silk_top"
},
...
...
@@ -419,8 +419,8 @@
{
"orig_name"
:
"fab.art"
,
"tl_name"
:
"fab.art"
},
{
"orig_name"
:
[
"multipack.art"
,
"^array$"
],
"tl_name"
:
"array"
},
{
"orig_name"
:
[
"^outline"
],
"tl_name"
:
"outline"
},
{
"orig_name"
:
[
"top-enig"
,
"
top_enig"
],
"tl_name"
:
"top_enig
"
},
{
"orig_name"
:
[
"bot-enig"
,
"
bot_enig"
],
"tl_name"
:
"bot_enig
"
},
{
"orig_name"
:
[
"top-enig"
,
"
enig_top"
],
"tl_name"
:
"enig_top
"
},
{
"orig_name"
:
[
"bot-enig"
,
"
enig_bot"
],
"tl_name"
:
"enig_bot
"
},
]
},
"New_data"
:
{
...
...
@@ -548,19 +548,19 @@
}
},
"data_format"
:
[
{
"tl_name"
:
"
top_enig"
,
"new_name"
:
"top_enig
"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"document"
}},
{
"tl_name"
:
"
enig_top"
,
"new_name"
:
"enig_top
"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"document"
}},
{
"tl_name"
:
"past_top"
,
"new_name"
:
"past_top"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"solder_paste"
}},
{
"tl_name"
:
"silk_top"
,
"new_name"
:
"silk_top"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"silk_screen"
}},
{
"tl_name"
:
"sm_top"
,
"new_name"
:
"sm_top"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"solder_mask"
}},
{
"tl_name"
:
"^top$"
,
"new_name"
:
"top"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"signal"
}},
{
"tl_name"
:
"l_(
\\
d+)"
,
"new_name"
:
"l
ayer_
($1)"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"signal"
}},
{
"tl_name"
:
"l_(
\\
d+)"
,
"new_name"
:
"l($1)"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"signal"
}},
{
"tl_name"
:
"^bottom$"
,
"new_name"
:
"bottom"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"signal"
}},
{
"tl_name"
:
"sm_botm"
,
"new_name"
:
"sm_botm"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"solder_mask"
}},
{
"tl_name"
:
"silk_bot"
,
"new_name"
:
"silk_bot"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"silk_screen"
}},
{
"tl_name"
:
"past_botm"
,
"new_name"
:
"past_botm"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"solder_paste"
}},
{
"tl_name"
:
"
bot_enig"
,
"new_name"
:
"bot_enig
"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"document"
}},
{
"tl_name"
:
"d_(
\\
d+)-(
\\
d+)"
,
"new_name"
:
"
d($1)-($2)
"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"drill"
}},
{
"tl_name"
:
"drill"
,
"new_name"
:
"drill"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"drill"
}},
{
"tl_name"
:
"
enig_bot"
,
"new_name"
:
"enig_bot
"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"document"
}},
{
"tl_name"
:
"d_(
\\
d+)-(
\\
d+)"
,
"new_name"
:
"
ftdrill($1)-($2)l
"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"drill"
}},
{
"tl_name"
:
"drill"
,
"new_name"
:
"
ft
drill"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"drill"
}},
{
"tl_name"
:
"rout"
,
"new_name"
:
"rout"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"rout"
}},
{
"tl_name"
:
"outline"
,
"new_name"
:
"outline"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"rout"
}},
{
"tl_name"
:
"array"
,
"new_name"
:
"array"
,
"attr"
:{
"context"
:
"misc"
}},
...
...
This diff is collapsed.
Click to expand it.
test/mytest.js
View file @
c41be807
...
...
@@ -16,7 +16,7 @@ try {
var
layer
=
"l3"
GEN
.
copyLayer
({
source_job
:
job
,
source_step
:
step
,
source_layer
:
"gko"
,
dest_layer
:
"gko_tmp"
})
GEN
.
selectByFilter
({
profile
:
"in"
})
return
"Done"
}
catch
(
e
)
{
IKM
.
msg
(
e
)
...
...
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