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
21ea8dd5
Commit
21ea8dd5
authored
Jun 09, 2020
by
Scott Sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
s
parent
c7a97443
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
459 additions
and
75 deletions
+459
-75
analysis_test.js
ats/scott_test/analysis_test.js
+79
-7
format_test.js
ats/scott_test/format_test.js
+228
-19
input_test.js
ats/scott_test/input_test.js
+17
-8
config_ats.js
config_ats.js
+107
-41
scott_test.js
test/scott_test.js
+28
-0
No files found.
ats/scott_test/analysis_test.js
View file @
21ea8dd5
...
@@ -44,6 +44,38 @@
...
@@ -44,6 +44,38 @@
],
],
tool_tip:'是否自动保存料号开关'
tool_tip:'是否自动保存料号开关'
}
}
},
{
name : 'export_path',
title : '导出路径',
type : 'LineEdit',
property : {tool_tip : '导出路径'}
},
{
name : 'export_mode',
title : '导出模式',
type : 'RadioBox',
property : {
item_list:[
{name:'tar_gzip',text:'tar_gzip'},
{name:'tar',text:'tar'},
{name:'xml',text:'xml'},
{name:'directory',text:'directory'},
],
tool_tip:'导出模式'
}
},
{
name : 'export_submode',
title : '导出方式',
type : 'RadioBox',
property : {
item_list:[
{name:'full',text:'full'},
{name:'partial',text:'partial'},
],
tool_tip:'导出方式'
}
}
}
]
]
...
@@ -576,7 +608,7 @@ try {
...
@@ -576,7 +608,7 @@ try {
GEN
.
openStep
({
job
:
job
,
name
:
step
})
GEN
.
openStep
({
job
:
job
,
name
:
step
})
GEN
.
affectedLayer
({
affected
:
'no'
,
mode
:
'all'
})
GEN
.
affectedLayer
({
affected
:
'no'
,
mode
:
'all'
})
GEN
.
clearLayers
()
GEN
.
clearLayers
()
if
(
par
.
cam_type
==
"genesis"
){
if
(
GEN
.
GEN_TYPE
==
"genesis"
){
GEN
.
COM
(
"chklist_single,action=valor_cleanup_set_smd,show=yes"
)
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_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"
)
GEN
.
COM
(
"chklist_run,chklist=valor_cleanup_set_smd,nact=1,area=profile"
)
...
@@ -660,7 +692,6 @@ try {
...
@@ -660,7 +692,6 @@ try {
}
}
})
})
console
.
log
(
"================================> 9 copper_percent signal drill"
)
console
.
log
(
"================================> 9 copper_percent signal drill"
)
// 分析layer info
// 分析layer info
var
stepList
=
[
pcs_step
];
var
stepList
=
[
pcs_step
];
var
oChecklistName
=
"mychecklist"
var
oChecklistName
=
"mychecklist"
...
@@ -714,6 +745,13 @@ try {
...
@@ -714,6 +745,13 @@ try {
jobid
:
JobId
,
jobid
:
JobId
,
jobinfohash
:
{
ATS_surface_area_base_on
:
"Card"
}
jobinfohash
:
{
ATS_surface_area_base_on
:
"Card"
}
})
})
var
jobpath
if
(
GEN
.
GEN_TYPE
==
"genesis"
){
jobpath
=
GEN
.
getJobPath
({
job
:
job
})
}
else
{
jobpath
=
"/home/local_db/server_db/jobs/"
+
job
}
mkPath
(
jobpath
,[
"user"
,
"opcam"
,
"steps"
])
stepList
.
forEach
(
function
(
step
){
stepList
.
forEach
(
function
(
step
){
GEN
.
openStep
({
job
:
job
,
name
:
step
})
GEN
.
openStep
({
job
:
job
,
name
:
step
})
// GEN.units({type:'mm'})
// GEN.units({type:'mm'})
...
@@ -832,7 +870,7 @@ try {
...
@@ -832,7 +870,7 @@ try {
items
:
[
tmpitem
]
items
:
[
tmpitem
]
})
})
// signal层分析结果
// signal层分析结果
var
res
=
analysisChkAttr
({
layers
:
signalLayers
,
info
:
info
,
step
:
step
,
job
:
job
,
oChecklistName
:
oChecklistName
})
var
res
=
analysisChkAttr
({
layers
:
signalLayers
,
info
:
info
,
step
:
step
,
job
:
job
,
oChecklistName
:
oChecklistName
,
jobpath
:
jobpath
})
// 数据入库
// 数据入库
Object
.
keys
(
res
).
forEach
(
function
(
key
){
Object
.
keys
(
res
).
forEach
(
function
(
key
){
...
@@ -850,9 +888,9 @@ try {
...
@@ -850,9 +888,9 @@ try {
layerinfohash
:
val
layerinfohash
:
val
})
})
})
})
GEN
.
closeStep
()
GEN
.
closeStep
()
})
})
// 保存
// 保存
if
(
/yes/ig
.
test
(
par
.
auto_save
)){
if
(
/yes/ig
.
test
(
par
.
auto_save
)){
...
@@ -864,6 +902,17 @@ try {
...
@@ -864,6 +902,17 @@ try {
GEN
.
checkInout
({
job
:
job
,
mode
:
"in"
})
GEN
.
checkInout
({
job
:
job
,
mode
:
"in"
})
}
}
// 导出
if
(
par
.
export_path
!=
""
&&
par
.
export_mode
!=
""
&&
par
.
export_submode
!=
""
){
if
(
fs
.
exists
(
par
.
export_path
)){
GEN
.
COM
(
"export_job"
,{
job
:
job
,
path
:
par
.
export_path
,
mode
:
par
.
export_mode
,
submode
:
par
.
export_submode
,
overwrite
:
"yes"
,
format
:
"genesis"
,
output_name
:
job
})
GEN
.
COM
(
"disp_on"
)
GEN
.
COM
(
"origin_on"
)
}
else
{
resultData
.
push
({
type
:
"error"
,
title
:
"导出路径不存在!"
,
detail
:
[{
desc
:
par
.
export_path
}]
});
}
}
QDfm
.
updateRow
({
QDfm
.
updateRow
({
table
:
"pdm_aimdfm_task"
,
table
:
"pdm_aimdfm_task"
,
...
@@ -968,8 +1017,8 @@ function ANALYSIS_STACKUP(props){
...
@@ -968,8 +1017,8 @@ function ANALYSIS_STACKUP(props){
layer
.
drl_to_num
=
layer_count
;
layer
.
drl_to_num
=
layer_count
;
layer
.
type
=
'main_drill'
;
layer
.
type
=
'main_drill'
;
}
}
else
if
(
/^ftdrill
(\d
+
)
-
(\d
+
)
l$
/
.
test
(
layer
.
odb_name
)){
// /^d(\d+)\-(\d+)$/
else
if
(
/^ftdrill
(\d
+
)
-
(\d
+
)
/
.
test
(
layer
.
odb_name
)){
// /^d(\d+)\-(\d+)$/
var
tmp
=
/^ftdrill
(\d
+
)
-
(\d
+
)
l$
/
.
exec
(
layer
.
odb_name
)
var
tmp
=
/^ftdrill
(\d
+
)
-
(\d
+
)
/
.
exec
(
layer
.
odb_name
)
var
drl_star
=
tmp
[
1
];
var
drl_star
=
tmp
[
1
];
var
drl_end
=
tmp
[
2
];
var
drl_end
=
tmp
[
2
];
layer
.
drl_start_num
=
drl_star
;
layer
.
drl_start_num
=
drl_star
;
...
@@ -1740,6 +1789,7 @@ function analysisChkAttr(par) {
...
@@ -1740,6 +1789,7 @@ function analysisChkAttr(par) {
var
job
=
par
.
job
;
var
job
=
par
.
job
;
var
oChecklistName
=
par
.
oChecklistName
var
oChecklistName
=
par
.
oChecklistName
layers
.
forEach
(
function
(
v
)
{
layers
.
forEach
(
function
(
v
)
{
saveMeans
({
job
:
job
,
step
:
par
.
step
,
chklist
:
oChecklistName
,
nact
:
1
,
layer
:
v
,
jobpath
:
par
.
jobpath
})
hash
[
v
]
=
{}
hash
[
v
]
=
{}
Object
.
keys
(
info
).
forEach
(
function
(
key
)
{
Object
.
keys
(
info
).
forEach
(
function
(
key
)
{
var
val
=
info
[
key
]
var
val
=
info
[
key
]
...
@@ -2243,4 +2293,26 @@ function unSelect(){
...
@@ -2243,4 +2293,26 @@ function unSelect(){
GEN
.
selectByFilter
({
attribute
:[{
attribute
:
'.drill'
,
option
:
'non_plated'
}],
profile
:
'all'
,
operation
:
"unselect"
})
GEN
.
selectByFilter
({
attribute
:[{
attribute
:
'.drill'
,
option
:
'non_plated'
}],
profile
:
'all'
,
operation
:
"unselect"
})
}
}
function
mkPath
(
path
,
list
)
{
console
.
log
(
"--path:"
+
path
);
if
(
list
.
length
){
var
newPath
=
path
+
'/'
+
list
.
shift
()
if
(
!
fs
.
dirExists
(
newPath
)){
fs
.
mkdir
(
newPath
)
console
.
log
(
"--mkdir:"
+
newPath
);
}
return
mkPath
(
newPath
,
list
)
}
else
{
return
path
}
}
function
saveMeans
(
props
){
var
job
=
props
.
job
var
step
=
props
.
step
var
chklist
=
props
.
chklist
var
nact
=
props
.
nact
var
layer
=
props
.
layer
// 获取meas
var
meas
=
GEN
.
getCheckMeas
({
job
:
job
,
step
:
step
,
chklist
:
chklist
,
nact
:
nact
,
layer
:
layer
})
var
basepath
=
props
.
jobpath
+
"/user/opcam/steps"
var
respath
=
mkPath
(
basepath
,[
step
,
"chk"
,
chklist
+
"_"
+
nact
,
layer
])
fs
.
writeFile
(
respath
+
"/meas"
,
meas
.
join
(
"
\n
"
))
}
\ No newline at end of file
ats/scott_test/format_test.js
View file @
21ea8dd5
This diff is collapsed.
Click to expand it.
ats/scott_test/input_test.js
View file @
21ea8dd5
...
@@ -70,6 +70,7 @@ var JobId = $.job_id;
...
@@ -70,6 +70,7 @@ var JobId = $.job_id;
var
db
=
$
.
db
;
var
db
=
$
.
db
;
var
Status
=
'ok'
;
var
Status
=
'ok'
;
var
resultData
=
[];
var
resultData
=
[];
var
import_info
=
[]
var
PAR
=
{};
var
PAR
=
{};
if
(
$
.
hasOwnProperty
(
'script_parameter'
)){
if
(
$
.
hasOwnProperty
(
'script_parameter'
)){
PAR
=
JSON
.
parse
(
$
.
script_parameter
);
PAR
=
JSON
.
parse
(
$
.
script_parameter
);
...
@@ -156,10 +157,9 @@ try {
...
@@ -156,10 +157,9 @@ try {
if
(
jobInfo
.
data
.
length
==
0
){
throw
"file error"
}
if
(
jobInfo
.
data
.
length
==
0
){
throw
"file error"
}
var
importOk
=
false
;
// 是否成功导入
var
importOk
=
false
;
// 是否成功导入
if
(
/odb/ig
.
test
(
jobInfo
.
type
)){
// odb导入
if
(
/odb/ig
.
test
(
jobInfo
.
type
)){
// odb导入
fs
.
writeFile
(
"./tmp.js"
,
_
.
toString
(
jobInfo
.
data
))
if
(
jobInfo
.
data
.
length
==
1
){
// 只分析到一个tgz文件 直接导入
if
(
jobInfo
.
data
.
length
==
1
){
// 只分析到一个tgz文件 直接导入
resultData
.
push
(
{
type
:
"info"
,
title
:
"读取"
+
jobInfo
.
data
[
0
].
file
.
name
,
import_info
.
push
({
name
:
jobInfo
.
data
[
0
].
file
.
name
,
type
:
"odb++"
,
date
:
now
(),
user
:
$
.
user_name
})
detail
:
[{
desc
:
_
.
toString
({
format
:
"odb++"
,
date
:
now
(),
user
:
$
.
user_name
})}]})
var
err
=
importJob
({
name
:
job
,
db
:
custCfg
.
db
,
path
:
jobInfo
.
data
[
0
].
file
.
path
},
config
.
delSameJob
)
var
err
=
importJob
({
name
:
job
,
db
:
custCfg
.
db
,
path
:
jobInfo
.
data
[
0
].
file
.
path
},
config
.
delSameJob
)
if
(
err
){
throw
err
}
if
(
err
){
throw
err
}
}
else
{
// 多个tgz文件 说明需要合并
}
else
{
// 多个tgz文件 说明需要合并
...
@@ -168,8 +168,7 @@ try {
...
@@ -168,8 +168,7 @@ try {
var
path
=
item
.
file
.
path
var
path
=
item
.
file
.
path
var
tmp_job_name
=
job
+
"_tmp_"
+
i
var
tmp_job_name
=
job
+
"_tmp_"
+
i
var
err
=
importJob
({
name
:
tmp_job_name
,
db
:
custCfg
.
db
,
path
:
path
},
config
.
delSameJob
)
var
err
=
importJob
({
name
:
tmp_job_name
,
db
:
custCfg
.
db
,
path
:
path
},
config
.
delSameJob
)
resultData
.
push
(
{
type
:
"info"
,
title
:
"读取"
+
item
.
file
.
name
,
import_info
.
push
({
name
:
item
.
file
.
name
,
type
:
"odb++"
,
date
:
now
(),
user
:
$
.
user_name
})
detail
:
[{
desc
:
_
.
toString
({
format
:
"odb++"
,
date
:
now
(),
user
:
$
.
user_name
})}]})
if
(
err
){
throw
err
}
if
(
err
){
throw
err
}
return
{
return
{
name
:
tmp_job_name
,
name
:
tmp_job_name
,
...
@@ -233,7 +232,7 @@ try {
...
@@ -233,7 +232,7 @@ try {
var
gerberInfo
=
jobInfo
.
data
.
map
(
function
(
item
){
var
gerberInfo
=
jobInfo
.
data
.
map
(
function
(
item
){
var
gerberCfg
=
JSON
.
parse
(
JSON
.
stringify
(
item
.
format
));
var
gerberCfg
=
JSON
.
parse
(
JSON
.
stringify
(
item
.
format
));
var
file
=
item
.
file
var
file
=
item
.
file
gerberCfg
.
layer
=
file
.
name
.
toLowerCase
()
gerberCfg
.
layer
=
file
.
name
.
toLowerCase
()
.
split
(
" "
).
join
(
"-"
)
gerberCfg
.
path
=
file
.
path
gerberCfg
.
path
=
file
.
path
gerberCfg
.
format
=
item
.
type
gerberCfg
.
format
=
item
.
type
gerberCfg
.
job
=
job
gerberCfg
.
job
=
job
...
@@ -242,8 +241,8 @@ try {
...
@@ -242,8 +241,8 @@ try {
})
})
GEN
.
COM
(
"input_manual_reset"
)
GEN
.
COM
(
"input_manual_reset"
)
gerberInfo
.
forEach
(
function
(
v
){
gerberInfo
.
forEach
(
function
(
v
){
resultData
.
push
(
{
type
:
"info"
,
title
:
"读取"
+
v
.
layer
,
import_info
.
push
({
name
:
v
.
layer
,
type
:
"gerber274x"
,
date
:
now
(),
user
:
$
.
user_name
})
detail
:
[{
desc
:
_
.
toString
({
format
:
v
.
format
,
date
:
now
(),
user
:
$
.
user_name
})}]})
GEN
.
COM
(
"input_manual_set"
,
v
)
GEN
.
COM
(
"input_manual_set"
,
v
)
})
})
GEN
.
COM
(
"input_manual"
)
GEN
.
COM
(
"input_manual"
)
...
@@ -278,6 +277,16 @@ try {
...
@@ -278,6 +277,16 @@ try {
},
},
where
:
{
id
:
$
.
task_id
}
where
:
{
id
:
$
.
task_id
}
});
});
// name type date user
resultData
.
push
({
type
:
"info"
,
title
:
"导入资料列表"
,
detail
:
[{
desc
:
import_info
.
map
(
function
(
item
){
var
name
=
item
.
name
var
type
=
item
.
type
var
date
=
item
.
date
var
user
=
item
.
user
return
"导入资料:"
+
name
+
", 类型:"
+
type
+
", 导入时间:"
+
date
+
", 操作用户:"
+
user
}).
join
(
"
\n
"
)
}]
})
if
(
GEN
.
hasError
())
{
if
(
GEN
.
hasError
())
{
Status
=
'error'
;
Status
=
'error'
;
resultData
.
push
({
type
:
"error"
,
title
:
"GEN错误!"
,
detail
:
[{
desc
:
_
.
join
(
GEN
.
STATUS
,
"
\n
"
)
}]
});
resultData
.
push
({
type
:
"error"
,
title
:
"GEN错误!"
,
detail
:
[{
desc
:
_
.
join
(
GEN
.
STATUS
,
"
\n
"
)
}]
});
...
...
config_ats.js
View file @
21ea8dd5
...
@@ -245,26 +245,6 @@
...
@@ -245,26 +245,6 @@
"merge_by_rule"
:
"no"
,
"merge_by_rule"
:
"no"
,
"signed_coords"
:
"no"
,
"signed_coords"
:
"no"
,
"text_line_width"
:
0.0024
"text_line_width"
:
0.0024
},
"IPC356A_1"
:{
"nf1"
:
2
,
"nf2"
:
4
,
"units"
:
"inch"
,
"zeroes"
:
"none"
,
"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
}
}
},
},
"customer"
:
{
"customer"
:
{
...
@@ -680,10 +660,10 @@
...
@@ -680,10 +660,10 @@
{
{
"valid"
:
function
(
props
){
"valid"
:
function
(
props
){
var
file
=
props
.
file
;
var
file
=
props
.
file
;
return
/.+
\.
btd$
|.+
\.
rou$
/ig
.
test
(
file
.
name
)
return
/.+
\.
btd$/ig
.
test
(
file
.
name
)
},
},
"type"
:
"IPC356
A
"
,
"type"
:
"IPC356"
,
"format"
:
"IPC356
A
_1"
"format"
:
"IPC356_1"
},
},
{
{
"valid"
:
function
(
props
){
"valid"
:
function
(
props
){
...
@@ -761,7 +741,7 @@
...
@@ -761,7 +741,7 @@
{
{
"valid"
:
function
(
props
){
"valid"
:
function
(
props
){
var
file
=
props
.
file
;
var
file
=
props
.
file
;
return
/.+
\.
drl$/ig
.
test
(
file
.
name
)
return
/.+
\.
drl$
|
\.
rou$
/ig
.
test
(
file
.
name
)
},
},
"type"
:
"Excellon2"
,
"type"
:
"Excellon2"
,
"format"
:
"Excellon2_4"
,
"format"
:
"Excellon2_4"
,
...
@@ -809,10 +789,10 @@
...
@@ -809,10 +789,10 @@
{
"orig_name"
:
[
"^smt
\\
.art$"
,
"
\\
.sma$"
,
"SoldMask1Top
\\
.ger"
,
"sm_top"
],
"tl_name"
:
"sm_top"
},
{
"orig_name"
:
[
"^smt
\\
.art$"
,
"
\\
.sma$"
,
"SoldMask1Top
\\
.ger"
,
"sm_top"
],
"tl_name"
:
"sm_top"
},
{
"orig_name"
:
[
"^smb
\\
.art$"
,
"
\\
.smb$"
,
"SoldMask1Bot
\\
.ger"
,
"sm_bot"
],
"tl_name"
:
"sm_botm"
},
{
"orig_name"
:
[
"^smb
\\
.art$"
,
"
\\
.smb$"
,
"SoldMask1Bot
\\
.ger"
,
"sm_bot"
],
"tl_name"
:
"sm_botm"
},
{
"orig_name"
:
[
"^top$"
,
"^top.art$"
],
"tl_name"
:
"top"
},
{
"orig_name"
:
[
"^top$"
,
"^top.art$"
],
"tl_name"
:
"top"
},
{
"orig_name"
:
[
"^g(
\\
d+)
\\
.art$"
,
"^s(
\\
d+)
\\
.art$"
,
"
\\
.l(
\\
d+)$"
,
"Copper(
\\
d+)
\\
.ger$"
,
"^layer_(
\\
d+)"
],
"tl_name"
:
"l_($1)"
},
{
"orig_name"
:
[
"^
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"
:
[
"^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+)-(
\\
d+)
"
],
"tl_name"
:
"d_($1)-($2)"
},
{
"orig_name"
:
[
"
thruHolePlated_(
\\
d+)_(
\\
d+)
\\
.ncd"
,
"^drill(
\\
d+)-(
\\
d+)$"
,
"^d_(
\\
d+)-(
\\
d+)$
"
],
"tl_name"
:
"d_($1)-($2)"
},
{
"orig_name"
:
[
"ThruHoleNonPlated
\\
.ncd$"
,
"^drill$"
],
"tl_name"
:
"drill"
},
{
"orig_name"
:
[
"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"
},
...
@@ -820,7 +800,15 @@
...
@@ -820,7 +800,15 @@
{
"orig_name"
:
[
"
\\
.bol$"
,
"PnlContourNonPlated
\\
.ger"
,
"^outline"
],
"tl_name"
:
"outline"
},
{
"orig_name"
:
[
"
\\
.bol$"
,
"PnlContourNonPlated
\\
.ger"
,
"^outline"
],
"tl_name"
:
"outline"
},
{
"orig_name"
:
[
"top-enig"
,
"enig_top"
],
"tl_name"
:
"enig_top"
},
{
"orig_name"
:
[
"top-enig"
,
"enig_top"
],
"tl_name"
:
"enig_top"
},
{
"orig_name"
:
[
"bot-enig"
,
"enig_bot"
],
"tl_name"
:
"enig_bot"
},
{
"orig_name"
:
[
"bot-enig"
,
"enig_bot"
],
"tl_name"
:
"enig_bot"
},
]
],
"mergerule"
:
{
drill
:
[
"(
\\
d+)-(
\\
d+)
\\
.drl$"
],
profile
:[
"^drill.
\\
art$"
],
laser
:
{
tl_name
:
"drill($1)-($2)"
,
regs
:
[
"(
\\
d+)-(
\\
d+)
\\
.drl$"
]
}
}
},
},
"Vivo"
:{
"Vivo"
:{
"step"
:
"cad"
,
"step"
:
"cad"
,
...
@@ -844,7 +832,7 @@
...
@@ -844,7 +832,7 @@
{
{
"valid"
:
function
(
props
){
"valid"
:
function
(
props
){
var
file
=
props
.
file
;
var
file
=
props
.
file
;
return
/
\.
gdo$/ig
.
test
(
file
.
name
)
return
/
\.
gdo$
|
\.
pho$
/ig
.
test
(
file
.
name
)
},
},
"type"
:
"Gerber274x"
,
"type"
:
"Gerber274x"
,
"format"
:
"Gerber274x_4"
"format"
:
"Gerber274x_4"
...
@@ -852,32 +840,110 @@
...
@@ -852,32 +840,110 @@
{
{
"valid"
:
function
(
props
){
"valid"
:
function
(
props
){
var
file
=
props
.
file
;
var
file
=
props
.
file
;
return
/.+
\.
ncd$/ig
.
test
(
file
.
name
)
||
/.+
\.
d
\d
+$/ig
.
test
(
file
.
name
)
return
/.+
\.
ncd$
|
\.
drl
/ig
.
test
(
file
.
name
)
||
/.+
\.
d
\d
+$/ig
.
test
(
file
.
name
)
},
},
"type"
:
"Excellon2"
,
"type"
:
"Excellon2"
,
"format"
:
"Excellon2_5"
"format"
:
"Excellon2_5"
}
}
],
],
"tl_name"
:
[
"tl_name"
:
[
{
"orig_name"
:
[
"solderpastetop"
,
"past_top"
],
"tl_name"
:
"past_top"
},
{
"orig_name"
:
[
"
OSP-Top
\\
.pho"
,
"
solderpastetop"
,
"past_top"
],
"tl_name"
:
"past_top"
},
{
"orig_name"
:
[
"solderpastebottom"
,
"past_botm"
],
"tl_name"
:
"past_botm"
},
{
"orig_name"
:
[
"
OSP-Bottom
\\
.pho"
,
"
solderpastebottom"
,
"past_botm"
],
"tl_name"
:
"past_botm"
},
{
"orig_name"
:
[
"pleg
\\
.art"
,
"^ss_top"
,
"silk_top"
],
"tl_name"
:
"silk_top"
},
{
"orig_name"
:
[
"pleg
\\
.art"
,
"^ss_top"
,
"silk_top"
],
"tl_name"
:
"silk_top"
},
{
"orig_name"
:
[
"sleg
\\
.art"
,
"^ss_bot"
,
"silk_bot"
],
"tl_name"
:
"silk_bot"
},
{
"orig_name"
:
[
"sleg
\\
.art"
,
"^ss_bot"
,
"silk_bot"
],
"tl_name"
:
"silk_bot"
},
{
"orig_name"
:
[
"soldermasktop"
,
"sm_top"
],
"tl_name"
:
"sm_top"
},
{
"orig_name"
:
[
"Top solder mask
\\
.pho"
,
"soldermasktop"
,
"sm_top"
],
"tl_name"
:
"sm_top"
},
{
"orig_name"
:
[
"soldermaskbottom"
,
"sm_bot"
],
"tl_name"
:
"sm_botm"
},
{
"orig_name"
:
[
"Bottom solder mask
\\
.pho"
,
"soldermaskbottom"
,
"sm_bot"
],
"tl_name"
:
"sm_botm"
},
{
"orig_name"
:
[
"^top$"
,
"layertop"
],
"tl_name"
:
"top"
},
{
"orig_name"
:
[
"Top
\\
.pho"
,
"^top$"
,
"layertop"
],
"tl_name"
:
"top"
},
{
"orig_name"
:
[
"layer(
\\
d+)
\\
.gdo"
,
"layer_(
\\
d+)"
],
"tl_name"
:
"l_($1)"
},
{
"orig_name"
:
[
"^lay_(
\\
d+)"
,
"layer(
\\
d+)
\\
.gdo"
,
"layer_(
\\
d+)"
],
"tl_name"
:
"l_($1)"
},
{
"orig_name"
:
[
"^bottom$"
,
"layerbottom"
],
"tl_name"
:
"bottom"
},
{
"orig_name"
:
[
"^Bottom
\\
.pho$"
,
"^bottom$"
,
"layerbottom"
],
"tl_name"
:
"bottom"
},
{
"orig_name"
:
[
"-(
\\
d+)-(
\\
d+)
\\
.drl$"
,
"(
\\
d+)-(
\\
d+)-laser
\\
.drl$"
,
"d(
\\
d+)-(
\\
d+)"
],
"tl_name"
:
"d_($1)-($2)"
},
{
"orig_name"
:
[
"(
\\
d)-(
\\
d)
\\
.drl$"
,
"drill(
\\
d+)-(
\\
d+)"
,
"d(
\\
d+)-(
\\
d+)"
],
"tl_name"
:
"d_($1)-($2)"
},
{
"orig_name"
:
[
"^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"
:
[
"
pcb-set
"
,
"^array$"
],
"tl_name"
:
"array"
},
{
"orig_name"
:
[
"
PCB-SET
\\
.pho"
,
"^pcb-set$
"
,
"^array$"
],
"tl_name"
:
"array"
},
{
"orig_name"
:
[
"^outline"
],
"tl_name"
:
"outline"
},
{
"orig_name"
:
[
"^outline"
],
"tl_name"
:
"outline"
},
{
"orig_name"
:
[
"au_mask_bottom
\\
.gdo"
,
"enig_top"
],
"tl_name"
:
"enig_top"
},
{
"orig_name"
:
[
"au_mask
-bottom
\\
.gdo"
,
"au_mask
_bottom
\\
.gdo"
,
"enig_top"
],
"tl_name"
:
"enig_top"
},
{
"orig_name"
:
[
"au_mask_top
\\
.gdo"
,
"enig_bot"
],
"tl_name"
:
"enig_bot"
},
{
"orig_name"
:
[
"au_mask
-top
\\
.gdo"
,
"au_mask
_top
\\
.gdo"
,
"enig_bot"
],
"tl_name"
:
"enig_bot"
},
{
"orig_name"
:
[
"cavitytop"
,
"cavity_top"
],
"tl_name"
:
"cavity_top"
},
{
"orig_name"
:
[
"cavitytop"
,
"cavity_top"
],
"tl_name"
:
"cavity_top"
},
{
"orig_name"
:
[
"cavitybottom"
,
"cavity_bot"
],
"tl_name"
:
"cavity_bot"
},
{
"orig_name"
:
[
"cavitybottom"
,
"cavity_bot"
],
"tl_name"
:
"cavity_bot"
},
]
],
"mergerule"
:
{
drill
:
[
{
orig_rule
:[
"contournonplated"
],
drill_type
:
"non_plated"
,
shape
:
"slot"
},
{
orig_rule
:[
"contourplated"
],
drill_type
:
"plated"
,
shape
:
"slot"
},
{
orig_rule
:[
"thruholenonplated"
],
drill_type
:
"non_plated"
,
shape
:
"hole"
},
{
orig_rule
:[
"thruholeplated"
],
drill_type
:
"plated"
,
shape
:
"hole"
},
],
profile
:[
"enig_bot"
],
laser
:
{
tl_name
:
"drill($1)-($2)"
,
regs
:
[
"(
\\
d+)-(
\\
d+)plated
\\
.ncd$"
]
}
}
},
"1352"
:{
"step"
:
"cad"
,
"rules"
:
[
{
"valid"
:
function
(
props
){
var
file
=
props
.
file
;
return
/.+
\.
tgz$/ig
.
test
(
file
.
name
)
},
"type"
:
"ODB"
,
"format"
:
"ODB"
},
{
"valid"
:
function
(
props
){
var
file
=
props
.
file
;
return
/.+
\.
ipc$/ig
.
test
(
file
.
name
)
},
"type"
:
"IPC356"
,
"format"
:
"IPC356_1"
},
{
"valid"
:
function
(
props
){
var
file
=
props
.
file
;
return
/.+
\.
art$/ig
.
test
(
file
.
name
)
},
"type"
:
"Gerber274x"
,
"format"
:
"Gerber274x_3"
},
{
"valid"
:
function
(
props
){
var
file
=
props
.
file
;
return
/.+
\.
drl$/ig
.
test
(
file
.
name
)
},
"type"
:
"Excellon2"
,
"format"
:
"Excellon2_4"
}
],
"tl_name"
:
[
{
"orig_name"
:
[
"pasttop.art"
,
"past_top"
],
"tl_name"
:
"past_top"
},
{
"orig_name"
:
[
"pastbotm.art"
,
"past_botm"
],
"tl_name"
:
"past_botm"
},
{
"orig_name"
:
[
"^sst
\\
.art$"
,
"
\\
.ssa$"
,
"SilkScrnTop
\\
.ger"
,
"silk_top"
],
"tl_name"
:
"silk_top"
},
{
"orig_name"
:
[
"^ssb
\\
.art$"
,
"
\\
.ssb$"
,
"SilkScrnBot
\\
.ger"
,
"silk_bot"
],
"tl_name"
:
"silk_bot"
},
{
"orig_name"
:
[
"soldtop.art"
,
"sm_top"
],
"tl_name"
:
"sm_top"
},
{
"orig_name"
:
[
"soldbotm
\\
.art"
,
"sm_bot"
],
"tl_name"
:
"sm_botm"
},
{
"orig_name"
:
[
"^top$"
,
"^top.art$"
],
"tl_name"
:
"top"
},
{
"orig_name"
:
[
"^art(
\\
d+)
\\
.art$"
,
"^l_(
\\
d+)"
],
"tl_name"
:
"l_($1)"
},
{
"orig_name"
:
[
"^bot
\\
.art$"
,
"^bottom$"
,
"^bottom.art$"
],
"tl_name"
:
"bottom"
},
{
"orig_name"
:
[
"
\\
.d(
\\
d+)$"
],
"tl_name"
:
"d_($1)-($1+1)"
},
{
"orig_name"
:
[
"^drill(
\\
d+)-(
\\
d+)$"
,
"^d_(
\\
d+)-(
\\
d+)$"
],
"tl_name"
:
"d_($1)-($2)"
},
{
"orig_name"
:
[
"^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"
:
[
"
\\
.bol$"
,
"PnlContourNonPlated
\\
.ger"
,
"^outline"
],
"tl_name"
:
"outline"
},
{
"orig_name"
:
[
"top-enig"
,
"enig_top"
],
"tl_name"
:
"enig_top"
},
{
"orig_name"
:
[
"bot-enig"
,
"enig_bot"
],
"tl_name"
:
"enig_bot"
},
],
"mergerule"
:
{
drill
:[
"(
\\
d+)-(
\\
d+)
\\
.drl$"
],
laser
:
{
tl_name
:
"drill($1)-($2)"
,
regs
:
[
"(
\\
d+)-(
\\
d+)
\\
.drl$"
]
}
}
}
}
},
},
"data_format"
:
[
"data_format"
:
[
...
...
test/scott_test.js
View file @
21ea8dd5
...
@@ -46,6 +46,7 @@ var GEN = $.gen;
...
@@ -46,6 +46,7 @@ var GEN = $.gen;
var
Job
=
$
.
job_name
;
var
Job
=
$
.
job_name
;
var
db
=
$
.
db
;
var
db
=
$
.
db
;
var
JobId
=
$
.
job_id
;
var
JobId
=
$
.
job_id
;
var
process
=
require
(
'process'
);
var
Status
=
'ok'
;
var
Status
=
'ok'
;
var
resultData
=
[];
var
resultData
=
[];
var
PAR
=
{};
var
PAR
=
{};
...
@@ -54,6 +55,19 @@ if ($.hasOwnProperty('script_parameter')){
...
@@ -54,6 +55,19 @@ if ($.hasOwnProperty('script_parameter')){
}
}
try
{
try
{
var
job
=
Job
.
toLowerCase
()
console
.
log
(
"job---------:"
+
job
);
console
.
log
(
"GENESIS_DIR---------:"
+
GEN
.
GENESIS_DIR
);
console
.
log
(
"GEN_TYPE---------:"
+
GEN
.
GEN_TYPE
);
var
jobpath
=
GEN
.
getJobPath
({
job
:
job
})
console
.
log
(
"_____jobpath______:"
+
_
.
toString
(
jobpath
));
console
.
log
(
"______path:"
+
GEN
.
dbutil
(
'path jobs '
+
jobname
));
// mkPath( jobpath,["user","opcam","steps"])
QDfm
.
updateRow
({
QDfm
.
updateRow
({
table
:
"pdm_aimdfm_task"
,
table
:
"pdm_aimdfm_task"
,
data
:
{
data
:
{
...
@@ -81,3 +95,17 @@ catch (e) {
...
@@ -81,3 +95,17 @@ catch (e) {
resultData
.
push
({
type
:
"error"
,
title
:
"脚本执行出错!"
,
detail
:
[{
desc
:
_
.
toString
(
e
)}]});
resultData
.
push
({
type
:
"error"
,
title
:
"脚本执行出错!"
,
detail
:
[{
desc
:
_
.
toString
(
e
)}]});
return
{
status
:
Status
,
result_data
:
resultData
};
return
{
status
:
Status
,
result_data
:
resultData
};
}
}
function
mkPath
(
path
,
list
)
{
console
.
log
(
"--path:"
+
path
);
if
(
list
.
length
){
var
newPath
=
path
+
'/'
+
list
.
shift
()
if
(
!
fs
.
dirExists
(
newPath
)){
fs
.
mkdir
(
newPath
)
console
.
log
(
"--mkdir:"
+
newPath
);
}
return
mkPath
(
newPath
,
list
)
}
else
{
return
path
}
}
\ No newline at end of file
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