1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
"use strict";
/*
NAME:
DESCRIPTION: ;
PARAMETER:
[
{
name : 'step',
title : 'step',
type : 'LineEdit',
property : {tool_tip : '目标step,默认是orig'},
},
{
name : 'auto_save',
title : '自动保存',
type : 'RadioBox',
property : {
item_list:[
{name:'yes',text:'YES'},
{name:'no',text:'NO'},
],
tool_tip:'是否自动保存料号开关'
}
}
]
VERSION_HISTORY:
V1.00 2020-09-01 Scott Sun
1.新版本
HELP:
<html><body bgcolor="#DDECFE">
<font size="3" color="#003DB2"><p>功能简介</p></font>
<p> 标题 </p>
<br>
<font size="3" color="#003DB2"><p>参数配置</p></font>
<p> step信息 </p>
<br>
<font size="3" color="#003DB2"><p>注意事项</p></font>
<p> 无 </p>
<br>
</body></html>
*/
// 引入模块 包
var $ = require('topcam.scriptfunc').argv();
var fs = require('fs');
var _ = require('lodash');
var mode = $.ikm ? "topcam" : "aimdfm";
var IKM = $.ikm;
if (IKM == undefined) {
IKM = require('topcam.ikm6')($);
}
var GEN = $.gen;
var GUI = $.gui || {};
var Job = $.job || $.job_name;
var JobId = $.job_id;
var db = $.db || IKM.db;
var PAR = {};
if ($.par) {
PAR = $.par;
}
else if ($.hasOwnProperty('script_parameter')) {
PAR = JSON.parse($.script_parameter);
}
if (mode === "aimdfm") {
var database = require("topsin.database");
database.addConnection($.conf.database_conf, "DFM");
var QDfm = database.query("DFM");
$.QDfm = QDfm;
if ($.conf.product_type == "aimdfm") {
QDfm.updateRow({ table: "pdm_aimdfm_task", data: { current_process_title: $.process_title }, where: { id: $.task_id } });
}
}
var Status = 'ok';
var resultData = [];
var par = PAR;
var default_par = {
step: "orig",
auto_save: "No",
units: "mm"
};
for (var key in default_par) {
if (!par.hasOwnProperty(key) || par[key] == "") {
par[key] = default_par[key];
}
}
var job = Job;
try {
if (_.isEmpty(job)) {
throw "参数job不存在";
}
else {
job = job.toLowerCase();
}
if (!GEN.isJobExists({ job: job })) {
throw "料号" + 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" });
}
}
var stepList = GEN.getStepList({ job: job });
stepList = stepList.filter(function (step) {
var reg = new RegExp(par.step, "ig");
return reg.test(step);
});
stepList.forEach(function (step) {
GEN.openStep({ job: job, name: step });
GEN.clearLayers(); //清除层显示
GEN.affectedLayer({ mode: 'all', affected: 'no' }); //设置影响层全部不影响
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.units({ type: par.units });
GEN.zoomHome();
GEN.closeStep();
});
// 保存
if (/yes/ig.test(par.auto_save)) {
GEN.checkInout({ job: job, mode: "out" });
GEN.saveJob({ job: job });
GEN.checkInout({ job: job, mode: "in" });
GEN.closeJob({ job: job });
}
else {
GEN.checkInout({ job: job, mode: "in" });
}
if (mode === "aimdfm") {
$.QDfm.updateRow({ table: "pdm_aimdfm_task", data: { progress: 33.33 }, where: { id: $.task_id } });
if (GEN.hasError()) {
Status = 'error';
resultData.push({ type: "error", title: "GEN错误!", detail: [{ desc: _.join(GEN.STATUS, "\n") }] });
return { status: Status, result_data: resultData };
}
else {
resultData.push({ type: "info", title: "操作完成, 请注意检查!" });
return { status: Status, result_data: resultData };
}
}
else {
return "Done";
}
}
catch (e) {
IKM.msg(_.join(GEN.STATUS, "\n"));
IKM.msg(e);
Status = 'error';
resultData.push({ type: "error", title: "脚本执行出错!", detail: [{ desc: _.toString(e) }] });
return (mode === "aimdfm") ? { status: Status, result_data: resultData } : "Error";
}