ss-component-new 1.2.149 → 1.2.151
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/{index-i1LAk7xi.js → index-7DELdi9r.js} +1 -1
- package/dist/{index-XBad8y7M.cjs → index-8wS2qFqg.cjs} +1 -1
- package/dist/{index-Ce6Xth3g.cjs → index-B4Dav25z.cjs} +1 -1
- package/dist/{index-Du2FYs3S.js → index-B6eTEaGv.js} +1 -1
- package/dist/{index-DVt1L2ot.cjs → index-BEFCGgLz.cjs} +1 -1
- package/dist/{index-Dzf_vkuc.cjs → index-BHtPwXUo.cjs} +1 -1
- package/dist/{index-v2S671fD.cjs → index-BOyFi91b.cjs} +1 -1
- package/dist/{index-8DB3lotY.cjs → index-BSL9W2d7.cjs} +1 -1
- package/dist/{index-DLF7ygmQ.cjs → index-BhG4_Tfo.cjs} +1 -1
- package/dist/{index-DDxP42fR.js → index-C0WirylR.js} +2 -2
- package/dist/{index-D17vnpLv.js → index-C2hU6rEK.js} +2 -2
- package/dist/{index-MAzQB5DM.js → index-C2jpY6gn.js} +1 -1
- package/dist/{index-rFb5Uov-.js → index-CAeRUyFF.js} +1 -1
- package/dist/{index-CYhJ15gW.js → index-CDju2pWS.js} +3 -3
- package/dist/{index-Cyvjf1Tt.cjs → index-CFjrHQH6.cjs} +1 -1
- package/dist/{index-CUlDR7dI.cjs → index-CMCCG94d.cjs} +1 -1
- package/dist/{index-DInx9Y4c.cjs → index-COqzfjzR.cjs} +1 -1
- package/dist/{index-CBqtxIIl.js → index-CSYiATH1.js} +1 -1
- package/dist/{index-B4sIGL0m.cjs → index-ChFX--GQ.cjs} +1 -1
- package/dist/{index-MV4QQgNN.js → index-CjXkQVcN.js} +1 -1
- package/dist/{index-BtaWtnC-.cjs → index-CzTzKK_O.cjs} +1 -1
- package/dist/{index-BErrbVUP.cjs → index-D32cMyo0.cjs} +1 -1
- package/dist/{index-DsLrebPb.js → index-D4ojc0S5.js} +1 -1
- package/dist/{index-aGamYrWo.js → index-D5XWQUk3.js} +1 -1
- package/dist/{index-s6qOGT1h.js → index-D6K8NNPh.js} +1 -1
- package/dist/{index-DImtWATy.js → index-DAl6CucA.js} +4 -4
- package/dist/{index-BvDxElun.js → index-DDfjNHBy.js} +11 -11
- package/dist/{index-BmyV7Fva.cjs → index-DSuXYMr_.cjs} +1 -1
- package/dist/{index-BFVfpBbP.cjs → index-DdfPRTL5.cjs} +1 -1
- package/dist/{index-CTGO4Ewf.js → index-Del2eFi6.js} +2 -2
- package/dist/{index-BoAYS22J.cjs → index-DmvdN8lL.cjs} +1 -1
- package/dist/{index-Bi_W4w_v.cjs → index-DySdRNBj.cjs} +1 -1
- package/dist/{index-BAIey5tR.cjs → index-HWUcNziq.cjs} +1 -1
- package/dist/{index-PiOLeC-k.js → index-TAspRdCx.js} +3 -3
- package/dist/{index-BmZdiLNN.js → index-XRYZm_qy.js} +5 -5
- package/dist/{index-DaTfC7jm.js → index-_-tamaLy.js} +2 -2
- package/dist/{index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-BvzIzj42.js → index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-BQhXFHYQ.js} +4 -4
- package/dist/{index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-DDaQ7fMJ.cjs → index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-CmYgfyIU.cjs} +1 -1
- package/dist/{index.vue_vue_type_style_index_0_scoped_92477073_lang-D1ClG0E4.js → index.vue_vue_type_style_index_0_scoped_92477073_lang-CqW-0H8X.js} +2 -2
- package/dist/{index.vue_vue_type_style_index_0_scoped_92477073_lang-TGvcTKst.cjs → index.vue_vue_type_style_index_0_scoped_92477073_lang-oXfc3hdG.cjs} +1 -1
- package/dist/{index.vue_vue_type_style_index_1_lang-BfqM0yXd.js → index.vue_vue_type_style_index_1_lang-C8g4AgUY.js} +1 -1
- package/dist/{index.vue_vue_type_style_index_1_lang-v7PqBRK1.cjs → index.vue_vue_type_style_index_1_lang-D2meTSOH.cjs} +1 -1
- package/dist/{main-IXvpvF2s.js → main-BBvXwMzi.js} +2 -2
- package/dist/{main-DHcbTBTz.cjs → main-jFoMsjK_.cjs} +1 -1
- package/dist/ss-component.cjs +1 -1
- package/dist/ss-component.css +1 -1
- package/dist/ss-component.js +6 -6
- package/dist/ss-component2.cjs +1 -1
- package/dist/ss-component2.js +10 -10
- package/dist/{threeModel-BPxq2m7t.cjs → threeModel-CSnXvZ94.cjs} +1 -1
- package/dist/{threeModel-CoXosFb7.js → threeModel-CdfvEjKV.js} +2 -2
- package/dist/{threeSceneView-B1GA1qKg.js → threeSceneView-AmMO5tkE.js} +2 -2
- package/dist/{threeSceneView-CXRpJ7eO.cjs → threeSceneView-CWPYN102.cjs} +1 -1
- package/dist/{threeSceneViewForCPMPIP-Crd1kNSF.js → threeSceneViewForCPMPIP-CXN75l03.js} +61 -61
- package/dist/threeSceneViewForCPMPIP-DHXHT5MM.cjs +1 -0
- package/dist/{threeTrackPathView-BQaL9BrB.cjs → threeTrackPathView-C5nEpc3L.cjs} +1 -1
- package/dist/{threeTrackPathView-BseOiC1G.js → threeTrackPathView-el7dDO8-.js} +1 -1
- package/dist/{threeViewerHost-DBute_QP.cjs → threeViewerHost-C0peX0tH.cjs} +1 -1
- package/dist/{threeViewerHost-CGRUSgAm.js → threeViewerHost-DFr6IPZq.js} +1 -1
- package/dist/{workpieceTreePanel-C5KOCwQM.cjs → workpieceTreePanel-Bbo1zDTZ.cjs} +1 -1
- package/dist/{workpieceTreePanel-Bbq7yU0e.js → workpieceTreePanel-BiyrnaZH.js} +2 -2
- package/package.json +1 -1
- package/dist/threeSceneViewForCPMPIP-DN29gK4N.cjs +0 -1
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { defineComponent as Pe, computed as
|
|
1
|
+
import { defineComponent as Pe, computed as z, ref as m, resolveComponent as W, createElementBlock as K, openBlock as O, createElementVNode as a, createVNode as c, withCtx as q, toDisplayString as V, watch as H, inject as he, shallowRef as se, onMounted as ot, nextTick as _e, onBeforeUnmount as lt, withDirectives as A, createCommentVNode as I, vShow as J, unref as v, renderSlot as ie, createBlock as we, isRef as re, vModelRadio as ue } from "vue";
|
|
2
2
|
import { aw as st } from "./index.vue_vue_type_style_index_1_lang-DCNwSjkL.js";
|
|
3
|
-
import { s as xe, u as it, a as rt, U as ut, W as ct } from "./workpieceTreePanel-
|
|
3
|
+
import { s as xe, u as it, a as rt, U as ut, W as ct } from "./workpieceTreePanel-BiyrnaZH.js";
|
|
4
4
|
import { u as dt, a as vt, b as mt } from "./iconfont-Bc_1QADn.js";
|
|
5
5
|
import { E as Q } from "./index-BUYYl2Pc.js";
|
|
6
|
-
import { w as pt, aF as ft, a5 as bt, ag as gt, ao as
|
|
7
|
-
import { U as
|
|
8
|
-
import { b as kt, c as Pt } from "./threeViewerHost-
|
|
9
|
-
import { _ as
|
|
6
|
+
import { w as pt, aF as ft, a5 as bt, ag as gt, ao as Ae, k as yt, y as ht, ah as Ce, V as _t, s as ke } from "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-D9pbpHt3.js";
|
|
7
|
+
import { U as wt, J as xt, d as Ct } from "./urdfTree-B5ODHHDI.js";
|
|
8
|
+
import { b as kt, c as Pt } from "./threeViewerHost-DFr6IPZq.js";
|
|
9
|
+
import { _ as ze } from "./_plugin-vue_export-helper-CHgC5LLL.js";
|
|
10
10
|
import { T as y } from "./svgIcon-D-_fXUBL.js";
|
|
11
|
-
import { O as
|
|
12
|
-
import { L as
|
|
13
|
-
const Ut = async (p) => await new
|
|
11
|
+
import { O as At } from "./MTLLoader-o-YPPeZl.js";
|
|
12
|
+
import { L as zt, j as Tt } from "./index-DAl6CucA.js";
|
|
13
|
+
const Ut = async (p) => await new At().loadAsync(p);
|
|
14
14
|
function Mt(p) {
|
|
15
15
|
if (p.length % 3 !== 0)
|
|
16
16
|
return console.error("points array length is not a multiple of 3:", p), null;
|
|
@@ -25,14 +25,14 @@ function Mt(p) {
|
|
|
25
25
|
size: 0.4,
|
|
26
26
|
// 像素世界单位
|
|
27
27
|
sizeAttenuation: !1
|
|
28
|
-
}), u = new
|
|
28
|
+
}), u = new Ae(h, i);
|
|
29
29
|
return i.needsUpdate = !0, u;
|
|
30
30
|
}
|
|
31
31
|
const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (p) => {
|
|
32
32
|
const h = await Vt(p);
|
|
33
33
|
return (await Nt(h)).map((u) => {
|
|
34
34
|
const r = { x: 0, y: 0, z: 0, b: 0, c: 0, x_axis: 0, y_axis: 0, z_axis: 0 };
|
|
35
|
-
return r.x_axis = u.
|
|
35
|
+
return r.x_axis = u.X_Axis, r.y_axis = u.Y_Axis, r.z_axis = u.Z_Axis, r.b = u.B_Axis, r.c = u.C_Axis, r.x = u.X, r.y = u.Y, r.z = u.Z, r;
|
|
36
36
|
});
|
|
37
37
|
}, Lt = { class: "panel-content" }, $t = { class: "animation-controls" }, jt = { class: "control-row" }, Dt = { class: "control-row" }, Ft = { class: "frame-info" }, Ot = { class: "control-row" }, St = /* @__PURE__ */ Pe({
|
|
38
38
|
__name: "bladeTrackPanel",
|
|
@@ -43,7 +43,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
43
43
|
},
|
|
44
44
|
emits: ["getThreeData"],
|
|
45
45
|
setup(p, { expose: h, emit: T }) {
|
|
46
|
-
const i = p, u =
|
|
46
|
+
const i = p, u = z(() => i.xyzbcList), r = m(!1), d = m(0), k = m(100);
|
|
47
47
|
let S = !1;
|
|
48
48
|
const ce = {
|
|
49
49
|
bladeAxis: "叶片模型位置"
|
|
@@ -58,13 +58,13 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
58
58
|
if (o < 0 || o >= u.value.length)
|
|
59
59
|
return null;
|
|
60
60
|
const l = u.value[o], n = R(ce.bladeAxis);
|
|
61
|
-
return n ? new
|
|
61
|
+
return n ? new _t(l.x, l.y, l.z).applyMatrix4(n) : null;
|
|
62
62
|
}, de = (o, l) => {
|
|
63
63
|
o && o.setJointValues(l);
|
|
64
|
-
}, ve = (o, l, n, g,
|
|
64
|
+
}, ve = (o, l, n, g, _) => {
|
|
65
65
|
const $ = {
|
|
66
66
|
B_Axis: ke.degToRad(g),
|
|
67
|
-
C_Axis: ke.degToRad(
|
|
67
|
+
C_Axis: ke.degToRad(_),
|
|
68
68
|
X_Axis: o,
|
|
69
69
|
Y_Axis: l,
|
|
70
70
|
Z_Axis: n
|
|
@@ -77,12 +77,12 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
77
77
|
o.traverse((n) => {
|
|
78
78
|
(n.name === "TrajectoryPoints" || n.name === "TrajectoryLine") && l.push(n);
|
|
79
79
|
}), l.forEach((n) => {
|
|
80
|
-
o.remove(n), (n instanceof yt || n instanceof
|
|
80
|
+
o.remove(n), (n instanceof yt || n instanceof Ae || n instanceof ht) && (n.geometry && n.geometry.dispose(), n.material && (Array.isArray(n.material) ? n.material.forEach((g) => {
|
|
81
81
|
g instanceof Ce && g.dispose();
|
|
82
82
|
}) : n.material instanceof Ce && n.material.dispose()));
|
|
83
83
|
});
|
|
84
84
|
}, E = (o) => {
|
|
85
|
-
var g,
|
|
85
|
+
var g, _, $;
|
|
86
86
|
Z();
|
|
87
87
|
const l = [];
|
|
88
88
|
for (let M = 0; M <= o; M++) {
|
|
@@ -91,7 +91,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
91
91
|
}
|
|
92
92
|
P.value && ((g = i.scene) == null || g.remove(P.value));
|
|
93
93
|
const n = Mt(l);
|
|
94
|
-
n && (n.name = "TrajectoryPoints", P.value = n, ($ = (
|
|
94
|
+
n && (n.name = "TrajectoryPoints", P.value = n, ($ = (_ = i.scene) == null ? void 0 : _.add) == null || $.call(_, n));
|
|
95
95
|
}, Y = (o) => `第 ${o + 1} 帧`, X = (o) => {
|
|
96
96
|
if (o < 0 || o >= u.value.length) {
|
|
97
97
|
console.error(`帧索引 ${o} 超出范围`);
|
|
@@ -136,11 +136,11 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
136
136
|
return h({ playAnimation: D, stopAnimation: N, forwardFrame: B, backwardFrame: C, resetAnimationFrame: L, reset: async () => {
|
|
137
137
|
await N(), Z(), L();
|
|
138
138
|
} }), (o, l) => {
|
|
139
|
-
const n = W("el-input-number"), g = W("el-form-item"),
|
|
139
|
+
const n = W("el-input-number"), g = W("el-form-item"), _ = W("el-form"), $ = W("el-slider");
|
|
140
140
|
return O(), K("div", Lt, [
|
|
141
141
|
a("div", $t, [
|
|
142
142
|
a("div", jt, [
|
|
143
|
-
c(
|
|
143
|
+
c(_, {
|
|
144
144
|
"label-width": "auto",
|
|
145
145
|
style: { width: "100%" }
|
|
146
146
|
}, {
|
|
@@ -187,7 +187,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
187
187
|
]);
|
|
188
188
|
};
|
|
189
189
|
}
|
|
190
|
-
}), Rt = /* @__PURE__ */
|
|
190
|
+
}), Rt = /* @__PURE__ */ ze(St, [["__scopeId", "data-v-286bad75"]]), Et = async (p) => await Ut(p), Xt = { class: "obj-viewer-container" }, Jt = { class: "buttonGroup-topLeft" }, Wt = { class: "buttonGroup-left" }, Zt = { class: "buttonGroup-right" }, Yt = { class: "buttonGroup-bottom" }, Gt = { class: "top-panel" }, It = { class: "panel-header" }, Kt = { class: "panel-body" }, Ht = { class: "left-panel" }, qt = { class: "panel-header" }, Qt = { class: "panel-body" }, ea = {
|
|
191
191
|
key: 1,
|
|
192
192
|
class: "clipping-content"
|
|
193
193
|
}, ta = { class: "radio-group" }, aa = { class: "radio-label" }, na = { class: "radio-label" }, oa = { class: "radio-label" }, la = { class: "radio-label" }, sa = { class: "right-panel" }, ia = { class: "panel-header" }, ra = { class: "panel-body" }, ua = {
|
|
@@ -204,27 +204,27 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
204
204
|
},
|
|
205
205
|
emits: ["getAnimationData", "getThreeData"],
|
|
206
206
|
setup(p, { emit: h }) {
|
|
207
|
-
const T = h, i = p, u = he("setManagementPageTitle"), r = he("setManagementPageVisible"), d =
|
|
207
|
+
const T = h, i = p, u = he("setManagementPageTitle"), r = he("setManagementPageVisible"), d = z(() => {
|
|
208
208
|
var e, s;
|
|
209
209
|
return (s = (e = i == null ? void 0 : i.threeData) == null ? void 0 : e.data) == null ? void 0 : s.machine;
|
|
210
|
-
}), k =
|
|
210
|
+
}), k = z(() => {
|
|
211
211
|
var e;
|
|
212
212
|
return (e = d == null ? void 0 : d.value) == null ? void 0 : e.产品型号;
|
|
213
|
-
}), S =
|
|
213
|
+
}), S = z(() => {
|
|
214
214
|
var e;
|
|
215
215
|
return (e = d == null ? void 0 : d.value) == null ? void 0 : e.编号;
|
|
216
|
-
}), ce =
|
|
216
|
+
}), ce = z(() => {
|
|
217
217
|
var e;
|
|
218
218
|
return (e = d == null ? void 0 : d.value) == null ? void 0 : e.厂家;
|
|
219
|
-
}), P =
|
|
219
|
+
}), P = z(() => {
|
|
220
220
|
var e, s;
|
|
221
221
|
return (s = (e = i == null ? void 0 : i.threeData) == null ? void 0 : e.data) == null ? void 0 : s.workpieceInfo;
|
|
222
|
-
}), R =
|
|
222
|
+
}), R = z(() => {
|
|
223
223
|
var e, s;
|
|
224
224
|
return (s = (e = i == null ? void 0 : i.threeData) == null ? void 0 : e.data) == null ? void 0 : s.knife;
|
|
225
225
|
}), ee = m([]), de = async (t) => {
|
|
226
226
|
!t || !t.isExtra || (await ve(t), u == null || u(t == null ? void 0 : t.pageName), r == null || r(!0));
|
|
227
|
-
}, ve =
|
|
227
|
+
}, ve = zt(async (t) => {
|
|
228
228
|
await Tt();
|
|
229
229
|
const { mainKey: e, baseMenuPath: s } = t || {};
|
|
230
230
|
st(s, e);
|
|
@@ -232,7 +232,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
232
232
|
H(
|
|
233
233
|
() => [k.value, P.value, R.value],
|
|
234
234
|
() => {
|
|
235
|
-
var
|
|
235
|
+
var w, f, ge, ye;
|
|
236
236
|
const t = [], e = {
|
|
237
237
|
pageName: "机床",
|
|
238
238
|
name: "机床",
|
|
@@ -266,7 +266,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
266
266
|
};
|
|
267
267
|
P.value && s.children.push({
|
|
268
268
|
isExtra: !0,
|
|
269
|
-
type: (
|
|
269
|
+
type: (w = P.value) == null ? void 0 : w.type,
|
|
270
270
|
pageName: "工件",
|
|
271
271
|
mainKey: (f = P.value) == null ? void 0 : f.name,
|
|
272
272
|
label: (ge = P.value) == null ? void 0 : ge.name,
|
|
@@ -295,7 +295,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
295
295
|
immediate: !0
|
|
296
296
|
}
|
|
297
297
|
);
|
|
298
|
-
const Z = m([]), E =
|
|
298
|
+
const Z = m([]), E = z(() => {
|
|
299
299
|
var e, s;
|
|
300
300
|
return (s = (e = i == null ? void 0 : i.threeData) == null ? void 0 : e.data) == null ? void 0 : s.csvUrl;
|
|
301
301
|
});
|
|
@@ -307,10 +307,10 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
307
307
|
}, {
|
|
308
308
|
immediate: !0
|
|
309
309
|
});
|
|
310
|
-
const Y =
|
|
310
|
+
const Y = z(() => {
|
|
311
311
|
var e, s;
|
|
312
312
|
return (s = (e = i == null ? void 0 : i.threeData) == null ? void 0 : e.data) == null ? void 0 : s.bladeObjUrl;
|
|
313
|
-
}), X = m(xe.ROBOT), D = m(null), N = m(!1), te = m(""), B = m(!1), C = m(""), L = m(!1), U = m(""), o = m(!1), l = m(""), n = se(null), g = m(null),
|
|
313
|
+
}), X = m(xe.ROBOT), D = m(null), N = m(!1), te = m(""), B = m(!1), C = m(""), L = m(!1), U = m(""), o = m(!1), l = m(""), n = se(null), g = m(null), _ = m("叶片模型"), $ = se(null), M = se(null), F = se(null);
|
|
314
314
|
m();
|
|
315
315
|
const b = m(), {
|
|
316
316
|
currentModels: ae,
|
|
@@ -331,7 +331,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
331
331
|
te
|
|
332
332
|
), { isAnimating: be, toggleAnimation: De, stopAnimation: Fe } = vt(G, ae), { isClipping: Oe, activeClippingAxis: x, toggleClipping: Se, updateClippingPlanes: j } = mt(G, ae), { initRaycaster: Re, selectedObject3D: Ee, setSelectedObjVisible: Xe, updatePosition: Je, updateRotation: We, dispose: Ze } = it(D, G, ae), Ye = () => {
|
|
333
333
|
Be();
|
|
334
|
-
}, Ge =
|
|
334
|
+
}, Ge = z(() => X.value === xe.ROBOT), ne = (t) => {
|
|
335
335
|
B.value = !0, C.value = t, t === "剖面视图" && !Oe.value && Se();
|
|
336
336
|
}, me = (t) => {
|
|
337
337
|
L.value = !0, U.value = t, t === "动画仿真" && T("getAnimationData");
|
|
@@ -353,12 +353,12 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
353
353
|
}, Qe = () => {
|
|
354
354
|
pe(), Te(), g.value && g.value.resetToZero();
|
|
355
355
|
}, et = (t, e) => Ct(t, e), tt = async (t) => {
|
|
356
|
-
const e = et(t,
|
|
356
|
+
const e = et(t, _.value);
|
|
357
357
|
if (M.value = e, console.log("bladeObjUrl", Y.value), e && e.parent && Y.value) {
|
|
358
358
|
const s = await Et(Y.value);
|
|
359
359
|
s.name = "blade_clone", e.parent.add(s), s.position.copy(e.position), s.rotation.copy(e.rotation), s.scale.copy(e.scale), e.visible = !1, $.value = s;
|
|
360
360
|
} else
|
|
361
|
-
|
|
361
|
+
_.value && console.warn(`在 Blade '${_.value}' 中未找到可替换的网格或其没有父级。`);
|
|
362
362
|
};
|
|
363
363
|
H(() => i.fileBlobs, (t) => {
|
|
364
364
|
if (t && t.length > 0) {
|
|
@@ -380,7 +380,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
380
380
|
});
|
|
381
381
|
let oe = null;
|
|
382
382
|
const at = () => {
|
|
383
|
-
Ue(),
|
|
383
|
+
Ue(), _e(() => {
|
|
384
384
|
D.value && (oe = new ResizeObserver(Me), oe.observe(D.value));
|
|
385
385
|
});
|
|
386
386
|
const t = G();
|
|
@@ -389,7 +389,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
389
389
|
C.value = "", U.value = "", oe && oe.disconnect(), be.value && Fe(), pe(), Ve(), Ze();
|
|
390
390
|
};
|
|
391
391
|
return ot(async () => {
|
|
392
|
-
await
|
|
392
|
+
await _e();
|
|
393
393
|
try {
|
|
394
394
|
at();
|
|
395
395
|
} catch (t) {
|
|
@@ -400,7 +400,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
400
400
|
}), (t, e) => {
|
|
401
401
|
const s = W("el-scrollbar"), le = W("PipeAnalysisPanel");
|
|
402
402
|
return O(), K("div", Xt, [
|
|
403
|
-
|
|
403
|
+
A(a("div", {
|
|
404
404
|
ref_key: "threejsContainer",
|
|
405
405
|
ref: D,
|
|
406
406
|
class: "threejs-container"
|
|
@@ -445,21 +445,21 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
445
445
|
c(y, {
|
|
446
446
|
name: "jiegoushu",
|
|
447
447
|
size: "24",
|
|
448
|
-
onClick: e[0] || (e[0] = (
|
|
448
|
+
onClick: e[0] || (e[0] = (w) => ne("场景树")),
|
|
449
449
|
active: B.value && C.value === "场景树",
|
|
450
450
|
title: "场景树"
|
|
451
451
|
}, null, 8, ["active"]),
|
|
452
452
|
c(y, {
|
|
453
453
|
name: "clipping",
|
|
454
454
|
size: "24",
|
|
455
|
-
onClick: e[1] || (e[1] = (
|
|
455
|
+
onClick: e[1] || (e[1] = (w) => ne("剖面视图")),
|
|
456
456
|
active: B.value && C.value === "剖面视图",
|
|
457
457
|
title: "剖面视图"
|
|
458
458
|
}, null, 8, ["active"]),
|
|
459
459
|
c(y, {
|
|
460
460
|
name: "donghuafangzhen",
|
|
461
461
|
size: "24",
|
|
462
|
-
onClick: e[2] || (e[2] = (
|
|
462
|
+
onClick: e[2] || (e[2] = (w) => ne("工件树")),
|
|
463
463
|
active: B.value && C.value === "工件树"
|
|
464
464
|
}, null, 8, ["active"])
|
|
465
465
|
]),
|
|
@@ -468,7 +468,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
468
468
|
c(y, {
|
|
469
469
|
name: "jichuangxuanze",
|
|
470
470
|
size: "24",
|
|
471
|
-
onClick: e[3] || (e[3] = (
|
|
471
|
+
onClick: e[3] || (e[3] = (w) => me("机床控制")),
|
|
472
472
|
active: L.value && U.value === "机床控制",
|
|
473
473
|
title: "机床控制"
|
|
474
474
|
}, null, 8, ["active"]),
|
|
@@ -476,7 +476,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
476
476
|
name: "donghuafangzhen",
|
|
477
477
|
size: "24",
|
|
478
478
|
title: "动画仿真",
|
|
479
|
-
onClick: e[4] || (e[4] = (
|
|
479
|
+
onClick: e[4] || (e[4] = (w) => me("轨迹路径")),
|
|
480
480
|
active: L.value && U.value === "轨迹路径"
|
|
481
481
|
}, null, 8, ["active"])
|
|
482
482
|
]),
|
|
@@ -510,12 +510,12 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
510
510
|
onClick: Ke
|
|
511
511
|
})
|
|
512
512
|
]),
|
|
513
|
-
|
|
513
|
+
A(a("div", Gt, [
|
|
514
514
|
a("div", It, [
|
|
515
515
|
a("span", null, V(l.value), 1),
|
|
516
516
|
a("span", {
|
|
517
517
|
class: "close",
|
|
518
|
-
onClick: e[5] || (e[5] = (
|
|
518
|
+
onClick: e[5] || (e[5] = (w) => o.value = !1)
|
|
519
519
|
}, " X ")
|
|
520
520
|
]),
|
|
521
521
|
a("div", Kt, [
|
|
@@ -529,20 +529,20 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
529
529
|
], 512), [
|
|
530
530
|
[J, o.value]
|
|
531
531
|
]),
|
|
532
|
-
|
|
532
|
+
A(a("div", Ht, [
|
|
533
533
|
a("div", qt, [
|
|
534
534
|
a("span", null, V(C.value), 1),
|
|
535
535
|
a("span", {
|
|
536
536
|
class: "close",
|
|
537
|
-
onClick: e[6] || (e[6] = (
|
|
537
|
+
onClick: e[6] || (e[6] = (w) => B.value = !1)
|
|
538
538
|
}, " X ")
|
|
539
539
|
]),
|
|
540
540
|
a("div", Qt, [
|
|
541
541
|
c(s, { height: "100%" }, {
|
|
542
542
|
default: q(() => {
|
|
543
|
-
var
|
|
543
|
+
var w;
|
|
544
544
|
return [
|
|
545
|
-
C.value === "场景树" ? (O(),
|
|
545
|
+
C.value === "场景树" ? (O(), we(wt, {
|
|
546
546
|
key: 0,
|
|
547
547
|
model: n.value,
|
|
548
548
|
extraNodes: ee.value,
|
|
@@ -551,7 +551,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
551
551
|
C.value === "剖面视图" ? (O(), K("div", ea, [
|
|
552
552
|
a("div", ta, [
|
|
553
553
|
a("label", aa, [
|
|
554
|
-
|
|
554
|
+
A(a("input", {
|
|
555
555
|
type: "radio",
|
|
556
556
|
name: "clipping-axis",
|
|
557
557
|
value: "none",
|
|
@@ -564,7 +564,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
564
564
|
e[16] || (e[16] = a("span", { class: "radio-text" }, "无切割", -1))
|
|
565
565
|
]),
|
|
566
566
|
a("label", na, [
|
|
567
|
-
|
|
567
|
+
A(a("input", {
|
|
568
568
|
type: "radio",
|
|
569
569
|
name: "clipping-axis",
|
|
570
570
|
value: "x",
|
|
@@ -577,7 +577,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
577
577
|
e[17] || (e[17] = a("span", { class: "radio-text" }, "X轴切割", -1))
|
|
578
578
|
]),
|
|
579
579
|
a("label", oa, [
|
|
580
|
-
|
|
580
|
+
A(a("input", {
|
|
581
581
|
type: "radio",
|
|
582
582
|
name: "clipping-axis",
|
|
583
583
|
value: "y",
|
|
@@ -590,7 +590,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
590
590
|
e[18] || (e[18] = a("span", { class: "radio-text" }, "Y轴切割", -1))
|
|
591
591
|
]),
|
|
592
592
|
a("label", la, [
|
|
593
|
-
|
|
593
|
+
A(a("input", {
|
|
594
594
|
type: "radio",
|
|
595
595
|
name: "clipping-axis",
|
|
596
596
|
value: "z",
|
|
@@ -604,9 +604,9 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
604
604
|
])
|
|
605
605
|
])
|
|
606
606
|
])) : I("", !0),
|
|
607
|
-
C.value === "工件树" ? (O(),
|
|
607
|
+
C.value === "工件树" ? (O(), we(ct, {
|
|
608
608
|
key: 2,
|
|
609
|
-
model: (
|
|
609
|
+
model: (w = v(Ee)) == null ? void 0 : w.obj,
|
|
610
610
|
onVisibleChange: v(Xe),
|
|
611
611
|
onUpdatePosition: v(Je),
|
|
612
612
|
onUpdateRotation: v(We)
|
|
@@ -619,21 +619,21 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
619
619
|
], 512), [
|
|
620
620
|
[J, B.value]
|
|
621
621
|
]),
|
|
622
|
-
|
|
622
|
+
A(a("div", sa, [
|
|
623
623
|
a("div", ia, [
|
|
624
624
|
a("span", null, V(U.value), 1),
|
|
625
625
|
a("span", {
|
|
626
626
|
class: "close",
|
|
627
|
-
onClick: e[15] || (e[15] = (
|
|
627
|
+
onClick: e[15] || (e[15] = (w) => L.value = !1)
|
|
628
628
|
}, " X ")
|
|
629
629
|
]),
|
|
630
630
|
a("div", ra, [
|
|
631
631
|
c(s, { height: "100%" }, {
|
|
632
632
|
default: q(() => [
|
|
633
|
-
|
|
633
|
+
A(c(xt, { model: n.value }, null, 8, ["model"]), [
|
|
634
634
|
[J, U.value === "机床控制"]
|
|
635
635
|
]),
|
|
636
|
-
|
|
636
|
+
A(c(Rt, {
|
|
637
637
|
robot: n.value,
|
|
638
638
|
scene: F.value,
|
|
639
639
|
xyzbcList: Z.value,
|
|
@@ -672,7 +672,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
|
|
|
672
672
|
]);
|
|
673
673
|
};
|
|
674
674
|
}
|
|
675
|
-
}), Ma = /* @__PURE__ */
|
|
675
|
+
}), Ma = /* @__PURE__ */ ze(ga, [["__scopeId", "data-v-dd2f53e0"]]);
|
|
676
676
|
export {
|
|
677
677
|
Ma as default
|
|
678
678
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),Re=require("./index.vue_vue_type_style_index_1_lang-_MRLV2pU.cjs"),j=require("./workpieceTreePanel-Bbo1zDTZ.cjs"),ee=require("./iconfont-n9ziSjXJ.cjs"),I=require("./index-C8qRkCgn.cjs"),b=require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-v_tZRKeY.cjs"),te=require("./urdfTree-Bou0Ub-r.cjs"),re=require("./threeViewerHost-C0peX0tH.cjs"),ie=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),p=require("./svgIcon-CUM54R6L.cjs"),$e=require("./MTLLoader-DqSL2MhN.cjs"),se=require("./index-DdfPRTL5.cjs"),Fe=async d=>await new $e.OBJLoader().loadAsync(d);function Ie(d){if(d.length%3!==0)return console.error("points array length is not a multiple of 3:",d),null;const g=new b.BufferGeometry;g.setAttribute("position",new b.Float32BufferAttribute(d,3));const x=new Float32Array(d.length);for(let i=0;i<d.length;i+=3)x[i]=0,x[i+1]=.847,x[i+2]=1;g.setAttribute("color",new b.BufferAttribute(x,3));const r=new b.PointsMaterial({vertexColors:!0,size:.4,sizeAttenuation:!1}),c=new b.Points(g,r);return r.needsUpdate=!0,c}const Oe=async d=>await re.downloadFile(d),qe=async d=>await re.readCsv(d),Xe=async d=>{const g=await Oe(d);return(await qe(g)).map(c=>{const i={x:0,y:0,z:0,b:0,c:0,x_axis:0,y_axis:0,z_axis:0};return i.x_axis=c.X_Axis,i.y_axis=c.Y_Axis,i.z_axis=c.Z_Axis,i.b=c.B_Axis,i.c=c.C_Axis,i.x=c.X,i.y=c.Y,i.z=c.Z,i})},Ze={class:"panel-content"},Je={class:"animation-controls"},We={class:"control-row"},Ye={class:"control-row"},Ge={class:"frame-info"},He={class:"control-row"},Ke=e.defineComponent({__name:"bladeTrackPanel",props:{scene:{},robot:{},xyzbcList:{}},emits:["getThreeData"],setup(d,{expose:g,emit:x}){const r=d,c=e.computed(()=>r.xyzbcList),i=e.ref(!1),u=e.ref(0),w=e.ref(100);let D=!1;const Y={bladeAxis:"叶片模型位置"},_=e.ref(null),B=a=>{if(!r.robot)return null;let l=null;return r.robot.traverse(n=>{n.name===a&&(l=n.matrixWorld.clone())}),l},O=a=>{if(a<0||a>=c.value.length)return null;const l=c.value[a],n=B(Y.bladeAxis);return n?new b.Vector3(l.x,l.y,l.z).applyMatrix4(n):null},G=(a,l)=>{a&&a.setJointValues(l)},H=(a,l,n,f,h)=>{const S={B_Axis:b.MathUtils.degToRad(f),C_Axis:b.MathUtils.degToRad(h),X_Axis:a,Y_Axis:l,Z_Axis:n};G(r.robot,S)},R=()=>{const a=r.scene;if(!a)return;const l=[];a.traverse(n=>{(n.name==="TrajectoryPoints"||n.name==="TrajectoryLine")&&l.push(n)}),l.forEach(n=>{a.remove(n),(n instanceof b.Mesh||n instanceof b.Points||n instanceof b.Line)&&(n.geometry&&n.geometry.dispose(),n.material&&(Array.isArray(n.material)?n.material.forEach(f=>{f instanceof b.Material&&f.dispose()}):n.material instanceof b.Material&&n.material.dispose()))})},U=a=>{var f,h,S;R();const l=[];for(let k=0;k<=a;k++){const z=O(k);z&&l.push(z.x,z.y,z.z)}_.value&&((f=r.scene)==null||f.remove(_.value));const n=Ie(l);n&&(n.name="TrajectoryPoints",_.value=n,(S=(h=r.scene)==null?void 0:h.add)==null||S.call(h,n))},$=a=>`第 ${a+1} 帧`,L=a=>{if(a<0||a>=c.value.length){console.error(`帧索引 ${a} 超出范围`);return}const l=c.value[a];u.value=a,H(l.x_axis,l.y_axis,l.z_axis,l.b,l.c);const n=r.scene;n&&n.updateMatrixWorld(!0),U(a)},M=async()=>{if(c.value.length===0){I.ElMessage.error("无法播放动画:无数据");return}if(!i.value){i.value=!0,D=!1,c.value.length-1===u.value&&(u.value=0);try{for(let a=u.value+1;a<c.value.length&&!D;a++)await new Promise(l=>setTimeout(l,w.value)),L(a);D||I.ElMessage.success("动画播放完成")}catch(a){console.error("动画播放出错:",a)}finally{i.value=!1}}},E=async()=>{i.value&&(D=!0,await new Promise(a=>{const l=e.watch(()=>i.value,n=>{l(),a()})}),I.ElMessage.info("动画已停止"))},q=async a=>{i.value&&await E(),L(a)},P=async()=>{i.value&&await E(),!(u.value+1>=c.value.length)&&L(u.value+1)},N=async()=>{i.value&&await E(),u.value!==0&&L(u.value-1)},T=()=>{u.value=0};return g({playAnimation:M,stopAnimation:E,forwardFrame:P,backwardFrame:N,resetAnimationFrame:T,reset:async()=>{await E(),R(),T()}}),(a,l)=>{const n=e.resolveComponent("el-input-number"),f=e.resolveComponent("el-form-item"),h=e.resolveComponent("el-form"),S=e.resolveComponent("el-slider");return e.openBlock(),e.createElementBlock("div",Ze,[e.createElementVNode("div",Je,[e.createElementVNode("div",We,[e.createVNode(h,{"label-width":"auto",style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(f,{label:"帧间隔 (ms):",prop:"frameDuration"},{default:e.withCtx(()=>[e.createVNode(n,{modelValue:w.value,"onUpdate:modelValue":l[0]||(l[0]=k=>w.value=k),min:0,max:5e3,step:10,style:{width:"100%"}},null,8,["modelValue"])]),_:1})]),_:1})]),e.createElementVNode("div",Ye,[l[2]||(l[2]=e.createElementVNode("label",null,"当前帧:",-1)),e.createElementVNode("span",Ge,e.toDisplayString(u.value+1)+" / "+e.toDisplayString(c.value.length),1)]),e.createElementVNode("div",He,[l[3]||(l[3]=e.createElementVNode("label",null,"动画进度:",-1)),e.createVNode(S,{modelValue:u.value,"onUpdate:modelValue":l[1]||(l[1]=k=>u.value=k),min:0,max:c.value.length>0?c.value.length-1:0,step:1,"format-tooltip":$,onInput:q,disabled:c.value.length===0,style:{"flex-grow":"1",margin:"0 10px"}},null,8,["modelValue","max","disabled"])])])])}}}),Qe=ie._export_sfc(Ke,[["__scopeId","data-v-286bad75"]]),et=async d=>await Fe(d),tt={class:"obj-viewer-container"},ot={class:"buttonGroup-topLeft"},nt={class:"buttonGroup-left"},at={class:"buttonGroup-right"},lt={class:"buttonGroup-bottom"},st={class:"top-panel"},rt={class:"panel-header"},it={class:"panel-body"},ct={class:"left-panel"},ut={class:"panel-header"},dt={class:"panel-body"},vt={key:1,class:"clipping-content"},mt={class:"radio-group"},ft={class:"radio-label"},pt={class:"radio-label"},gt={class:"radio-label"},ht={class:"radio-label"},yt={class:"right-panel"},bt={class:"panel-header"},Vt={class:"panel-body"},Nt={key:0,class:"loading-overlay"},wt={key:1,class:"brand"},_t={class:"brand-item"},xt={class:"item-value"},Ct={class:"brand-item"},kt={class:"item-value"},Et={class:"brand-item"},Pt={class:"item-value"},Tt=e.defineComponent({__name:"threeSceneViewForCPMPIP",props:{fileBlobs:{default:()=>[]},threeData:{}},emits:["getAnimationData","getThreeData"],setup(d,{emit:g}){const x=g,r=d,c=e.inject("setManagementPageTitle"),i=e.inject("setManagementPageVisible"),u=e.computed(()=>{var t,s;return(s=(t=r==null?void 0:r.threeData)==null?void 0:t.data)==null?void 0:s.machine}),w=e.computed(()=>{var t;return(t=u==null?void 0:u.value)==null?void 0:t.产品型号}),D=e.computed(()=>{var t;return(t=u==null?void 0:u.value)==null?void 0:t.编号}),Y=e.computed(()=>{var t;return(t=u==null?void 0:u.value)==null?void 0:t.厂家}),_=e.computed(()=>{var t,s;return(s=(t=r==null?void 0:r.threeData)==null?void 0:t.data)==null?void 0:s.workpieceInfo}),B=e.computed(()=>{var t,s;return(s=(t=r==null?void 0:r.threeData)==null?void 0:t.data)==null?void 0:s.knife}),O=e.ref([]),G=async o=>{!o||!o.isExtra||(await H(o),c==null||c(o==null?void 0:o.pageName),i==null||i(!0))},H=se.debounce(async o=>{await se.onPageBack();const{mainKey:t,baseMenuPath:s}=o||{};Re.copyAdd(s,t)},500);e.watch(()=>[w.value,_.value,B.value],()=>{var y,v,ae,le;const o=[],t={pageName:"机床",name:"机床",label:"机床",type:"机床",id:"机床",path:"机床",baseMenuPath:"设备库/机床",children:[],show:!0,isPenultimate:!1};w.value&&t.children.push({isExtra:!0,pageName:"机床",mainKey:w.value,label:w.value,baseMenuPath:"设备库/机床"});const s={pageName:"工件",name:"工件",label:"工件",type:"工件",id:"工件",path:"工件",baseMenuPath:"设备库/机床",children:[],show:!0,isPenultimate:!1};_.value&&s.children.push({isExtra:!0,type:(y=_.value)==null?void 0:y.type,pageName:"工件",mainKey:(v=_.value)==null?void 0:v.name,label:(ae=_.value)==null?void 0:ae.name,baseMenuPath:`工件库/${(le=_.value)==null?void 0:le.type}`});const W={pageName:"刀具",name:"刀具",label:"刀具",type:"刀具",id:"刀具",path:"刀具",children:[],show:!0,isPenultimate:!1};B.value&&W.children.push({isExtra:!0,pageName:"刀具",mainKey:B.value,label:B.value,baseMenuPath:"设备库/刀具"}),o.push(t,s,W),O.value=o},{immediate:!0});const R=e.ref([]),U=e.computed(()=>{var t,s;return(s=(t=r==null?void 0:r.threeData)==null?void 0:t.data)==null?void 0:s.csvUrl});e.watch(()=>U.value,async()=>{if(console.log("three data",r==null?void 0:r.threeData),console.log("csvUrl",U.value),U.value){const o=await Xe(U.value);R.value=o}},{immediate:!0});const $=e.computed(()=>{var t,s;return(s=(t=r==null?void 0:r.threeData)==null?void 0:t.data)==null?void 0:s.bladeObjUrl}),L=e.ref(j.sceneType.ROBOT),M=e.ref(null),E=e.ref(!1),q=e.ref(""),P=e.ref(!1),N=e.ref(""),T=e.ref(!1),C=e.ref(""),a=e.ref(!1),l=e.ref(""),n=e.shallowRef(null),f=e.ref(null),h=e.ref("叶片模型"),S=e.shallowRef(null),k=e.shallowRef(null),z=e.shallowRef(null);e.ref();const m=e.ref(),{currentModels:X,resetView:ce,initThreeJS:ue,handleResize:de,getThreeJSObjects:F,cleanup:ve,setModels:oe,axesHelperVisible:me,toggleAxesVisibility:fe,zoomIn:pe,zoomOut:ge}=ee.useThreeJS(M),{loadSceneFromFile:he}=j.useUrdfLoader(F,X,E,q),{isAnimating:ne,toggleAnimation:ye,stopAnimation:be}=ee.useAnimation(F,X),{isClipping:Ve,activeClippingAxis:V,toggleClipping:Ne,updateClippingPlanes:A}=ee.useClipping(F,X),{initRaycaster:we,selectedObject3D:_e,setSelectedObjVisible:xe,updatePosition:Ce,updateRotation:ke,dispose:Ee}=j.useRaycaster(M,F,X),Pe=()=>{fe()},Te=e.computed(()=>L.value===j.sceneType.ROBOT),Z=o=>{P.value=!0,N.value=o,o==="剖面视图"&&!Ve.value&&Ne()},K=o=>{T.value=!0,C.value=o,o==="动画仿真"&&x("getAnimationData")},Se=()=>{var o;(o=m==null?void 0:m.value)==null||o.playAnimation()},Ae=()=>{var o;(o=m==null?void 0:m.value)==null||o.stopAnimation()},Me=()=>{var o;(o=m==null?void 0:m.value)==null||o.forwardFrame()},ze=()=>{var o;(o=m==null?void 0:m.value)==null||o.backwardFrame()},Q=()=>{var o;(o=m==null?void 0:m.value)==null||o.reset()},De=()=>{Q(),ce(),f.value&&f.value.resetToZero()},Be=(o,t)=>te.getMeshFromLink(o,t),Ue=async o=>{const t=Be(o,h.value);if(k.value=t,console.log("bladeObjUrl",$.value),t&&t.parent&&$.value){const s=await et($.value);s.name="blade_clone",t.parent.add(s),s.position.copy(t.position),s.rotation.copy(t.rotation),s.scale.copy(t.scale),t.visible=!1,S.value=s}else h.value&&console.warn(`在 Blade '${h.value}' 中未找到可替换的网格或其没有父级。`)};e.watch(()=>r.fileBlobs,o=>{if(o&&o.length>0){const t=o[0];if(!t.name.toLowerCase().endsWith(".urdf"))return;he(t).then(s=>{n.value=s,s&&(f.value=new j.URDFRobotController(s),Ue(s))}).catch(s=>{console.error("加载URDF文件时发生错误:",s),I.ElMessage.error("加载urdf模型失败"),n.value=null})}else n.value=null},{immediate:!0,deep:!0}),e.watch(n,o=>{Q(),oe(o?[o]:[]),we()});let J=null;const Le=()=>{ue(),e.nextTick(()=>{M.value&&(J=new ResizeObserver(de),J.observe(M.value))});const o=F();z.value=o.scene},je=()=>{N.value="",C.value="",J&&J.disconnect(),ne.value&&be(),Q(),ve(),Ee()};return e.onMounted(async()=>{await e.nextTick();try{Le()}catch(o){console.error("Three.js 初始化失败:",o),I.ElMessage.error("渲染引擎初始化失败!")}}),e.onBeforeUnmount(()=>{je()}),(o,t)=>{const s=e.resolveComponent("el-scrollbar"),W=e.resolveComponent("PipeAnalysisPanel");return e.openBlock(),e.createElementBlock("div",tt,[e.withDirectives(e.createElementVNode("div",{ref_key:"threejsContainer",ref:M,class:"threejs-container"},null,512),[[e.vShow,Te.value]]),e.createElementVNode("div",ot,[e.createVNode(p.ThreeSvgIcon,{name:"viewReset",size:"24",onClick:De,title:"重置"}),e.createVNode(p.ThreeSvgIcon,{name:"fangda",size:"24",title:"放大",onClick:e.unref(pe)},null,8,["onClick"]),e.createVNode(p.ThreeSvgIcon,{name:"suoxiao",size:"24",title:"缩小",onClick:e.unref(ge)},null,8,["onClick"]),e.createVNode(p.ThreeSvgIcon,{name:"lookAround",size:"24",onClick:e.unref(ye),title:e.unref(ne)?"停止动画":"动画视图"},null,8,["onClick","title"]),e.createVNode(p.ThreeSvgIcon,{name:"zuobiaoxi",size:"24",active:e.unref(me),onClick:Pe,title:"显隐坐标轴"},null,8,["active"])]),e.createElementVNode("div",nt,[e.renderSlot(o.$slots,"button-left",{switchRightPanel:Z},void 0,!0),e.createVNode(p.ThreeSvgIcon,{name:"jiegoushu",size:"24",onClick:t[0]||(t[0]=y=>Z("场景树")),active:P.value&&N.value==="场景树",title:"场景树"},null,8,["active"]),e.createVNode(p.ThreeSvgIcon,{name:"clipping",size:"24",onClick:t[1]||(t[1]=y=>Z("剖面视图")),active:P.value&&N.value==="剖面视图",title:"剖面视图"},null,8,["active"]),e.createVNode(p.ThreeSvgIcon,{name:"donghuafangzhen",size:"24",onClick:t[2]||(t[2]=y=>Z("工件树")),active:P.value&&N.value==="工件树"},null,8,["active"])]),e.createElementVNode("div",at,[e.renderSlot(o.$slots,"button-right",{switchRightPanel:K},void 0,!0),e.createVNode(p.ThreeSvgIcon,{name:"jichuangxuanze",size:"24",onClick:t[3]||(t[3]=y=>K("机床控制")),active:T.value&&C.value==="机床控制",title:"机床控制"},null,8,["active"]),e.createVNode(p.ThreeSvgIcon,{name:"donghuafangzhen",size:"24",title:"动画仿真",onClick:t[4]||(t[4]=y=>K("轨迹路径")),active:T.value&&C.value==="轨迹路径"},null,8,["active"])]),e.createElementVNode("div",lt,[e.createVNode(p.ThreeSvgIcon,{name:"kuaitui",size:"24",backgroundColor:"#ffffff",title:"快退",onClick:ze}),e.createVNode(p.ThreeSvgIcon,{name:"bofang",size:"24",backgroundColor:"#ffffff",title:"播放",onClick:Se}),e.createVNode(p.ThreeSvgIcon,{name:"kuaijin",size:"24",backgroundColor:"#ffffff",title:"快进",onClick:Me}),e.createVNode(p.ThreeSvgIcon,{name:"zanting",size:"24",backgroundColor:"#ffffff",title:"暂停",onClick:Ae})]),e.withDirectives(e.createElementVNode("div",st,[e.createElementVNode("div",rt,[e.createElementVNode("span",null,e.toDisplayString(l.value),1),e.createElementVNode("span",{class:"close",onClick:t[5]||(t[5]=y=>a.value=!1)}," X ")]),e.createElementVNode("div",it,[e.createVNode(s,{height:"100%"},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"top-panel",{topPanelType:l.value},void 0,!0)]),_:3})])],512),[[e.vShow,a.value]]),e.withDirectives(e.createElementVNode("div",ct,[e.createElementVNode("div",ut,[e.createElementVNode("span",null,e.toDisplayString(N.value),1),e.createElementVNode("span",{class:"close",onClick:t[6]||(t[6]=y=>P.value=!1)}," X ")]),e.createElementVNode("div",dt,[e.createVNode(s,{height:"100%"},{default:e.withCtx(()=>{var y;return[N.value==="场景树"?(e.openBlock(),e.createBlock(te.UrdfTree,{key:0,model:n.value,extraNodes:O.value,onNodeClick:G},null,8,["model","extraNodes"])):e.createCommentVNode("",!0),N.value==="剖面视图"?(e.openBlock(),e.createElementBlock("div",vt,[e.createElementVNode("div",mt,[e.createElementVNode("label",ft,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"none","onUpdate:modelValue":t[7]||(t[7]=v=>e.isRef(V)?V.value=v:null),onChange:t[8]||(t[8]=(...v)=>e.unref(A)&&e.unref(A)(...v))},null,544),[[e.vModelRadio,e.unref(V)]]),t[16]||(t[16]=e.createElementVNode("span",{class:"radio-text"},"无切割",-1))]),e.createElementVNode("label",pt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"x","onUpdate:modelValue":t[9]||(t[9]=v=>e.isRef(V)?V.value=v:null),onChange:t[10]||(t[10]=(...v)=>e.unref(A)&&e.unref(A)(...v))},null,544),[[e.vModelRadio,e.unref(V)]]),t[17]||(t[17]=e.createElementVNode("span",{class:"radio-text"},"X轴切割",-1))]),e.createElementVNode("label",gt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"y","onUpdate:modelValue":t[11]||(t[11]=v=>e.isRef(V)?V.value=v:null),onChange:t[12]||(t[12]=(...v)=>e.unref(A)&&e.unref(A)(...v))},null,544),[[e.vModelRadio,e.unref(V)]]),t[18]||(t[18]=e.createElementVNode("span",{class:"radio-text"},"Y轴切割",-1))]),e.createElementVNode("label",ht,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"z","onUpdate:modelValue":t[13]||(t[13]=v=>e.isRef(V)?V.value=v:null),onChange:t[14]||(t[14]=(...v)=>e.unref(A)&&e.unref(A)(...v))},null,544),[[e.vModelRadio,e.unref(V)]]),t[19]||(t[19]=e.createElementVNode("span",{class:"radio-text"},"Z轴切割",-1))])])])):e.createCommentVNode("",!0),N.value==="工件树"?(e.openBlock(),e.createBlock(j.WorkpieceTreePanel,{key:2,model:(y=e.unref(_e))==null?void 0:y.obj,onVisibleChange:e.unref(xe),onUpdatePosition:e.unref(Ce),onUpdateRotation:e.unref(ke)},null,8,["model","onVisibleChange","onUpdatePosition","onUpdateRotation"])):e.createCommentVNode("",!0)]}),_:1})])],512),[[e.vShow,P.value]]),e.withDirectives(e.createElementVNode("div",yt,[e.createElementVNode("div",bt,[e.createElementVNode("span",null,e.toDisplayString(C.value),1),e.createElementVNode("span",{class:"close",onClick:t[15]||(t[15]=y=>T.value=!1)}," X ")]),e.createElementVNode("div",Vt,[e.createVNode(s,{height:"100%"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(te.JointPanel,{model:n.value},null,8,["model"]),[[e.vShow,C.value==="机床控制"]]),e.withDirectives(e.createVNode(Qe,{robot:n.value,scene:z.value,xyzbcList:R.value,ref_key:"bladeTrackPanelRef",ref:m},null,8,["robot","scene","xyzbcList"]),[[e.vShow,C.value==="轨迹路径"]]),e.renderSlot(o.$slots,"right-panel",{rightPanelType:C.value},void 0,!0)]),_:3})])],512),[[e.vShow,T.value]]),E.value?(e.openBlock(),e.createElementBlock("div",Nt,[t[20]||(t[20]=e.createElementVNode("div",{class:"loading-spinner"},null,-1)),e.createElementVNode("p",null,e.toDisplayString(q.value),1)])):e.createCommentVNode("",!0),w.value?(e.openBlock(),e.createElementBlock("div",wt,[e.createElementVNode("div",_t,[t[21]||(t[21]=e.createElementVNode("div",{class:"item-label"},"厂家:",-1)),e.createElementVNode("div",xt,e.toDisplayString(Y.value),1)]),e.createElementVNode("div",Ct,[t[22]||(t[22]=e.createElementVNode("div",{class:"item-label"},"型号:",-1)),e.createElementVNode("div",kt,e.toDisplayString(w.value),1)]),e.createElementVNode("div",Et,[t[23]||(t[23]=e.createElementVNode("div",{class:"item-label"},"编号:",-1)),e.createElementVNode("div",Pt,e.toDisplayString(D.value),1)])])):e.createCommentVNode("",!0),e.createVNode(W,{ref:"pipeAnalysisPanelRef"},null,512)])}}}),St=ie._export_sfc(Tt,[["__scopeId","data-v-dd2f53e0"]]);exports.default=St;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),P=require("./iconfont-n9ziSjXJ.cjs"),h=require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-v_tZRKeY.cjs"),ge=require("./threeViewerHost-DBute_QP.cjs"),B=require("./index-C8qRkCgn.cjs"),S=require("./urdfTree-Bou0Ub-r.cjs"),W=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),V=require("./svgIcon-CUM54R6L.cjs"),he=require("./isString--eJE54G5.cjs");function ye(t=.5,n=4){const r=new h.Mesh(new h.ConeGeometry(t,n,32),new h.MeshStandardMaterial({color:"#919191ff",metalness:.3,roughness:.6})),l=r.geometry.parameters.height;return r.geometry.translate(0,-l/2,0),r.rotation.set(-90,0,0,"XYZ"),r}function we(t,n){t.position.copy(n)}function Ce(t,n,r=new h.Color(16711680)){const l=new h.Vector3;n.getWorldPosition(l);const c=t.geometry.attributes.position,o=t.geometry.attributes.color,s=new h.Color(55551);let i=1/0,f=-1;for(let d=0;d<c.count;d++){const v=new h.Vector3().fromBufferAttribute(c,d).distanceTo(l);v<i&&(i=v,f=d)}for(let d=0;d<o.count;d++)s.toArray(o.array,d*3);if(f!==-1){const d=r.toArray(),m=f*3+2;for(let v=0;v<m;v=v+3)o.array[v]=d[0],o.array[v+1]=d[1],o.array[v+2]=d[2]}o.needsUpdate=!0}function H(t,n,r,l=new h.Color(16711680)){we(t,n),Ce(r,t,l)}const Ve={class:"panel-content"},be={class:"animation-controls"},ke={class:"control-row"},Ne={class:"control-row"},Ee={class:"frame-info"},_e={class:"control-row"},Te=e.defineComponent({__name:"trackAnimationPanel",props:{cloud:{},knife:{},vectors:{}},emits:["getThreeData"],setup(t,{expose:n,emit:r}){const l=t,c=e.computed(()=>l.vectors),o=e.ref(!1),s=e.ref(0),i=e.ref(100);let f=!1;const d=p=>`第 ${p+1} 帧`,m=p=>{if(p<0||p>=c.value.length){console.error(`帧索引 ${p} 超出范围`);return}const y=c.value[p];s.value=p,H(l.knife,y,l.cloud)},v=async()=>{if(c.value.length===0){B.ElMessage.error("无法播放动画:无数据");return}if(!o.value){o.value=!0,f=!1,c.value.length-1===s.value&&(s.value=0);try{for(let p=s.value+1;p<c.value.length&&!f;p++)await new Promise(y=>setTimeout(y,i.value)),m(p);f||B.ElMessage.success("动画播放完成")}catch(p){console.error("动画播放出错:",p)}finally{o.value=!1}}},w=async()=>{o.value&&(f=!0,await new Promise(p=>{const y=e.watch(()=>o.value,F=>{y(),p()})}),B.ElMessage.info("动画已停止"))},N=async p=>{o.value&&await w(),m(p)},E=async()=>{o.value&&await w(),!(s.value+1>=c.value.length)&&m(s.value+1)},_=async()=>{o.value&&await w(),s.value!==0&&m(s.value-1)},C=()=>{s.value=0};return n({playAnimation:v,stopAnimation:w,forwardFrame:E,backwardFrame:_,resetAnimationFrame:C,reset:async()=>{await w(),C()}}),(p,y)=>{const F=e.resolveComponent("el-input-number"),j=e.resolveComponent("el-form-item"),q=e.resolveComponent("el-form"),I=e.resolveComponent("el-slider");return e.openBlock(),e.createElementBlock("div",Ve,[e.createElementVNode("div",be,[e.createElementVNode("div",ke,[e.createVNode(q,{"label-width":"auto",style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(j,{label:"帧间隔 (ms):",prop:"frameDuration"},{default:e.withCtx(()=>[e.createVNode(F,{modelValue:i.value,"onUpdate:modelValue":y[0]||(y[0]=M=>i.value=M),min:0,max:5e3,step:10,style:{width:"100%"}},null,8,["modelValue"])]),_:1})]),_:1})]),e.createElementVNode("div",Ne,[y[2]||(y[2]=e.createElementVNode("label",null,"当前帧:",-1)),e.createElementVNode("span",Ee,e.toDisplayString(s.value+1)+" / "+e.toDisplayString(c.value.length),1)]),e.createElementVNode("div",_e,[y[3]||(y[3]=e.createElementVNode("label",null,"动画进度:",-1)),e.createVNode(I,{modelValue:s.value,"onUpdate:modelValue":y[1]||(y[1]=M=>s.value=M),min:0,max:c.value.length>0?c.value.length-1:0,step:1,"format-tooltip":d,onInput:N,disabled:c.value.length===0,style:{"flex-grow":"1",margin:"0 10px"}},null,8,["modelValue","max","disabled"])])])])}}}),xe=W._export_sfc(Te,[["__scopeId","data-v-b5665bfd"]]);function ze(t){const n=[];return t.forEach(r=>{const[l,c,o]=r.trim().split(/\s+/);n.push(+l,+c,+o)}),n}function $(t,n,r){switch(t){case"X":n.x=+r||0;break;case"Y":n.y=+r||0;break;case"Z":n.z=+r||0;break}}function Ae(t){const n=[],r=["X","Y","Z"];return t.forEach(l=>{const c={x:0,y:0,z:0},o=l.trim();if(!o)return;let s=null,i="";for(let f=0;f<(o==null?void 0:o.length);f++){const d=o[f],m=r.find(v=>v===d);if(m){s&&$(s,c,i),i="",s=m;continue}i=i+d}$(s,c,i),n.push(c.x,c.y,c.z)}),n}const Pe=t=>t==null?void 0:t.filter(r=>r.includes("=")),Me=t=>t.replace(/,/g,""),De=t=>t==null?void 0:t.map(r=>Me(r)),Ue=t=>{const n=Pe(t);return De(n)};function Fe(t){const n=Ue(t),r=[];return n.forEach(l=>{var v,w,N,E,_,C;let[c,o,s,i]=l.trim().split(/\s+/);o=(v=o==null?void 0:o.trim)==null?void 0:v.call(o),s=(w=s==null?void 0:s.trim)==null?void 0:w.call(s),i=(N=i==null?void 0:i.trim)==null?void 0:N.call(i);const[,f]=(E=o==null?void 0:o.split)==null?void 0:E.call(o,"="),[,d]=(_=s==null?void 0:s.split)==null?void 0:_.call(s,"="),[,m]=(C=i==null?void 0:i.split)==null?void 0:C.call(i,"=");r.push(+f,+d,+m)}),r}const Ie=t=>t>="0"&&t<="9",Le=t=>t==="+"||t==="-",Be=t=>t===".";function $e(t){return Ie(t)||Le(t)||Be(t)}function je(t){const n=[],r=new Set(["X","Y","Z"]);return t.forEach(l=>{const c={x:0,y:0,z:0},o=l.trim();if(!o)return;let s=null,i="";for(let f=0;f<(o==null?void 0:o.length);f++){const d=o[f];if(d==="T")break;const m=r.has(d)?d:null,v=$e(d);if(m||!v){s&&$(s,c,i),s=m,i="";continue}i=i+d}s&&$(s,c,i),n.push(c.x,c.y,c.z)}),n}function qe(t){return t==null?void 0:t.includes("=")}async function Xe(t){var c,o;const n=(c=t==null?void 0:t.trim())==null?void 0:c.split(/\r?\n/);if(qe(t))return Fe(n);const r=n==null?void 0:n[0],l=(o=r==null?void 0:r.trim())==null?void 0:o.split(/\s+/);if((l==null?void 0:l.length)>=3)return ze(n);if((l==null?void 0:l.length)===1)return Ae(n)}async function Re(t){const n=t.trim().split(/\r?\n/),r=[];return n.forEach(l=>{const c=l.trim().split(/\s+/);if(c.length!=3)return;const[o,s,i]=c;r.push(+o,+s,+i)}),r}async function Ye(t){const n=t.trim().split(/\r?\n/),r=[];return n.forEach(l=>{const c=l.trim().split(/\s+/);if(c.length!=3)return;const[o,s,i]=c;r.push(+o,+s,+i)}),r}async function Ze(t){let n=t.trim().split(/\r?\n/);return n=n.filter(l=>{const c=l.startsWith("X")||l.startsWith("Y")||l.startsWith("Z"),o=l.startsWith("G")&&(l.includes("X")||l.includes("Y")||l.includes("Z")),s=l.startsWith("N")&&(l.includes("X")||l.includes("Y")||l.includes("Z"));return c||o||s}),je(n)}async function Oe(t,n){const{isCyd:r,isUv:l,isCpt:c,isNc:o}=n;return l?Xe(t):r?Ye(t):c?Re(t):o?Ze(t):[]}function Ge(t){const n=[];for(let r=0;r<t.length;r+=3)n.push(new h.Vector3(t[r],t[r+1],t[r+2]));return n}function Ke(t){const n=new h.BufferGeometry;n.setAttribute("position",new h.Float32BufferAttribute(t,3));const r=new h.LineBasicMaterial({color:55551,linewidth:3});return new h.Line(n,r)}function Se(t,n){if(!n||n.length<3)return;const{scene:r,camera:l,renderer:c,controls:o}=t();if(!r||!l||!c||!o)return;const s=Ke(n);return s.name="轨迹路径",r.add(s),s}function We(t,n,r,l=4,c=50){let o=1/0,s=-1/0,i=1/0,f=-1/0,d=1/0,m=-1/0;for(let C=0;C<t.length;C+=3){const b=t[C],p=t[C+1],y=t[C+2];o=Math.min(o,b),s=Math.max(s,b),i=Math.min(i,p),f=Math.max(f,p),d=Math.min(d,y),m=Math.max(m,y)}const w=Math.sqrt((s-o)**2+(f-i)**2+(m-d)**2)*.05,N=h.MathUtils.degToRad(n.fov),E=2*Math.tan(N/2)*c,_=w/E*r.domElement.height*(l/4);return Math.min(.4,_)}function He(t){if(t.length%3!==0)return console.error("points array length is not a multiple of 3:",t),null;const n=new h.BufferGeometry;n.setAttribute("position",new h.Float32BufferAttribute(t,3));const r=new Float32Array(t.length);for(let o=0;o<t.length;o+=3)r[o]=0,r[o+1]=.847,r[o+2]=1;n.setAttribute("color",new h.BufferAttribute(r,3));const l=new h.PointsMaterial({vertexColors:!0,size:.4,sizeAttenuation:!0}),c=new h.Points(n,l);return l.needsUpdate=!0,c}function Je(t,n){if(!n)return;const{scene:r,camera:l,renderer:c,controls:o}=t();if(!r||!l||!c||!o)return;const s=He(n);if(!s)return;s.name="轨迹路径",r.add(s);const i=We(n,l,c,.1,50);return s.material.size=i,s}const Qe={class:"obj-viewer-container"},et={class:"buttonGroup-topLeft"},tt={class:"buttonGroup-left"},nt={class:"buttonGroup-right"},ot={class:"buttonGroup-bottom"},rt={class:"left-panel"},lt={class:"panel-header"},st={class:"panel-body"},it={key:1,class:"clipping-content"},at={class:"radio-group"},ct={class:"radio-label"},ut={class:"radio-label"},dt={class:"radio-label"},ft={class:"radio-label"},vt={class:"right-panel"},mt={class:"panel-header"},pt={class:"panel-body"},gt={key:0,class:"loading-overlay"},ht=e.defineComponent({__name:"threeTrackPathView",props:{fileBlobs:{},threeData:{default:()=>""},trackFileType:{}},emits:["getAnimationData","getThreeData"],setup(t,{emit:n}){const r=n,l=t,c=e.ref(null),o=e.ref(!1),s=e.ref(""),i=e.ref(),f=e.ref(!1),d=e.ref(""),m=e.ref(!1),v=e.ref(""),w=e.shallowRef(null),N=e.shallowRef(null),{currentModels:E,initThreeJS:_,handleResize:C,getThreeJSObjects:b,cleanup:p,axesHelperVisible:y,toggleAxesVisibility:F,zoomIn:j,zoomOut:q}=P.useThreeJS(c),{isAnimating:I,toggleAnimation:M,stopAnimation:J}=P.useAnimation(b,E),{isClipping:Q,activeClippingAxis:k,toggleClipping:ee,updateClippingPlanes:T}=P.useClipping(b,E),te=()=>{F()},X=u=>{f.value=!0,d.value=u,u==="剖面视图"&&!Q.value&&ee()},R=u=>{m.value=!0,v.value=u,u==="动画仿真"&&r("getAnimationData")},Y=e.ref([]),D=e.ref([]),ne=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isUv}),oe=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isCyd}),re=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isCpt}),z=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isNc}),Z=e.computed(()=>{const u=l.fileBlobs||[];return u==null?void 0:u[0]});let x=e.shallowRef(),A=e.shallowRef();const le=()=>{const{scene:u}=b();x.value&&u&&(P.disposeObj(x.value,u),x.value=null)},se=()=>{const{scene:u}=b();A.value&&u&&(P.disposeObj(A.value,u),A.value=null)},O=()=>{le(),se()},ie=async u=>{const a=URL.createObjectURL(u),U=await ge.readFileText(a);if(URL.revokeObjectURL(a),he.isString(U)){const g=await Oe(U,l.trackFileType)||[];Y.value=g;const K=Y.value;ne.value&&(x.value=Se(b,K)),(oe.value||re.value||z.value)&&(x.value=Je(b,K)),P.frameCameraToObject3D(b,x.value)}},ae=async()=>{var u,a;A.value=ye(),D.value=Ge(Y.value),D.value&&D.value.length&&(H(A.value,D.value[0],x.value,new h.Color(16711680)),(a=(u=N.value)==null?void 0:u.add)==null||a.call(u,A.value))},ce=async()=>{var u;await((u=i==null?void 0:i.value)==null?void 0:u.reset()),await G(Z.value)},G=async u=>{O(),await ie(u),z.value&&ae()};e.watch(()=>Z.value,async u=>{u&&await G(u)},{immediate:!0,deep:!0});const ue=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.playAnimation())},de=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.stopAnimation())},fe=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.forwardFrame())},ve=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.backwardFrame())};let L=null;const me=()=>{_(),e.nextTick(()=>{c.value&&(L=new ResizeObserver(C),L.observe(c.value))});const u=b();N.value=u.scene,N.value&&(N.value.name="CPMPIP")},pe=()=>{L&&L.disconnect(),I.value&&J(),O(),p()};return e.onMounted(async()=>{try{me()}catch(u){console.error("Three.js 初始化失败:",u),B.ElMessage.error("渲染引擎初始化失败!")}}),e.onBeforeUnmount(()=>{pe()}),(u,a)=>{const U=e.resolveComponent("el-scrollbar");return e.openBlock(),e.createElementBlock("div",Qe,[e.createElementVNode("div",{ref_key:"threejsContainer",ref:c,class:"threejs-container"},null,512),e.createElementVNode("div",et,[e.createVNode(V.ThreeSvgIcon,{name:"viewReset",size:"24",onClick:ce,title:"重置"}),e.createVNode(V.ThreeSvgIcon,{name:"fangda",size:"24",title:"放大",onClick:e.unref(j)},null,8,["onClick"]),e.createVNode(V.ThreeSvgIcon,{name:"suoxiao",size:"24",title:"缩小",onClick:e.unref(q)},null,8,["onClick"]),e.createVNode(V.ThreeSvgIcon,{name:"lookAround",size:"24",onClick:e.unref(M),title:e.unref(I)?"停止动画":"动画视图"},null,8,["onClick","title"]),e.createVNode(V.ThreeSvgIcon,{name:"zuobiaoxi",size:"24",active:e.unref(y),onClick:te,title:"显隐坐标轴"},null,8,["active"])]),e.createElementVNode("div",tt,[e.renderSlot(u.$slots,"button-left",{switchRightPanel:X},void 0,!0),e.createVNode(V.ThreeSvgIcon,{name:"jiegoushu",size:"24",onClick:a[0]||(a[0]=g=>X("场景树")),active:f.value&&d.value==="场景树",title:"场景树"},null,8,["active"]),e.createVNode(V.ThreeSvgIcon,{name:"clipping",size:"24",onClick:a[1]||(a[1]=g=>X("剖面视图")),active:f.value&&d.value==="剖面视图",title:"剖面视图"},null,8,["active"])]),e.createElementVNode("div",nt,[e.renderSlot(u.$slots,"button-right",{switchRightPanel:R},void 0,!0),e.createVNode(V.ThreeSvgIcon,{name:"guanjiekongzhi",size:"24",onClick:a[2]||(a[2]=g=>R("关节控制")),active:m.value&&v.value==="关节控制",title:"关节控制"},null,8,["active"]),e.createVNode(V.ThreeSvgIcon,{name:"donghuafangzhen",size:"24",title:"动画仿真",onClick:a[3]||(a[3]=g=>R("动画仿真")),active:m.value&&v.value==="动画仿真"},null,8,["active"])]),e.createElementVNode("div",ot,[e.createVNode(V.ThreeSvgIcon,{name:"kuaitui",size:"24",backgroundColor:"#ffffff",title:"快退",onClick:ve}),e.createVNode(V.ThreeSvgIcon,{name:"bofang",size:"24",backgroundColor:"#ffffff",title:"播放",onClick:ue}),e.createVNode(V.ThreeSvgIcon,{name:"kuaijin",size:"24",backgroundColor:"#ffffff",title:"快进",onClick:fe}),e.createVNode(V.ThreeSvgIcon,{name:"zanting",size:"24",backgroundColor:"#ffffff",title:"暂停",onClick:de})]),e.withDirectives(e.createElementVNode("div",rt,[e.createElementVNode("div",lt,[e.createElementVNode("span",null,e.toDisplayString(d.value),1),e.createElementVNode("span",{class:"close",onClick:a[4]||(a[4]=g=>f.value=!1)}," X ")]),e.createElementVNode("div",st,[e.createVNode(U,{height:"100%"},{default:e.withCtx(()=>[d.value==="场景树"?(e.openBlock(),e.createBlock(S.UrdfTree,{key:0,model:w.value},null,8,["model"])):e.createCommentVNode("",!0),d.value==="剖面视图"?(e.openBlock(),e.createElementBlock("div",it,[e.createElementVNode("div",at,[e.createElementVNode("label",ct,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"none","onUpdate:modelValue":a[5]||(a[5]=g=>e.isRef(k)?k.value=g:null),onChange:a[6]||(a[6]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[14]||(a[14]=e.createElementVNode("span",{class:"radio-text"},"无切割",-1))]),e.createElementVNode("label",ut,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"x","onUpdate:modelValue":a[7]||(a[7]=g=>e.isRef(k)?k.value=g:null),onChange:a[8]||(a[8]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[15]||(a[15]=e.createElementVNode("span",{class:"radio-text"},"X轴切割",-1))]),e.createElementVNode("label",dt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"y","onUpdate:modelValue":a[9]||(a[9]=g=>e.isRef(k)?k.value=g:null),onChange:a[10]||(a[10]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[16]||(a[16]=e.createElementVNode("span",{class:"radio-text"},"Y轴切割",-1))]),e.createElementVNode("label",ft,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"z","onUpdate:modelValue":a[11]||(a[11]=g=>e.isRef(k)?k.value=g:null),onChange:a[12]||(a[12]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[17]||(a[17]=e.createElementVNode("span",{class:"radio-text"},"Z轴切割",-1))])])])):e.createCommentVNode("",!0)]),_:1})])],512),[[e.vShow,f.value]]),e.withDirectives(e.createElementVNode("div",vt,[e.createElementVNode("div",mt,[e.createElementVNode("span",null,e.toDisplayString(v.value),1),e.createElementVNode("span",{class:"close",onClick:a[13]||(a[13]=g=>m.value=!1)}," X ")]),e.createElementVNode("div",pt,[e.createVNode(U,{height:"100%"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(S.JointPanel,{model:w.value},null,8,["model"]),[[e.vShow,v.value==="关节控制"]]),e.withDirectives(e.createVNode(xe,{ref_key:"animationPanelRef",ref:i,cloud:e.unref(x),knife:e.unref(A),vectors:D.value},null,8,["cloud","knife","vectors"]),[[e.vShow,v.value==="动画仿真"&&z.value]])]),_:1})])],512),[[e.vShow,m.value]]),o.value?(e.openBlock(),e.createElementBlock("div",gt,[a[18]||(a[18]=e.createElementVNode("div",{class:"loading-spinner"},null,-1)),e.createElementVNode("p",null,e.toDisplayString(s.value),1)])):e.createCommentVNode("",!0)])}}}),yt=W._export_sfc(ht,[["__scopeId","data-v-9bc0694d"]]);exports.default=yt;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),P=require("./iconfont-n9ziSjXJ.cjs"),h=require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-v_tZRKeY.cjs"),ge=require("./threeViewerHost-C0peX0tH.cjs"),B=require("./index-C8qRkCgn.cjs"),S=require("./urdfTree-Bou0Ub-r.cjs"),W=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),V=require("./svgIcon-CUM54R6L.cjs"),he=require("./isString--eJE54G5.cjs");function ye(t=.5,n=4){const r=new h.Mesh(new h.ConeGeometry(t,n,32),new h.MeshStandardMaterial({color:"#919191ff",metalness:.3,roughness:.6})),l=r.geometry.parameters.height;return r.geometry.translate(0,-l/2,0),r.rotation.set(-90,0,0,"XYZ"),r}function we(t,n){t.position.copy(n)}function Ce(t,n,r=new h.Color(16711680)){const l=new h.Vector3;n.getWorldPosition(l);const c=t.geometry.attributes.position,o=t.geometry.attributes.color,s=new h.Color(55551);let i=1/0,f=-1;for(let d=0;d<c.count;d++){const v=new h.Vector3().fromBufferAttribute(c,d).distanceTo(l);v<i&&(i=v,f=d)}for(let d=0;d<o.count;d++)s.toArray(o.array,d*3);if(f!==-1){const d=r.toArray(),m=f*3+2;for(let v=0;v<m;v=v+3)o.array[v]=d[0],o.array[v+1]=d[1],o.array[v+2]=d[2]}o.needsUpdate=!0}function H(t,n,r,l=new h.Color(16711680)){we(t,n),Ce(r,t,l)}const Ve={class:"panel-content"},be={class:"animation-controls"},ke={class:"control-row"},Ne={class:"control-row"},Ee={class:"frame-info"},_e={class:"control-row"},Te=e.defineComponent({__name:"trackAnimationPanel",props:{cloud:{},knife:{},vectors:{}},emits:["getThreeData"],setup(t,{expose:n,emit:r}){const l=t,c=e.computed(()=>l.vectors),o=e.ref(!1),s=e.ref(0),i=e.ref(100);let f=!1;const d=p=>`第 ${p+1} 帧`,m=p=>{if(p<0||p>=c.value.length){console.error(`帧索引 ${p} 超出范围`);return}const y=c.value[p];s.value=p,H(l.knife,y,l.cloud)},v=async()=>{if(c.value.length===0){B.ElMessage.error("无法播放动画:无数据");return}if(!o.value){o.value=!0,f=!1,c.value.length-1===s.value&&(s.value=0);try{for(let p=s.value+1;p<c.value.length&&!f;p++)await new Promise(y=>setTimeout(y,i.value)),m(p);f||B.ElMessage.success("动画播放完成")}catch(p){console.error("动画播放出错:",p)}finally{o.value=!1}}},w=async()=>{o.value&&(f=!0,await new Promise(p=>{const y=e.watch(()=>o.value,F=>{y(),p()})}),B.ElMessage.info("动画已停止"))},N=async p=>{o.value&&await w(),m(p)},E=async()=>{o.value&&await w(),!(s.value+1>=c.value.length)&&m(s.value+1)},_=async()=>{o.value&&await w(),s.value!==0&&m(s.value-1)},C=()=>{s.value=0};return n({playAnimation:v,stopAnimation:w,forwardFrame:E,backwardFrame:_,resetAnimationFrame:C,reset:async()=>{await w(),C()}}),(p,y)=>{const F=e.resolveComponent("el-input-number"),j=e.resolveComponent("el-form-item"),q=e.resolveComponent("el-form"),I=e.resolveComponent("el-slider");return e.openBlock(),e.createElementBlock("div",Ve,[e.createElementVNode("div",be,[e.createElementVNode("div",ke,[e.createVNode(q,{"label-width":"auto",style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(j,{label:"帧间隔 (ms):",prop:"frameDuration"},{default:e.withCtx(()=>[e.createVNode(F,{modelValue:i.value,"onUpdate:modelValue":y[0]||(y[0]=M=>i.value=M),min:0,max:5e3,step:10,style:{width:"100%"}},null,8,["modelValue"])]),_:1})]),_:1})]),e.createElementVNode("div",Ne,[y[2]||(y[2]=e.createElementVNode("label",null,"当前帧:",-1)),e.createElementVNode("span",Ee,e.toDisplayString(s.value+1)+" / "+e.toDisplayString(c.value.length),1)]),e.createElementVNode("div",_e,[y[3]||(y[3]=e.createElementVNode("label",null,"动画进度:",-1)),e.createVNode(I,{modelValue:s.value,"onUpdate:modelValue":y[1]||(y[1]=M=>s.value=M),min:0,max:c.value.length>0?c.value.length-1:0,step:1,"format-tooltip":d,onInput:N,disabled:c.value.length===0,style:{"flex-grow":"1",margin:"0 10px"}},null,8,["modelValue","max","disabled"])])])])}}}),xe=W._export_sfc(Te,[["__scopeId","data-v-b5665bfd"]]);function ze(t){const n=[];return t.forEach(r=>{const[l,c,o]=r.trim().split(/\s+/);n.push(+l,+c,+o)}),n}function $(t,n,r){switch(t){case"X":n.x=+r||0;break;case"Y":n.y=+r||0;break;case"Z":n.z=+r||0;break}}function Ae(t){const n=[],r=["X","Y","Z"];return t.forEach(l=>{const c={x:0,y:0,z:0},o=l.trim();if(!o)return;let s=null,i="";for(let f=0;f<(o==null?void 0:o.length);f++){const d=o[f],m=r.find(v=>v===d);if(m){s&&$(s,c,i),i="",s=m;continue}i=i+d}$(s,c,i),n.push(c.x,c.y,c.z)}),n}const Pe=t=>t==null?void 0:t.filter(r=>r.includes("=")),Me=t=>t.replace(/,/g,""),De=t=>t==null?void 0:t.map(r=>Me(r)),Ue=t=>{const n=Pe(t);return De(n)};function Fe(t){const n=Ue(t),r=[];return n.forEach(l=>{var v,w,N,E,_,C;let[c,o,s,i]=l.trim().split(/\s+/);o=(v=o==null?void 0:o.trim)==null?void 0:v.call(o),s=(w=s==null?void 0:s.trim)==null?void 0:w.call(s),i=(N=i==null?void 0:i.trim)==null?void 0:N.call(i);const[,f]=(E=o==null?void 0:o.split)==null?void 0:E.call(o,"="),[,d]=(_=s==null?void 0:s.split)==null?void 0:_.call(s,"="),[,m]=(C=i==null?void 0:i.split)==null?void 0:C.call(i,"=");r.push(+f,+d,+m)}),r}const Ie=t=>t>="0"&&t<="9",Le=t=>t==="+"||t==="-",Be=t=>t===".";function $e(t){return Ie(t)||Le(t)||Be(t)}function je(t){const n=[],r=new Set(["X","Y","Z"]);return t.forEach(l=>{const c={x:0,y:0,z:0},o=l.trim();if(!o)return;let s=null,i="";for(let f=0;f<(o==null?void 0:o.length);f++){const d=o[f];if(d==="T")break;const m=r.has(d)?d:null,v=$e(d);if(m||!v){s&&$(s,c,i),s=m,i="";continue}i=i+d}s&&$(s,c,i),n.push(c.x,c.y,c.z)}),n}function qe(t){return t==null?void 0:t.includes("=")}async function Xe(t){var c,o;const n=(c=t==null?void 0:t.trim())==null?void 0:c.split(/\r?\n/);if(qe(t))return Fe(n);const r=n==null?void 0:n[0],l=(o=r==null?void 0:r.trim())==null?void 0:o.split(/\s+/);if((l==null?void 0:l.length)>=3)return ze(n);if((l==null?void 0:l.length)===1)return Ae(n)}async function Re(t){const n=t.trim().split(/\r?\n/),r=[];return n.forEach(l=>{const c=l.trim().split(/\s+/);if(c.length!=3)return;const[o,s,i]=c;r.push(+o,+s,+i)}),r}async function Ye(t){const n=t.trim().split(/\r?\n/),r=[];return n.forEach(l=>{const c=l.trim().split(/\s+/);if(c.length!=3)return;const[o,s,i]=c;r.push(+o,+s,+i)}),r}async function Ze(t){let n=t.trim().split(/\r?\n/);return n=n.filter(l=>{const c=l.startsWith("X")||l.startsWith("Y")||l.startsWith("Z"),o=l.startsWith("G")&&(l.includes("X")||l.includes("Y")||l.includes("Z")),s=l.startsWith("N")&&(l.includes("X")||l.includes("Y")||l.includes("Z"));return c||o||s}),je(n)}async function Oe(t,n){const{isCyd:r,isUv:l,isCpt:c,isNc:o}=n;return l?Xe(t):r?Ye(t):c?Re(t):o?Ze(t):[]}function Ge(t){const n=[];for(let r=0;r<t.length;r+=3)n.push(new h.Vector3(t[r],t[r+1],t[r+2]));return n}function Ke(t){const n=new h.BufferGeometry;n.setAttribute("position",new h.Float32BufferAttribute(t,3));const r=new h.LineBasicMaterial({color:55551,linewidth:3});return new h.Line(n,r)}function Se(t,n){if(!n||n.length<3)return;const{scene:r,camera:l,renderer:c,controls:o}=t();if(!r||!l||!c||!o)return;const s=Ke(n);return s.name="轨迹路径",r.add(s),s}function We(t,n,r,l=4,c=50){let o=1/0,s=-1/0,i=1/0,f=-1/0,d=1/0,m=-1/0;for(let C=0;C<t.length;C+=3){const b=t[C],p=t[C+1],y=t[C+2];o=Math.min(o,b),s=Math.max(s,b),i=Math.min(i,p),f=Math.max(f,p),d=Math.min(d,y),m=Math.max(m,y)}const w=Math.sqrt((s-o)**2+(f-i)**2+(m-d)**2)*.05,N=h.MathUtils.degToRad(n.fov),E=2*Math.tan(N/2)*c,_=w/E*r.domElement.height*(l/4);return Math.min(.4,_)}function He(t){if(t.length%3!==0)return console.error("points array length is not a multiple of 3:",t),null;const n=new h.BufferGeometry;n.setAttribute("position",new h.Float32BufferAttribute(t,3));const r=new Float32Array(t.length);for(let o=0;o<t.length;o+=3)r[o]=0,r[o+1]=.847,r[o+2]=1;n.setAttribute("color",new h.BufferAttribute(r,3));const l=new h.PointsMaterial({vertexColors:!0,size:.4,sizeAttenuation:!0}),c=new h.Points(n,l);return l.needsUpdate=!0,c}function Je(t,n){if(!n)return;const{scene:r,camera:l,renderer:c,controls:o}=t();if(!r||!l||!c||!o)return;const s=He(n);if(!s)return;s.name="轨迹路径",r.add(s);const i=We(n,l,c,.1,50);return s.material.size=i,s}const Qe={class:"obj-viewer-container"},et={class:"buttonGroup-topLeft"},tt={class:"buttonGroup-left"},nt={class:"buttonGroup-right"},ot={class:"buttonGroup-bottom"},rt={class:"left-panel"},lt={class:"panel-header"},st={class:"panel-body"},it={key:1,class:"clipping-content"},at={class:"radio-group"},ct={class:"radio-label"},ut={class:"radio-label"},dt={class:"radio-label"},ft={class:"radio-label"},vt={class:"right-panel"},mt={class:"panel-header"},pt={class:"panel-body"},gt={key:0,class:"loading-overlay"},ht=e.defineComponent({__name:"threeTrackPathView",props:{fileBlobs:{},threeData:{default:()=>""},trackFileType:{}},emits:["getAnimationData","getThreeData"],setup(t,{emit:n}){const r=n,l=t,c=e.ref(null),o=e.ref(!1),s=e.ref(""),i=e.ref(),f=e.ref(!1),d=e.ref(""),m=e.ref(!1),v=e.ref(""),w=e.shallowRef(null),N=e.shallowRef(null),{currentModels:E,initThreeJS:_,handleResize:C,getThreeJSObjects:b,cleanup:p,axesHelperVisible:y,toggleAxesVisibility:F,zoomIn:j,zoomOut:q}=P.useThreeJS(c),{isAnimating:I,toggleAnimation:M,stopAnimation:J}=P.useAnimation(b,E),{isClipping:Q,activeClippingAxis:k,toggleClipping:ee,updateClippingPlanes:T}=P.useClipping(b,E),te=()=>{F()},X=u=>{f.value=!0,d.value=u,u==="剖面视图"&&!Q.value&&ee()},R=u=>{m.value=!0,v.value=u,u==="动画仿真"&&r("getAnimationData")},Y=e.ref([]),D=e.ref([]),ne=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isUv}),oe=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isCyd}),re=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isCpt}),z=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isNc}),Z=e.computed(()=>{const u=l.fileBlobs||[];return u==null?void 0:u[0]});let x=e.shallowRef(),A=e.shallowRef();const le=()=>{const{scene:u}=b();x.value&&u&&(P.disposeObj(x.value,u),x.value=null)},se=()=>{const{scene:u}=b();A.value&&u&&(P.disposeObj(A.value,u),A.value=null)},O=()=>{le(),se()},ie=async u=>{const a=URL.createObjectURL(u),U=await ge.readFileText(a);if(URL.revokeObjectURL(a),he.isString(U)){const g=await Oe(U,l.trackFileType)||[];Y.value=g;const K=Y.value;ne.value&&(x.value=Se(b,K)),(oe.value||re.value||z.value)&&(x.value=Je(b,K)),P.frameCameraToObject3D(b,x.value)}},ae=async()=>{var u,a;A.value=ye(),D.value=Ge(Y.value),D.value&&D.value.length&&(H(A.value,D.value[0],x.value,new h.Color(16711680)),(a=(u=N.value)==null?void 0:u.add)==null||a.call(u,A.value))},ce=async()=>{var u;await((u=i==null?void 0:i.value)==null?void 0:u.reset()),await G(Z.value)},G=async u=>{O(),await ie(u),z.value&&ae()};e.watch(()=>Z.value,async u=>{u&&await G(u)},{immediate:!0,deep:!0});const ue=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.playAnimation())},de=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.stopAnimation())},fe=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.forwardFrame())},ve=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.backwardFrame())};let L=null;const me=()=>{_(),e.nextTick(()=>{c.value&&(L=new ResizeObserver(C),L.observe(c.value))});const u=b();N.value=u.scene,N.value&&(N.value.name="CPMPIP")},pe=()=>{L&&L.disconnect(),I.value&&J(),O(),p()};return e.onMounted(async()=>{try{me()}catch(u){console.error("Three.js 初始化失败:",u),B.ElMessage.error("渲染引擎初始化失败!")}}),e.onBeforeUnmount(()=>{pe()}),(u,a)=>{const U=e.resolveComponent("el-scrollbar");return e.openBlock(),e.createElementBlock("div",Qe,[e.createElementVNode("div",{ref_key:"threejsContainer",ref:c,class:"threejs-container"},null,512),e.createElementVNode("div",et,[e.createVNode(V.ThreeSvgIcon,{name:"viewReset",size:"24",onClick:ce,title:"重置"}),e.createVNode(V.ThreeSvgIcon,{name:"fangda",size:"24",title:"放大",onClick:e.unref(j)},null,8,["onClick"]),e.createVNode(V.ThreeSvgIcon,{name:"suoxiao",size:"24",title:"缩小",onClick:e.unref(q)},null,8,["onClick"]),e.createVNode(V.ThreeSvgIcon,{name:"lookAround",size:"24",onClick:e.unref(M),title:e.unref(I)?"停止动画":"动画视图"},null,8,["onClick","title"]),e.createVNode(V.ThreeSvgIcon,{name:"zuobiaoxi",size:"24",active:e.unref(y),onClick:te,title:"显隐坐标轴"},null,8,["active"])]),e.createElementVNode("div",tt,[e.renderSlot(u.$slots,"button-left",{switchRightPanel:X},void 0,!0),e.createVNode(V.ThreeSvgIcon,{name:"jiegoushu",size:"24",onClick:a[0]||(a[0]=g=>X("场景树")),active:f.value&&d.value==="场景树",title:"场景树"},null,8,["active"]),e.createVNode(V.ThreeSvgIcon,{name:"clipping",size:"24",onClick:a[1]||(a[1]=g=>X("剖面视图")),active:f.value&&d.value==="剖面视图",title:"剖面视图"},null,8,["active"])]),e.createElementVNode("div",nt,[e.renderSlot(u.$slots,"button-right",{switchRightPanel:R},void 0,!0),e.createVNode(V.ThreeSvgIcon,{name:"guanjiekongzhi",size:"24",onClick:a[2]||(a[2]=g=>R("关节控制")),active:m.value&&v.value==="关节控制",title:"关节控制"},null,8,["active"]),e.createVNode(V.ThreeSvgIcon,{name:"donghuafangzhen",size:"24",title:"动画仿真",onClick:a[3]||(a[3]=g=>R("动画仿真")),active:m.value&&v.value==="动画仿真"},null,8,["active"])]),e.createElementVNode("div",ot,[e.createVNode(V.ThreeSvgIcon,{name:"kuaitui",size:"24",backgroundColor:"#ffffff",title:"快退",onClick:ve}),e.createVNode(V.ThreeSvgIcon,{name:"bofang",size:"24",backgroundColor:"#ffffff",title:"播放",onClick:ue}),e.createVNode(V.ThreeSvgIcon,{name:"kuaijin",size:"24",backgroundColor:"#ffffff",title:"快进",onClick:fe}),e.createVNode(V.ThreeSvgIcon,{name:"zanting",size:"24",backgroundColor:"#ffffff",title:"暂停",onClick:de})]),e.withDirectives(e.createElementVNode("div",rt,[e.createElementVNode("div",lt,[e.createElementVNode("span",null,e.toDisplayString(d.value),1),e.createElementVNode("span",{class:"close",onClick:a[4]||(a[4]=g=>f.value=!1)}," X ")]),e.createElementVNode("div",st,[e.createVNode(U,{height:"100%"},{default:e.withCtx(()=>[d.value==="场景树"?(e.openBlock(),e.createBlock(S.UrdfTree,{key:0,model:w.value},null,8,["model"])):e.createCommentVNode("",!0),d.value==="剖面视图"?(e.openBlock(),e.createElementBlock("div",it,[e.createElementVNode("div",at,[e.createElementVNode("label",ct,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"none","onUpdate:modelValue":a[5]||(a[5]=g=>e.isRef(k)?k.value=g:null),onChange:a[6]||(a[6]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[14]||(a[14]=e.createElementVNode("span",{class:"radio-text"},"无切割",-1))]),e.createElementVNode("label",ut,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"x","onUpdate:modelValue":a[7]||(a[7]=g=>e.isRef(k)?k.value=g:null),onChange:a[8]||(a[8]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[15]||(a[15]=e.createElementVNode("span",{class:"radio-text"},"X轴切割",-1))]),e.createElementVNode("label",dt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"y","onUpdate:modelValue":a[9]||(a[9]=g=>e.isRef(k)?k.value=g:null),onChange:a[10]||(a[10]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[16]||(a[16]=e.createElementVNode("span",{class:"radio-text"},"Y轴切割",-1))]),e.createElementVNode("label",ft,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"z","onUpdate:modelValue":a[11]||(a[11]=g=>e.isRef(k)?k.value=g:null),onChange:a[12]||(a[12]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[17]||(a[17]=e.createElementVNode("span",{class:"radio-text"},"Z轴切割",-1))])])])):e.createCommentVNode("",!0)]),_:1})])],512),[[e.vShow,f.value]]),e.withDirectives(e.createElementVNode("div",vt,[e.createElementVNode("div",mt,[e.createElementVNode("span",null,e.toDisplayString(v.value),1),e.createElementVNode("span",{class:"close",onClick:a[13]||(a[13]=g=>m.value=!1)}," X ")]),e.createElementVNode("div",pt,[e.createVNode(U,{height:"100%"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(S.JointPanel,{model:w.value},null,8,["model"]),[[e.vShow,v.value==="关节控制"]]),e.withDirectives(e.createVNode(xe,{ref_key:"animationPanelRef",ref:i,cloud:e.unref(x),knife:e.unref(A),vectors:D.value},null,8,["cloud","knife","vectors"]),[[e.vShow,v.value==="动画仿真"&&z.value]])]),_:1})])],512),[[e.vShow,m.value]]),o.value?(e.openBlock(),e.createElementBlock("div",gt,[a[18]||(a[18]=e.createElementVNode("div",{class:"loading-spinner"},null,-1)),e.createElementVNode("p",null,e.toDisplayString(s.value),1)])):e.createCommentVNode("",!0)])}}}),yt=W._export_sfc(ht,[["__scopeId","data-v-9bc0694d"]]);exports.default=yt;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent as de, computed as $, ref as _, resolveComponent as Y, createElementBlock as W, openBlock as j, createElementVNode as c, createVNode as h, withCtx as J, toDisplayString as Z, watch as ve, shallowRef as O, onMounted as Ee, onBeforeUnmount as Xe, withDirectives as M, createCommentVNode as se, unref as C, renderSlot as ce, createBlock as Ye, isRef as G, vModelRadio as q, vShow as K, nextTick as je } from "vue";
|
|
2
2
|
import { u as Ze, a as Ne, b as Be, f as Ie, d as fe } from "./iconfont-Bc_1QADn.js";
|
|
3
3
|
import { C as H, k as Oe, aE as Ge, v as qe, V as ae, w as me, aF as pe, ai as Ke, y as We, a5 as Re, ag as Je, ao as He, s as Qe } from "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-D9pbpHt3.js";
|
|
4
|
-
import { r as Se } from "./threeViewerHost-
|
|
4
|
+
import { r as Se } from "./threeViewerHost-DFr6IPZq.js";
|
|
5
5
|
import { E as R } from "./index-BUYYl2Pc.js";
|
|
6
6
|
import { U as et, J as tt } from "./urdfTree-B5ODHHDI.js";
|
|
7
7
|
import { _ as ge } from "./_plugin-vue_export-helper-CHgC5LLL.js";
|