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
ae709692
Commit
ae709692
authored
Sep 11, 2020
by
Scott Sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
scott
parent
1eaa49b3
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
182 additions
and
6 deletions
+182
-6
silkScreenOptimize.js
public_script/silkScreenOptimize.js
+182
-6
No files found.
public_script/silkScreenOptimize.js
View file @
ae709692
...
...
@@ -180,12 +180,12 @@ try {
// var err = ssFrameSeparate() // 分离文字和文字框
// if (err) {throw err}
var
err
=
slBoxOptimize
()
// 文字框优化
if
(
err
)
{
throw
err
}
// var err = slOptimize() // 文字优化
// var err = slBoxOptimize() // 文字框优化
// if (err) {throw err}
var
err
=
slOptimize
()
// 文字优化
if
(
err
)
{
throw
err
}
...
...
@@ -810,9 +810,119 @@ function slOptimize() {
var
matrix
=
GEN
.
getMatrix
({
job
:
job
})
IKM
.
msg
(
work_layers
)
workstep
.
forEach
(
function
(
step
)
{
GEN
.
openStep
({
job
:
job
,
name
:
step
})
GEN
.
units
({
type
:
par
.
units
})
work_layers
.
forEach
(
function
(
layer
){
var
font_layer
=
layer
+
par
.
silk_suffix
;
var
tmp1
=
font_layer
+
"_1"
;
var
tmp2
=
font_layer
+
"_2"
;
var
bk
=
font_layer
+
"_bk"
;
[
tmp1
,
tmp2
,
bk
].
forEach
(
function
(
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
:
bk
,
mode
:
"replace"
})
GEN
.
affectedLayer
({
affected
:
'no'
,
mode
:
'all'
})
GEN
.
selClearFeature
()
GEN
.
workLayer
({
name
:
tmp1
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selChangeSym
({
symbol
:
"r0.1"
})
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
.
affectedLayer
({
affected
:
'no'
,
mode
:
'all'
})
GEN
.
clearLayers
()
var
features
=
GEN
.
getFeatures
({
job
:
job
,
step
:
step
,
layer
:
tmp1
,
options
:
"feat_index"
})
var
indexes
=
[]
features
.
forEach
(
function
(
item
){
GEN
.
workLayer
({
name
:
tmp1
,
display_number
:
2
,
clear_before
:
'yes'
})
var
index
=
item
.
index
;
// 选中index 将它复制到tmp3 获取信息
GEN
.
selLayerFeat
({
layer
:
tmp1
,
index
:
index
,
operation
:
"select"
})
if
(
GEN
.
getSelectCount
()
>
0
){
item
.
limit
=
GEN
.
getLayerLimits
({
job
:
job
,
step
:
step
,
layer
:
tmp1
,
units
:
'mm'
,
options
:
"select"
})
}
})
var
xs
=
{};
var
ys
=
{};
features
.
forEach
(
function
(
item
){
surfaceAnalysis
(
item
)
indexes
.
push
({
index
:
item
.
index
,
xmin
:
item
.
limit
.
xmin
,
ymin
:
item
.
limit
.
ymin
,
xmax
:
item
.
limit
.
xmax
,
ymax
:
item
.
limit
.
ymax
,
xc
:
item
.
xc
,
yc
:
item
.
yc
})
if
(
!
ys
[
turnFix
(
item
.
yc
)]){
ys
[
turnFix
(
item
.
yc
)]
=
[]}
ys
[
turnFix
(
item
.
yc
)].
push
(
item
)
if
(
!
xs
[
turnFix
(
item
.
xc
)]){
xs
[
turnFix
(
item
.
xc
)]
=
[]}
xs
[
turnFix
(
item
.
xc
)].
push
(
item
)
})
var
limitinfo
=
[]
indexes
=
sameDirection
(
ys
,
"xc"
,
limitinfo
,
indexes
)
indexes
=
sameDirection
(
xs
,
"yc"
,
limitinfo
,
indexes
)
if
(
GEN
.
isLayerExists
({
job
:
job
,
layer
:
"_ok"
})){
GEN
.
deleteLayer
({
job
:
job
,
layer
:[
"_ok"
]})}
if
(
GEN
.
isLayerExists
({
job
:
job
,
layer
:
"_fail"
})){
GEN
.
deleteLayer
({
job
:
job
,
layer
:[
"_fail"
]})}
GEN
.
createLayer
({
job
:
job
,
layer
:
'_ok'
,
conext
:
'misc'
,
type
:
'document'
})
GEN
.
createLayer
({
job
:
job
,
layer
:
'_fail'
,
conext
:
'misc'
,
type
:
'document'
})
limitinfo
.
forEach
(
function
(
item
){
GEN
.
workLayer
({
name
:
bk
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
COM
(
"filter_area_strt"
)
GEN
.
COM
(
"filter_area_xy,x="
+
item
.
xmin
+
",y="
+
item
.
ymin
)
GEN
.
COM
(
"filter_area_xy,x="
+
item
.
xmax
+
",y="
+
item
.
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
.
selMoveOther
({
target_layer
:
'transform_temp'
,
invert
:
'no'
,
dx
:
0
,
dy
:
0
,
size
:
0
})
GEN
.
workLayer
({
name
:
"transform_temp"
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selTransform
({
mode
:
'anchor'
,
oper
:
'scale'
,
x_anchor
:
item
.
xmin
+
Math
.
abs
(
item
.
xmax
-
item
.
xmin
)
/
2
,
y_anchor
:
item
.
ymin
+
Math
.
abs
(
item
.
ymax
-
item
.
ymin
)
/
2
,
x_scale
:
1.2
,
y_scale
:
1.2
})
// 与成功层touch 有碰移动到失败层 没碰移动到成功层
GEN
.
selRefFeat
({
layers
:
"_ok"
,
use
:
"filter"
,
mode
:
"touch"
})
if
(
GEN
.
getSelectCount
()
>
0
)
{
GEN
.
selClearFeature
()
GEN
.
selMoveOther
({
target_layer
:
'_fail'
,
invert
:
'no'
,
dx
:
0
,
dy
:
0
,
size
:
0
})
}
else
{
GEN
.
selMoveOther
({
target_layer
:
'_ok'
,
invert
:
'no'
,
dx
:
0
,
dy
:
0
,
size
:
0
})
}
}
})
indexes
.
forEach
(
function
(
item
){
var
xc
=
item
.
xc
;
var
yc
=
item
.
yc
;
GEN
.
workLayer
({
name
:
bk
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
COM
(
"filter_area_strt"
)
GEN
.
COM
(
"filter_area_xy,x="
+
item
.
xmin
+
",y="
+
item
.
ymin
)
GEN
.
COM
(
"filter_area_xy,x="
+
item
.
xmax
+
",y="
+
item
.
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
.
selMoveOther
({
target_layer
:
'transform_temp'
,
invert
:
'no'
,
dx
:
0
,
dy
:
0
,
size
:
0
})
GEN
.
workLayer
({
name
:
"transform_temp"
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selTransform
({
mode
:
'anchor'
,
oper
:
'scale'
,
x_anchor
:
xc
,
y_anchor
:
yc
,
x_scale
:
1.2
,
y_scale
:
1.2
})
// 与成功层touch 有碰移动到失败层 没碰移动到成功层
GEN
.
selRefFeat
({
layers
:
"_ok"
,
use
:
"filter"
,
mode
:
"touch"
})
if
(
GEN
.
getSelectCount
()
>
0
)
{
GEN
.
selClearFeature
()
GEN
.
selMoveOther
({
target_layer
:
'_fail'
,
invert
:
'no'
,
dx
:
0
,
dy
:
0
,
size
:
0
})
}
else
{
GEN
.
selMoveOther
({
target_layer
:
'_ok'
,
invert
:
'no'
,
dx
:
0
,
dy
:
0
,
size
:
0
})
}
}
})
IKM
.
msg
(
layer
+
"层完毕,请确认,将正确的移动到_ok层"
)
GEN
.
PAUSE
(
"PAUSE"
)
GEN
.
workLayer
({
name
:
"_ok"
,
display_number
:
2
,
clear_before
:
'yes'
})
})
})
}
...
...
@@ -1007,3 +1117,69 @@ function getRodate(props){
var
r
=
Math
.
atan
(
y
/
x
)
return
r
*
180
/
Math
.
PI
}
function
sameDirection
(
xory
,
type
,
res
,
indexes
)
{
for
(
var
key
in
xory
)
{
var
current
=
-
1
;
var
data
=
xory
[
key
];
data
.
sort
(
function
(
a
,
b
){
return
a
[
type
]
-
b
[
type
]})
data
.
forEach
(
function
(
item
,
i
){
if
(
i
>
current
){
var
ret
=
[
item
];
current
=
searchFont
(
item
,
data
,
i
,
ret
,
type
)
if
(
ret
.
length
>
1
)
{
ret
.
forEach
(
function
(
item
)
{
indexes
=
indexes
.
filter
(
function
(
item2
){
return
item2
.
index
!=
item
.
index
})
})
res
.
push
(
ret
.
reduce
(
function
(
a
,
b
){
if
(
Number
(
b
.
limit
.
xmin
)
<
Number
(
a
.
xmin
)){
a
.
xmin
=
b
.
limit
.
xmin
}
if
(
Number
(
b
.
limit
.
ymin
)
<
Number
(
a
.
ymin
)){
a
.
ymin
=
b
.
limit
.
ymin
}
if
(
Number
(
b
.
limit
.
xmax
)
>
Number
(
a
.
xmax
)){
a
.
xmax
=
b
.
limit
.
xmax
}
if
(
Number
(
b
.
limit
.
ymax
)
>
Number
(
a
.
ymax
)){
a
.
ymax
=
b
.
limit
.
ymax
}
return
a
},{
xmin
:
item
.
limit
.
xmin
,
ymin
:
item
.
limit
.
ymin
,
xmax
:
item
.
limit
.
xmax
,
ymax
:
item
.
limit
.
ymax
}))
}
}
})
}
return
indexes
}
function
searchFont
(
l
,
arr
,
i
,
ret
,
type
){
if
(
arr
[
i
+
1
]){
var
len
=
Math
.
abs
(
l
[
type
]
-
arr
[
i
+
1
][
type
])
if
(
len
<=
1.5
){
ret
.
push
(
arr
[
i
+
1
])
return
searchFont
(
arr
[
i
+
1
],
arr
,
i
+
1
,
ret
,
type
)
}
else
{
return
i
}
}
return
i
+
1
}
function
turnFix
(
data
)
{
return
parseFloat
(
data
).
toFixed
(
2
)
}
function
surfaceAnalysis
(
props
){
props
.
limit
.
xmin
=
props
.
limit
.
xmin
-
0
;
props
.
limit
.
ymin
=
props
.
limit
.
ymin
-
0
;
props
.
limit
.
xmax
=
props
.
limit
.
xmax
-
0
;
props
.
limit
.
ymax
=
props
.
limit
.
ymax
-
0
;
props
.
limit
.
xsize
=
props
.
limit
.
xsize
-
0
;
props
.
limit
.
ysize
=
props
.
limit
.
ysize
-
0
;
props
.
xc
=
props
.
limit
.
xsize
/
2
+
props
.
limit
.
xmin
props
.
yc
=
props
.
limit
.
ysize
/
2
+
props
.
limit
.
ymin
}
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