Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
A
ats_cam_script
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
ats_cam_script
Commits
de2bd998
Commit
de2bd998
authored
Mar 01, 2021
by
Scott Sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
scott
parent
8ff10e8d
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
317 additions
and
159 deletions
+317
-159
ATS_AIM_customer_data_analysis.js
src/ATS_AIM_customer_data_analysis.js
+184
-101
ATS_AIM_data_format.js
src/ATS_AIM_data_format.js
+57
-16
ATS_AIM_data_input.js
src/ATS_AIM_data_input.js
+68
-24
config_ats.js
src/config_ats.js
+8
-18
No files found.
src/ATS_AIM_customer_data_analysis.js
View file @
de2bd998
This diff is collapsed.
Click to expand it.
src/ATS_AIM_data_format.js
View file @
de2bd998
...
...
@@ -399,7 +399,7 @@ try {
global
.
_ERRORMAG
=
"Failed to create profile"
;
script_info
({
progress
:
55
})
var
all_layer
=
Object
.
keys
(
tmp_matrix
);
var
all_layer
=
Object
.
keys
(
GEN
.
getMatrix
({
job
:
job
})
);
// 没有outline层
// 判断有没有profile
var
tmp_step
=
GEN
.
getStepList
({
job
:
job
})[
0
]
...
...
@@ -431,7 +431,15 @@ try {
}
else
{
createOutline
({
job
:
job
,
step
:
tmp_step
,
profileRule
:
profileRule
})
}
}
else
{
createOutline
({
job
:
job
,
step
:
tmp_step
,
profileRule
:
profileRule
})
// var hasFab = false;
// all_layer.forEach(function(v){
// if(/fab/.test(v)){hasFab = true}
// })
// if(hasFab){
// throw "创建profile失败,请手动创建好profile后仅执行分析步骤"
// } else {
createOutline
({
job
:
job
,
step
:
tmp_step
,
profileRule
:
profileRule
})
// }
}
}
else
if
(
/^wistron$/ig
.
test
(
par
.
customer
))
{
var
contours
=
all_layer
.
filter
(
function
(
layer
){
return
/contour/
.
test
(
layer
)})
...
...
@@ -454,19 +462,44 @@ try {
createOutline
({
job
:
job
,
step
:
tmp_step
,
profileRule
:
profileRule
})
}
}
else
if
(
/^vivo$/ig
.
test
(
par
.
customer
))
{
var
drilldrawings
=
all_layer
.
filter
(
function
(
v
){
return
/^drilldrawing
\d
/
.
test
(
v
)})
var
drilldrawinglayer
;
if
(
drilldrawings
.
length
>
0
)
{
drilldrawings
=
drilldrawings
.
map
(
function
(
v
){
GEN
.
workLayer
({
name
:
v
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selAllFeat
();
var
count
=
Number
(
GEN
.
getSelectCount
());
if
(
count
==
0
)
{
count
=
9999999
}
GEN
.
selClearFeature
()
return
{
name
:
v
,
count
:
count
}
})
drilldrawings
.
sort
(
function
(
a
,
b
){
return
a
.
count
-
b
.
count
})
drilldrawinglayer
=
drilldrawings
[
0
].
name
}
// 判断有没有line层
if
(
all_layer
.
indexOf
(
"line"
)
>=
0
){
GEN
.
workLayer
({
name
:
"line"
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selAllFeat
()
if
(
GEN
.
getSelectCount
()
>
0
)
{
GEN
.
COM
(
"sel_create_profile,create_profile_with_holes=no"
)
}
}
else
if
(
drilldrawinglayer
){
GEN
.
workLayer
({
name
:
drilldrawinglayer
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selAllFeat
()
if
(
GEN
.
getSelectCount
()
>
0
)
{
createOutline
({
job
:
job
,
step
:
tmp_step
,
profileRule
:[
"^"
+
drilldrawinglayer
+
"$"
]})
}
else
{
createOutline
({
job
:
job
,
step
:
tmp_step
,
profileRule
:
profileRule
})
}
}
else
if
(
all_layer
.
indexOf
(
"array"
)
>=
0
)
{
GEN
.
workLayer
({
name
:
"array"
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selAllFeat
()
if
(
GEN
.
getSelectCount
()
>
0
)
{
//
GEN.COM("sel_create_profile,create_profile_with_holes=no");
//
if(!hasProfle({job:job, step:tmp_step})){
GEN
.
COM
(
"sel_create_profile,create_profile_with_holes=no"
);
if
(
!
hasProfle
({
job
:
job
,
step
:
tmp_step
})){
createOutline
({
job
:
job
,
step
:
tmp_step
,
profileRule
:[
"^array$"
]})
//
}
}
}
else
{
createOutline
({
job
:
job
,
step
:
tmp_step
,
profileRule
:
profileRule
})
}
}
else
if
(
all_layer
.
indexOf
(
"top"
)
>=
0
)
{
...
...
@@ -647,14 +680,20 @@ catch (e) {
}
function
checkIn
(){
GEN
.
COM
(
"open_job,job="
+
Job
+
",open_win=no,disk_map=,job_map="
)
GEN
.
AUX
(
"set_group,group=99"
)
GEN
.
COM
(
"close_job,job="
+
Job
+
""
)
GEN
.
COM
(
"disp_on"
)
GEN
.
COM
(
"origin_on"
)
GEN
.
COM
(
"disp_on"
)
GEN
.
COM
(
"origin_on"
)
GEN
.
COM
(
"checkin_closed_job,job="
+
Job
);
db
.
query
(
""
,
function
(
q
){
return
q
.
insertRow
({
table
:
'pdm_aimdfm_task'
,
data
:{
job_id
:
JobId
,
flow_id
:
13
,
task_title
:
Job
+
":checkin"
,
status
:
'waiting'
,
user_name
:
"Admin"
,
user_id
:
1
}
})
});
}
function
tlNameMatrix
(
props
){
// 设置标准名
...
...
@@ -775,8 +814,8 @@ function sortLayer(props){ // 排序方法 {job:要排序的料号, rule: {要
}
sortNames.forEach(function(v,i,arr){
if(i !== 0){
GEN.matrixMoveRow({ job:job,layer:v.name,after:arr[i-1].name })
}
GEN.matrixMoveRow({ job:job,layer:v.name,after:arr[i-1].name })
}
if(!/^comp_
\
+_/.test(v.name)){
GEN.matrixLayerAttr(_.assign({job:job,layer:v.name},v.attr));
}
...
...
@@ -1108,10 +1147,12 @@ function createOutline(props){
selCopyLayer({job:job,layer:l})
GEN.workLayer({name:l,display_number:2,clear_before:"
yes
"})
GEN.selClearFeature()
GEN.saveJob({job:job})
if(GEN.GEN_TYPE == "
genesis
"){
GEN.selCreateProfile()
} else {
GEN.COM("
profile_limits
,
layers
=
"+l+"
,
type
=
lyrfilter
,
margin
=
0
")
GEN.COM("
sel_create_profile
,
create_profile_with_holes
=
no
")
// GEN.COM("
profile_limits
,
layers
=
"+l+"
,
type
=
lyrfilter
,
margin
=
0
")
}
GEN.selectByFilter({profile:"
in
"})
if(GEN.getSelectCount()> 0){GEN.selDelete()}
...
...
src/ATS_AIM_data_input.js
View file @
de2bd998
...
...
@@ -87,7 +87,7 @@ if (mode === "aimdfm") {
}
var
Status
=
'ok'
;
var
resultData
=
[];
var
import_info
=
[];
// 存储导入文件的信息
var
import_info
=
[];
var
inputState
=
[];
var
cam_workflow_info
=
IKM
.
get_jobinfo
({
jobid
:
JobId
,
jobinfo
:
"cam_workflow_info"
});
if
(
cam_workflow_info
){
...
...
@@ -120,7 +120,7 @@ try {
console
.
log
(
"========================db"
);
par
.
db
=
"genesis"
};
var
db_customer
=
db
.
query
(
""
,
function
(
q
){
// 获取客户
var
db_customer
=
db
.
query
(
""
,
function
(
q
){
return
q
.
selectValue
({
table
:
'pdm_job'
,
field
:
'customer_code'
,
...
...
@@ -135,7 +135,7 @@ try {
par
.
customer
=
db_customer
}
par
.
customer
=
par
.
customer
[
0
].
toUpperCase
()
+
par
.
customer
.
slice
(
1
).
toLowerCase
()
var
cfg
=
db
.
query
(
""
,
function
(
q
){
// 获取脚本配置
var
cfg
=
db
.
query
(
""
,
function
(
q
){
return
q
.
selectValue
({
table
:
'pub_conf'
,
field
:
'text_data'
,
...
...
@@ -146,7 +146,7 @@ try {
script_info
({
msg
:
"Find customer config"
,
result_severity
:
"error"
});
global
.
_ERRORMAG
=
"No customer config was found"
;
throw
"cfg can not find"
}
var
config
=
eval
(
cfg
);
// 解析配置
var
config
=
eval
(
cfg
);
if
(
!
config
.
hasOwnProperty
(
"customer"
)){
script_info
({
msg
:
"Find customer config"
,
result_severity
:
"error"
});
global
.
_ERRORMAG
=
"No customer config was found"
;
...
...
@@ -155,11 +155,11 @@ try {
if
(
_
.
isEmpty
(
job
))
throw
"没有传入料号名!"
;
job
=
job
.
toLowerCase
()
// 如果genesis已经存在这个料号
err
=
delSameJob
({
job
:
job
,
delSame
:
config
.
delSameJob
});
if
(
err
){
throw
err
};
// 删除相同料号
var
custCfg
=
config
.
customer
[
par
.
customer
]
// 获取该客户的配置
err
=
delSameJob
({
job
:
job
,
delSame
:
config
.
delSameJob
});
if
(
err
){
throw
err
};
var
custCfg
=
config
.
customer
[
par
.
customer
]
if
(
!
custCfg
){
throw
"customer config error:"
+
par
.
customer
}
custCfg
.
db
=
par
.
db
||
custCfg
.
db
var
step
=
custCfg
.
step
.
toLowerCase
()
||
"cad"
;
// 获取step
var
step
=
custCfg
.
step
.
toLowerCase
()
||
"cad"
;
// 获取路径下文件信息
var
path
=
par
.
path
if
(
!
fs
.
exists
(
path
)){
...
...
@@ -167,9 +167,18 @@ try {
global
.
_ERRORMAG
=
"No PN file was found in folder"
;
throw
"path error"
}
var
pathInfo
=
fs
.
listDir
(
path
+
"/"
+
db_customer
.
toLowerCase
(),
1
)
// 判断存不存在料号文件
// var vc_position = db.query("",function(q){
// return q.selectValue({
// table:'pdm_job',
// field:'version',
// where:{id : JobId}
// })
// });
var
job_file_baseName
=
job
// 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
){
script_info
({
msg
:
"Find PN folder"
,
result_severity
:
"error"
});
...
...
@@ -187,11 +196,11 @@ try {
// 将jobFile下的zip解压
script_info
({
msg
:
"unzip the file"
,
result_severity
:
"info"
})
global
.
_ERRORMAG
=
"Failed to unzip the file"
;
decompression
(
jobFile
[
0
].
path
,
[]);
// 递归解压 料号文件里的压缩包
decompression
(
jobFile
[
0
].
path
,
[]);
changePath2
(
jobFile
[
0
].
path
)
// 修改不规范的路径
changePath2
(
jobFile
[
0
].
path
)
var
job_attrs
=
db
.
query
(
""
,
function
(
q
){
// 设置料号attrs
var
job_attrs
=
db
.
query
(
""
,
function
(
q
){
return
q
.
selectValue
({
table
:
'pdm_job'
,
field_format
:{
job_attrs
:
'json'
},
...
...
@@ -210,8 +219,9 @@ try {
})
});
jobFiles
=
fs
.
listDir
(
jobFile
[
0
].
path
)
// 分析料号文件 得到料号导入信息 导入类型
var
jobInfo
=
analyJobFiles
({
jobFiles
:
jobFiles
.
filter
(
function
(
v
){
return
v
.
isFile
}),
custCfg
:
custCfg
,
config
:
config
,
job
:
job
})
if
(
jobInfo
.
data
.
length
==
0
){
...
...
@@ -250,7 +260,8 @@ try {
}
})
var
step_all
=
[];
// 分析arr_job 和 pcs_job
// 分析arr_job 和 pcs_job;
jobs
=
jobs
.
filter
(
function
(
v
){
return
GEN
.
isJobExists
({
job
:
v
.
name
})});
jobs
.
forEach
(
function
(
item
){
var
jobname
=
item
.
name
GEN
.
openJob
({
job
:
jobname
});
...
...
@@ -272,14 +283,14 @@ try {
})
}
})
})
})
;
var
pcs_job_name_tmp
=
step_all
[
0
].
jobname
step_all
=
step_all
.
filter
(
function
(
item
){
return
item
.
jobname
!=
pcs_job_name_tmp
})
var
pcs_job
=
jobs
.
filter
(
function
(
item
){
return
item
.
name
==
pcs_job_name_tmp
})[
0
]
})[
0
]
;
importJob
({
name
:
job
,
db
:
custCfg
.
db
,
path
:
pcs_job
.
path
},
config
.
delSameJob
)
GEN
.
openJob
({
job
:
job
});
step_all
.
forEach
(
function
(
item
){
...
...
@@ -338,7 +349,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
().
split
(
" "
).
join
(
"-"
)
gerberCfg
.
layer
=
file
.
name
.
toLowerCase
().
split
(
" "
).
join
(
"-"
)
.
replace
(
/
[
()
]
/ig
,
"_"
)
gerberCfg
.
path
=
file
.
path
gerberCfg
.
format
=
item
.
type
gerberCfg
.
job
=
job
...
...
@@ -637,19 +648,22 @@ function decompression(path, zips) {
var
files
=
fs
.
listDir
(
path
)
var
count
=
0
;
var
zipfiles
=
files
.
filter
(
function
(
item
){
if
(
/zip/ig
.
test
(
item
.
suffix
)
||
item
.
suffix
==
"rar"
||
item
.
suffix
==
"7z"
||
item
.
suffix
==
"ZIP"
)
{
if
(
/zip/ig
.
test
(
item
.
suffix
)
||
item
.
suffix
==
"rar"
||
item
.
suffix
==
"7z"
)
{
inputState
.
push
(
item
.
suffix
);
console
.
log
(
"--->path:"
+
item
.
path
)
if
(
zips
.
indexOf
(
item
.
path
)
<
0
){
zips
.
push
(
item
.
path
);
if
(
item
.
name
.
length
>=
30
&&
!
/�|
\?
/
.
test
(
item
.
name
))
{
//if(item.name.length >= 30 && !/�|\?/.test(item.name)) {
if
(
/
\w
/
.
test
(
item
.
name
)){
var
mvname
=
"custom"
+
count
+
"."
+
item
.
suffix
;
count
++
;
fs
.
rename
(
item
.
path
,
item
.
dir
+
"/"
+
mvname
);
fs
.
rename
(
item
.
path
,
item
.
dir
+
"/"
+
mvname
);
fs
.
copyFile
(
item
.
path
,
ATS_AIM_checkin
,
true
);
item
.
path
=
item
.
dir
+
"/"
+
mvname
zips
.
push
(
item
.
path
);
}
var
dir_name
=
item
.
path
.
replace
(
/
\.(
zipx|zip|7z|rar
)
$/ig
,
""
);
autoUn
(
item
.
path
,
dir_name
);
autoUn
(
item
.
path
,
dir_name
,
item
.
dir
);
return
true
}
}
...
...
@@ -678,12 +692,42 @@ function changePath(path) {
})
}
function
autoUn
(
path
,
dirname
)
{
function
autoUn
(
path
,
dirname
,
dir
)
{
// 解压密码逻辑 先获取 /home/toplinker/samba/unzip_pwd.txt
var
pw
=
"/home/toplinker/samba/unzip_pwd.txt"
;
var
pws
=
fs
.
readFile
(
pw
);
var
strs
=
pws
.
split
(
"
\n
"
)
var
ret
=
{};
strs
.
map
(
function
(
v
)
{
var
tmp
=
v
.
split
(
/
\s
+/
);
ret
[
tmp
[
0
].
trim
()]
=
tmp
[
1
].
trim
()
})
var
pwd
;
if
(
ret
[
Job
]){
pwd
=
ret
[
Job
]
}
if
(
fs
.
exists
(
dir
+
"/pw.txt"
)){
pwd
=
fs
.
readFile
(
dir
+
"/pw.txt"
);
}
if
(
/
\.
rar$/
.
test
(
path
)){
fs
.
mkdir
(
dirname
)
process
.
exec
(
'/opt/rar/unrar'
,
[
'x'
,
path
,
dirname
,
"-o+"
])
if
(
pwd
){
process
.
exec
(
'/opt/rar/unrar'
,
[
'x'
,
path
,
dirname
,
"-o+"
,
"-p"
+
pwd
])
}
else
{
process
.
exec
(
'/opt/rar/unrar'
,
[
'x'
,
path
,
dirname
,
"-o+"
])
}
}
else
{
process
.
exec
(
'/usr/local/lib/p7zip/7za'
,
[
'x'
,
path
,
"-o"
+
dirname
,
"-aoa"
])
if
(
pwd
){
process
.
exec
(
'/usr/local/lib/p7zip/7za'
,
[
'x'
,
path
,
"-o"
+
dirname
,
"-aoa"
,
"-p"
+
pwd
])
}
else
{
process
.
exec
(
'/usr/local/lib/p7zip/7za'
,
[
'x'
,
path
,
"-o"
+
dirname
,
"-aoa"
])
}
}
}
...
...
src/config_ats.js
View file @
de2bd998
...
...
@@ -448,8 +448,6 @@
}
],
"tl_name"
:
[
{
"orig_name"
:
[
"^comp_+_top$"
],
"tl_name"
:
"comp_+_top"
},
{
"orig_name"
:
[
"^comp_+_bot$"
],
"tl_name"
:
"comp_+_bot"
},
{
"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"
:
[
"top_(?:solder)paste"
,
"^spt(?:
\\
.gbr)?$"
,
"^past_top$"
],
"tl_name"
:
"past_top"
},
...
...
@@ -459,7 +457,7 @@
{
"orig_name"
:
[
"top_(?:solder)mask"
,
"^smt(?:
\\
.gbr)?$"
,
"^sm_top$"
],
"tl_name"
:
"sm_top"
},
{
"orig_name"
:
[
"bot(?:tom)?_(?:solder)mask"
,
"^smb(?:
\\
.gbr)?$"
,
"^sm_botm$"
],
"tl_name"
:
"sm_botm"
},
{
"orig_name"
:
[
"^top$"
,
"^top
\\
.gbr$"
,
"^top
\\
.art$"
],
"tl_name"
:
"top"
},
{
"orig_name"
:
[
"^drill(?:
\\
.drl)?$"
]
,
"tl_name"
:
"drill"
},
{
"orig_name"
:
"^drill(?:
\\
.drl)$"
,
"tl_name"
:
"drill"
},
{
"orig_name"
:
[
"^board_outline$"
,
"outline
\\
.gbr|outline
\\
.art"
,
"^outline$"
],
"tl_name"
:
"outline"
},
{
"orig_name"
:
[
"^rout$"
,
"
\\
.rou$"
],
"tl_name"
:
"rout"
},
{
"orig_name"
:
[
"^bottom$"
,
"^bottom
\\
.gbr$"
,
"^bottom
\\
.art$"
],
"tl_name"
:
"bottom"
},
...
...
@@ -597,27 +595,27 @@
}
],
"tl_name"
:
[
{
"orig_name"
:
[
"^comp_+_top$"
],
"tl_name"
:
"comp_+_top"
},
{
"orig_name"
:
[
"^comp_+_bot$"
],
"tl_name"
:
"comp_+_bot"
},
{
"orig_name"
:
[
"^pm_top"
,
"spcs
\\
.gbr$|paste.pri|pripaste|solderpaste_top"
,
"ppst
\\
.art|spt
\\
.art"
,
"assy[_-]?top
\\
.art"
,
"past_top"
,
"paste_top|spt"
],
"tl_name"
:
"past_top"
},
{
"orig_name"
:
[
"^pm_bot"
,
"spps
\\
.gbr$|paste.sec|secpaste|solderpaste_bottom"
,
"spst
\\
.art|spb
\\
.art"
,
"assy[_-]?bott?o?m?
\\
.art"
,
"past_bot"
,
"paste_bot|spb"
],
"tl_name"
:
"past_botm"
},
{
"orig_name"
:
[
"silk.pri"
,
"pleg
\\
.art|sst
\\
.art"
,
"^ss_top|sscs
\\
.gbr$"
,
"silk_top|sst"
],
"tl_name"
:
"silk_top"
},
{
"orig_name"
:
[
"silk.sec"
,
"sleg
\\
.art|ssb
\\
.art"
,
"^ss_bot|ssps
\\
.gbr$"
,
"silk_bot|ssb"
],
"tl_name"
:
"silk_bot"
},
{
"orig_name"
:
[
"^tm
\\
.art$|
\\
.st$|
\\
.tsm$|soldermask_top"
,
"mask.top
\\
.art|smt
\\
.art"
,
"mask.pri
\\
.art|smcs
\\
.gbr$"
,
"psm
\\
.art"
,
"sm_top|^smt"
],
"tl_name"
:
"sm_top"
},
{
"orig_name"
:
[
"^bm
\\
.art$|
\\
.sb$|
\\
.bsm$|soldermask_bottom"
,
"mask.bot
\\
.art|smb
\\
.art"
,
"mask.sec
\\
.art|smps
\\
.gbr$"
,
"ssm
\\
.art"
,
"sm_bot|^smb"
],
"tl_name"
:
"sm_botm"
},
{
"orig_name"
:
[
"^(?:(?!assy|enig|pm|past|ss|silk|sm|soldermask
).)+_top
\
.art$"
,
"^top$"
,
"^top
.art$"
],
"tl_name"
:
"top"
},
{
"orig_name"
:
[
"^(?:(?!assy|enig|pm|past|ss|silk|sm|soldermask
).)+_bottom
\
.art$"
,
"^bot
\\
.art$"
,
"^bottom$"
,
"^bottom
\\
.art$"
],
"tl_name"
:
"bottom"
},
{
"orig_name"
:
[
"^(?:(?!assy|enig|pm|past|ss|silk|sm|soldermask
|via|plug).)+_top
\
.art$"
,
"^surface$"
,
"^top$"
,
"^top.art$|^pri
\\
.art$"
],
"tl_name"
:
"top"
},
{
"orig_name"
:
[
"^(?:(?!assy|enig|pm|past|ss|silk|sm|soldermask
|via|plug).)+_bottom
\
.art$"
,
"^base$"
,
"^bot
\\
.art$"
,
"^bottom$"
,
"^bottom
\\
.art$|^sec
\\
.art$"
],
"tl_name"
:
"bottom"
},
{
"orig_name"
:
[
"int(
\\
d+)
\\
.art"
],
"tl_name"
:
"l_($1+1)"
},
{
"orig_name"
:
[
"_top_lay(
\\
d+)"
],
"tl_name"
:
"d_1-($1)"
},
{
"orig_name"
:
[
"_lay(
\\
d+)_bot"
],
"tl_name"
:
"d_($1)-($1+1)"
},
{
"orig_name"
:
[
"_lay(
\\
d+)_lay(
\\
d+)"
,
"_l?(
\\
d+)_l?(
\\
d+)$"
,
"
\\
.ncd(
\\
d)-(
\\
d)$"
,
"
\\
.d(
\\
d+)-(
\\
d+)$"
,
"-(
\\
d+)-(
\\
d+)
\\
.drl$"
,
"(
\\
d+)-(
\\
d+)-laser
\\
.drl$"
,
"d(
\\
d+)-(
\\
d+)"
],
"tl_name"
:
"d_($1)-($2)"
},
{
"orig_name"
:
[
"lay-(
\\
d+)
\\
.art$"
,
"^(?:signal|plane|layer)_(
\\
d+)$"
,
"^l(
\\
d+)$"
,
"_l(
\\
d+)-.{3}
\\
.art$"
,
"lay(
\\
d+)
\\
.art$"
,
"l(
\\
d+).*
\\
.gbr$"
,
"^0?(
\\
d+)[
\\
D].*
\\
.art$"
,
"
\\
.p(
\\
d+)p?$"
,
"
\\
.l(
\\
d+)$"
,
"^l(
\\
d+).*
\\
.art$"
,
"^l(
\\
d+)
\\
.art$"
,
"^0(
\\
d+).*ccp_ms"
,
"^s(
\\
d+)
\\
.art"
,
"laye?r?(
\\
d+)"
,
"layer_(
\\
d+)"
],
"tl_name"
:
"l_($1)"
},
{
"orig_name"
:
[
"(
\\
d+)-(
\\
d+)-((?:(?!laser)[a-zA-Z])+)
\\
.drl$"
,
"
\\
.d(
\\
d+)-(
\\
d+)((?:(?!laser)[a-zA-Z])+)$"
],
"tl_name"
:
"d($1)-($2)-($3)"
},
{
"orig_name"
:
[
"_l?(
\\
d+)_l?(
\\
d+)$"
,
"
\\
.ncd(
\\
d)-(
\\
d)$"
,
"
\\
.d(
\\
d+)-(
\\
d+)$"
,
"-(
\\
d+)-(
\\
d+)
\\
.drl$"
,
"(
\\
d+)-(
\\
d+)-laser
\\
.drl$"
,
"d(
\\
d+)-(
\\
d+)"
],
"tl_name"
:
"d_($1)-($2)"
},
{
"orig_name"
:
[
"^nth_layer$"
,
"^drill$"
,
"
\\
.ncdthru$"
],
"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"
:
[
"^ro
\\
.art$"
,
"^contour
\\
.gdo$"
,
"
\\
.R1$"
,
"outline"
],
"tl_name"
:
"outline"
},
{
"orig_name"
:
[
"
^pst
\\
.art$"
,
"
top-enig"
,
"enig_top"
],
"tl_name"
:
"enig_top"
},
{
"orig_name"
:
[
"
^sst
\\
.art$"
,
"
bot-enig"
,
"enig_bot"
],
"tl_name"
:
"enig_bot"
},
{
"orig_name"
:
[
"top-enig"
,
"enig_top"
],
"tl_name"
:
"enig_top"
},
{
"orig_name"
:
[
"bot-enig"
,
"enig_bot"
],
"tl_name"
:
"enig_bot"
},
{
"orig_name"
:
[
"_top_l(
\\
d+)"
],
"tl_name"
:
"d_1-($1)"
},
{
"orig_name"
:
[
"_l(
\\
d+)_bottom"
],
"tl_name"
:
"d_($1)-($1+1)"
}
],
...
...
@@ -827,8 +825,6 @@
}
],
"tl_name"
:
[
{
"orig_name"
:
[
"^comp_+_top$"
],
"tl_name"
:
"comp_+_top"
},
{
"orig_name"
:
[
"^comp_+_bot$"
],
"tl_name"
:
"comp_+_bot"
},
{
"orig_name"
:
[
"^spt$|^pmt
\\
.art$"
,
"
\\
.pma$|
\\
.spa$"
,
"paste.?top|soldPasteTop|pastemask.?top"
,
"past_top"
],
"tl_name"
:
"past_top"
},
{
"orig_name"
:
[
"^spb$|^pmb
\\
.art$"
,
"
\\
.pmb$|
\\
.spb$"
,
"paste.?bot|soldPasteBot|pastemask.?bot"
,
"past_botm"
],
"tl_name"
:
"past_botm"
},
{
"orig_name"
:
[
"sst|tsilk|silktop"
,
"^sst
\\
.art$"
,
"
\\
.ssa$"
,
"silkscrntop|silkscreentop"
,
"silk.top|silk-top"
],
"tl_name"
:
"silk_top"
},
...
...
@@ -901,8 +897,6 @@
}
],
"tl_name"
:
[
{
"orig_name"
:
[
"^comp_+_top$"
],
"tl_name"
:
"comp_+_top"
},
{
"orig_name"
:
[
"^comp_+_bot$"
],
"tl_name"
:
"comp_+_bot"
},
{
"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"
},
...
...
@@ -975,8 +969,6 @@
}
],
"tl_name"
:
[
{
"orig_name"
:
[
"^comp_+_top$"
],
"tl_name"
:
"comp_+_top"
},
{
"orig_name"
:
[
"^comp_+_bot$"
],
"tl_name"
:
"comp_+_bot"
},
{
"orig_name"
:
[
"pasttop
\\
.art"
,
"past_top"
],
"tl_name"
:
"past_top"
},
{
"orig_name"
:
[
"pastbotm
\\
.art"
,
"past_bot"
],
"tl_name"
:
"past_botm"
},
{
"orig_name"
:
[
"^silktop
\\
.art$"
,
"silk_top"
],
"tl_name"
:
"silk_top"
},
...
...
@@ -1089,7 +1081,6 @@
}
},
"data_format"
:
[
{
"tl_name"
:
"comp_
\\
+_top"
,
"new_name"
:
"comp_+_top"
,
"attr"
:{}},
{
"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"
}},
...
...
@@ -1101,7 +1092,6 @@
{
"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"
:
"enig_bot"
,
"new_name"
:
"enig_bot"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"document"
}},
{
"tl_name"
:
"comp_
\\
+_bot"
,
"new_name"
:
"comp_+_bot"
,
"attr"
:{}},
{
"tl_name"
:
"d_(
\\
d+)-(
\\
d+)"
,
"new_name"
:
"ftdrill($1)-($2)l"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"drill"
}},
{
"tl_name"
:
"d(
\\
d+)-(
\\
d+)-(.*)"
,
"new_name"
:
"ftdrill($1)-($2)-($3)"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"drill"
}},
{
"tl_name"
:
"drill"
,
"new_name"
:
"ftdrill"
,
"attr"
:{
"context"
:
"board"
,
"type"
:
"drill"
}},
...
...
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