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
a234656f
Commit
a234656f
authored
Apr 10, 2020
by
Scott Sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
s
parent
520f304d
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
189 additions
and
18 deletions
+189
-18
ATS_AIM_customer_data_analysis.js
test/ATS_AIM_customer_data_analysis.js
+21
-2
ATS_AIM_input_data.js
test/ATS_AIM_input_data.js
+20
-7
ATS_AIM_layer_rename_and_sort.js
test/ATS_AIM_layer_rename_and_sort.js
+56
-9
导入配置.json
导入配置.json
+92
-0
No files found.
test/ATS_AIM_customer_data_analysis.js
View file @
a234656f
...
...
@@ -97,7 +97,8 @@ try {
// var jobInfo = saveJobInfo({job:job,pcs_step:pcs_step,array_step:array_step,matrixInfo:matrixInfo,matrix_analysis:matrix_analysis},par)
// IKM.msg(jobInfo)
// 分析钻孔属性 // todo 镭射切割长度
analysis_drill
({
job
:
job
,
pcs_step
:
pcs_step
,
array_step
:
array_step
,
matrixInfo
:
matrixInfo
,
matrix_analysis
:
matrix_analysis
},
par
)
...
...
@@ -551,4 +552,22 @@ function selCopyLayer(props){ // 拷贝选择的到辅助层
GEN
.
deleteLayer
({
job
:
job
,
layer
:
layer
})
}
GEN
.
selCopyOther
({
dest
:
'layer_name'
,
target_layer
:
layer
})
}
\ No newline at end of file
}
function
analysis_drill
(
props
){
var
job
=
props
.
job
var
pcs
=
props
.
pcs_step
var
arr
=
props
.
array_step
var
matrix_analysis
=
props
.
matrix_analysis
var
matrixInfo
=
props
.
matrixInfo
var
matrix
=
matrixInfo
.
matrix
// 设置层的孔属性
}
function
set_drill_attr
(
props
){
// 镭射孔via,无铜孔npth,其余孔pth
var
layer
=
props
.
layer
var
attr
=
props
.
attr
GEN
.
workLayer
({
name
:
layer
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selClearFeature
()
GEN
.
selAllFeat
()
GEN
.
selAddAttr
({
attribute
:
attr
})
}
test/ATS_AIM_input_data.js
View file @
a234656f
...
...
@@ -54,12 +54,11 @@ try {
// !!! tmp
par
=
{
customer
:
"
ats
"
,
job_name
:
"
1
"
,
path
:
"C:/Users/Administrator/Desktop/
Customer_1
"
customer
:
"
tmp
"
,
job_name
:
"
m3
"
,
path
:
"C:/Users/Administrator/Desktop/
New data
"
}
var
parParams
=
[
"customer"
,
"job_name"
,
"path"
];
// par应该有的属性
var
isParExist
=
parParams
.
reduce
(
function
(
a
,
b
)
{
if
(
!
par
.
hasOwnProperty
(
b
))
{
...
...
@@ -77,9 +76,13 @@ try {
if
(
!
isParExist
){
throw
"par error"
}
// 如果par没有parParams里的属性 就退出
var
cfg
=
JSON
.
parse
(
IKM
.
select_value
({
table
:
'pub_conf'
,
field
:
'json_data'
,
where
:{
path
:
'cam/input_data'
}}));
// 读取配置文件
var
useCfg
=
cfg
[
par
.
customer
.
toLowerCase
()];
addDefaultCfg
(
cfg
.
def
,
useCfg
)
// 添加默认配置
var
customer
=
par
.
customer
.
split
(
"_"
)[
0
].
toLowerCase
()
var
useCfg
=
cfg
[
customer
];
addDefaultCfg
(
cfg
.
def
,
useCfg
)
// 添加默认配置
if
(
customer
!=
par
.
customer
.
toLowerCase
()){
var
cfgType
=
cfg
[
par
.
customer
.
toLowerCase
()]
if
(
cfgType
){
changeCfg
(
useCfg
,
cfgType
)
}
}
var
job
=
par
.
job_name
,
path
=
par
.
path
||
useCfg
.
path
,
step
=
useCfg
.
step
,
err
err
=
delSameJob
({
job
:
job
,
delSame
:
useCfg
.
delSameJob
});
if
(
err
){
throw
err
}
// 判断导入方式 处理path
...
...
@@ -189,6 +192,16 @@ function addDefaultCfg(def, use) {
if
(
key
==
"ODB"
&&
!
use
.
hasOwnProperty
(
key
)){
use
.
ODB
=
val
}
}
}
function
changeCfg
(
useCfg
,
cfgType
){
for
(
var
key
in
cfgType
){
var
value
=
cfgType
[
key
]
if
(
key
==
"Gerber"
){
changeCfg
(
useCfg
.
Gerber
,
cfgType
.
Gerber
)
}
else
{
useCfg
[
key
]
=
value
}
}
}
function
delSameJob
(
props
){
var
job
=
props
.
job
var
delSame
=
props
.
delSame
...
...
test/ATS_AIM_layer_rename_and_sort.js
View file @
a234656f
...
...
@@ -43,28 +43,31 @@ var GUI = $.gui;
var
Job
=
$
.
job
;
try
{
var
mode
=
"
develop
"
// develop
var
mode
=
"
use
"
// develop
var
par
=
$
.
par
;
par
=
{
job_name
:
"
1
"
,
customer
:
"ats"
}
// !! tmp
par
=
{
job_name
:
"
2
"
,
customer
:
"ats"
}
// !! tmp
var
cfg
=
JSON
.
parse
(
IKM
.
select_value
({
table
:
'pub_conf'
,
field
:
'json_data'
,
where
:{
path
:
'cam/input_data'
}}));
// 读取配置文件
var
useCfg
=
cfg
[
par
.
customer
.
toLowerCase
()].
formatData
;
var
useCfg
=
cfg
[
par
.
customer
.
toLowerCase
()].
formatData
;
if
(
!
useCfg
){
throw
"config error"
}
var
job
=
par
.
job_name
if
(
!
GEN
.
isJobExists
({
job
:
job
})){
throw
"job "
+
job
+
" is not exist"
}
if
(
!
GEN
.
isJobOpen
({
job
:
job
})){
GEN
.
openJob
({
job
:
job
})}
if
(
GEN
.
checkInout
({
job
:
job
,
mode
:
"test"
})
!=
0
&&
mode
!=
"develop"
){
throw
"the job check"
}
GEN
.
checkInout
({
job
:
job
,
mode
:
"out"
});
// if(mode=="develop"){ IKM.msg("rename")}
if
(
useCfg
.
hasOwnProperty
(
"mergeDrill"
)){
// todo
mergeDrill
({
job
:
job
})
}
if
(
mode
==
"develop"
){
IKM
.
msg
(
"rename"
)}
if
(
useCfg
.
rename
){
reName
({
job
:
job
,
rule
:
useCfg
.
rename
})
}
//
if(mode=="develop"){ IKM.msg("sort")}
if
(
mode
==
"develop"
){
IKM
.
msg
(
"sort"
)}
if
(
useCfg
.
sort
){
var
err
=
sortLayer
({
job
:
job
,
rule
:
useCfg
.
sort
});
// 排序
if
(
err
)
{
throw
err
}
}
//
if(mode=="develop"){ IKM.msg("setDrill")}
if
(
/^yes$/
.
test
(
useCfg
.
setDrill
.
info
)){
if
(
mode
==
"develop"
){
IKM
.
msg
(
"setDrill"
)}
if
(
useCfg
.
setDrill
&&
/^yes$/
.
test
(
useCfg
.
setDrill
.
info
)){
setDrill
({
job
:
job
});
// 设置钻孔
}
// finally
...
...
@@ -279,4 +282,48 @@ function setDrill(props){ // 设置钻孔
drillSetList
.
forEach
(
function
(
v
){
GEN
.
matrixLayerDrill
({
job
:
job
,
layer
:
v
.
layer
,
start
:
v
.
start
,
end
:
v
.
end
})
})
}
\ No newline at end of file
}
function
mergeDrill
(
props
){
// 合并钻孔
var
newdrills
=
[]
var
job
=
props
.
job
;
var
step
=
GEN
.
getStepList
({
job
:
job
})[
0
];
var
maxDrill
=
{
name
:
""
,
value
:
0
};
function
getDrl
(
str
){
var
num
=
/
(\d
+
)
-
(\d
+
)
/ig
.
exec
(
str
);
// 匹配出 num-num
var
tmp
=
[];
for
(
var
i
=
Number
(
num
[
1
]);
i
<
num
[
2
];
i
++
){
if
(
i
==
1
){
maxDrill
=
Number
(
num
[
2
])
>
maxDrill
.
value
?
{
name
:
str
,
value
:
Number
(
num
[
2
])}
:
maxDrill
;
}
tmp
.
push
(
"L"
+
i
+
"-"
+
(
i
+
1
));
}
return
tmp
;
}
var
matrix
=
GEN
.
getMatrix
({
job
:
job
});
GEN
.
openStep
({
job
:
job
,
name
:
step
});
for
(
var
key
in
matrix
){
var
val
=
matrix
[
key
];
if
(
val
.
layer_type
==
"drill"
){
var
mergeTo
=
getDrl
(
val
.
name
)
// 要合并到的地方
mergeTo
.
forEach
(
function
(
layerName
){
if
(
GEN
.
isLayerExists
({
job
:
job
,
layer
:
layerName
.
toLowerCase
()})
&&
newdrills
.
indexOf
(
layerName
.
toLowerCase
())
<
0
){
GEN
.
deleteLayer
({
job
:
job
,
layer
:
layerName
.
toLowerCase
()})
}
if
(
!
GEN
.
isLayerExists
({
job
:
job
,
layer
:
layerName
.
toLowerCase
()})){
GEN
.
createLayer
({
job
:
job
,
layer
:
layerName
.
toLowerCase
(),
conext
:
'board'
,
type
:
val
.
layer_type
});
newdrills
.
push
(
layerName
.
toLowerCase
())
}
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
()});
})
}
}
// 合并到maxDrill独立合并
GEN
.
createLayer
({
job
:
job
,
layer
:
"b1-"
+
maxDrill
.
value
,
conext
:
'board'
,
type
:
'drill'
});
GEN
.
workLayer
({
name
:
"b1-"
+
maxDrill
.
value
,
display_number
:
1
,
clear_before
:
'yes'
});
GEN
.
copyLayer
({
source_job
:
job
,
mode
:
'append'
,
source_step
:
step
,
source_layer
:
maxDrill
.
name
,
dest_layer
:
"b1-"
+
maxDrill
.
value
});
GEN
.
affectedLayer
({
affected
:
"no"
,
mode
:
"all"
});
GEN
.
closeStep
();
return
this
;
}
导入配置.json
View file @
a234656f
...
...
@@ -171,6 +171,98 @@
"text_line_width"
:
0.0024
}
}
},
"formatData"
:
{
"rename"
:
{
"rule1"
:
[
{
"orig_name"
:
"pasttop.art"
,
"new_name"
:
"past_top"
},
{
"orig_name"
:
"pleg.art"
,
"new_name"
:
"silk_top"
},
{
"orig_name"
:
"soldtop.art"
,
"new_name"
:
"sm_top"
},
{
"orig_name"
:
"art(
\\
d+)
\\
.art"
,
"new_name"
:
"layer_(1)"
,
"tp"
:
true
},
{
"orig_name"
:
"soldbotm.art"
,
"new_name"
:
"sm_botm"
},
{
"orig_name"
:
"sleg.art"
,
"new_name"
:
"silk_bot"
},
{
"orig_name"
:
"pastbotm.art"
,
"new_name"
:
"past_botm"
},
{
"orig_name"
:
"multipack.art"
,
"new_name"
:
"array"
},
{
"orig_name"
:
"outline.art"
,
"new_name"
:
"outline"
},
{
"orig_name"
:
"fab.art"
,
"new_name"
:
"fab.art"
},
{
"orig_name"
:
"top-enig"
,
"new_name"
:
"top-enig"
},
{
"orig_name"
:
"bot-enig"
,
"new_name"
:
"bot-enig"
},
{
"orig_name"
:
"fab_page2"
,
"new_name"
:
"fab_page2"
}
]
},
"sort"
:
{
"sort1"
:
[
{
"name"
:
"past_top"
,
"context"
:
"board"
,
"type"
:
"solder_paste"
,
"polarity"
:
"positive"
},
{
"name"
:
"silk_top"
,
"context"
:
"board"
,
"type"
:
"silk_screen"
,
"polarity"
:
"positive"
},
{
"name"
:
"sm_top"
,
"context"
:
"board"
,
"type"
:
"solder_mask"
,
"polarity"
:
"positive"
},
{
"name"
:
"top"
,
"context"
:
"board"
,
"type"
:
"signal"
,
"polarity"
:
"positive"
},
{
"name"
:
"layer_(
\\
d+)"
,
"context"
:
"board"
,
"type"
:
"signal"
,
"polarity"
:
"positive"
},
{
"name"
:
"bottom"
,
"context"
:
"board"
,
"type"
:
"signal"
,
"polarity"
:
"positive"
},
{
"name"
:
"sm_botm"
,
"context"
:
"board"
,
"type"
:
"solder_mask"
,
"polarity"
:
"positive"
},
{
"name"
:
"silk_bot"
,
"context"
:
"board"
,
"type"
:
"silk_screen"
,
"polarity"
:
"positive"
},
{
"name"
:
"past_botm"
,
"context"
:
"board"
,
"type"
:
"solder_paste"
,
"polarity"
:
"positive"
},
{
"name"
:
"array"
,
"context"
:
"board"
,
"type"
:
"drill"
,
"polarity"
:
"positive"
},
{
"name"
:
"l(
\\
d+)-
\\
d+"
,
"context"
:
"board"
,
"type"
:
"drill"
,
"polarity"
:
"positive"
},
{
"name"
:
"b(
\\
d+)-
\\
d+"
,
"context"
:
"board"
,
"type"
:
"drill"
,
"polarity"
:
"positive"
},
{
"name"
:
"outline"
,
"context"
:
"board"
,
"type"
:
"rout"
,
"polarity"
:
"positive"
},
{
"name"
:
"fab.art"
,
"context"
:
"board"
,
"type"
:
"rout"
,
"polarity"
:
"positive"
},
{
"name"
:
"top-enig"
,
"context"
:
"board"
,
"type"
:
"rout"
,
"polarity"
:
"positive"
},
{
"name"
:
"bot-enig"
,
"context"
:
"board"
,
"type"
:
"rout"
,
"polarity"
:
"positive"
},
{
"name"
:
"fab_page2"
,
"context"
:
"board"
,
"type"
:
"rout"
,
"polarity"
:
"positive"
}
]
},
"mergeDrill"
:
""
,
"setDrill"
:
{
"info"
:
"yes"
},
"autoSave"
:
"yes"
}
},
"tmp_1"
:
{
"Gerber"
:
{
"gerberConfig"
:
{
"drl"
:
{
"nf1"
:
2
,
"nf2"
:
5
,
"units"
:
"inch"
,
"zeroes"
:
"none"
,
"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
},
"art"
:
{
"nf1"
:
2
,
"nf2"
:
5
,
"units"
:
"inch"
,
"zeroes"
:
"leading"
,
"decimal"
:
"no"
,
"nf_comp"
:
0
,
"break_sr"
:
"yes"
,
"data_type"
:
"ascii"
,
"separator"
:
"*"
,
"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
}
}
}
}
}
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