ss-component-new 1.3.614 → 1.3.615
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/JSEncrypt-B36c1iN5.js +1983 -0
- package/dist/{MTLLoader-B6ottYFV.js → MTLLoader-BL2uYkTJ.js} +2 -2
- package/dist/{OrbitControls-BFVKU7s-.js → OrbitControls-Zyj23qrC.js} +1 -1
- package/dist/{URDFLoader-CH-7Pzmq.js → URDFLoader-CRx5L75v.js} +584 -589
- package/dist/{animationData-F0z3GN7j.js → animationData-CJQE6_nu.js} +3 -3
- package/dist/{array-DZZ1aQEC.js → array-CKTk7Sq_.js} +14 -13
- package/dist/{clone-MyfSNInd.js → clone-ESeDvnJv.js} +1 -1
- package/dist/{eleIcon-BoKZ_PzU.js → eleIcon-C7Pz9jha.js} +2 -2
- package/dist/{iconfont-BJYdStg5.js → iconfont-DZGSkx-_.js} +247 -396
- package/dist/{index-CbFYfzNE.js → index--FPbFJB2.js} +6 -6
- package/dist/{index-DJrzqi4-.js → index-11kpzK0A.js} +17 -17
- package/dist/{index-BvtOLltL.js → index-B0M1YCUY.js} +7 -7
- package/dist/{index-aTEfnfYn.js → index-BA1kJZth.js} +40 -36
- package/dist/{index-CT1LWsrT.js → index-BBBCr4Oo.js} +2 -2
- package/dist/{index-dD-mKgue.js → index-BHtNKL1L.js} +2 -2
- package/dist/{index-CznUP1Ek.js → index-BJFXtH-X.js} +3 -3
- package/dist/{index-DcPtyCDm.js → index-BUqviBFi.js} +35 -29
- package/dist/{index-B2LYEScO.js → index-BXh02EAd.js} +4 -4
- package/dist/{index-CkO7j_i1.js → index-B_fRppeJ.js} +8 -8
- package/dist/index-BmaW6Me9.js +572 -0
- package/dist/{index-6qXeMn6b.js → index-BvkIoiVW.js} +3 -3
- package/dist/{index-DIVct0z6.js → index-C3pboX9W.js} +5 -5
- package/dist/{index-BkkvdZXm.js → index-CPW7tdrA.js} +20 -17
- package/dist/{index-CXqqIuf-.js → index-CTicGWoS.js} +3 -3
- package/dist/{index-BybrpYzx.js → index-CX8Apbo7.js} +1 -1
- package/dist/{index-DI44qg1B.js → index-Cn33Gz2z.js} +616 -587
- package/dist/{index-DmILGKv9.js → index-D1E8EPxn.js} +61 -57
- package/dist/{index-B8NQAdR4.js → index-D8UY4uNQ.js} +967 -966
- package/dist/{index-CYjsE5Gs.js → index-D9xMYIes.js} +3 -3
- package/dist/{index-C6H6VzYm.js → index-DAs4L0hx.js} +6436 -6878
- package/dist/{index-IT-HvgkV.js → index-Dd-8nw2f.js} +20 -18
- package/dist/{index-pMtaHLbt.js → index-DjSJhlad.js} +62 -60
- package/dist/{index-hg0CdgKe.js → index-DkumSU1-.js} +4 -4
- package/dist/{index-CvZcm-Tt.js → index-DlQXFCw8.js} +8 -7
- package/dist/{index-BvyM6d06.js → index-DsdWSuDi.js} +483 -482
- package/dist/{index-DCY5J8nu.js → index-XvX6TMzr.js} +1 -1
- package/dist/{index-B4NcYIuS.js → index-YvUJL9Us.js} +1 -1
- package/dist/{index-BskHs38T.js → index-cYgzND1g.js} +8594 -8615
- package/dist/{index-BFS4iFyT.js → index-gXFBfuoD.js} +8 -8
- package/dist/{index-TgVsU-aK.js → index-obXIOkF7.js} +4 -4
- package/dist/{index-BFqUz4pN.js → index-rlStojTL.js} +1 -1
- package/dist/{index-DEbrqw2f.js → index-t9LvhXac.js} +5 -5
- package/dist/{index-CM6aWexA.js → index-tMqKF2l6.js} +2 -2
- package/dist/{index-BCb4e7gH.js → index-tniD_xHN.js} +157 -148
- package/dist/{index.vue_vue_type_script_setup_true_lang-DwbHXtUp.js → index.vue_vue_type_script_setup_true_lang-DRzriV-s.js} +2 -2
- package/dist/{index.vue_vue_type_style_index_0_scoped_39e1db95_lang-Dp7tIi0S.js → index.vue_vue_type_style_index_0_scoped_39e1db95_lang-X_k372gl.js} +27735 -27760
- package/dist/isString-BlNsHiyU.js +8 -0
- package/dist/{localIcon-CoJHw5ss.js → localIcon-D5UoFBU5.js} +1 -1
- package/dist/{main-DMRXk1rO.js → main-DgwLoFSd.js} +9 -9
- package/dist/{menuIndex-BiUB7t5q.js → menuIndex-DAW9B-9g.js} +1 -1
- package/dist/obj/model.mtl +42 -0
- package/dist/obj/model.obj +26110 -0
- package/dist/{request-BfrhYBTM.js → request-B1c8BUkR.js} +3075 -3493
- package/dist/ss-component.css +3 -3
- package/dist/ss-component.js +14 -14
- package/dist/ss-component2.js +13 -13
- package/dist/ss-component3.js +1 -1
- package/dist/svgIcon-4u4PW7Is.js +42 -0
- package/dist/{threeModel-gP4XEBBx.js → threeModel-Df46gQvy.js} +174 -174
- package/dist/{threePreview-CpcrqmFS.js → threePreview-C4Ra7sjU.js} +554 -554
- package/dist/threeSceneView-tLPMhgrS.js +1291 -0
- package/dist/{threeSceneViewForCPMPIP-DuORHSj3.js → threeSceneViewForCPMPIP-DZ5wkTWo.js} +208 -207
- package/dist/{threeTrackPathView-Bw6e-quT.js → threeTrackPathView-DT80eKxv.js} +25 -25
- package/dist/{threeViewerHost-BPdmCSow.js → threeViewerHost-t6BRTmw8.js} +4 -4
- package/dist/urdfTree-Bu7OVUsr.js +404 -0
- package/dist/{workpieceTreePanel-XH9mYAT2.js → workpieceTreePanel-CuXFoEjJ.js} +60 -56
- package/package.json +1 -1
- package/public/obj/model.mtl +42 -0
- package/public/obj/model.obj +26110 -0
- package/dist/index-BmHnPjUq.js +0 -2623
- package/dist/isString-Dxm3W5iX.js +0 -8
- package/dist/svgIcon-4m2zaZkj.js +0 -42
- package/dist/threeSceneView-CWlU0pao.js +0 -1290
- package/dist/urdfTree-DU02c_91.js +0 -254
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { s as pe } from "./threeViewerHost-
|
|
3
|
-
import { u as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import "./index
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import { E as _ } from "./request-
|
|
1
|
+
import { defineComponent as be, ref as r, computed as k, watch as X, onUnmounted as Ne, resolveComponent as E, createElementBlock as x, openBlock as b, createElementVNode as n, createCommentVNode as U, createVNode as s, toDisplayString as V, Fragment as De, renderList as Be, withCtx as ne, shallowRef as te, onMounted as Je, nextTick as me, onBeforeUnmount as Me, withDirectives as I, vShow as W, unref as z, renderSlot as ve, createBlock as de } from "vue";
|
|
2
|
+
import { s as pe } from "./threeViewerHost-t6BRTmw8.js";
|
|
3
|
+
import { u as Ee, C as Ge } from "./iconfont-DZGSkx-_.js";
|
|
4
|
+
import { g as He, b as Ie, u as We, d as Xe, U as Ye, J as Ze, e as qe } from "./urdfTree-Bu7OVUsr.js";
|
|
5
|
+
import { U as Ke, u as Qe, a as el, W as ll } from "./workpieceTreePanel-CuXFoEjJ.js";
|
|
6
|
+
import { c as tl } from "./index-D8UY4uNQ.js";
|
|
7
|
+
import "./index.vue_vue_type_style_index_0_scoped_39e1db95_lang-X_k372gl.js";
|
|
8
|
+
import { _ as fe } from "./index.vue_vue_type_script_setup_true_lang-DRzriV-s.js";
|
|
9
|
+
import { E as _ } from "./request-B1c8BUkR.js";
|
|
10
10
|
import { _ as he } from "./_plugin-vue_export-helper-CHgC5LLL.js";
|
|
11
|
-
import { T as y } from "./svgIcon-
|
|
12
|
-
import { i as
|
|
13
|
-
import { O as
|
|
14
|
-
const
|
|
11
|
+
import { T as y } from "./svgIcon-4u4PW7Is.js";
|
|
12
|
+
import { i as nl } from "./animationData-CJQE6_nu.js";
|
|
13
|
+
import { O as al } from "./MTLLoader-BL2uYkTJ.js";
|
|
14
|
+
const ol = { class: "panel-content" }, sl = {
|
|
15
15
|
key: 0,
|
|
16
16
|
class: "animation-controls"
|
|
17
|
-
},
|
|
17
|
+
}, il = { class: "control-row" }, rl = { class: "control-row" }, ul = { class: "frame-info" }, cl = { class: "control-row" }, vl = {
|
|
18
18
|
key: 1,
|
|
19
19
|
class: "empty-state"
|
|
20
|
-
},
|
|
20
|
+
}, dl = { class: "dialog-footer" }, ml = /* @__PURE__ */ be({
|
|
21
21
|
__name: "urdfAnimationPanel",
|
|
22
22
|
props: {
|
|
23
23
|
model: {},
|
|
24
24
|
scene: {},
|
|
25
25
|
xyzbcList: {}
|
|
26
26
|
},
|
|
27
|
-
setup(
|
|
28
|
-
const j =
|
|
27
|
+
setup(F, { expose: f }) {
|
|
28
|
+
const j = F, i = r([]), T = r(!1), N = r(""), c = r("stopped"), h = r(0), O = r(0), C = r(10), v = r(null);
|
|
29
29
|
let d = 0;
|
|
30
|
-
const P = r([]), w = k(() => j.model ?
|
|
30
|
+
const P = r([]), w = k(() => j.model ? He(j.model).map((g) => g.name) : []), R = k(() => [...w.value]), ae = k(() => R.value.length > 0 ? `请按以下格式粘贴数据 (第一行为表头,使用 Tab 分隔):
|
|
31
31
|
${R.value.join(" ")}
|
|
32
32
|
0 0 0 ...
|
|
33
33
|
1 2 3 ...` : "请先加载模型。"), Y = k(() => i.value[h.value] || {});
|
|
34
34
|
X(() => j.model, (a) => {
|
|
35
|
-
a ? (v.value = new
|
|
35
|
+
a ? (v.value = new Ke(a), P.value = Ie(a), h.value = 0) : (v.value = null, P.value = []);
|
|
36
36
|
}, { immediate: !0 });
|
|
37
37
|
const J = (a) => {
|
|
38
38
|
if (a < 0 || a >= i.value.length) {
|
|
39
39
|
console.error(`帧索引 ${a} 超出范围`);
|
|
40
40
|
return;
|
|
41
41
|
}
|
|
42
|
-
const
|
|
42
|
+
const t = i.value[a];
|
|
43
43
|
if (v.value) {
|
|
44
|
-
const
|
|
45
|
-
w.value.forEach((
|
|
46
|
-
const u = parseFloat(
|
|
47
|
-
isNaN(u) || (
|
|
48
|
-
}), v.value.setJointAngles(
|
|
44
|
+
const g = {};
|
|
45
|
+
w.value.forEach((L) => {
|
|
46
|
+
const u = parseFloat(t[L]);
|
|
47
|
+
isNaN(u) || (g[L] = u);
|
|
48
|
+
}), v.value.setJointAngles(g);
|
|
49
49
|
}
|
|
50
50
|
h.value = a, O.value = i.value.length > 1 ? a / (i.value.length - 1) * 100 : 100;
|
|
51
51
|
}, M = async (a) => {
|
|
52
52
|
try {
|
|
53
|
-
for (let
|
|
53
|
+
for (let t = h.value; t < i.value.length; t++) {
|
|
54
54
|
if (a !== d) return;
|
|
55
|
-
const
|
|
55
|
+
const g = i.value[t], L = {};
|
|
56
56
|
if (v.value)
|
|
57
57
|
w.value.forEach((u) => {
|
|
58
|
-
const m = parseFloat(
|
|
59
|
-
isNaN(m) || (
|
|
58
|
+
const m = parseFloat(g[u]);
|
|
59
|
+
isNaN(m) || (L[u] = m);
|
|
60
60
|
}), await v.value.animateToState(
|
|
61
|
-
|
|
61
|
+
L,
|
|
62
62
|
C.value,
|
|
63
63
|
(u) => {
|
|
64
|
-
a === d && (O.value = (
|
|
64
|
+
a === d && (O.value = (t + u) / i.value.length * 100);
|
|
65
65
|
}
|
|
66
66
|
);
|
|
67
67
|
else {
|
|
68
68
|
if (await new Promise((u) => setTimeout(u, C.value)), a !== d) return;
|
|
69
|
-
O.value = (
|
|
69
|
+
O.value = (t + 1) / i.value.length * 100;
|
|
70
70
|
}
|
|
71
|
-
h.value =
|
|
71
|
+
h.value = t;
|
|
72
72
|
}
|
|
73
73
|
a === d && (_.success("动画播放完成"), c.value = "stopped", O.value = 100);
|
|
74
|
-
} catch (
|
|
75
|
-
console.error("动画播放出错:",
|
|
74
|
+
} catch (t) {
|
|
75
|
+
console.error("动画播放出错:", t), _.error("动画播放出错"), c.value = "stopped";
|
|
76
76
|
}
|
|
77
|
-
},
|
|
77
|
+
}, D = () => {
|
|
78
78
|
if (i.value.length === 0) {
|
|
79
79
|
_.error("无动画数据");
|
|
80
80
|
return;
|
|
@@ -84,62 +84,62 @@ ${R.value.join(" ")}
|
|
|
84
84
|
c.value === "playing" && (d++, c.value = "paused", _.info("动画已暂停"));
|
|
85
85
|
}, q = () => {
|
|
86
86
|
d++, c.value = "stopped", h.value = 0, O.value = 0, J(0), _.info("动画已停止并重置");
|
|
87
|
-
}, ae = () => {
|
|
88
|
-
c.value === "playing" ? Z() : N();
|
|
89
|
-
}, D = (a) => {
|
|
90
|
-
d++, c.value = "paused", J(a);
|
|
91
87
|
}, oe = () => {
|
|
92
|
-
|
|
88
|
+
c.value === "playing" ? Z() : D();
|
|
89
|
+
}, B = (a) => {
|
|
90
|
+
d++, c.value = "paused", J(a);
|
|
91
|
+
}, se = () => {
|
|
92
|
+
if (!N.value.trim()) {
|
|
93
93
|
_.warning("导入内容不能为空");
|
|
94
94
|
return;
|
|
95
95
|
}
|
|
96
|
-
const a =
|
|
96
|
+
const a = N.value.trim().split(`
|
|
97
97
|
`).filter((m) => m.trim() !== "");
|
|
98
98
|
if (a.length < 2) {
|
|
99
99
|
_.error("导入数据至少需要包含表头行和一行数据");
|
|
100
100
|
return;
|
|
101
101
|
}
|
|
102
|
-
const
|
|
103
|
-
if (
|
|
104
|
-
R.value.includes(m) && (
|
|
105
|
-
}), Object.keys(
|
|
102
|
+
const t = a[0].split(" ").map((m) => m.trim()), g = {};
|
|
103
|
+
if (t.forEach((m, p) => {
|
|
104
|
+
R.value.includes(m) && (g[p] = m);
|
|
105
|
+
}), Object.keys(g).length === 0) {
|
|
106
106
|
_.error("没有找到匹配的表头,请检查表头名称是否正确");
|
|
107
107
|
return;
|
|
108
108
|
}
|
|
109
109
|
const u = a.slice(1).map((m) => {
|
|
110
|
-
const p = m.split(" "),
|
|
111
|
-
return R.value.forEach((
|
|
112
|
-
|
|
113
|
-
}), Object.entries(
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
}),
|
|
110
|
+
const p = m.split(" "), S = {};
|
|
111
|
+
return R.value.forEach((G) => {
|
|
112
|
+
S[G] = "0";
|
|
113
|
+
}), Object.entries(g).forEach(([G, Q]) => {
|
|
114
|
+
const H = p[parseInt(G)];
|
|
115
|
+
H !== void 0 && H.trim() !== "" && (S[Q] = H.trim());
|
|
116
|
+
}), S;
|
|
117
117
|
});
|
|
118
|
-
u.length > 0 ? (i.value = u, _.success(`成功导入 ${u.length} 行数据!`), T.value = !1,
|
|
118
|
+
u.length > 0 ? (i.value = u, _.success(`成功导入 ${u.length} 行数据!`), T.value = !1, N.value = "", q()) : _.error("未能解析到有效数据,请检查格式。");
|
|
119
119
|
};
|
|
120
120
|
X(() => j.xyzbcList, () => {
|
|
121
|
-
j.xyzbcList && (i.value =
|
|
121
|
+
j.xyzbcList && (i.value = tl(j.xyzbcList));
|
|
122
122
|
}, {
|
|
123
123
|
immediate: !0
|
|
124
124
|
});
|
|
125
125
|
const K = (a) => `第 ${a + 1} 帧`;
|
|
126
126
|
return f({
|
|
127
|
-
handlePlayPause:
|
|
128
|
-
playAnimation:
|
|
127
|
+
handlePlayPause: oe,
|
|
128
|
+
playAnimation: D,
|
|
129
129
|
pauseAnimation: Z,
|
|
130
130
|
stopAnimation: q
|
|
131
|
-
}),
|
|
131
|
+
}), Ne(() => {
|
|
132
132
|
d++;
|
|
133
|
-
}), (a,
|
|
134
|
-
const
|
|
135
|
-
return
|
|
136
|
-
|
|
137
|
-
i.value.length > 0 ? (
|
|
138
|
-
n("div",
|
|
139
|
-
|
|
140
|
-
s(
|
|
133
|
+
}), (a, t) => {
|
|
134
|
+
const g = E("el-input-number"), L = E("el-slider"), u = E("el-input"), m = E("el-dialog");
|
|
135
|
+
return b(), x("div", ol, [
|
|
136
|
+
t[11] || (t[11] = n("div", { class: "action-bar" }, null, -1)),
|
|
137
|
+
i.value.length > 0 ? (b(), x("div", sl, [
|
|
138
|
+
n("div", il, [
|
|
139
|
+
t[5] || (t[5] = n("label", null, "帧间隔 (ms):", -1)),
|
|
140
|
+
s(g, {
|
|
141
141
|
modelValue: C.value,
|
|
142
|
-
"onUpdate:modelValue":
|
|
142
|
+
"onUpdate:modelValue": t[0] || (t[0] = (p) => C.value = p),
|
|
143
143
|
min: 10,
|
|
144
144
|
max: 5e3,
|
|
145
145
|
step: 100,
|
|
@@ -147,98 +147,99 @@ ${R.value.join(" ")}
|
|
|
147
147
|
style: { width: "120px" }
|
|
148
148
|
}, null, 8, ["modelValue"])
|
|
149
149
|
]),
|
|
150
|
-
n("div",
|
|
151
|
-
|
|
152
|
-
n("span",
|
|
150
|
+
n("div", rl, [
|
|
151
|
+
t[6] || (t[6] = n("label", null, "当前帧:", -1)),
|
|
152
|
+
n("span", ul, V(h.value + 1) + " / " + V(i.value.length), 1)
|
|
153
153
|
]),
|
|
154
|
-
n("div",
|
|
155
|
-
|
|
156
|
-
s(
|
|
154
|
+
n("div", cl, [
|
|
155
|
+
t[7] || (t[7] = n("label", null, "动画进度:", -1)),
|
|
156
|
+
s(L, {
|
|
157
157
|
modelValue: h.value,
|
|
158
|
-
"onUpdate:modelValue":
|
|
158
|
+
"onUpdate:modelValue": t[1] || (t[1] = (p) => h.value = p),
|
|
159
159
|
min: 0,
|
|
160
160
|
max: i.value.length > 0 ? i.value.length - 1 : 0,
|
|
161
161
|
step: 1,
|
|
162
162
|
"format-tooltip": K,
|
|
163
|
-
onInput:
|
|
163
|
+
onInput: B,
|
|
164
164
|
disabled: i.value.length === 0 || c.value === "playing",
|
|
165
165
|
style: { "flex-grow": "1", margin: "0 10px" }
|
|
166
166
|
}, null, 8, ["modelValue", "max", "disabled"])
|
|
167
167
|
]),
|
|
168
168
|
n("div", null, [
|
|
169
|
-
|
|
169
|
+
t[8] || (t[8] = n("label", null, "当前帧数据:", -1)),
|
|
170
170
|
n("div", null, [
|
|
171
|
-
Y.value ? (
|
|
171
|
+
Y.value ? (b(!0), x(De, { key: 0 }, Be(Y.value, (p, S) => (b(), x("div", { key: S }, V(S) + ": " + V(p), 1))), 128)) : U("", !0)
|
|
172
172
|
])
|
|
173
173
|
])
|
|
174
174
|
])) : U("", !0),
|
|
175
|
-
i.value.length === 0 ? (
|
|
175
|
+
i.value.length === 0 ? (b(), x("div", vl, t[9] || (t[9] = [
|
|
176
176
|
n("p", null, "请先创建数据", -1)
|
|
177
|
-
])
|
|
177
|
+
]))) : U("", !0),
|
|
178
178
|
s(m, {
|
|
179
179
|
modelValue: T.value,
|
|
180
|
-
"onUpdate:modelValue":
|
|
180
|
+
"onUpdate:modelValue": t[4] || (t[4] = (p) => T.value = p),
|
|
181
181
|
title: "导入数据",
|
|
182
182
|
width: "500px"
|
|
183
183
|
}, {
|
|
184
|
-
footer:
|
|
185
|
-
n("span",
|
|
184
|
+
footer: ne(() => [
|
|
185
|
+
n("span", dl, [
|
|
186
186
|
s(fe, {
|
|
187
187
|
modelValue: "取消",
|
|
188
|
-
onClick:
|
|
188
|
+
onClick: t[3] || (t[3] = (p) => T.value = !1)
|
|
189
189
|
}),
|
|
190
190
|
s(fe, {
|
|
191
191
|
modelValue: "确认导入",
|
|
192
|
-
onClick:
|
|
192
|
+
onClick: se,
|
|
193
193
|
type: "primary"
|
|
194
194
|
})
|
|
195
195
|
])
|
|
196
196
|
]),
|
|
197
|
-
default:
|
|
198
|
-
|
|
197
|
+
default: ne(() => [
|
|
198
|
+
t[10] || (t[10] = n("p", { class: "import-instructions" }, " 请从Excel或CSV中复制数据 (首行为表头, Tab分隔) ", -1)),
|
|
199
199
|
s(u, {
|
|
200
|
-
modelValue:
|
|
201
|
-
"onUpdate:modelValue":
|
|
200
|
+
modelValue: N.value,
|
|
201
|
+
"onUpdate:modelValue": t[2] || (t[2] = (p) => N.value = p),
|
|
202
202
|
type: "textarea",
|
|
203
203
|
rows: 10,
|
|
204
|
-
placeholder:
|
|
204
|
+
placeholder: ae.value
|
|
205
205
|
}, null, 8, ["modelValue", "placeholder"])
|
|
206
206
|
]),
|
|
207
|
-
_: 1
|
|
207
|
+
_: 1,
|
|
208
|
+
__: [10]
|
|
208
209
|
}, 8, ["modelValue"])
|
|
209
210
|
]);
|
|
210
211
|
};
|
|
211
212
|
}
|
|
212
|
-
}),
|
|
213
|
+
}), ge = /* @__PURE__ */ he(ml, [["__scopeId", "data-v-00d63f4b"]]), pl = async (F) => await new al().loadAsync(F), fl = async (F) => await pl(F), gl = { class: "obj-viewer-container" }, bl = { class: "buttonGroup-topLeft" }, hl = { class: "buttonGroup-left" }, yl = { class: "buttonGroup-right" }, _l = { class: "buttonGroup-bottom" }, kl = { class: "left-panel" }, Cl = { class: "panel-header" }, Pl = { class: "panel-body" }, wl = { class: "right-panel" }, zl = { class: "panel-header" }, Ul = { class: "panel-body" }, xl = {
|
|
213
214
|
key: 0,
|
|
214
215
|
class: "loading-overlay"
|
|
215
|
-
},
|
|
216
|
+
}, jl = {
|
|
216
217
|
key: 1,
|
|
217
218
|
class: "brand"
|
|
218
|
-
},
|
|
219
|
+
}, Ll = {
|
|
219
220
|
key: 0,
|
|
220
221
|
class: "brand-item"
|
|
221
|
-
},
|
|
222
|
+
}, Vl = { class: "item-value" }, $l = {
|
|
222
223
|
key: 1,
|
|
223
224
|
class: "brand-item"
|
|
224
|
-
},
|
|
225
|
+
}, Al = { class: "item-value" }, Tl = {
|
|
225
226
|
key: 2,
|
|
226
227
|
class: "brand-item"
|
|
227
|
-
},
|
|
228
|
+
}, Ol = { class: "item-value" }, Rl = /* @__PURE__ */ be({
|
|
228
229
|
__name: "threeSceneViewForCPMPIP",
|
|
229
230
|
props: {
|
|
230
231
|
fileBlobs: { default: () => [] },
|
|
231
232
|
threeData: {}
|
|
232
233
|
},
|
|
233
|
-
setup(
|
|
234
|
-
const f =
|
|
234
|
+
setup(F) {
|
|
235
|
+
const f = F, j = r([]), i = k(() => {
|
|
235
236
|
var e, o;
|
|
236
237
|
return (o = (e = f == null ? void 0 : f.threeData) == null ? void 0 : e.data) == null ? void 0 : o.csvUrl;
|
|
237
238
|
});
|
|
238
239
|
X(() => i.value, async () => {
|
|
239
240
|
if (console.log("csvUrl", i.value), i.value) {
|
|
240
|
-
const
|
|
241
|
-
j.value =
|
|
241
|
+
const l = await nl(i.value);
|
|
242
|
+
j.value = l;
|
|
242
243
|
}
|
|
243
244
|
}, {
|
|
244
245
|
immediate: !0
|
|
@@ -246,67 +247,67 @@ ${R.value.join(" ")}
|
|
|
246
247
|
const T = k(() => {
|
|
247
248
|
var e, o;
|
|
248
249
|
return (o = (e = f == null ? void 0 : f.threeData) == null ? void 0 : e.data) == null ? void 0 : o.bladeObjUrl;
|
|
249
|
-
}),
|
|
250
|
-
currentModels:
|
|
250
|
+
}), N = r(pe.ROBOT), c = r(null), h = r(!1), O = r(""), C = r(!1), v = r(""), d = r(!1), P = r(""), w = te(null), R = r("叶片模型"), ae = te(null), Y = te(null), J = te(null), M = r(ge), {
|
|
251
|
+
currentModels: D,
|
|
251
252
|
resetView: Z,
|
|
252
253
|
initThreeJS: q,
|
|
253
|
-
handleResize:
|
|
254
|
-
getThreeJSObjects:
|
|
255
|
-
cleanup:
|
|
254
|
+
handleResize: oe,
|
|
255
|
+
getThreeJSObjects: B,
|
|
256
|
+
cleanup: se,
|
|
256
257
|
setAndFitModels: K,
|
|
257
258
|
axesHelperVisible: a,
|
|
258
|
-
toggleAxesVisibility:
|
|
259
|
-
zoomIn:
|
|
260
|
-
zoomOut:
|
|
261
|
-
} =
|
|
259
|
+
toggleAxesVisibility: t,
|
|
260
|
+
zoomIn: g,
|
|
261
|
+
zoomOut: L
|
|
262
|
+
} = Ee(c), { loadSceneFromFile: u } = el(
|
|
263
|
+
B,
|
|
262
264
|
D,
|
|
263
|
-
N,
|
|
264
265
|
h,
|
|
265
266
|
O
|
|
266
|
-
), { isAnimating: m, toggleAnimation: p,
|
|
267
|
-
|
|
268
|
-
},
|
|
269
|
-
|
|
270
|
-
},
|
|
267
|
+
), { isAnimating: m, toggleAnimation: p, stopAnimation: S } = We(B, D), { isClipping: G, activeClippingAxis: Q, toggleClipping: H, updateClippingPlanes: ye } = Xe(B, D), { initRaycaster: _e, selectedObject3D: ke, setSelectedObjVisible: Ce, updatePosition: Pe, updateRotation: we, dispose: ze } = Qe(c, B, D), Ue = () => {
|
|
268
|
+
t();
|
|
269
|
+
}, xe = (l) => {
|
|
270
|
+
Q.value = l, ye();
|
|
271
|
+
}, $ = k(() => {
|
|
271
272
|
var e, o;
|
|
272
273
|
return (o = (e = f == null ? void 0 : f.threeData) == null ? void 0 : e.data) == null ? void 0 : o.machine;
|
|
273
274
|
}), ie = k(() => {
|
|
274
275
|
var e;
|
|
275
|
-
return (e =
|
|
276
|
+
return (e = $ == null ? void 0 : $.value) == null ? void 0 : e.modelNumber;
|
|
276
277
|
}), re = k(() => {
|
|
277
278
|
var e;
|
|
278
|
-
return (e =
|
|
279
|
+
return (e = $ == null ? void 0 : $.value) == null ? void 0 : e.serialNumber;
|
|
279
280
|
}), ue = k(() => {
|
|
280
281
|
var e;
|
|
281
|
-
return (e =
|
|
282
|
-
}),
|
|
283
|
-
C.value = !0, v.value =
|
|
284
|
-
}, ce = (
|
|
285
|
-
d.value = !0, P.value =
|
|
282
|
+
return (e = $ == null ? void 0 : $.value) == null ? void 0 : e.manufacturer;
|
|
283
|
+
}), je = k(() => ie.value || re.value || ue.value), Le = k(() => N.value === pe.ROBOT), ee = (l) => {
|
|
284
|
+
C.value = !0, v.value = l, l === "剖面视图" && !G.value && H();
|
|
285
|
+
}, ce = (l) => {
|
|
286
|
+
d.value = !0, P.value = l;
|
|
286
287
|
}, Ve = () => {
|
|
287
|
-
var
|
|
288
|
-
(
|
|
288
|
+
var l;
|
|
289
|
+
(l = M.value) == null || l.handlePlayPause();
|
|
289
290
|
}, $e = () => {
|
|
290
|
-
var
|
|
291
|
-
(
|
|
292
|
-
},
|
|
293
|
-
var
|
|
294
|
-
(
|
|
295
|
-
},
|
|
296
|
-
const e =
|
|
291
|
+
var l;
|
|
292
|
+
(l = M.value) == null || l.pauseAnimation();
|
|
293
|
+
}, Ae = () => {
|
|
294
|
+
var l;
|
|
295
|
+
(l = M.value) == null || l.stopAnimation();
|
|
296
|
+
}, Te = (l, e) => qe(l, e), Oe = async (l) => {
|
|
297
|
+
const e = Te(l, R.value);
|
|
297
298
|
if (Y.value = e, console.log("bladeObjUrl", T.value), e && e.parent && T.value) {
|
|
298
|
-
const o = await
|
|
299
|
-
o.name = "blade_clone", e.parent.add(o), o.position.copy(e.position), o.rotation.copy(e.rotation), o.scale.copy(e.scale), e.visible = !1,
|
|
299
|
+
const o = await fl(T.value);
|
|
300
|
+
o.name = "blade_clone", e.parent.add(o), o.position.copy(e.position), o.rotation.copy(e.rotation), o.scale.copy(e.scale), e.visible = !1, ae.value = o;
|
|
300
301
|
} else
|
|
301
302
|
R.value && console.warn(`在 Blade '${R.value}' 中未找到可替换的网格或其没有父级。`);
|
|
302
303
|
};
|
|
303
|
-
X(() => f.fileBlobs, (
|
|
304
|
-
if (
|
|
305
|
-
const e =
|
|
304
|
+
X(() => f.fileBlobs, (l) => {
|
|
305
|
+
if (l && l.length > 0) {
|
|
306
|
+
const e = l[0];
|
|
306
307
|
if (!e.name.toLowerCase().endsWith(".urdf"))
|
|
307
308
|
return;
|
|
308
309
|
u(e).then((o) => {
|
|
309
|
-
w.value = o, o &&
|
|
310
|
+
w.value = o, o && Oe(o);
|
|
310
311
|
}).catch((o) => {
|
|
311
312
|
console.error("加载URDF文件时发生错误:", o), _.error("加载urdf模型失败"), w.value = null;
|
|
312
313
|
});
|
|
@@ -315,31 +316,31 @@ ${R.value.join(" ")}
|
|
|
315
316
|
}, {
|
|
316
317
|
immediate: !0,
|
|
317
318
|
deep: !0
|
|
318
|
-
}), X(w, (
|
|
319
|
-
K(
|
|
319
|
+
}), X(w, (l) => {
|
|
320
|
+
K(l ? [l] : []), _e();
|
|
320
321
|
});
|
|
321
|
-
const
|
|
322
|
+
const Re = () => {
|
|
322
323
|
q(), me(() => {
|
|
323
|
-
c.value && (
|
|
324
|
+
c.value && (le = new ResizeObserver(oe), le.observe(c.value));
|
|
324
325
|
});
|
|
325
|
-
const
|
|
326
|
-
J.value =
|
|
327
|
-
},
|
|
328
|
-
v.value = "", P.value = "",
|
|
326
|
+
const l = B();
|
|
327
|
+
J.value = l.scene;
|
|
328
|
+
}, Se = () => {
|
|
329
|
+
v.value = "", P.value = "", le && le.disconnect(), m.value && S(), se(), ze();
|
|
329
330
|
};
|
|
330
|
-
let
|
|
331
|
-
return
|
|
331
|
+
let le = null;
|
|
332
|
+
return Je(async () => {
|
|
332
333
|
await me();
|
|
333
334
|
try {
|
|
334
|
-
|
|
335
|
-
} catch (
|
|
336
|
-
console.error("Three.js 初始化失败:",
|
|
335
|
+
Re();
|
|
336
|
+
} catch (l) {
|
|
337
|
+
console.error("Three.js 初始化失败:", l), _.error("渲染引擎初始化失败!");
|
|
337
338
|
}
|
|
338
|
-
}),
|
|
339
|
-
|
|
340
|
-
}), (
|
|
341
|
-
const o =
|
|
342
|
-
return
|
|
339
|
+
}), Me(() => {
|
|
340
|
+
Se();
|
|
341
|
+
}), (l, e) => {
|
|
342
|
+
const o = E("el-scrollbar"), Fe = E("PipeAnalysisPanel");
|
|
343
|
+
return b(), x("div", gl, [
|
|
343
344
|
I(n("div", {
|
|
344
345
|
ref_key: "threejsContainer",
|
|
345
346
|
ref: c,
|
|
@@ -347,7 +348,7 @@ ${R.value.join(" ")}
|
|
|
347
348
|
}, null, 512), [
|
|
348
349
|
[W, Le.value]
|
|
349
350
|
]),
|
|
350
|
-
n("div",
|
|
351
|
+
n("div", bl, [
|
|
351
352
|
s(y, {
|
|
352
353
|
name: "viewReset",
|
|
353
354
|
size: "24",
|
|
@@ -358,13 +359,13 @@ ${R.value.join(" ")}
|
|
|
358
359
|
name: "fangda",
|
|
359
360
|
size: "24",
|
|
360
361
|
title: "放大",
|
|
361
|
-
onClick: z(
|
|
362
|
+
onClick: z(g)
|
|
362
363
|
}, null, 8, ["onClick"]),
|
|
363
364
|
s(y, {
|
|
364
365
|
name: "suoxiao",
|
|
365
366
|
size: "24",
|
|
366
367
|
title: "缩小",
|
|
367
|
-
onClick: z(
|
|
368
|
+
onClick: z(L)
|
|
368
369
|
}, null, 8, ["onClick"]),
|
|
369
370
|
s(y, {
|
|
370
371
|
name: "lookAround",
|
|
@@ -376,39 +377,39 @@ ${R.value.join(" ")}
|
|
|
376
377
|
name: "zuobiaoxi",
|
|
377
378
|
size: "24",
|
|
378
379
|
active: z(a),
|
|
379
|
-
onClick:
|
|
380
|
+
onClick: Ue,
|
|
380
381
|
title: "显隐坐标轴"
|
|
381
382
|
}, null, 8, ["active"])
|
|
382
383
|
]),
|
|
383
|
-
n("div",
|
|
384
|
-
ve(
|
|
384
|
+
n("div", hl, [
|
|
385
|
+
ve(l.$slots, "button-left", { switchRightPanel: ee }, void 0, !0),
|
|
385
386
|
s(y, {
|
|
386
387
|
name: "jiegoushu",
|
|
387
388
|
size: "24",
|
|
388
|
-
onClick: e[0] || (e[0] = (
|
|
389
|
+
onClick: e[0] || (e[0] = (A) => ee("场景树")),
|
|
389
390
|
active: C.value && v.value === "场景树",
|
|
390
391
|
title: "场景树"
|
|
391
392
|
}, null, 8, ["active"]),
|
|
392
393
|
s(y, {
|
|
393
394
|
name: "clipping",
|
|
394
395
|
size: "24",
|
|
395
|
-
onClick: e[1] || (e[1] = (
|
|
396
|
+
onClick: e[1] || (e[1] = (A) => ee("剖面视图")),
|
|
396
397
|
active: C.value && v.value === "剖面视图",
|
|
397
398
|
title: "剖面视图"
|
|
398
399
|
}, null, 8, ["active"]),
|
|
399
400
|
s(y, {
|
|
400
401
|
name: "donghuafangzhen",
|
|
401
402
|
size: "24",
|
|
402
|
-
onClick: e[2] || (e[2] = (
|
|
403
|
+
onClick: e[2] || (e[2] = (A) => ee("工件树")),
|
|
403
404
|
active: C.value && v.value === "工件树"
|
|
404
405
|
}, null, 8, ["active"])
|
|
405
406
|
]),
|
|
406
|
-
n("div",
|
|
407
|
-
ve(
|
|
407
|
+
n("div", yl, [
|
|
408
|
+
ve(l.$slots, "button-right", { switchRightPanel: ce }, void 0, !0),
|
|
408
409
|
s(y, {
|
|
409
410
|
name: "jichuangxuanze",
|
|
410
411
|
size: "24",
|
|
411
|
-
onClick: e[3] || (e[3] = (
|
|
412
|
+
onClick: e[3] || (e[3] = (A) => ce("机床控制")),
|
|
412
413
|
active: d.value && P.value === "机床控制",
|
|
413
414
|
title: "机床控制"
|
|
414
415
|
}, null, 8, ["active"]),
|
|
@@ -416,11 +417,11 @@ ${R.value.join(" ")}
|
|
|
416
417
|
name: "donghuafangzhen",
|
|
417
418
|
size: "24",
|
|
418
419
|
title: "动画仿真",
|
|
419
|
-
onClick: e[4] || (e[4] = (
|
|
420
|
+
onClick: e[4] || (e[4] = (A) => ce("动画仿真")),
|
|
420
421
|
active: d.value && P.value === "动画仿真"
|
|
421
422
|
}, null, 8, ["active"])
|
|
422
423
|
]),
|
|
423
|
-
n("div",
|
|
424
|
+
n("div", _l, [
|
|
424
425
|
s(y, {
|
|
425
426
|
name: "bofang",
|
|
426
427
|
size: "24",
|
|
@@ -440,37 +441,37 @@ ${R.value.join(" ")}
|
|
|
440
441
|
size: "24",
|
|
441
442
|
backgroundColor: "#ffffff",
|
|
442
443
|
title: "停止",
|
|
443
|
-
onClick:
|
|
444
|
+
onClick: Ae
|
|
444
445
|
})
|
|
445
446
|
]),
|
|
446
|
-
I(n("div",
|
|
447
|
-
n("div",
|
|
448
|
-
n("span", null,
|
|
447
|
+
I(n("div", kl, [
|
|
448
|
+
n("div", Cl, [
|
|
449
|
+
n("span", null, V(v.value), 1),
|
|
449
450
|
n("span", {
|
|
450
451
|
class: "close",
|
|
451
|
-
onClick: e[5] || (e[5] = (
|
|
452
|
+
onClick: e[5] || (e[5] = (A) => C.value = !1)
|
|
452
453
|
}, " X ")
|
|
453
454
|
]),
|
|
454
|
-
n("div",
|
|
455
|
+
n("div", Pl, [
|
|
455
456
|
s(o, { height: "100%" }, {
|
|
456
|
-
default:
|
|
457
|
-
var
|
|
457
|
+
default: ne(() => {
|
|
458
|
+
var A;
|
|
458
459
|
return [
|
|
459
|
-
v.value === "场景树" ? (
|
|
460
|
+
v.value === "场景树" ? (b(), de(Ye, {
|
|
460
461
|
key: 0,
|
|
461
462
|
model: w.value
|
|
462
463
|
}, null, 8, ["model"])) : U("", !0),
|
|
463
|
-
v.value === "剖面视图" ? (
|
|
464
|
+
v.value === "剖面视图" ? (b(), de(Ge, {
|
|
464
465
|
key: 1,
|
|
465
|
-
value: z(
|
|
466
|
-
onChange:
|
|
466
|
+
value: z(Q),
|
|
467
|
+
onChange: xe
|
|
467
468
|
}, null, 8, ["value"])) : U("", !0),
|
|
468
|
-
v.value === "工件树" ? (
|
|
469
|
+
v.value === "工件树" ? (b(), de(ll, {
|
|
469
470
|
key: 2,
|
|
470
|
-
model: (
|
|
471
|
-
onVisibleChange: z(
|
|
472
|
-
onUpdatePosition: z(
|
|
473
|
-
onUpdateRotation: z(
|
|
471
|
+
model: (A = z(ke)) == null ? void 0 : A.obj,
|
|
472
|
+
onVisibleChange: z(Ce),
|
|
473
|
+
onUpdatePosition: z(Pe),
|
|
474
|
+
onUpdateRotation: z(we)
|
|
474
475
|
}, null, 8, ["model", "onVisibleChange", "onUpdatePosition", "onUpdateRotation"])) : U("", !0)
|
|
475
476
|
];
|
|
476
477
|
}),
|
|
@@ -480,21 +481,21 @@ ${R.value.join(" ")}
|
|
|
480
481
|
], 512), [
|
|
481
482
|
[W, C.value]
|
|
482
483
|
]),
|
|
483
|
-
I(n("div",
|
|
484
|
-
n("div",
|
|
485
|
-
n("span", null,
|
|
484
|
+
I(n("div", wl, [
|
|
485
|
+
n("div", zl, [
|
|
486
|
+
n("span", null, V(P.value), 1),
|
|
486
487
|
n("span", {
|
|
487
488
|
class: "close",
|
|
488
|
-
onClick: e[6] || (e[6] = (
|
|
489
|
+
onClick: e[6] || (e[6] = (A) => d.value = !1)
|
|
489
490
|
}, " X ")
|
|
490
491
|
]),
|
|
491
|
-
n("div",
|
|
492
|
+
n("div", Ul, [
|
|
492
493
|
s(o, { height: "100%" }, {
|
|
493
|
-
default:
|
|
494
|
-
I(s(
|
|
494
|
+
default: ne(() => [
|
|
495
|
+
I(s(Ze, { model: w.value }, null, 8, ["model"]), [
|
|
495
496
|
[W, P.value === "机床控制"]
|
|
496
497
|
]),
|
|
497
|
-
I(s(
|
|
498
|
+
I(s(ge, {
|
|
498
499
|
model: w.value,
|
|
499
500
|
scene: J.value,
|
|
500
501
|
xyzbcList: j.value,
|
|
@@ -503,7 +504,7 @@ ${R.value.join(" ")}
|
|
|
503
504
|
}, null, 8, ["model", "scene", "xyzbcList"]), [
|
|
504
505
|
[W, P.value === "动画仿真"]
|
|
505
506
|
]),
|
|
506
|
-
ve(
|
|
507
|
+
ve(l.$slots, "right-panel", { rightPanelType: P.value }, void 0, !0)
|
|
507
508
|
]),
|
|
508
509
|
_: 3
|
|
509
510
|
})
|
|
@@ -511,29 +512,29 @@ ${R.value.join(" ")}
|
|
|
511
512
|
], 512), [
|
|
512
513
|
[W, d.value]
|
|
513
514
|
]),
|
|
514
|
-
h.value ? (
|
|
515
|
+
h.value ? (b(), x("div", xl, [
|
|
515
516
|
e[7] || (e[7] = n("div", { class: "loading-spinner" }, null, -1)),
|
|
516
|
-
n("p", null,
|
|
517
|
+
n("p", null, V(O.value), 1)
|
|
517
518
|
])) : U("", !0),
|
|
518
|
-
|
|
519
|
-
ue.value ? (
|
|
519
|
+
je.value ? (b(), x("div", jl, [
|
|
520
|
+
ue.value ? (b(), x("div", Ll, [
|
|
520
521
|
e[8] || (e[8] = n("div", { class: "item-label" }, "厂家:", -1)),
|
|
521
|
-
n("div",
|
|
522
|
+
n("div", Vl, V(ue.value), 1)
|
|
522
523
|
])) : U("", !0),
|
|
523
|
-
ie.value ? (
|
|
524
|
+
ie.value ? (b(), x("div", $l, [
|
|
524
525
|
e[9] || (e[9] = n("div", { class: "item-label" }, "型号:", -1)),
|
|
525
|
-
n("div",
|
|
526
|
+
n("div", Al, V(ie.value), 1)
|
|
526
527
|
])) : U("", !0),
|
|
527
|
-
re.value ? (
|
|
528
|
+
re.value ? (b(), x("div", Tl, [
|
|
528
529
|
e[10] || (e[10] = n("div", { class: "item-label" }, "编号:", -1)),
|
|
529
|
-
n("div",
|
|
530
|
+
n("div", Ol, V(re.value), 1)
|
|
530
531
|
])) : U("", !0)
|
|
531
532
|
])) : U("", !0),
|
|
532
|
-
s(
|
|
533
|
+
s(Fe, { ref: "pipeAnalysisPanelRef" }, null, 512)
|
|
533
534
|
]);
|
|
534
535
|
};
|
|
535
536
|
}
|
|
536
|
-
}),
|
|
537
|
+
}), Yl = /* @__PURE__ */ he(Rl, [["__scopeId", "data-v-54d53d1f"]]);
|
|
537
538
|
export {
|
|
538
|
-
|
|
539
|
+
Yl as default
|
|
539
540
|
};
|