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
1943f0b6
Commit
1943f0b6
authored
Jan 29, 2021
by
Scott Sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
s
parent
62b678fa
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
288 additions
and
116 deletions
+288
-116
show_loading.png
GUI测试/show_loading.png
+0
-0
tableedit.png
GUI测试/tableedit.png
+0
-0
x.js
GUI测试/x.js
+255
-110
需求.md
GUI测试/需求.md
+10
-0
20200928_vivo.md
ats/topcam/20200928_vivo.md
+5
-1
ATS_AIM_data_format.js
ats/topcam/ATS_AIM_data_format.js
+18
-5
No files found.
GUI测试/show_loading.png
0 → 100644
View file @
1943f0b6
4.31 KB
GUI测试/tableedit.png
0 → 100644
View file @
1943f0b6
23.3 KB
GUI测试/x.js
View file @
1943f0b6
var
plugin
=
require
(
'topsin.gengui'
);
var
gui
=
plugin
.
newGui
();
var
gui
=
plugin
.
newGui
(
plugin
.
__dirname
);
function
gen
()
{
this
.
PAUSE
=
function
()
{
console
.
log
(
"pause"
);
}
}
var
r
=
gui
.
msgBox
(
"mo"
,
"info"
,
"are you ok?"
,
[
"ok"
,
"cancel"
]);
console
.
log
(
r
);
gui
.
setLang
(
"zhtw"
);
// zhcn, zhtw, en
gui
.
confirm
(
"are you ok?"
,
[
"yes"
,
"no"
],
"question"
);
var
r
=
gui
.
msgBox
({
title
:
"info"
,
icon
:
"info"
,
text
:
"are you ok?"
,
buttons
:
[
"Ok"
,
"Cancel"
],
gen
:
new
gen
()
});
console
.
log
(
r
);
r
=
gui
.
confirm
(
"are you ok?"
,
""
);
console
.
log
(
r
);
var
selected
=
gui
.
selectFromTreeview
({
title
:
"test"
,
size
:
[
600
,
400
],
selectmode
:
"single"
,
columns
:
[
{
columns
:
[{
"name"
:
"id"
,
"display"
:
"ID"
,
"displayRole"
:
"$id"
,
...
...
@@ -28,8 +40,7 @@ var selected = gui.selectFromTreeview({
"resizeMode"
:
"ResizeToContents"
}
],
data
:
[
{
data
:
[{
"id"
:
1
,
"name"
:
"mo"
},
...
...
@@ -46,22 +57,31 @@ console.log(selected);
r
=
gui
.
selectFile
(
"choose something"
,
"*"
,
true
,
"file"
,
"/home/abby/fast_io"
);
console
.
log
(
r
);
var
elder
=
[];
for
(
var
i
=
0
;
i
<
100
;
++
i
)
{
elder
.
push
({
"mo"
:
"+1s"
});
var
elder
=
[];
for
(
var
i
=
0
;
i
<
100
;
++
i
)
{
elder
.
push
({
"mo"
:
"+1s"
});
}
var
xx
=
[
{
"mo"
:
"too young too simple"
},
{
"ha"
:
"sometimes naive!"
},
{
"elder"
:
"+1s"
}
var
xx
=
[{
"mo"
:
"too young too simple"
},
{
"ha"
:
"sometimes naive!"
},
{
"elder"
:
"+1s"
}
];
r
=
gui
.
selectSingle
({
"title"
:
"select your favar"
,
"list"
:
xx
,
"default"
:
""
,
"columns"
:
2
,
"gen"
:{}
size
:
[
200
,
300
],
showheader
:
true
,
"gen"
:
new
gen
()
});
console
.
log
(
r
);
...
...
@@ -70,17 +90,38 @@ r = gui.selectMultiple({
"list"
:
xx
,
"defaultvalue"
:
[
"mo"
],
"columns"
:
2
,
"gen"
:
{}
size
:
[
300
,
500
],
showheader
:
true
,
"gen"
:
new
gen
()
});
console
.
log
(
r
);
// select_from_layer
// select_from_job
gui
.
selectJob
({
title
:
"select job"
,
multiple
:
false
,
joblist
:
[
"too young"
,
"too simple"
,
"sometimes"
,
"naive!"
],
gen
:
new
gen
()
});
gui
.
selectStep
({
title
:
"select layer"
,
multiple
:
true
,
steplist
:
[
"l1"
,
"l2"
,
"l3"
],
// gen: new gen(),
size
:
[
300
,
500
]
});
r
=
gui
.
selectFromTable
({
title
:
"select from table example"
,
multiple
:
true
,
list
:
[
{
list
:
[{
"job"
:
"too young"
,
"name"
:
"elder"
},
...
...
@@ -97,7 +138,7 @@ r = gui.selectFromTable({
"name"
:
"elder"
}
],
gen
:
function
()
{
function
PAUSE
()
{
return
true
;
}}
gen
:
new
gen
()
});
console
.
log
(
r
);
...
...
@@ -117,121 +158,144 @@ gui.imageViewer({
r
=
gui
.
inputBox
({
title
:
"input box example"
,
value
:
"are you ok?"
value
:
"are you ok?"
,
size
:
[
300
,
200
],
multiline
:
false
});
console
.
log
(
r
);
// refer to ikm6 GUI.showForm
//
//
refer to ikm6 GUI.showForm
r
=
gui
.
showForm
({
title
:
"form example"
,
title
:
"注册账号"
,
size
:
[
600
,
400
],
ui
:
{
type
:
'ScrollArea'
,
property
:
{
widget_resizable
:
true
,
frame_shape
:
'NoFrame'
,
align
:
'Top'
},
property
:
{
widget_resizable
:
true
,
frame_shape
:
'NoFrame'
,
align
:
'Top'
},
child
:
{
type
:
'VBoxLayout'
,
property
:
{
margin
:
2
,
spacing
:
20
,
align
:
'Top'
},
pack
:
{
stretch
:
0
},
child
:
[
{
type
:
'label'
property
:
{
margin
:
2
,
spacing
:
20
,
align
:
'Top'
},
{
type
:
'label'
,
property
:
{
text
:
(
"Partnumber Info"
)
}
pack
:
{
stretch
:
0
},
{
child
:
[
{
type
:
"FormGridLayout"
,
property
:
{
columns
:
4
,
label_alignment
:
'Top | Right'
,
margin
:
10
,
spacing
:
20
},
pack
:
{
stretch
:
0
},
child
:
[
{
name
:
'partnumber'
,
type
:
'LineEdit'
,
pack
:
{
label
:
(
'Partnumber'
)
},
property
:
{
enabled
:
true
}
property
:
{
columns
:
1
,
label_alignment
:
'Top | Right'
,
margin
:
10
,
spacing
:
20
},
{
name
:
'attrs.iscross'
,
type
:
'ComboBox'
,
property
:
{
enabled
:
true
,
item_list
:
[]
},
pack
:
{
label
:
(
'Is Cross'
)
}
pack
:
{
stretch
:
0
},
{
name
:
'attrs.pthick'
,
type
:
'DoubleLineEdit'
,
pack
:
{
label
:
(
'Part thickness'
)
},
property
:
{
enabled
:
true
}
},
{
name
:
'attrs.producttype'
,
type
:
'ComboBox'
,
property
:
{
enabled
:
true
,
item_list
:
[]
},
pack
:
{
label
:
(
'Product type'
)
}
child
:
[{
name
:
'username'
,
type
:
'LineEdit'
,
pack
:
{
label
:
"用户名"
},
{
name
:
'attrs.weft_direction'
,
type
:
'ComboBox'
,
property
:
{
enabled
:
true
,
item_list
:
[]
},
pack
:
{
label
:
(
'Longitude and latitude'
)
}
property
:
{
enabled
:
true
}
},
{
name
:
'attrs.structure_code
'
,
name
:
'password
'
,
type
:
'LineEdit'
,
pack
:
{
label
:
(
'Structure'
)
},
property
:
{
enabled
:
true
}
pack
:
{
label
:
"密码"
},
{
name
:
'attrs.array_num_on_panel_y'
,
type
:
'DoubleLineEdit'
,
pack
:
{
label
:
(
'Long edge typesetting'
)
},
property
:
{
enabled
:
true
}
property
:
{
echo_mode
:
"password"
}
},
{
name
:
'attrs.array_num_on_panel_x'
,
type
:
'DoubleLineEdit'
,
pack
:
{
label
:
(
'Short edge typesetting'
)
},
property
:
{
enabled
:
true
}
name
:
'sex'
,
type
:
'ComboBox'
,
property
:
{
enabled
:
true
,
item_list
:
[{
name
:
"male"
,
icon
:
"male"
,
text
:
"男"
,
text_zhcn
:
"男"
,
text_zhtw
:
"男"
},
{
name
:
'attrs.pre_partnumber'
,
type
:
'Chips'
,
pack
:
{
label
:
(
'Front partnumber'
),
column_span
:
2
},
property
:
{
enabled
:
true
}
name
:
"female"
,
icon
:
"female"
,
text
:
"女"
,
text_zhcn
:
"女"
,
text_zhtw
:
"女"
},
{
name
:
'attrs.erp_job_remark'
,
type
:
'PlainTextEdit'
,
property
:
{
enabled
:
true
,
min_row_count
:
1
,
vertical_scroll_bar_policy
:
'ScrollBarAlwaysOff'
},
pack
:
{
label
:
(
'ERP Job Remark'
),
column_span
:
2
},
name
:
"hideyoshi"
,
icon
:
"circle-thin"
,
text
:
"Hideyoshi"
,
text_zhcn
:
"秀吉"
,
text_tw
:
"秀吉"
}
]
},
{
type
:
'stretch'
pack
:
{
label
:
'性别'
}
}
]
}]
}
},
data
:
{},
runnow
:
true
,
data
:
{
username
:
"elder"
,
password
:
"nαive!"
,
sex
:
"male"
},
includehide
:
false
,
gen
:
null
buttons
:
[{
stock
:
"ok"
,
sensitive
:
true
,
command
:
function
(
data
)
{
}
},
{
stock
:
"cancel"
,
sensitive
:
true
,
command
:
function
(
ddata
)
{
}
},
{
stock
:
"help"
,
sensitive
:
true
,
command
:
function
(
data
)
{
console
.
log
(
data
);
}
}
],
hook
:
function
(
data
)
{},
gen
:
new
gen
()
});
console
.
log
(
r
);
r
=
gui
.
selectLayer
({
title
:
"+1s"
,
filter
:
".*"
,
// regular expression
//
filter: ".*", // regular expression
selectmode
:
"single"
,
// single, multiple
context
:
"all"
,
// all, board, misc
layertype
:
"inner"
,
// default type of layertypelist
defaultsize
:
[
600
,
400
],
// window size
layermatrix
:
{
layer1
:
{
context
:
"board"
,
row
:
1
,
name
:
"layer1"
,
layer_type
:
"inner"
...
...
@@ -240,42 +304,93 @@ r = gui.selectLayer({
row
:
2
,
name
:
"layer2"
,
layer_type
:
"outer"
},
layer3
:
{
context
:
"misc"
,
row
:
3
,
name
:
"layer3"
,
layer_type
:
"inner"
}
},
layertype
:
"inner"
,
// default type of layertypelist
layertypelist
:
[
{
name
:
"inner"
,
display_name
:
"Inner"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"inner"
;
}},
{
name
:
"outer"
,
display_name
:
"Outer"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"outer"
;
}}
layertypelist
:
[{
name
:
"all"
,
display_name
:
"All"
,
filter
:
function
(
x
)
{
return
true
;
}
},
{
name
:
"inner"
,
display_name
:
"Inner"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"inner"
;
}
},
{
name
:
"outer"
,
display_name
:
"Outer"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"outer"
;
}
}
],
gen
:
n
ull
gen
:
n
ew
gen
()
});
console
.
log
(
r
);
r
=
gui
.
lockUnlockLayer
({
"title"
:
"+1s"
,
"layermatrix"
:
{
"layer1"
:
{
"row"
:
1
,
"name"
:
"layer1"
title
:
"+1s"
,
layermatrix
:
{
layer1
:
{
context
:
"board"
,
row
:
1
,
name
:
"layer1"
,
layer_type
:
"signal"
},
"layer2"
:
{
"row"
:
2
,
"name"
:
"layer2"
}
layer2
:
{
context
:
"board"
,
row
:
2
,
name
:
"layer2"
,
layer_type
:
"drill"
},
layer3
:
{
context
:
"misc"
,
row
:
3
,
name
:
"layer3"
,
layer_type
:
"rout"
}
},
lockvalue
:
{
layer1
:
true
,
layer2
:
false
},
gen
:
new
gen
()
});
console
.
log
(
r
);
r
=
gui
.
passwordBox
({
title
:
"password box"
,
password
:
"naive!"
password
:
"naive!"
,
size
:
[
400
,
150
]
});
console
.
log
(
r
);
r
=
gui
.
selectJobLayer
({
layertypelist
:
[
{
name
:
"mo"
,
display_name
:
"MO"
,
filter
:
function
(
x
)
{
return
x
.
layer_type
===
"mo"
;
}
},
{
name
:
"ha"
,
display_name
:
"HA"
,
filter
:
function
(
x
)
{
return
x
.
layer_type
===
"ha"
;
}
}
title
:
"select job layer"
,
layertypelist
:
[{
name
:
"mo"
,
display_name
:
"MO"
,
filter
:
function
(
x
)
{
return
x
.
layer_type
===
"mo"
;
}
},
{
name
:
"ha"
,
display_name
:
"HA"
,
filter
:
function
(
x
)
{
return
x
.
layer_type
===
"ha"
;
}
}
],
//defaultlayertype: "ha",
joblist
:
[
"job1"
,
"job2"
],
...
...
@@ -300,3 +415,33 @@ r = gui.selectJobLayer({
});
console
.
log
(
r
);
x
=
gui
.
debug
({
title
:
"debug"
,
text
:
"ciao"
,
size
:
[
400
,
300
],
gen
:
new
gen
()
});
var
DB
=
require
(
'topsin.database'
);
DB
.
addConnection
({
database_type
:
'pg'
,
database_host
:
'127.0.0.1:5432'
,
database_name
:
'test'
,
database_user
:
'abby'
,
database_pwd
:
'abby'
},
'test'
);
x
=
gui
.
showSendMail
({
title
:
"show send mail"
,
to
:
"elder@+1s.gov"
,
cc
:
"elder@moha.me"
,
subject
:
"are you ok?"
,
content
:
"naive!"
,
size
:
[
800
,
600
],
db
:
DB
.
query
(
'test'
)
});
console
.
log
(
x
);
GUI测试/需求.md
0 → 100644
View file @
1943f0b6
## tableEdit
*
如图tableedit.png
*
表格里每一行可以自定义控件 编辑 返回arrayHash结构数据
## 显示提示信息
*
show_loading("正在....") 显示提示信息
*
update_loading("挑选铜皮重....") 更新提示信息
*
hide_loading() 关闭提示信息
ats/topcam/20200928_vivo.md
View file @
1943f0b6
...
...
@@ -3,3 +3,7 @@
*
100 102~106 108~113 115~116 119~127 129~130 132~142 145~150 rar压缩包
*
107 114 117 118 128 131无文件
*
144 创建profile失败
99990110 99990113 创建profile的时候卡死
\ No newline at end of file
ats/topcam/ATS_AIM_data_format.js
View file @
1943f0b6
...
...
@@ -829,14 +829,24 @@ function reName(props) { // 改名 par{job:要改名的料号, rule: {要改名
var matrix = props.matrix
var cfg = props.cfg
matrix = matrix.filter(function(v){return v.name != v.new_name})
matrix.forEach(function(v){
matrix = matrix.filter(function(v){
if(v.name == v.new_name){
IKM.save_layerinfo({ jobid: JobId, layer: v.name, layerinfohash: { layer_name_final: v.new_name }})
}
return v.name != v.new_name
})
var tmp = [];
matrix = matrix.filter(function(v){
// 在数据库层信息里找v.name 找得到就直接改名
var new_name = IKM.get_layerinfo({jobid: JobId, layer: v.name, layerinfo: "
new_name
" })
var new_name = IKM.get_layerinfo({jobid: JobId, layer: v.name, layerinfo: "
layer_name_final
" })
var layers_tmp = Object.keys(GEN.getMatrix({job:job}));
if(new_name && new_name!="" && new_name != v.name && layers_tmp.indexOf(new_name) < 0){
IKM.save_layerinfo({ jobid: JobId, layer: v.name, layerinfohash: { layer_name_final: new_name }})
tmp.push(v.name + "
----
" +new_name)
GEN.renameLayer({job:job,layer:v.name,new_name:new_name})
return false
} else {
return true
}
})
...
...
@@ -893,6 +903,7 @@ function reName(props) { // 改名 par{job:要改名的料号, rule: {要改名
rename_list.forEach(function(v){
var layers_tmp = Object.keys(GEN.getMatrix({job:job}));
if(v.orig_name !== v.new_name && layers_tmp.indexOf(v.new_name) < 0){
IKM.save_layerinfo({ jobid: JobId, layer: v.orig_name, layerinfohash: { layer_name_final: v.new_name }})
GEN.renameLayer({job:job,layer:v.orig_name,new_name:v.new_name})
}
});
...
...
@@ -906,11 +917,13 @@ function reName(props) { // 改名 par{job:要改名的料号, rule: {要改名
var botSignal = signals[signals.length -1]
if(topSignal !== "
top
"){
if(!GEN.isLayerExists({job:job, layer:"
top
"})){
IKM.save_layerinfo({ jobid: JobId, layer: topSignal, layerinfohash: { layer_name_final: "
top
" }})
GEN.renameLayer({job:job,layer:topSignal,new_name:"
top
"})
}
}
if(botSignal !== "
bottom
"){
if(!GEN.isLayerExists({job:job, layer:"
bottom
"})){
IKM.save_layerinfo({ jobid: JobId, layer: botSignal, layerinfohash: { layer_name_final: "
bottom
" }})
GEN.renameLayer({job:job,layer:botSignal,new_name:"
bottom
"})
}
}
...
...
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