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
5 years ago
by
Scott Sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
s
parent
520f304d
master
No related merge requests found
Changes
4
Show 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
)
...
...
@@ -552,3 +553,21 @@ function selCopyLayer(props){ // 拷贝选择的到辅助层
}
GEN
.
selCopyOther
({
dest
:
'layer_name'
,
target_layer
:
layer
})
}
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
})
}
This diff is collapsed.
Click to expand it.
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
()];
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
...
...
This diff is collapsed.
Click to expand it.
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
;
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
...
...
@@ -280,3 +283,47 @@ function setDrill(props){ // 设置钻孔
GEN
.
matrixLayerDrill
({
job
:
job
,
layer
:
v
.
layer
,
start
:
v
.
start
,
end
:
v
.
end
})
})
}
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
;
}
This diff is collapsed.
Click to expand it.
导入配置.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
}
}
}
}
}
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