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 @@
],
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 {
GEN
.
openStep
({
job
:
job
,
name
:
step
})
GEN
.
affectedLayer
({
affected
:
'no'
,
mode
:
'all'
})
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_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"
)
...
...
@@ -660,7 +692,6 @@ try {
}
})
console
.
log
(
"================================> 9 copper_percent signal drill"
)
// 分析layer info
var
stepList
=
[
pcs_step
];
var
oChecklistName
=
"mychecklist"
...
...
@@ -714,6 +745,13 @@ try {
jobid
:
JobId
,
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
){
GEN
.
openStep
({
job
:
job
,
name
:
step
})
// GEN.units({type:'mm'})
...
...
@@ -832,7 +870,7 @@ try {
items
:
[
tmpitem
]
})
// 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
){
...
...
@@ -850,9 +888,9 @@ try {
layerinfohash
:
val
})
})
GEN
.
closeStep
()
})
// 保存
if
(
/yes/ig
.
test
(
par
.
auto_save
)){
...
...
@@ -864,6 +902,17 @@ try {
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
({
table
:
"pdm_aimdfm_task"
,
...
...
@@ -968,8 +1017,8 @@ function ANALYSIS_STACKUP(props){
layer
.
drl_to_num
=
layer_count
;
layer
.
type
=
'main_drill'
;
}
else
if
(
/^ftdrill
(\d
+
)
-
(\d
+
)
l$
/
.
test
(
layer
.
odb_name
)){
// /^d(\d+)\-(\d+)$/
var
tmp
=
/^ftdrill
(\d
+
)
-
(\d
+
)
l$
/
.
exec
(
layer
.
odb_name
)
else
if
(
/^ftdrill
(\d
+
)
-
(\d
+
)
/
.
test
(
layer
.
odb_name
)){
// /^d(\d+)\-(\d+)$/
var
tmp
=
/^ftdrill
(\d
+
)
-
(\d
+
)
/
.
exec
(
layer
.
odb_name
)
var
drl_star
=
tmp
[
1
];
var
drl_end
=
tmp
[
2
];
layer
.
drl_start_num
=
drl_star
;
...
...
@@ -1740,6 +1789,7 @@ function analysisChkAttr(par) {
var
job
=
par
.
job
;
var
oChecklistName
=
par
.
oChecklistName
layers
.
forEach
(
function
(
v
)
{
saveMeans
({
job
:
job
,
step
:
par
.
step
,
chklist
:
oChecklistName
,
nact
:
1
,
layer
:
v
,
jobpath
:
par
.
jobpath
})
hash
[
v
]
=
{}
Object
.
keys
(
info
).
forEach
(
function
(
key
)
{
var
val
=
info
[
key
]
...
...
@@ -2243,4 +2293,26 @@ function 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;
var
db
=
$
.
db
;
var
Status
=
'ok'
;
var
resultData
=
[];
var
import_info
=
[]
var
PAR
=
{};
if
(
$
.
hasOwnProperty
(
'script_parameter'
)){
PAR
=
JSON
.
parse
(
$
.
script_parameter
);
...
...
@@ -156,10 +157,9 @@ try {
if
(
jobInfo
.
data
.
length
==
0
){
throw
"file error"
}
var
importOk
=
false
;
// 是否成功导入
if
(
/odb/ig
.
test
(
jobInfo
.
type
)){
// odb导入
fs
.
writeFile
(
"./tmp.js"
,
_
.
toString
(
jobInfo
.
data
))
if
(
jobInfo
.
data
.
length
==
1
){
// 只分析到一个tgz文件 直接导入
resultData
.
push
(
{
type
:
"info"
,
title
:
"读取"
+
jobInfo
.
data
[
0
].
file
.
name
,
detail
:
[{
desc
:
_
.
toString
({
format
:
"odb++"
,
date
:
now
(),
user
:
$
.
user_name
})}]})
import_info
.
push
({
name
:
jobInfo
.
data
[
0
].
file
.
name
,
type
:
"odb++"
,
date
:
now
(),
user
:
$
.
user_name
})
var
err
=
importJob
({
name
:
job
,
db
:
custCfg
.
db
,
path
:
jobInfo
.
data
[
0
].
file
.
path
},
config
.
delSameJob
)
if
(
err
){
throw
err
}
}
else
{
// 多个tgz文件 说明需要合并
...
...
@@ -168,8 +168,7 @@ try {
var
path
=
item
.
file
.
path
var
tmp_job_name
=
job
+
"_tmp_"
+
i
var
err
=
importJob
({
name
:
tmp_job_name
,
db
:
custCfg
.
db
,
path
:
path
},
config
.
delSameJob
)
resultData
.
push
(
{
type
:
"info"
,
title
:
"读取"
+
item
.
file
.
name
,
detail
:
[{
desc
:
_
.
toString
({
format
:
"odb++"
,
date
:
now
(),
user
:
$
.
user_name
})}]})
import_info
.
push
({
name
:
item
.
file
.
name
,
type
:
"odb++"
,
date
:
now
(),
user
:
$
.
user_name
})
if
(
err
){
throw
err
}
return
{
name
:
tmp_job_name
,
...
...
@@ -233,7 +232,7 @@ try {
var
gerberInfo
=
jobInfo
.
data
.
map
(
function
(
item
){
var
gerberCfg
=
JSON
.
parse
(
JSON
.
stringify
(
item
.
format
));
var
file
=
item
.
file
gerberCfg
.
layer
=
file
.
name
.
toLowerCase
()
gerberCfg
.
layer
=
file
.
name
.
toLowerCase
()
.
split
(
" "
).
join
(
"-"
)
gerberCfg
.
path
=
file
.
path
gerberCfg
.
format
=
item
.
type
gerberCfg
.
job
=
job
...
...
@@ -242,8 +241,8 @@ try {
})
GEN
.
COM
(
"input_manual_reset"
)
gerberInfo
.
forEach
(
function
(
v
){
resultData
.
push
(
{
type
:
"info"
,
title
:
"读取"
+
v
.
layer
,
detail
:
[{
desc
:
_
.
toString
({
format
:
v
.
format
,
date
:
now
(),
user
:
$
.
user_name
})}]})
import_info
.
push
({
name
:
v
.
layer
,
type
:
"gerber274x"
,
date
:
now
(),
user
:
$
.
user_name
})
GEN
.
COM
(
"input_manual_set"
,
v
)
})
GEN
.
COM
(
"input_manual"
)
...
...
@@ -278,6 +277,16 @@ try {
},
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
())
{
Status
=
'error'
;
resultData
.
push
({
type
:
"error"
,
title
:
"GEN错误!"
,
detail
:
[{
desc
:
_
.
join
(
GEN
.
STATUS
,
"
\n
"
)
}]
});
...
...
config_ats.js
View file @
21ea8dd5
...
...
@@ -245,26 +245,6 @@
"merge_by_rule"
:
"no"
,
"signed_coords"
:
"no"
,
"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"
:
{
...
...
@@ -680,10 +660,10 @@
{
"valid"
:
function
(
props
){
var
file
=
props
.
file
;
return
/.+
\.
btd$
|.+
\.
rou$
/ig
.
test
(
file
.
name
)
return
/.+
\.
btd$/ig
.
test
(
file
.
name
)
},
"type"
:
"IPC356
A
"
,
"format"
:
"IPC356
A
_1"
"type"
:
"IPC356"
,
"format"
:
"IPC356_1"
},
{
"valid"
:
function
(
props
){
...
...
@@ -761,7 +741,7 @@
{
"valid"
:
function
(
props
){
var
file
=
props
.
file
;
return
/.+
\.
drl$/ig
.
test
(
file
.
name
)
return
/.+
\.
drl$
|
\.
rou$
/ig
.
test
(
file
.
name
)
},
"type"
:
"Excellon2"
,
"format"
:
"Excellon2_4"
,
...
...
@@ -809,10 +789,10 @@
{
"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"
:
[
"^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"
:
[
"
\\
.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"
:
[
"
\\
.rou$"
,
"^rout$"
],
"tl_name"
:
"rout"
},
{
"orig_name"
:
"fab.art"
,
"tl_name"
:
"fab.art"
},
...
...
@@ -820,7 +800,15 @@
{
"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$"
],
profile
:[
"^drill.
\\
art$"
],
laser
:
{
tl_name
:
"drill($1)-($2)"
,
regs
:
[
"(
\\
d+)-(
\\
d+)
\\
.drl$"
]
}
}
},
"Vivo"
:{
"step"
:
"cad"
,
...
...
@@ -844,7 +832,7 @@
{
"valid"
:
function
(
props
){
var
file
=
props
.
file
;
return
/
\.
gdo$/ig
.
test
(
file
.
name
)
return
/
\.
gdo$
|
\.
pho$
/ig
.
test
(
file
.
name
)
},
"type"
:
"Gerber274x"
,
"format"
:
"Gerber274x_4"
...
...
@@ -852,32 +840,110 @@
{
"valid"
:
function
(
props
){
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"
,
"format"
:
"Excellon2_5"
}
],
"tl_name"
:
[
{
"orig_name"
:
[
"solderpastetop"
,
"past_top"
],
"tl_name"
:
"past_top"
},
{
"orig_name"
:
[
"solderpastebottom"
,
"past_botm"
],
"tl_name"
:
"past_botm"
},
{
"orig_name"
:
[
"
OSP-Top
\\
.pho"
,
"
solderpastetop"
,
"past_top"
],
"tl_name"
:
"past_top"
},
{
"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"
:
[
"sleg
\\
.art"
,
"^ss_bot"
,
"silk_bot"
],
"tl_name"
:
"silk_bot"
},
{
"orig_name"
:
[
"soldermasktop"
,
"sm_top"
],
"tl_name"
:
"sm_top"
},
{
"orig_name"
:
[
"soldermaskbottom"
,
"sm_bot"
],
"tl_name"
:
"sm_botm"
},
{
"orig_name"
:
[
"^top$"
,
"layertop"
],
"tl_name"
:
"top"
},
{
"orig_name"
:
[
"layer(
\\
d+)
\\
.gdo"
,
"layer_(
\\
d+)"
],
"tl_name"
:
"l_($1)"
},
{
"orig_name"
:
[
"^bottom$"
,
"layerbottom"
],
"tl_name"
:
"bottom"
},
{
"orig_name"
:
[
"-(
\\
d+)-(
\\
d+)
\\
.drl$"
,
"(
\\
d+)-(
\\
d+)-laser
\\
.drl$"
,
"d(
\\
d+)-(
\\
d+)"
],
"tl_name"
:
"d_($1)-($2)"
},
{
"orig_name"
:
[
"Top solder mask
\\
.pho"
,
"soldermasktop"
,
"sm_top"
],
"tl_name"
:
"sm_top"
},
{
"orig_name"
:
[
"Bottom solder mask
\\
.pho"
,
"soldermaskbottom"
,
"sm_bot"
],
"tl_name"
:
"sm_botm"
},
{
"orig_name"
:
[
"Top
\\
.pho"
,
"^top$"
,
"layertop"
],
"tl_name"
:
"top"
},
{
"orig_name"
:
[
"^lay_(
\\
d+)"
,
"layer(
\\
d+)
\\
.gdo"
,
"layer_(
\\
d+)"
],
"tl_name"
:
"l_($1)"
},
{
"orig_name"
:
[
"^Bottom
\\
.pho$"
,
"^bottom$"
,
"layerbottom"
],
"tl_name"
:
"bottom"
},
{
"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"
:
"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"
:
[
"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
-bottom
\\
.gdo"
,
"au_mask
_bottom
\\
.gdo"
,
"enig_top"
],
"tl_name"
:
"enig_top"
},
{
"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"
:
[
"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"
:
[
...
...
test/scott_test.js
View file @
21ea8dd5
...
...
@@ -46,6 +46,7 @@ var GEN = $.gen;
var
Job
=
$
.
job_name
;
var
db
=
$
.
db
;
var
JobId
=
$
.
job_id
;
var
process
=
require
(
'process'
);
var
Status
=
'ok'
;
var
resultData
=
[];
var
PAR
=
{};
...
...
@@ -54,6 +55,19 @@ if ($.hasOwnProperty('script_parameter')){
}
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
({
table
:
"pdm_aimdfm_task"
,
data
:
{
...
...
@@ -81,3 +95,17 @@ catch (e) {
resultData
.
push
({
type
:
"error"
,
title
:
"脚本执行出错!"
,
detail
:
[{
desc
:
_
.
toString
(
e
)}]});
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