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
5faae354
Commit
5faae354
authored
4 years ago
by
Scott Sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
scott
parent
684776ec
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
297 additions
and
128 deletions
+297
-128
ATS_AIM_customer_data_analysis.js
ats/topcam/ATS_AIM_customer_data_analysis.js
+116
-52
ATS_AIM_data_format.js
ats/topcam/ATS_AIM_data_format.js
+5
-3
ATS_AIM_data_input.js
ats/topcam/ATS_AIM_data_input.js
+16
-5
config_ats.js
config_ats.js
+12
-9
scotttest.js
public_script/scotttest.js
+59
-47
silkScreenOptimize.js
public_script/silkScreenOptimize.js
+89
-12
No files found.
ats/topcam/ATS_AIM_customer_data_analysis.js
View file @
5faae354
...
@@ -105,6 +105,7 @@ var GEN = $.gen;
...
@@ -105,6 +105,7 @@ var GEN = $.gen;
var
GUI
=
$
.
gui
||
{};
var
GUI
=
$
.
gui
||
{};
var
Job
=
$
.
job
||
$
.
job_name
;
var
Job
=
$
.
job
||
$
.
job_name
;
var
JobId
=
$
.
job_id
;
var
JobId
=
$
.
job_id
;
var
zip
=
require
(
'topsin.zip'
);
var
db
=
$
.
db
||
IKM
.
db
var
db
=
$
.
db
||
IKM
.
db
var
PAR
=
{}
var
PAR
=
{}
if
(
$
.
par
)
{
if
(
$
.
par
)
{
...
@@ -534,6 +535,7 @@ try {
...
@@ -534,6 +535,7 @@ try {
steps_drillinfo
.
forEach
(
function
(
item
){
steps_drillinfo
.
forEach
(
function
(
item
){
var
type
=
item
.
type
;
var
type
=
item
.
type
;
var
step
=
item
.
name
;
var
step
=
item
.
name
;
if
(
GEN
.
isStepExists
({
job
:
job
,
step
:
step
})){
drillLayers
.
forEach
(
function
(
layer
){
drillLayers
.
forEach
(
function
(
layer
){
var
layer
=
layer
.
name
;
var
layer
=
layer
.
name
;
if
(
!
GEN
.
isLayerEmpty
({
job
:
job
,
step
:
step
,
layer
:
layer
})){
if
(
!
GEN
.
isLayerEmpty
({
job
:
job
,
step
:
step
,
layer
:
layer
})){
...
@@ -570,6 +572,7 @@ try {
...
@@ -570,6 +572,7 @@ try {
}
}
}
}
})
})
}
})
})
// 删除
// 删除
...
@@ -579,7 +582,6 @@ try {
...
@@ -579,7 +582,6 @@ try {
where
:{
job_id
:
JobId
}
where
:{
job_id
:
JobId
}
})
})
});
});
var
seq_index
=
1
;
var
seq_index
=
1
;
Object
.
keys
(
drill_tool_info
).
forEach
(
function
(
layer
){
Object
.
keys
(
drill_tool_info
).
forEach
(
function
(
layer
){
var
datalist
=
[]
var
datalist
=
[]
...
@@ -771,8 +773,8 @@ try {
...
@@ -771,8 +773,8 @@ try {
})
})
var
info
=
{
var
info
=
{
min_line_width
:
[
"line"
,
"user_nor_line"
],
min_line_width
:
[
"line"
,
"user_nor_line"
],
min_line_spacing
:
[
"l2l"
],
min_line_spacing
:
[
"l2l"
,
"user_nor_line2nor_line"
],
min_line2pad
:
[
"p2line"
,
"user_
bga2nor_line"
,
"user_smd2nor_line
"
],
min_line2pad
:
[
"p2line"
,
"user_
010052nor_line"
,
"user_bga2nor_line-1"
,
"user_smd2nor_line"
,
"user_self_spacing_smd2l
"
],
min_pad2pad
:
[
"p2p"
,
"smd2smd"
,
"smd2pad"
,
"via2via"
,
"bga2pad"
],
min_pad2pad
:
[
"p2p"
,
"smd2smd"
,
"smd2pad"
,
"via2via"
,
"bga2pad"
],
min_ar_laser
:[
"laser_via_ar"
],
min_ar_laser
:[
"laser_via_ar"
],
min_ar_via
:[
"via_ar"
],
min_ar_via
:[
"via_ar"
],
...
@@ -855,6 +857,39 @@ try {
...
@@ -855,6 +857,39 @@ try {
}
}
})
})
}
}
// 新增最小Pad/SM开窗
GEN
.
affectedLayer
({
affected
:
'no'
,
mode
:
'all'
})
GEN
.
selClearFeature
()
GEN
.
workLayer
({
name
:
item
.
signalL
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selectByFilter
({
feat_types
:
"pad"
,
profile
:
"in"
})
if
(
GEN
.
getSelectCount
()
>
0
){
selCopyLayer
({
job
:
job
,
layer
:
item
.
signalL
+
"_pad"
})
var
syms
=
GEN
.
getLayerSymsHist
({
job
:
job
,
step
:
step
,
layer
:
item
.
signalL
+
"_pad"
})
save_layerinfo
({
jobid
:
JobId
,
layer
:
item
.
signalL
,
layerinfohash
:
{
org_min_pad_size
:
getMinSym
(
syms
)
}
})
if
(
item
.
solderL
)
{
GEN
.
workLayer
({
name
:
item
.
solderL
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selRefFeat
({
layers
:
item
.
signalL
+
"_pad"
,
use
:
"filter"
,
mode
:
"touch"
})
if
(
GEN
.
getSelectCount
()
>
0
)
{
selCopyLayer
({
job
:
job
,
layer
:
item
.
signalL
+
"_sm"
})
var
syms2
=
GEN
.
getLayerSymsHist
({
job
:
job
,
step
:
step
,
layer
:
item
.
signalL
+
"_sm"
})
save_layerinfo
({
jobid
:
JobId
,
layer
:
item
.
signalL
,
layerinfohash
:
{
org_min_pad_sm_opening_size
:
getMinSym
(
syms2
)
}
})
GEN
.
deleteLayer
({
job
:
job
,
layer
:
item
.
signalL
+
"_sm"
})
}
}
GEN
.
deleteLayer
({
job
:
job
,
layer
:
item
.
signalL
+
"_pad"
})
}
})
})
GEN
.
clearLayers
()
GEN
.
clearLayers
()
GEN
.
affectedLayer
({
affected
:
'no'
,
mode
:
'all'
})
GEN
.
affectedLayer
({
affected
:
'no'
,
mode
:
'all'
})
...
@@ -873,7 +908,6 @@ try {
...
@@ -873,7 +908,6 @@ try {
return
{
layer
:
v
,
symbol
:
symbol
,
start
:
tmp_matrix
[
v
][
"drl_start"
],
end
:
tmp_matrix
[
v
][
"drl_end"
]}
return
{
layer
:
v
,
symbol
:
symbol
,
start
:
tmp_matrix
[
v
][
"drl_start"
],
end
:
tmp_matrix
[
v
][
"drl_end"
]}
})
})
var
drillRes
=
analysisDrill
(
drillToSignals
,
step
)
// 钻孔分析结果
var
drillRes
=
analysisDrill
(
drillToSignals
,
step
)
// 钻孔分析结果
// fs.writeFile("/home/toplinker/samba/scott_test/tmp",_.toString(drillRes))
console
.
log
(
"===============drillRes:"
+
_
.
toString
(
drillRes
));
console
.
log
(
"===============drillRes:"
+
_
.
toString
(
drillRes
));
drillRes
.
forEach
(
function
(
item
){
drillRes
.
forEach
(
function
(
item
){
save_layerinfo
({
save_layerinfo
({
...
@@ -918,7 +952,6 @@ try {
...
@@ -918,7 +952,6 @@ try {
})
})
// signal层分析结果
// signal层分析结果
var
res
=
analysisChkAttr
({
layers
:
signalLayers
,
info
:
info
,
step
:
step
,
job
:
job
,
oChecklistName
:
oChecklistName
,
jobpath
:
jobpath
})
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
){
var
val
=
res
[
key
]
var
val
=
res
[
key
]
...
@@ -1580,16 +1613,27 @@ function analysis(props){
...
@@ -1580,16 +1613,27 @@ function analysis(props){
return
milling
.
toFixed
(
4
)
return
milling
.
toFixed
(
4
)
}
}
T_m_p
.
prototype
.
analysis_board_has_attr
=
function
(
props
){
// board层中检查存在01005属性物件时
T_m_p
.
prototype
.
analysis_board_has_attr
=
function
(
props
){
// board层中检查存在01005属性物件时
GEN
.
openStep
({
job
:
this
.
job
,
name
:
this
.
pcs_step
})
var
step
=
this
.
pcs_step
GEN
.
clearLayers
()
var
job_path
=
GEN
.
getJobPath
({
job
:
job
})
GEN
.
affectedLayer
({
affected
:
'yes'
,
layer
:
this
.
matrixInfo
.
mBoardLayer
,
clear_before
:
'yes'
});
var
step_paths
=
fs
.
listDir
(
job_path
+
"/steps"
,
1
).
filter
(
function
(
item
){
return
item
.
isDir
}).
map
(
function
(
item
){
return
item
.
name
})
GEN
.
selClearFeature
()
var
ret
=
"no"
;
GEN
.
selectByFilter
({
attribute
:
props
})
if
(
step_paths
.
indexOf
(
step
)
>=
0
)
{
var
res
=
GEN
.
getSelectCount
()
>
0
?
"yes"
:
"no"
var
layers
=
fs
.
listDir
(
job_path
+
"/steps/"
+
step
+
"/layers"
,
1
).
filter
(
function
(
item
){
return
item
.
isDir
})
GEN
.
affectedLayer
({
affected
:
'no'
,
mode
:
'all'
});
layers
=
layers
.
filter
(
function
(
v
){
return
v
.
name
===
"comp_+_bot"
||
v
.
name
===
"comp_+_top"
})
GEN
.
selClearFeature
()
layers
.
forEach
(
function
(
item
){
GEN
.
closeStep
()
fs
.
copyFile
(
item
.
path
+
"/components.Z"
,
item
.
path
+
"/components.zip"
)
return
res
zip
.
unzip
(
item
.
path
+
"/components.zip"
);
if
(
fs
.
fileExists
(
item
.
path
+
"/components"
)){
var
datas
=
fs
.
readFile
(
item
.
path
+
"/components"
)
datas
.
match
(
/PRP ALT_SYMBOLS '
\([^
)
]
*
\)
'/ig
).
forEach
(
function
(
v
)
{
if
(
/01005/
.
test
(
v
))
{
ret
=
"yes"
}
})
}
})
}
return
ret
}
}
T_m_p
.
prototype
.
analysis_vc_src_EDGE_PLATING
=
function
(
props
){
T_m_p
.
prototype
.
analysis_vc_src_EDGE_PLATING
=
function
(
props
){
var
res
=
"no"
var
res
=
"no"
...
@@ -1734,7 +1778,7 @@ function smdAnalysis(props){
...
@@ -1734,7 +1778,7 @@ function smdAnalysis(props){
selCopyLayer
({
job
:
job
,
layer
:
tmp_layer
})
selCopyLayer
({
job
:
job
,
layer
:
tmp_layer
})
var
symbols
=
GEN
.
getLayerSymsHist
({
job
:
job
,
layer
:
tmp_layer
,
step
:
step
})
var
symbols
=
GEN
.
getLayerSymsHist
({
job
:
job
,
layer
:
tmp_layer
,
step
:
step
})
GEN
.
workLayer
({
name
:
tmp_layer
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
workLayer
({
name
:
tmp_layer
,
display_number
:
2
,
clear_before
:
'yes'
})
var
symbolInfo
=
symbolAnalysis
({
symbols
:
symbols
,
filterReg
:
/^
rect
/
})
var
symbolInfo
=
symbolAnalysis
({
symbols
:
symbols
,
filterReg
:
/^
(
rect|oval
)
/
})
if
(
!
res
.
hasOwnProperty
(
layer
.
signalL
)){
if
(
!
res
.
hasOwnProperty
(
layer
.
signalL
)){
res
[
layer
.
signalL
]
=
{}
res
[
layer
.
signalL
]
=
{}
}
}
...
@@ -1757,7 +1801,7 @@ function smdAnalysis(props){
...
@@ -1757,7 +1801,7 @@ function smdAnalysis(props){
GEN
.
selClearFeature
()
GEN
.
selClearFeature
()
GEN
.
workLayer
({
name
:
solderL_tmp
,
display_number
:
2
,
clear_before
:
"yes"
})
GEN
.
workLayer
({
name
:
solderL_tmp
,
display_number
:
2
,
clear_before
:
"yes"
})
var
symbols_solder
=
GEN
.
getLayerSymsHist
({
job
:
job
,
layer
:
solderL_tmp
,
step
:
step
})
var
symbols_solder
=
GEN
.
getLayerSymsHist
({
job
:
job
,
layer
:
solderL_tmp
,
step
:
step
})
var
symbolInfo_solder
=
symbolAnalysis
({
symbols
:
symbols_solder
,
filterReg
:
/^
rect
/
})
var
symbolInfo_solder
=
symbolAnalysis
({
symbols
:
symbols_solder
,
filterReg
:
/^
(
rect|oval
)
/
})
if
(
symbolInfo_solder
[
"min_width"
]){
res
[
layer
.
signalL
].
min_smd_sm_width
=
symbolInfo_solder
[
"min_width"
]}
if
(
symbolInfo_solder
[
"min_width"
]){
res
[
layer
.
signalL
].
min_smd_sm_width
=
symbolInfo_solder
[
"min_width"
]}
if
(
symbolInfo_solder
[
"min_length"
]){
res
[
layer
.
signalL
].
min_smd_sm_length
=
symbolInfo_solder
[
"min_length"
]}
if
(
symbolInfo_solder
[
"min_length"
]){
res
[
layer
.
signalL
].
min_smd_sm_length
=
symbolInfo_solder
[
"min_length"
]}
GEN
.
deleteLayer
({
job
:
job
,
layer
:
solderL_tmp
})
GEN
.
deleteLayer
({
job
:
job
,
layer
:
solderL_tmp
})
...
@@ -1773,7 +1817,7 @@ function smdAnalysis(props){
...
@@ -1773,7 +1817,7 @@ function smdAnalysis(props){
function
symbolAnalysis
(
props
){
function
symbolAnalysis
(
props
){
var
symbols
=
Object
.
keys
(
props
.
symbols
).
reduce
(
function
(
a
,
b
){
var
symbols
=
Object
.
keys
(
props
.
symbols
).
reduce
(
function
(
a
,
b
){
if
(
props
.
filterReg
.
test
(
b
)){
if
(
props
.
filterReg
.
test
(
b
)){
var
res
=
/^
rect
(\d
+
\.\d
+|
\d
+
)
x
(\d
+
\.\d
+|
\d
+
)
/ig
.
exec
(
b
).
slice
(
1
)
var
res
=
/^
(?:
rect|oval
)
(\d
+
\.\d
+|
\d
+
)
x
(\d
+
\.\d
+|
\d
+
)
/ig
.
exec
(
b
).
slice
(
1
)
var
num1
=
Number
(
res
[
0
]),
num2
=
Number
(
res
[
1
])
var
num1
=
Number
(
res
[
0
]),
num2
=
Number
(
res
[
1
])
if
(
num1
>
num2
){
if
(
num1
>
num2
){
var
tmp
=
num2
var
tmp
=
num2
...
@@ -1918,11 +1962,12 @@ function analysisChkAttr(par) {
...
@@ -1918,11 +1962,12 @@ function analysisChkAttr(par) {
nact
:
1
,
nact
:
1
,
attr
:
v
+
"_min_"
+
type
attr
:
v
+
"_min_"
+
type
})
})
if
(
a
===
"N/A"
&&
/
\d
+/
.
test
(
tmp
))
{
console
.
log
(
"===================== "
+
v
+
"_min_"
+
type
+
" -> "
+
tmp
);
if
(
a
===
"N/A"
&&
/^
\d
+
\.?\d
*$/
.
test
(
tmp
))
{
tmp
=
Number
(
tmp
)
tmp
=
Number
(
tmp
)
a
=
tmp
.
toFixed
(
2
)
a
=
tmp
.
toFixed
(
2
)
}
}
if
(
/
\d
+/
.
test
(
a
)
&&
/
\d
+
/
.
test
(
tmp
)
&&
Number
(
tmp
)
<
Number
(
a
))
{
if
(
/
^
\d
+
\.?\d
*$/
.
test
(
a
)
&&
/^
\d
+
\.?\d
*$
/
.
test
(
tmp
)
&&
Number
(
tmp
)
<
Number
(
a
))
{
tmp
=
Number
(
tmp
)
tmp
=
Number
(
tmp
)
a
=
tmp
.
toFixed
(
2
)
a
=
tmp
.
toFixed
(
2
)
}
}
...
@@ -2452,3 +2497,22 @@ function script_info(props){ // result_severity progress
...
@@ -2452,3 +2497,22 @@ function script_info(props){ // result_severity progress
});
});
}
}
}
}
function
getMinSym
(
sym
)
{
var
min_size
;
for
(
var
key
in
sym
)
{
var
info
=
sym
[
key
]
if
(
info
.
size
){
info
.
size
=
Number
(
info
.
size
)}
if
(
!
info
.
size
)
{
var
width
=
Number
(
info
.
width
)
var
height
=
Number
(
info
.
height
)
info
.
size
=
width
>
height
?
height
:
width
;
}
if
(
info
.
size
)
{
if
(
!
min_size
){
min_size
=
info
.
size
}
else
if
(
info
.
size
<
min_size
)
{
min_size
=
info
.
size
}
}
}
return
min_size
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
ats/topcam/ATS_AIM_data_format.js
View file @
5faae354
...
@@ -264,9 +264,7 @@ try {
...
@@ -264,9 +264,7 @@ try {
if
(
all_layer
.
indexOf
(
"outline"
)
>=
0
)
{
profileRule
.
unshift
(
"outline"
)}
if
(
all_layer
.
indexOf
(
"outline"
)
>=
0
)
{
profileRule
.
unshift
(
"outline"
)}
if
(
profileRule
){
if
(
profileRule
){
// 判断有没有profile
// 判断有没有profile
var
board_layer
=
all_layer
.
filter
(
function
(
v
){
return
tmp_matrix
[
v
].
context
==
"board"
})
var
tmp_step
=
GEN
.
getStepList
({
job
:
job
})[
0
]
var
tmp_step
=
GEN
.
getStepList
({
job
:
job
})[
0
]
GEN
.
openStep
({
job
:
job
,
name
:
tmp_step
})
GEN
.
openStep
({
job
:
job
,
name
:
tmp_step
})
var
now_profile
=
GEN
.
getProfile
({
job
:
job
,
step
:
tmp_step
})
var
now_profile
=
GEN
.
getProfile
({
job
:
job
,
step
:
tmp_step
})
...
@@ -277,6 +275,10 @@ try {
...
@@ -277,6 +275,10 @@ try {
throw
"创建profile失败"
throw
"创建profile失败"
}
}
}
else
{
}
else
{
var
now_matrix
=
GEN
.
getMatrix
({
job
:
job
})
var
board_layer
=
Object
.
keys
(
now_matrix
).
filter
(
function
(
v
){
return
now_matrix
[
v
].
context
==
"board"
})
GEN
.
affectedLayer
({
affected
:
'yes'
,
layer
:
board_layer
,
clear_before
:
"yes"
})
GEN
.
affectedLayer
({
affected
:
'yes'
,
layer
:
board_layer
,
clear_before
:
"yes"
})
GEN
.
selectByFilter
({
profile
:
"out"
})
GEN
.
selectByFilter
({
profile
:
"out"
})
if
(
GEN
.
getSelectCount
()
>
0
){
if
(
GEN
.
getSelectCount
()
>
0
){
...
...
This diff is collapsed.
Click to expand it.
ats/topcam/ATS_AIM_data_input.js
View file @
5faae354
...
@@ -167,11 +167,9 @@ try {
...
@@ -167,11 +167,9 @@ try {
GEN
.
COM
(
"config_edit,name=iol_fix_ill_polygon,value=yes,mode=user"
)
GEN
.
COM
(
"config_edit,name=iol_fix_ill_polygon,value=yes,mode=user"
)
// 将jobFile下的zip解压
// 将jobFile下的zip解压
jobFiles
.
forEach
(
function
(
item
){
decompression
(
jobFile
[
0
].
path
,
[])
if
(
item
.
suffix
===
"zip"
){
zip
.
unzip
(
item
.
path
);
jobFiles
=
fs
.
listDir
(
jobFile
[
0
].
path
)
}
})
// 分析料号文件 得到料号导入信息 导入类型
// 分析料号文件 得到料号导入信息 导入类型
var
jobInfo
=
analyJobFiles
({
jobFiles
:
jobFiles
.
filter
(
function
(
v
){
return
v
.
isFile
}),
custCfg
:
custCfg
,
config
:
config
,
job
:
job
})
var
jobInfo
=
analyJobFiles
({
jobFiles
:
jobFiles
.
filter
(
function
(
v
){
return
v
.
isFile
}),
custCfg
:
custCfg
,
config
:
config
,
job
:
job
})
...
@@ -502,3 +500,16 @@ function script_info(props){ // result_severity progress
...
@@ -502,3 +500,16 @@ function script_info(props){ // result_severity progress
});
});
}
}
}
}
function
decompression
(
path
,
zips
)
{
var
files
=
fs
.
listDir
(
path
)
var
zipfiles
=
files
.
filter
(
function
(
item
){
if
(
item
.
suffix
===
"zip"
&&
zips
.
indexOf
(
item
.
path
)
<
0
){
zips
.
push
(
item
.
path
)
zip
.
unzip
(
item
.
path
);
return
true
}
return
false
})
if
(
zipfiles
.
length
)
{
decompression
(
path
,
zips
)}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
config_ats.js
View file @
5faae354
...
@@ -565,16 +565,16 @@
...
@@ -565,16 +565,16 @@
}
}
],
],
"tl_name"
:
[
"tl_name"
:
[
{
"orig_name"
:
[
"assytop
\\
.art"
,
"past_top"
,
"paste_top"
],
"tl_name"
:
"past_top"
},
{
"orig_name"
:
[
"
^pm_top"
,
"paste.pri"
,
"
assytop
\\
.art"
,
"past_top"
,
"paste_top"
],
"tl_name"
:
"past_top"
},
{
"orig_name"
:
[
"assybot
\\
.art"
,
"past_bot"
,
"paste_bot"
],
"tl_name"
:
"past_botm"
},
{
"orig_name"
:
[
"
^pm_bot"
,
"paste.sec"
,
"
assybot
\\
.art"
,
"past_bot"
,
"paste_bot"
],
"tl_name"
:
"past_botm"
},
{
"orig_name"
:
[
"pleg
\\
.art"
,
"^ss_top"
,
"silk_top"
],
"tl_name"
:
"silk_top"
},
{
"orig_name"
:
[
"
silk.pri"
,
"
pleg
\\
.art"
,
"^ss_top"
,
"silk_top"
],
"tl_name"
:
"silk_top"
},
{
"orig_name"
:
[
"sleg
\\
.art"
,
"^ss_bot"
,
"silk_bot"
],
"tl_name"
:
"silk_bot"
},
{
"orig_name"
:
[
"s
ilk.sec"
,
"s
leg
\\
.art"
,
"^ss_bot"
,
"silk_bot"
],
"tl_name"
:
"silk_bot"
},
{
"orig_name"
:
[
"mask
_top
\\
.art"
,
"psm
\\
.art"
,
"sm_top"
],
"tl_name"
:
"sm_top"
},
{
"orig_name"
:
[
"mask
.top
\\
.art"
,
"mask.pri
\\
.art"
,
"psm
\\
.art"
,
"sm_top"
],
"tl_name"
:
"sm_top"
},
{
"orig_name"
:
[
"mask
_bot
\\
.art"
,
"ssm
\\
.art"
,
"sm_bot"
],
"tl_name"
:
"sm_botm"
},
{
"orig_name"
:
[
"mask
.bot
\\
.art"
,
"mask.sec
\\
.art"
,
"ssm
\\
.art"
,
"sm_bot"
],
"tl_name"
:
"sm_botm"
},
{
"orig_name"
:
[
"^top$"
,
"^top.art$"
],
"tl_name"
:
"top"
},
{
"orig_name"
:
[
"^top$"
,
"^top.art$"
],
"tl_name"
:
"top"
},
{
"orig_name"
:
[
"
^l(
\\
d+)_
.*
\\
.art$"
,
"^0?(
\\
d+)_.*
\\
.art$"
,
"^l(
\\
d+)
\\
.art$"
,
"^0(
\\
d+).*ccp_ms"
,
"^s(
\\
d+)
\\
.art"
,
"lay(
\\
d+)
\\
.art"
,
"layer_(
\\
d+)"
],
"tl_name"
:
"l_($1)"
},
{
"orig_name"
:
[
"
\\
.l(
\
d+)$"
,
"^l(
\\
d+)
.*
\\
.art$"
,
"^0?(
\\
d+)_.*
\\
.art$"
,
"^l(
\\
d+)
\\
.art$"
,
"^0(
\\
d+).*ccp_ms"
,
"^s(
\\
d+)
\\
.art"
,
"lay(
\\
d+)
\\
.art"
,
"layer_(
\\
d+)"
],
"tl_name"
:
"l_($1)"
},
{
"orig_name"
:
[
"^bottom$"
,
"^bottom
\\
.art$"
],
"tl_name"
:
"bottom"
},
{
"orig_name"
:
[
"^bottom$"
,
"^bottom
\\
.art$"
],
"tl_name"
:
"bottom"
},
{
"orig_name"
:
[
"-(
\\
d+)-(
\\
d+)
\\
.drl$"
,
"(
\\
d+)-(
\\
d+)-laser
\\
.drl$"
,
"d(
\\
d+)-(
\\
d+)"
],
"tl_name"
:
"d_($1)-($2)"
},
{
"orig_name"
:
[
"
\\
.d(
\\
d+)-(
\\
d+)$"
,
"
-(
\\
d+)-(
\\
d+)
\\
.drl$"
,
"(
\\
d+)-(
\\
d+)-laser
\\
.drl$"
,
"d(
\\
d+)-(
\\
d+)"
],
"tl_name"
:
"d_($1)-($2)"
},
{
"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"
:
[
"multipack.art"
,
"^array$"
],
"tl_name"
:
"array"
},
{
"orig_name"
:
[
"multipack.art"
,
"^array$"
],
"tl_name"
:
"array"
},
...
@@ -617,7 +617,10 @@
...
@@ -617,7 +617,10 @@
// {"1":{"count":"01156","num":"1","type":"plated","min_tol":"0","max_tol":"0","finish_size":"1","drill_size":"1","slot_len":"0","type2":"standard","shape":"hole","bit":0}}
// {"1":{"count":"01156","num":"1","type":"plated","min_tol":"0","max_tol":"0","finish_size":"1","drill_size":"1","slot_len":"0","type2":"standard","shape":"hole","bit":0}}
GEN
.
COM
(
"tools_tab_reset"
)
GEN
.
COM
(
"tools_tab_reset"
)
var
alltype
=
{
var
alltype
=
{
plated
:
"plate"
plated
:
"plate"
,
non_plated
:
"nplate"
,
laser
:
"via"
,
via
:
"via"
}
}
Object
.
keys
(
toolsInfo
).
forEach
(
function
(
row
){
Object
.
keys
(
toolsInfo
).
forEach
(
function
(
row
){
var
info
=
toolsInfo
[
row
];
var
info
=
toolsInfo
[
row
];
...
...
This diff is collapsed.
Click to expand it.
public_script/scotttest.js
View file @
5faae354
...
@@ -51,10 +51,13 @@ var mode = $.ikm ? "topcam" : "aimdfm";
...
@@ -51,10 +51,13 @@ var mode = $.ikm ? "topcam" : "aimdfm";
var
IKM
=
$
.
ikm
;
var
IKM
=
$
.
ikm
;
if
(
IKM
==
undefined
)
{
IKM
=
require
(
'topcam.ikm6'
)(
$
)
}
if
(
IKM
==
undefined
)
{
IKM
=
require
(
'topcam.ikm6'
)(
$
)
}
var
GEN
=
$
.
gen
;
var
GEN
=
$
.
gen
;
require
(
"topsin.genmath"
)
var
zip
=
require
(
'topsin.zip'
);
var
GUI
=
$
.
gui
||
{};
var
GUI
=
$
.
gui
||
{};
var
Job
=
$
.
job
||
$
.
job_name
;
var
Job
=
$
.
job
||
$
.
job_name
;
var
JobId
=
$
.
job_id
;
var
JobId
=
$
.
job_id
;
var
db
=
$
.
db
||
IKM
.
db
var
db
=
$
.
db
||
IKM
.
db
var
genMath
=
new
GenMath
();
var
PAR
=
{}
var
PAR
=
{}
if
(
$
.
par
)
{
if
(
$
.
par
)
{
PAR
=
$
.
par
PAR
=
$
.
par
...
@@ -101,54 +104,34 @@ try {
...
@@ -101,54 +104,34 @@ try {
GEN
.
checkInout
({
job
:
job
,
mode
:
"out"
});
GEN
.
checkInout
({
job
:
job
,
mode
:
"out"
});
}
}
var
steplists
=
GEN
.
getStepList
({
job
:
job
});
if
(
steplists
.
length
==
0
){
return
"该料号没有step"
}
steplists
=
steplists
.
filter
(
function
(
name
){
var
reg
=
new
RegExp
(
par
.
step
,
"ig"
)
return
reg
.
test
(
name
)
})
steplists
.
forEach
(
function
(
step
){
GEN
.
openStep
({
job
:
job
,
name
:
step
})
GEN
.
units
({
type
:
par
.
units
})
GEN
.
affectedLayer
({
affected
:
'no'
,
mode
:
'all'
})
GEN
.
selClearFeature
()
GEN
.
workLayer
({
name
:
par
.
rout
,
display_number
:
2
,
clear_before
:
'yes'
})
var
feats
=
GEN
.
getFeatures
({
job
:
job
,
step
:
step
,
layer
:
par
.
rout
,
options
:
"feat_index"
})
var
feats
=
GEN
.
getFeatures
({
job
:
job
,
step
:
"unit"
,
layer
:
"tmp"
,
options
:
"feat_index"
})
// [{
IKM
.
msg
(
feats
)
// "type": "arc",
var
drl_feats
=
[]
// 重复的需要删除的孔
// "xs": "4.121787",
feats
.
reduce
(
function
(
a
,
b
){
// "ys": "3.7740178",
var
id
=
{};
// "xe": "4.1141847",
for
(
var
key
in
b
){
// "ye": "3.8220052",
var
info
=
b
[
key
]
// "xc": "3.7942278",
if
(
key
!=
"index"
&&
key
!=
"attributes"
)
{
// "yc": "3.7467211",
id
[
key
]
=
info
// "symbol": "r7.874",
}
// "polarity": "positive",
// "direction": "cw",
// "attributes": []
// }]
feats
=
feats
.
filter
(
function
(
item
){
return
item
.
type
===
"arc"
&&
item
.
xs
===
item
.
xe
&&
item
.
ys
===
item
.
ye
})
feats
=
feats
.
filter
(
function
(
item
){
var
d
=
2
*
Math
.
sqrt
((
item
.
xe
-
item
.
xc
)
*
(
item
.
xe
-
item
.
xc
)
+
(
item
.
ye
-
item
.
yc
)
*
(
item
.
ye
-
item
.
yc
))
return
d
<=
6
})
feats
.
forEach
(
function
(
item
)
{
GEN
.
selLayerFeat
({
layer
:
par
.
rout
,
index
:
item
.
index
,
operation
:
"select"
})
})
// npth move至drl
if
(
GEN
.
getSelectCount
()
>
0
)
{
GEN
.
selMoveOther
({
target_layer
:
'ol_tmp'
,
invert
:
'no'
,
dx
:
0
,
dy
:
0
,
size
:
0
})
GEN
.
workLayer
({
name
:
"ol_tmp"
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
COM
(
"cur_atr_set,attribute=.drill,option=non_plated"
)
GEN
.
COM
(
"sel_change_atr,mode=add"
)
GEN
.
selMoveOther
({
target_layer
:
'drl'
,
invert
:
'no'
,
dx
:
0
,
dy
:
0
,
size
:
0
})
GEN
.
deleteLayer
({
job
:
job
,
layer
:
"ol_tmp"
})
}
}
id
=
JSON
.
stringify
(
id
)
if
(
a
.
indexOf
(
id
)
<
0
)
{
a
.
push
(
id
)
}
else
{
drl_feats
.
push
(
b
)
}
return
a
}
,
[])
drl_feats
.
forEach
(
function
(
item
){
GEN
.
selLayerFeat
({
layer
:
"drl"
,
index
:
item
.
index
,
operation
:
"select"
})
})
})
// var feas = GEN.getFeatures({job:job,step:"unit",layer:"tmp", surface:1,options:"feat_index"})
// IKM.msg(feas[0].feats)
// var ret = genMath.profile2Polygon(feas[0].feats)
...
@@ -182,3 +165,32 @@ try {
...
@@ -182,3 +165,32 @@ try {
resultData
.
push
({
type
:
"error"
,
title
:
"脚本执行出错!"
,
detail
:
[{
desc
:
_
.
toString
(
e
)}]});
resultData
.
push
({
type
:
"error"
,
title
:
"脚本执行出错!"
,
detail
:
[{
desc
:
_
.
toString
(
e
)}]});
return
(
mode
===
"aimdfm"
)
?
{
status
:
Status
,
result_data
:
resultData
}
:
"Error"
;
return
(
mode
===
"aimdfm"
)
?
{
status
:
Status
,
result_data
:
resultData
}
:
"Error"
;
}
}
function
selCopyLayer
(
props
){
// 拷贝选择的到辅助层
var
layer
=
props
.
layer
var
job
=
props
.
job
if
(
GEN
.
isLayerExists
({
job
:
job
,
layer
:
layer
})){
GEN
.
deleteLayer
({
job
:
job
,
layer
:
layer
})
}
GEN
.
selCopyOther
({
dest
:
'layer_name'
,
target_layer
:
layer
})
}
function
getMinSym
(
sym
)
{
var
min_size
;
for
(
var
key
in
sym
)
{
var
info
=
sym
[
key
]
if
(
info
.
size
){
info
.
size
=
Number
(
info
.
size
)}
if
(
!
info
.
size
)
{
var
width
=
Number
(
info
.
width
)
var
height
=
Number
(
info
.
height
)
info
.
size
=
width
>
height
?
height
:
width
;
}
if
(
info
.
size
)
{
if
(
!
min_size
){
min_size
=
info
.
size
}
else
if
(
info
.
size
<
min_size
)
{
min_size
=
info
.
size
}
}
}
return
min_size
}
This diff is collapsed.
Click to expand it.
public_script/silkScreenOptimize.js
View file @
5faae354
...
@@ -173,16 +173,21 @@ try {
...
@@ -173,16 +173,21 @@ try {
if
(
!
GEN
.
isJobOpen
({
job
:
job
})){
GEN
.
openJob
({
job
:
job
})
}
if
(
!
GEN
.
isJobOpen
({
job
:
job
})){
GEN
.
openJob
({
job
:
job
})
}
if
(
mode
==
"aimdfm"
){
if
(
GEN
.
checkInout
({
job
:
job
,
mode
:
"test"
})
!=
0
){
throw
"the job check"
}
else
{
GEN
.
checkInout
({
job
:
job
,
mode
:
"out"
})
}
}
if
(
mode
==
"aimdfm"
){
if
(
GEN
.
checkInout
({
job
:
job
,
mode
:
"test"
})
!=
0
){
throw
"the job check"
}
else
{
GEN
.
checkInout
({
job
:
job
,
mode
:
"out"
})
}
}
IKM
.
msg
(
"创建套层"
)
var
err
=
createCoverLayer
()
// 创建套层
if
(
err
)
{
throw
err
}
GEN
.
PAUSE
(
"end"
)
IKM
.
msg
(
"分离文字和文字框"
)
var
err
=
ssFrameSeparate
()
// 分离文字和文字框
if
(
err
)
{
throw
err
}
GEN
.
PAUSE
(
"end"
)
// var err = createCoverLayer() // 创建套层
IKM
.
msg
(
"文字框优化"
)
// if (err) {throw err}
var
err
=
slBoxOptimize
()
// 文字框优化
if
(
err
)
{
throw
err
}
// var err = ssFrameSeparate() // 分离文字和文字框
GEN
.
PAUSE
(
"end"
)
// if (err) {throw err}
// var err = slBoxOptimize() // 文字框优化
// if (err) {throw err}
IKM
.
msg
(
"文字优化"
)
var
err
=
slOptimize
()
// 文字优化
var
err
=
slOptimize
()
// 文字优化
if
(
err
)
{
throw
err
}
if
(
err
)
{
throw
err
}
...
@@ -601,9 +606,9 @@ function slBoxOptimize(){
...
@@ -601,9 +606,9 @@ function slBoxOptimize(){
var
flag
=
true
;
var
flag
=
true
;
IKM
.
msg
(
work_layer
+
"层:请选择需放大的文字框,不需制作了请【左键框选空白处】"
)
IKM
.
msg
(
work_layer
+
"层:请选择需放大的文字框,不需制作了请【左键框选空白处】"
)
while
(
flag
){
while
(
flag
){
var
tmp_con
=
GEN
.
MOUSE
({
type
:
'r'
,
text
:
"Please Select"
});
GEN
.
workLayer
({
name
:
work_layer
,
display_number
:
1
,
clear_before
:
'yes'
});
GEN
.
workLayer
({
name
:
work_layer
,
display_number
:
1
,
clear_before
:
'yes'
});
GEN
.
displayLayer
({
name
:
ref_layer
,
number
:
2
});
GEN
.
displayLayer
({
name
:
ref_layer
,
number
:
2
});
var
tmp_con
=
GEN
.
MOUSE
({
type
:
'r'
,
text
:
"Please Select"
});
GEN
.
COM
(
"filter_area_strt"
)
GEN
.
COM
(
"filter_area_strt"
)
GEN
.
COM
(
"filter_area_xy,x="
+
tmp_con
.
x1
+
",y="
+
tmp_con
.
y1
)
GEN
.
COM
(
"filter_area_xy,x="
+
tmp_con
.
x1
+
",y="
+
tmp_con
.
y1
)
GEN
.
COM
(
"filter_area_xy,x="
+
tmp_con
.
x2
+
",y="
+
tmp_con
.
y2
)
GEN
.
COM
(
"filter_area_xy,x="
+
tmp_con
.
x2
+
",y="
+
tmp_con
.
y2
)
...
@@ -763,6 +768,7 @@ function slBoxOptimize(){
...
@@ -763,6 +768,7 @@ function slBoxOptimize(){
var
tmp_symbol
=
'tl_script_tmp'
;
var
tmp_symbol
=
'tl_script_tmp'
;
GEN
.
workLayer
({
name
:
tmp1
,
display_number
:
1
,
clear_before
:
'yes'
});
GEN
.
COM
(
'sel_all_feat'
);
GEN
.
COM
(
'sel_all_feat'
);
GEN
.
COM
(
"sel_create_sym,symbol="
+
tmp_symbol
+
",x_datum=0,y_datum=0,delete=no,fill_dx=0.1,fill_dy=0.1,attach_atr=no,retain_atr=no"
);
GEN
.
COM
(
"sel_create_sym,symbol="
+
tmp_symbol
+
",x_datum=0,y_datum=0,delete=no,fill_dx=0.1,fill_dy=0.1,attach_atr=no,retain_atr=no"
);
GEN
.
workLayer
({
name
:
work_layer
,
display_number
:
1
,
clear_before
:
'yes'
});
GEN
.
workLayer
({
name
:
work_layer
,
display_number
:
1
,
clear_before
:
'yes'
});
...
@@ -783,7 +789,7 @@ function slBoxOptimize(){
...
@@ -783,7 +789,7 @@ function slBoxOptimize(){
})
})
}
}
})
})
if
(
GEN
.
isLayerExists
({
job
:
job
,
layer
:
"tmp_ref_pad"
})){
GEN
.
deleteLayer
({
job
:
job
,
layer
:[
"tmp_ref_pad"
]})}
}
}
...
@@ -810,20 +816,64 @@ function slOptimize() {
...
@@ -810,20 +816,64 @@ function slOptimize() {
workstep
.
forEach
(
function
(
step
)
{
workstep
.
forEach
(
function
(
step
)
{
GEN
.
openStep
({
job
:
job
,
name
:
step
})
GEN
.
openStep
({
job
:
job
,
name
:
step
})
GEN
.
units
({
type
:
par
.
units
})
GEN
.
units
({
type
:
par
.
units
})
GEN
.
COM
(
"sel_options,clear_mode=clear_after,display_mode=all_layers,area_inout=inside,area_select=select,select_mode=standard,area_touching_mode=exclude"
);
GEN
.
zoomHome
();
work_layers
.
forEach
(
function
(
layer
){
work_layers
.
forEach
(
function
(
layer
){
var
font_layer
=
layer
+
par
.
silk_suffix
;
var
font_layer
=
layer
+
par
.
silk_suffix
;
var
tmp1
=
font_layer
+
"_1"
;
var
tmp1
=
font_layer
+
"_1"
;
var
tmp2
=
font_layer
+
"_2"
;
var
tmp2
=
font_layer
+
"_2"
;
var
tmp3
=
font_layer
+
"_3"
;
var
bk
=
font_layer
+
"_bk"
;
var
bk
=
font_layer
+
"_bk"
;
[
tmp1
,
tmp2
,
bk
].
forEach
(
function
(
v
){
var
bk2
=
font_layer
+
"_bk2"
;
[
tmp1
,
tmp2
,
tmp3
,
bk
,
bk2
].
forEach
(
function
(
v
){
if
(
GEN
.
isLayerExists
({
job
:
job
,
layer
:
v
})){
GEN
.
deleteLayer
({
job
:
job
,
layer
:[
v
]})}
if
(
GEN
.
isLayerExists
({
job
:
job
,
layer
:
v
})){
GEN
.
deleteLayer
({
job
:
job
,
layer
:[
v
]})}
})
})
GEN
.
copyLayer
({
source_job
:
job
,
source_step
:
step
,
source_layer
:
font_layer
,
dest_layer
:
tmp1
,
mode
:
"replace"
})
GEN
.
copyLayer
({
source_job
:
job
,
source_step
:
step
,
source_layer
:
font_layer
,
dest_layer
:
tmp1
,
mode
:
"replace"
})
GEN
.
copyLayer
({
source_job
:
job
,
source_step
:
step
,
source_layer
:
font_layer
,
dest_layer
:
tmp3
,
mode
:
"replace"
})
GEN
.
copyLayer
({
source_job
:
job
,
source_step
:
step
,
source_layer
:
font_layer
,
dest_layer
:
bk2
,
mode
:
"replace"
})
GEN
.
copyLayer
({
source_job
:
job
,
source_step
:
step
,
source_layer
:
font_layer
,
dest_layer
:
bk
,
mode
:
"replace"
})
GEN
.
copyLayer
({
source_job
:
job
,
source_step
:
step
,
source_layer
:
font_layer
,
dest_layer
:
bk
,
mode
:
"replace"
})
GEN
.
affectedLayer
({
affected
:
'no'
,
mode
:
'all'
})
GEN
.
affectedLayer
({
affected
:
'no'
,
mode
:
'all'
})
GEN
.
selClearFeature
()
GEN
.
selClearFeature
()
GEN
.
workLayer
({
name
:
tmp1
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
workLayer
({
name
:
tmp1
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selChangeSym
({
symbol
:
"r0.1"
})
GEN
.
selChangeSym
({
symbol
:
"r0.1"
})
// 利用tmp3 快速定位
GEN
.
workLayer
({
name
:
tmp3
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
units
({
type
:
"mm"
})
GEN
.
selChangeSym
({
symbol
:
"r1000"
})
// 转铜皮 获取每一个铜皮的limits信息
GEN
.
selContourize
()
var
fast_features
=
GEN
.
getFeatures
({
job
:
job
,
step
:
step
,
layer
:
tmp3
,
options
:
"feat_index"
})
fast_features
.
forEach
(
function
(
item
){
var
index
=
item
.
index
;
GEN
.
selLayerFeat
({
layer
:
tmp3
,
index
:
index
,
operation
:
"select"
});
if
(
GEN
.
getSelectCount
()
>
0
){
item
.
limit
=
GEN
.
getLayerLimits
({
job
:
job
,
step
:
step
,
layer
:
tmp3
,
units
:
'mm'
,
options
:
"select"
})
item
.
limit
.
xsize
=
Number
(
item
.
limit
.
xsize
);
item
.
limit
.
xmin
=
Number
(
item
.
limit
.
xmin
);
item
.
limit
.
ysize
=
Number
(
item
.
limit
.
ysize
);
item
.
limit
.
ymin
=
Number
(
item
.
limit
.
ymin
);
item
.
xc
=
item
.
limit
.
xsize
/
2
+
item
.
limit
.
xmin
item
.
yc
=
item
.
limit
.
ysize
/
2
+
item
.
limit
.
ymin
GEN
.
selClearFeature
()
}
})
fast_features
.
forEach
(
function
(
item
){
GEN
.
workLayer
({
name
:
bk2
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
COM
(
"filter_area_strt"
)
GEN
.
COM
(
"filter_area_xy,x="
+
item
.
limit
.
xmin
+
",y="
+
item
.
limit
.
ymin
)
GEN
.
COM
(
"filter_area_xy,x="
+
item
.
limit
.
xmax
+
",y="
+
item
.
limit
.
ymax
)
GEN
.
COM
(
"filter_area_end,layer=,filter_name=popup,operation=select,area_type=rectangle,inside_area=yes,intersect_area=yes"
)
if
(
GEN
.
getSelectCount
()
>
0
)
{
GEN
.
selTransform
({
mode
:
'anchor'
,
oper
:
'scale'
,
x_anchor
:
item
.
xc
,
y_anchor
:
item
.
yc
,
x_scale
:
1.2
,
y_scale
:
1.2
})
}
})
GEN
.
units
({
type
:
par
.
units
})
GEN
.
workLayer
({
name
:
tmp1
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
copyLayer
({
source_job
:
job
,
source_step
:
step
,
source_layer
:
tmp1
,
dest_layer
:
tmp2
,
mode
:
"replace"
})
GEN
.
copyLayer
({
source_job
:
job
,
source_step
:
step
,
source_layer
:
tmp1
,
dest_layer
:
tmp2
,
mode
:
"replace"
})
GEN
.
COM
(
"sel_contourize,accuracy=0,break_to_islands=yes,clean_hole_size=0,clean_hole_mode=x_and_y"
)
GEN
.
COM
(
"sel_contourize,accuracy=0,break_to_islands=yes,clean_hole_size=0,clean_hole_mode=x_and_y"
)
GEN
.
affectedLayer
({
affected
:
'no'
,
mode
:
'all'
})
GEN
.
affectedLayer
({
affected
:
'no'
,
mode
:
'all'
})
...
@@ -915,11 +965,38 @@ function slOptimize() {
...
@@ -915,11 +965,38 @@ function slOptimize() {
}
}
}
}
})
})
GEN
.
workLayer
({
name
:
bk
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selAllFeat
()
if
(
GEN
.
getSelectCount
()
>
0
)
{
GEN
.
selMoveOther
({
target_layer
:
'_fail'
,
invert
:
'no'
,
dx
:
0
,
dy
:
0
,
size
:
0
})
}
IKM
.
msg
(
layer
+
"层完毕,请确认,将正确的移动到_ok层"
)
IKM
.
msg
(
layer
+
"层完毕,请确认,将正确的移动到_ok层"
)
GEN
.
PAUSE
(
"PAUSE"
)
GEN
.
PAUSE
(
"PAUSE"
)
// 框选
GEN
.
workLayer
({
name
:
"_ok"
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
workLayer
({
name
:
"_ok"
,
display_number
:
2
,
clear_before
:
'yes'
})
// 将ok的移动到文字层
// 将ok的移动到文字层
GEN
.
workLayer
({
name
:
font_layer
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selDelete
()
GEN
.
workLayer
({
name
:
"_ok"
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selMoveOther
({
target_layer
:
font_layer
,
invert
:
'no'
,
dx
:
0
,
dy
:
0
,
size
:
0
})
GEN
.
PAUSE
(
"check"
);
[
tmp1
,
tmp2
,
tmp3
,
bk
,
bk2
,
"_ok"
,
"_fail"
].
forEach
(
function
(
v
){
if
(
GEN
.
isLayerExists
({
job
:
job
,
layer
:
v
})){
GEN
.
deleteLayer
({
job
:
job
,
layer
:[
v
]})}
})
})
})
})
})
}
}
...
...
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