ss-component-new 1.2.26 → 1.2.28

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.
Files changed (115) hide show
  1. package/dist/{MTLLoader-j7rSXeZy.js → MTLLoader-BreJsr54.js} +1 -1
  2. package/dist/{MTLLoader-CSavblQS.cjs → MTLLoader-Cqv49Ps8.cjs} +1 -1
  3. package/dist/{OrbitControls-BYxGl2XB.js → OrbitControls-BCu-cP7k.js} +1 -1
  4. package/dist/{OrbitControls-dRON011u.cjs → OrbitControls-C956u7BP.cjs} +1 -1
  5. package/dist/{animationData-rmZ0EGb8.cjs → animationData-C3-BiUgV.cjs} +1 -1
  6. package/dist/{animationData-Br4BCkiq.js → animationData-CMjNjOqc.js} +4 -4
  7. package/dist/{array-CeASBMWY.cjs → array-0u9Sf3UC.cjs} +1 -1
  8. package/dist/{array-Cx8FbegO.js → array-BGIM4b6g.js} +2 -2
  9. package/dist/{dataUtil-RzgUhlgJ.cjs → dataUtil-BFjWNDM1.cjs} +1 -1
  10. package/dist/{dataUtil-CJxHUail.js → dataUtil-D9l7-XhR.js} +2 -2
  11. package/dist/{fileUtil-BM6WhafY.cjs → fileUtil-BFtJHTM0.cjs} +1 -1
  12. package/dist/{fileUtil-BVzW5lTY.js → fileUtil-D7XVXEhb.js} +1 -1
  13. package/dist/{iconfont-J7S-v_zE.js → iconfont-B9Cj3DQM.js} +2 -2
  14. package/dist/{iconfont-Dsx_JtWY.cjs → iconfont-BDfcbq2v.cjs} +1 -1
  15. package/dist/icons/svg//344/272/272/345/203/217.svg +1 -0
  16. package/dist/{index-ClzEamlP.js → index-3QB55tXZ.js} +7 -7
  17. package/dist/{index-BGm3sgAn.cjs → index-B33wtiif.cjs} +1 -1
  18. package/dist/{index-D7wMQSEM.js → index-B8bpiPXB.js} +1 -1
  19. package/dist/{index-BvgHldVC.cjs → index-B9TlIok8.cjs} +12 -12
  20. package/dist/{index-DbHiWNBM.cjs → index-BWxbWhC9.cjs} +1 -1
  21. package/dist/{index-BoTEVRWS.js → index-BZwQB2HO.js} +5 -5
  22. package/dist/{index-DRSU72SE.js → index-BaE0DPgC.js} +66 -59
  23. package/dist/{index-DN8avrWv.cjs → index-BccOOMaP.cjs} +1 -1
  24. package/dist/index-BgHY8wmn.cjs +1 -0
  25. package/dist/{index-DpxXt1oz.js → index-Boazv8yC.js} +2 -2
  26. package/dist/{index-D5YeHxKp.js → index-BqRVuEsE.js} +6 -6
  27. package/dist/{index-CyNvD7fs.js → index-BwLaQntz.js} +1 -1
  28. package/dist/{index-Dr7mB3zJ.js → index-C-8LROmP.js} +2 -2
  29. package/dist/{index-DcT0aYIX.js → index-C1lZkQG-.js} +423 -423
  30. package/dist/{index-DWBL8V_4.js → index-C5UpEVah.js} +2 -2
  31. package/dist/index-C5fTUrKx.js +573 -0
  32. package/dist/{index-BH-cEIyF.cjs → index-C9_Cxm8G.cjs} +1 -1
  33. package/dist/{index-D5fqqSXr.cjs → index-CBFF2bsB.cjs} +1 -1
  34. package/dist/{index-YhB_cMji.cjs → index-CC9RkSBT.cjs} +1 -1
  35. package/dist/{index-BJkToJcC.cjs → index-CK5VdzmO.cjs} +1 -1
  36. package/dist/{index-CeWLT1YO.js → index-CKY0sj_X.js} +3 -3
  37. package/dist/{index-Cm99VII_.js → index-CMwwUi6o.js} +6 -6
  38. package/dist/{index-DjMSxB8D.cjs → index-CP7b7BrB.cjs} +1 -1
  39. package/dist/{index-BU5WJczo.js → index-CZu3TggJ.js} +1 -1
  40. package/dist/{index-Bp0GMpLC.cjs → index-C_cWjavY.cjs} +1 -1
  41. package/dist/{index-DVv2nM9_.cjs → index-Cd9j5j41.cjs} +1 -1
  42. package/dist/{index-B7l9bX5c.cjs → index-Cwh5m4lg.cjs} +1 -1
  43. package/dist/index-D0XPyuy4.cjs +1 -0
  44. package/dist/{index-lw6M4N-Q.cjs → index-D3TgRd-7.cjs} +1 -1
  45. package/dist/{index-Ie0BUTFu.js → index-D5Dtcn-_.js} +6 -6
  46. package/dist/{index-Bp5zOMHT.cjs → index-DE-uHAMH.cjs} +1 -1
  47. package/dist/{index-T2VihBuZ.js → index-DHOcRi3S.js} +6 -6
  48. package/dist/{index-CMIII30g.cjs → index-DMyPjpxO.cjs} +1 -1
  49. package/dist/{index-BvB9p0W4.js → index-DR7aNxVH.js} +4 -4
  50. package/dist/{index-0dw7iEtO.cjs → index-DVqfroe6.cjs} +1 -1
  51. package/dist/{index-ggXXcZCO.js → index-DiTYB-a4.js} +63 -58
  52. package/dist/index-DnFxL5wb.cjs +1 -0
  53. package/dist/{index-CaGluCnk.js → index-DqR3IwgZ.js} +12 -12
  54. package/dist/{index-zAZNzNG-.js → index-DsCD1neC.js} +2 -2
  55. package/dist/{index-CNxiv6y5.js → index-Dx2X9pR1.js} +43 -43
  56. package/dist/{index-C2B83Ywj.cjs → index-GGokR_Lx.cjs} +1 -1
  57. package/dist/{index-7pDDKkwc.js → index-HduGypr9.js} +34 -34
  58. package/dist/index-LcnC2GQ4.cjs +1 -0
  59. package/dist/{index-DoWGbQss.js → index-OTxJnh9Z.js} +153 -153
  60. package/dist/{index-DodooTli.js → index-Rr9ZBYig.js} +2 -2
  61. package/dist/{index-BEfXSiWp.js → index-Sa2hQZ0h.js} +2 -2
  62. package/dist/{index-BkcjJQlg.cjs → index-TKouySTA.cjs} +1 -1
  63. package/dist/{index-veEr0Ju4.js → index-gPnrvvE9.js} +1324 -1321
  64. package/dist/{index-BPxe8bKe.js → index-gXbhagnF.js} +3 -3
  65. package/dist/{index-CAPstY_B.cjs → index-mpoVA-DC.cjs} +1 -1
  66. package/dist/{index-C9GfFRyr.cjs → index-uIVtG4RY.cjs} +1 -1
  67. package/dist/index-wQJN1jpI.js +2466 -0
  68. package/dist/index-zLkhy4JK.cjs +1 -0
  69. package/dist/{index-DFbvbOsE.js → index-zZ9bfGNx.js} +1 -1
  70. package/dist/{index-DMHh2MZZ.cjs → index-znR89ub7.cjs} +1 -1
  71. package/dist/{index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-DGl2lQmW.js → index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-CuWDdCiy.js} +2 -2
  72. package/dist/{index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-BWh0GUiI.cjs → index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-TDoJ17os.cjs} +1 -1
  73. package/dist/{index.vue_vue_type_style_index_0_scoped_92477073_lang-BjBzi9R7.js → index.vue_vue_type_style_index_0_scoped_92477073_lang-BQiH2RRX.js} +11 -11
  74. package/dist/{index.vue_vue_type_style_index_0_scoped_92477073_lang-BwjCaKYV.cjs → index.vue_vue_type_style_index_0_scoped_92477073_lang-Dqpyi0E8.cjs} +1 -1
  75. package/dist/index.vue_vue_type_style_index_0_scoped_bcdf4fb0_lang-D21h7jT_.cjs +37 -0
  76. package/dist/{index.vue_vue_type_style_index_0_scoped_bcdf4fb0_lang-DZGhek9_.js → index.vue_vue_type_style_index_0_scoped_bcdf4fb0_lang-PE_6dfIO.js} +12719 -12591
  77. package/dist/{index.vue_vue_type_style_index_1_lang-BHt4rvMd.js → index.vue_vue_type_style_index_1_lang-9ANlnWKt.js} +5 -5
  78. package/dist/index.vue_vue_type_style_index_1_lang-CrmWclPR.cjs +32 -0
  79. package/dist/{index.vue_vue_type_style_index_1_lang-C2PJ2fvM.cjs → index.vue_vue_type_style_index_1_lang-D4RvHwPS.cjs} +1 -1
  80. package/dist/{index.vue_vue_type_style_index_1_lang-WD8HOZyf.js → index.vue_vue_type_style_index_1_lang-DwvuVXW6.js} +2580 -2471
  81. package/dist/{isString-BbPmUYHG.js → isString-BuBBWjRr.js} +1 -1
  82. package/dist/{main-DWa3MZxf.js → main-DpLQlLK2.js} +5 -5
  83. package/dist/{main-DlDkQh0n.cjs → main-Mx9r7ydp.cjs} +1 -1
  84. package/dist/ss-component.cjs +1 -1
  85. package/dist/ss-component.css +2 -2
  86. package/dist/ss-component.js +11 -11
  87. package/dist/ss-component2.cjs +1 -1
  88. package/dist/ss-component2.js +12 -12
  89. package/dist/{threeModel-CBsLcTcX.js → threeModel-CZ-qFwwk.js} +5 -5
  90. package/dist/{threeModel-Dt9Ounip.cjs → threeModel-DTwQnnAO.cjs} +1 -1
  91. package/dist/{threePreview-DSMFTIuC.cjs → threePreview-CUGoEzKf.cjs} +1 -1
  92. package/dist/{threePreview-D99A_IHZ.js → threePreview-DutKTPWH.js} +4 -4
  93. package/dist/{threeSceneView-BD22yXw4.js → threeSceneView-CzgWYHBw.js} +11 -11
  94. package/dist/{threeSceneView-Dv2uGsTN.cjs → threeSceneView-f1V-z4jr.cjs} +1 -1
  95. package/dist/{threeSceneViewForCPMPIP-CpBphI9E.js → threeSceneViewForCPMPIP-2sXIw3I1.js} +61 -61
  96. package/dist/{threeSceneViewForCPMPIP-DfaTaroP.cjs → threeSceneViewForCPMPIP-CojHDVHC.cjs} +1 -1
  97. package/dist/{threeTrackPathView-BGePzJh4.cjs → threeTrackPathView-BGHiOyJo.cjs} +1 -1
  98. package/dist/{threeTrackPathView-bFuXaesk.js → threeTrackPathView-DA4_8jas.js} +6 -6
  99. package/dist/{threeViewerHost-gGHqJpTR.js → threeViewerHost-BNObp9oA.js} +17 -17
  100. package/dist/{threeViewerHost-bQqnJLh9.cjs → threeViewerHost-D3WDKrIQ.cjs} +1 -1
  101. package/dist/{urdfTree-nXEMcLFV.cjs → urdfTree-CWStzmk2.cjs} +1 -1
  102. package/dist/{urdfTree-B2Zs54qS.js → urdfTree-CnkPddyT.js} +1 -1
  103. package/dist/{workpieceTreePanel-CXD_XizT.js → workpieceTreePanel-BvhFt3Xw.js} +5 -5
  104. package/dist/{workpieceTreePanel-Brforhya.cjs → workpieceTreePanel-DXyb_Wnw.cjs} +1 -1
  105. package/package.json +1 -1
  106. package/public/icons/svg//344/272/272/345/203/217.svg +1 -0
  107. package/dist/index-B3l8CoGZ.js +0 -2384
  108. package/dist/index-BRAUJGR3.cjs +0 -1
  109. package/dist/index-BjRAas3a.cjs +0 -1
  110. package/dist/index-Cf9NTS7v.cjs +0 -1
  111. package/dist/index-D3x3jleA.js +0 -654
  112. package/dist/index-DWTsFx-2.cjs +0 -1
  113. package/dist/index-Dc8TgzRR.cjs +0 -1
  114. package/dist/index.vue_vue_type_style_index_0_scoped_bcdf4fb0_lang-BKfBwnMQ.cjs +0 -37
  115. package/dist/index.vue_vue_type_style_index_1_lang-f2wxl9Ai.cjs +0 -32
@@ -1,8 +1,8 @@
1
1
  import { ref as K, shallowRef as Be, defineComponent as Ke, watch as Z, onMounted as Ve, nextTick as ze, onBeforeUnmount as Xe, resolveComponent as qe, createElementBlock as ee, openBlock as te, createElementVNode as L, withDirectives as z, createCommentVNode as pe, createVNode as H, unref as b, renderSlot as me, toDisplayString as ge, withCtx as We, isRef as $, vModelRadio as J, vShow as Ye } from "vue";
2
- import { u as $e, a as Je, b as Qe } from "./iconfont-J7S-v_zE.js";
3
- import { J as Ze, K as ce, N as Se, O as et, Q as W, R as Ne, U as O, Y as Ie, C as G, Z as P, f as Y, _ as tt, n as nt, D as st, r as Q, V as B, $ as rt, a0 as Ce, a1 as it, a2 as Oe, a3 as ot, a4 as at, a5 as ne, a6 as ct, a7 as ve, a8 as lt, a9 as ut, aa as ft, ab as le, ac as ke, ad as ue, ae as dt, af as ht, ag as pt, ah as se, ai as mt, v as Pe, p as gt, aj as q, ak as Tt, w as xt, al as Rt, k as Fe, am as Et, y as At, an as _t, ao as Lt, u as re, P as Mt, s as wt, ap as yt, aq as bt, ar as St, as as Nt, at as It, au as De, av as Ct, aw as Te, ax as xe, ay as Re, az as Ee, aA as Ae, aB as Ot, aC as vt, B as He, aD as kt, o as Pt } from "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-DGl2lQmW.js";
4
- import { E as _e } from "./index-7pDDKkwc.js";
5
- import { M as Ft, O as Dt, S as Ht } from "./MTLLoader-j7rSXeZy.js";
2
+ import { u as $e, a as Je, b as Qe } from "./iconfont-B9Cj3DQM.js";
3
+ import { J as Ze, K as ce, N as Se, O as et, Q as W, R as Ne, U as O, Y as Ie, C as G, Z as P, f as Y, _ as tt, n as nt, D as st, r as Q, V as B, $ as rt, a0 as Ce, a1 as it, a2 as Oe, a3 as ot, a4 as at, a5 as ne, a6 as ct, a7 as ve, a8 as lt, a9 as ut, aa as ft, ab as le, ac as ke, ad as ue, ae as dt, af as ht, ag as pt, ah as se, ai as mt, v as Pe, p as gt, aj as q, ak as Tt, w as xt, al as Rt, k as Fe, am as Et, y as At, an as _t, ao as Lt, u as re, P as Mt, s as wt, ap as yt, aq as bt, ar as St, as as Nt, at as It, au as De, av as Ct, aw as Te, ax as xe, ay as Re, az as Ee, aA as Ae, aB as Ot, aC as vt, B as He, aD as kt, o as Pt } from "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-CuWDdCiy.js";
4
+ import { E as _e } from "./index-HduGypr9.js";
5
+ import { M as Ft, O as Dt, S as Ht } from "./MTLLoader-BreJsr54.js";
6
6
  import { T as j } from "./svgIcon-D-_fXUBL.js";
7
7
  import { _ as Ut } from "./_plugin-vue_export-helper-CHgC5LLL.js";
8
8
  function Le(f, t) {
@@ -1,17 +1,17 @@
1
1
  import { defineComponent as Oe, ref as h, watch as se, shallowRef as ve, computed as we, onUnmounted as Qe, resolveComponent as O, createElementBlock as _e, openBlock as te, createElementVNode as n, createVNode as o, withCtx as T, createBlock as Ce, createCommentVNode as ye, unref as M, toDisplayString as me, onMounted as We, onBeforeUnmount as Ie, Fragment as et, renderList as tt, nextTick as lt, withDirectives as q, vShow as re, renderSlot as de, isRef as Te, vModelRadio as Re } from "vue";
2
- import { r as Ve, U as ot, s as je, u as nt, a as at, W as st } from "./workpieceTreePanel-CXD_XizT.js";
3
- import { u as Ke, a as it, b as rt } from "./iconfont-J7S-v_zE.js";
4
- import { ag as ut, c as ct, E as X, aW as pt, aw as dt } from "./index-7pDDKkwc.js";
5
- import { t as Me, T as ke, V as F, r as Q, s as mt, u as vt, k as Se, v as ft, L as gt, w as ht, x as bt, y as yt, z as wt, F as _t, I as Ct, p as kt } from "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-DGl2lQmW.js";
6
- import "./index.vue_vue_type_style_index_1_lang-WD8HOZyf.js";
2
+ import { r as Ve, U as ot, s as je, u as nt, a as at, W as st } from "./workpieceTreePanel-BvhFt3Xw.js";
3
+ import { u as Ke, a as it, b as rt } from "./iconfont-B9Cj3DQM.js";
4
+ import { ag as ut, c as ct, E as X, aW as pt, aw as dt } from "./index-HduGypr9.js";
5
+ import { t as Me, T as ke, V as F, r as Q, s as mt, u as vt, k as Se, v as ft, L as gt, w as ht, x as bt, y as yt, z as wt, F as _t, I as Ct, p as kt } from "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-CuWDdCiy.js";
6
+ import "./index.vue_vue_type_style_index_1_lang-DwvuVXW6.js";
7
7
  import "./index-BHtNKL1L.js";
8
- import { _ as ue, s as Pt } from "./index-DFbvbOsE.js";
9
- import "./index.vue_vue_type_style_index_1_lang-BHt4rvMd.js";
10
- import "./index-BoTEVRWS.js";
11
- import { f as xt, a as Dt } from "./animationData-Br4BCkiq.js";
12
- import { g as Tt, a as Rt, b as Vt, c as Mt, U as St, J as At } from "./urdfTree-B2Zs54qS.js";
8
+ import { _ as ue, s as Pt } from "./index-zZ9bfGNx.js";
9
+ import "./index.vue_vue_type_style_index_1_lang-9ANlnWKt.js";
10
+ import "./index-BZwQB2HO.js";
11
+ import { f as xt, a as Dt } from "./animationData-CMjNjOqc.js";
12
+ import { g as Tt, a as Rt, b as Vt, c as Mt, U as St, J as At } from "./urdfTree-CnkPddyT.js";
13
13
  import { _ as Xe } from "./_plugin-vue_export-helper-CHgC5LLL.js";
14
- import { g as zt, a as Ee, d as $t, c as Ft, e as Yt, b as Lt } from "./dataUtil-CJxHUail.js";
14
+ import { g as zt, a as Ee, d as $t, c as Ft, e as Yt, b as Lt } from "./dataUtil-D9l7-XhR.js";
15
15
  import { T as A } from "./svgIcon-D-_fXUBL.js";
16
16
  const H = 1e-3, ae = mt.degToRad, Ge = new ft({
17
17
  // 灰色
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),X=require("./workpieceTreePanel-Brforhya.cjs"),pe=require("./iconfont-Dsx_JtWY.cjs"),$=require("./index-Dv1G67_Q.cjs"),s=require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-BWh0GUiI.cjs");require("./index.vue_vue_type_style_index_1_lang-f2wxl9Ai.cjs");require("./index-BpPyaNFa.cjs");const Q=require("./index-C9GfFRyr.cjs");require("./index.vue_vue_type_style_index_1_lang-C2PJ2fvM.cjs");require("./index-YhB_cMji.cjs");const Ce=require("./animationData-rmZ0EGb8.cjs"),ne=require("./urdfTree-nXEMcLFV.cjs"),we=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),ee=require("./dataUtil-RzgUhlgJ.cjs"),M=require("./svgIcon-CUM54R6L.cjs"),Z=.001,H=s.MathUtils.degToRad,Ne=new s.MeshStandardMaterial({color:13421772,metalness:.3,roughness:.6,side:s.DoubleSide});function Me(V=.005,m=64){const f=new s.CatmullRomCurve3([new s.Vector3(0,0,0),new s.Vector3(0,0,0)]),n=new s.TubeGeometry(f,m,V,16,!1),g=Ne;return new s.Mesh(n,g)}const ke=V=>V.reduce((m,f)=>{let n=0;const g=f.Y??0,h=f.C??0,c=f.R??0;return g>0&&(n+=g),h>0&&c>0&&(n+=c*H(h)),m+n},0),Te=V=>{const m=[],f=V.Y??0,n=V.B??0,g=V.C??0,h=V.R??0,c={pos:new s.Vector3(0,0,0),localY:new s.Vector3(0,1,0),localX:new s.Vector3(1,0,0),localZ:new s.Vector3(0,0,1)};if(!f&&!g)return m;if(m.push(c.pos.clone()),n!==0){const C=new s.Matrix4().makeRotationAxis(c.localY,H(n));c.localX.applyMatrix4(C),c.localZ.applyMatrix4(C)}if(f>0&&(c.pos.add(c.localY.clone().multiplyScalar(f*Z)),m.push(c.pos.clone())),g>0&&h>0){const C=H(g),u=h*Z,_=c.pos.clone().add(c.localX.clone().multiplyScalar(-u)),r=Math.max(16,Math.ceil(g/5));for(let p=1;p<=r;p++){const a=C*p/r,d=new s.Matrix4().makeRotationAxis(c.localZ,a),b=c.localX.clone().multiplyScalar(u).applyMatrix4(d),E=_.clone().add(b);m.push(E)}}return m};function Se(V,m){const f=new s.Group;f.name="CompletePipe";const n={pos:new s.Vector3(0,0,0),localX:new s.Vector3(1,0,0),localY:new s.Vector3(0,1,0),localZ:new s.Vector3(0,0,1)};let g=0,h=1;for(let c=0;c<V.length;c++){const C=V[c],u=C.Y??0,_=C.B??0,r=C.C??0,p=C.R??0;if(_!==0){const a=new s.Matrix4().makeRotationAxis(n.localY,H(_));n.localX.applyMatrix4(a),n.localZ.applyMatrix4(a)}if(u>0){const a=n.pos.clone();n.pos.add(n.localY.clone().multiplyScalar(u*Z));const d=n.pos.clone(),i=Pe(a,d,m*Z);i.userData={segmentType:"straight",segmentIndex:g,frameIndex:c,length:u,frame:{Y:u,B:_,C:r,R:p}},i.name=`直段_${g}`,f.add(i);const b=a.clone();De(f,h,b,m*Z),g++}if(r>0&&p>0){const a=H(r),d=p*Z,i=[];i.push(n.pos.clone());const b=n.pos.clone().add(n.localX.clone().multiplyScalar(-d)),E=Math.max(16,Math.ceil(r/5));for(let P=1;P<=E;P++){const D=a*P/E,T=new s.Matrix4().makeRotationAxis(n.localZ,D),k=n.localX.clone().multiplyScalar(d).applyMatrix4(T),w=b.clone().add(k);i.push(w)}const v=Re(i,m*Z);v.userData={segmentType:"bend",segmentIndex:g,frameIndex:c,angle:r,radius:p,centerPoint:b.toArray(),frame:{Y:u,B:_,C:r,R:p}},v.name=`弯段_${g}`,f.add(v),Math.floor(i.length/2),i[0],n.pos=i[i.length-1].clone();const S=new s.Matrix4().makeRotationAxis(n.localZ,a);n.localY.applyMatrix4(S),n.localX.applyMatrix4(S),g++,h++}}return f}function De(V,m,f,n){const g=new s.Vector3(0,n*2,n*5),h=f.clone().add(g),c=[f,h],C=new s.BufferGeometry().setFromPoints(c),u=new s.LineDashedMaterial({color:16711680,dashSize:n*.5,gapSize:n*.3,linewidth:1}),_=new s.Line(C,u);_.computeLineDistances(),V.add(_);const r=document.createElement("canvas"),p=r.getContext("2d");r.width=128,r.height=128,p.clearRect(0,0,128,128),p.fillStyle="#FF0000",p.font="bold 80px Arial",p.textAlign="center",p.textBaseline="middle",p.fillText(m.toString(),64,64);const a=new s.CanvasTexture(r),d=new s.SpriteMaterial({map:a,transparent:!0,depthTest:!1,depthWrite:!1}),i=new s.Sprite(d),b=n*3;i.scale.set(b,b,1),i.position.copy(h),i.name=`Label_${m}`,i.userData={labelNumber:m},V.add(i)}function Pe(V,m,f){const n=new s.LineCurve3(V,m),g=new s.TubeGeometry(n,2,f,18,!1);return new s.Mesh(g,Ne)}function Re(V,m){const f=new s.CatmullRomCurve3(V,!1,"catmullrom",.01),n=new s.TubeGeometry(f,Math.max(16,V.length*2),m,18,!1);return new s.Mesh(n,Ne)}function _e(V,m,f,n,g,h=0){let c=m.slice(0,g+1);const C=m[g+1];if(C&&h>0){const i={...C,B:(C.B??0)*h,C:(C.C??0)*h};c.push(i)}const u=ke(c),_=Math.max(0,f-u),r=[];r.push(new s.Vector3(0,0,0));const p=new s.Vector3(0,_*Z,0);_>0&&r.push(p);let a={pos:p.clone(),localY:new s.Vector3(0,1,0),localX:new s.Vector3(1,0,0),localZ:new s.Vector3(0,0,1)};const d=[];for(let i=c.length-1;i>=0;i--){const b=c[i],E=Te(b);if(E.length>0){const v=E.map(T=>{const R=T.clone(),k=new s.Matrix4;return k.makeBasis(a.localX,a.localY,a.localZ),R.applyMatrix4(k),R.add(a.pos)});d.push(v);const S=v[v.length-1];a.pos=S.clone();const P=b.B??0,D=b.C??0;if(P!==0){const T=new s.Matrix4().makeRotationAxis(a.localY,H(P));a.localX.applyMatrix4(T),a.localZ.applyMatrix4(T)}if(D>0){const T=H(D),R=new s.Matrix4().makeRotationAxis(a.localZ,T);a.localY.applyMatrix4(R),a.localX.applyMatrix4(R)}}}for(const i of d)i.length>1&&r.push(...i.slice(1));r.length<2&&r.push(new s.Vector3(0,.001,0));try{const i=new s.CatmullRomCurve3(r,!1,"catmullrom",.01),b=new s.TubeGeometry(i,Math.max(2,r.length*4),n*Z,18,!1);V.geometry.dispose(),V.geometry=b}catch(i){console.error("管件更新失败",i)}}function xe(V,m,f,n=0){let g=V.slice(0,f+1);const h=V[f+1];if(h&&n>0){const a={...h,B:(h.B??0)*n,C:(h.C??0)*n};g.push(a)}const c=ke(g),C=Math.max(0,m-c),u=[];u.push(new s.Vector3(0,0,0));const _=new s.Vector3(0,C*Z,0);C>0&&u.push(_);let r={pos:_.clone(),localY:new s.Vector3(0,1,0),localX:new s.Vector3(1,0,0),localZ:new s.Vector3(0,0,1)};const p=[];for(let a=g.length-1;a>=0;a--){const d=g[a],i=Te(d);if(i.length>0){const b=i.map(P=>{const D=P.clone(),T=new s.Matrix4;return T.makeBasis(r.localX,r.localY,r.localZ),D.applyMatrix4(T),D.add(r.pos)});p.push(b);const E=b[b.length-1];r.pos=E.clone();const v=d.B??0,S=d.C??0;if(v!==0){const P=new s.Matrix4().makeRotationAxis(r.localY,H(v));r.localX.applyMatrix4(P),r.localZ.applyMatrix4(P)}if(S>0){const P=H(S),D=new s.Matrix4().makeRotationAxis(r.localZ,P);r.localY.applyMatrix4(D),r.localX.applyMatrix4(D)}}}for(const a of p)a.length>1&&u.push(...a.slice(1));return u.length<2&&u.push(new s.Vector3(0,.001,0)),u}function Ee(V,m,f,n,g,h,c,C=0,u=0){const _=g-u,r=xe(n,_,c,C);let a=xe(f,u,c,C);a.forEach(i=>i.y=-i.y),a.reverse();const d=[...a,...r];try{const i=new s.CatmullRomCurve3(d,!1,"catmullrom",.01),b=new s.TubeGeometry(i,Math.max(2,d.length*4),h*Z,18,!1);m.geometry.dispose(),V.geometry.dispose(),m.parent&&m.parent.remove(m),V.geometry=b}catch(i){console.error("管件更新失败",i)}}const Be={class:"panel-content"},ze={class:"action-bar"},Ae={class:"animation-controls"},$e={class:"control-row"},Fe={class:"control-row"},Ye={class:"frame-info"},Le={class:"control-row"},Ie={class:"progress-bar"},Ue={class:"dialog-footer"},je=e.defineComponent({__name:"animationPanel",props:{model:{},threeData:{}},emits:["getThreeData"],setup(V,{expose:m,emit:f}){const n=V,g=f,h=e.ref(),c=e.ref();e.watch(()=>n.threeData,l=>{const t=l==null?void 0:l.data;c.value=t==null?void 0:t.type},{immediate:!0});const C=async()=>{if(!sessionStorage.getItem("systemKey")){g("getThreeData");return}let t={};c.value===X.robotMode.SINGLE&&(t=await Ce.fetchSingleRobotAnimationData()),c.value===X.robotMode.DOUBLE&&(t=await Ce.fetchDoubleRobotAnimationData());const{initialPipeLength:o=0,pipeRadius:y=0,clampLength:N=0,animationData:x}=t;D.value=o,T.value=y,R.value=N,h.value=x;const O=$.cloneDeep(h.value),K=ce(F.value),q=(O==null?void 0:O["输出(动画数据)"])||[];u.value=q.length?q:[K]},u=e.ref([]),_=e.ref(!1),r=e.ref(""),p=e.ref(!1),a=e.ref(0),d=e.ref(0),i=e.ref(1e3);let b=!1;const E=e.ref(null),v=e.shallowRef(null),S=e.shallowRef(null),P=e.shallowRef(null),D=e.ref(0),T=e.ref(12.5),R=e.ref(30),k=e.ref([]),w=e.ref(null),I=e.computed(()=>n.model?ne.getNonFixedJoints(n.model).map(o=>o.name):[]),G=e.ref(["Y","B","C","R"]),F=e.computed(()=>[...I.value,...G.value]),Y=e.computed(()=>F.value.length>0?`请按以下格式粘贴数据 (第一行为表头,使用 Tab 分隔):
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),X=require("./workpieceTreePanel-DXyb_Wnw.cjs"),pe=require("./iconfont-BDfcbq2v.cjs"),$=require("./index-Dv1G67_Q.cjs"),s=require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-TDoJ17os.cjs");require("./index.vue_vue_type_style_index_1_lang-CrmWclPR.cjs");require("./index-BpPyaNFa.cjs");const Q=require("./index-uIVtG4RY.cjs");require("./index.vue_vue_type_style_index_1_lang-D4RvHwPS.cjs");require("./index-CC9RkSBT.cjs");const Ce=require("./animationData-C3-BiUgV.cjs"),ne=require("./urdfTree-CWStzmk2.cjs"),we=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),ee=require("./dataUtil-BFjWNDM1.cjs"),M=require("./svgIcon-CUM54R6L.cjs"),Z=.001,H=s.MathUtils.degToRad,Ne=new s.MeshStandardMaterial({color:13421772,metalness:.3,roughness:.6,side:s.DoubleSide});function Me(V=.005,m=64){const f=new s.CatmullRomCurve3([new s.Vector3(0,0,0),new s.Vector3(0,0,0)]),n=new s.TubeGeometry(f,m,V,16,!1),g=Ne;return new s.Mesh(n,g)}const ke=V=>V.reduce((m,f)=>{let n=0;const g=f.Y??0,h=f.C??0,c=f.R??0;return g>0&&(n+=g),h>0&&c>0&&(n+=c*H(h)),m+n},0),Te=V=>{const m=[],f=V.Y??0,n=V.B??0,g=V.C??0,h=V.R??0,c={pos:new s.Vector3(0,0,0),localY:new s.Vector3(0,1,0),localX:new s.Vector3(1,0,0),localZ:new s.Vector3(0,0,1)};if(!f&&!g)return m;if(m.push(c.pos.clone()),n!==0){const C=new s.Matrix4().makeRotationAxis(c.localY,H(n));c.localX.applyMatrix4(C),c.localZ.applyMatrix4(C)}if(f>0&&(c.pos.add(c.localY.clone().multiplyScalar(f*Z)),m.push(c.pos.clone())),g>0&&h>0){const C=H(g),u=h*Z,_=c.pos.clone().add(c.localX.clone().multiplyScalar(-u)),r=Math.max(16,Math.ceil(g/5));for(let p=1;p<=r;p++){const a=C*p/r,d=new s.Matrix4().makeRotationAxis(c.localZ,a),b=c.localX.clone().multiplyScalar(u).applyMatrix4(d),E=_.clone().add(b);m.push(E)}}return m};function Se(V,m){const f=new s.Group;f.name="CompletePipe";const n={pos:new s.Vector3(0,0,0),localX:new s.Vector3(1,0,0),localY:new s.Vector3(0,1,0),localZ:new s.Vector3(0,0,1)};let g=0,h=1;for(let c=0;c<V.length;c++){const C=V[c],u=C.Y??0,_=C.B??0,r=C.C??0,p=C.R??0;if(_!==0){const a=new s.Matrix4().makeRotationAxis(n.localY,H(_));n.localX.applyMatrix4(a),n.localZ.applyMatrix4(a)}if(u>0){const a=n.pos.clone();n.pos.add(n.localY.clone().multiplyScalar(u*Z));const d=n.pos.clone(),i=Pe(a,d,m*Z);i.userData={segmentType:"straight",segmentIndex:g,frameIndex:c,length:u,frame:{Y:u,B:_,C:r,R:p}},i.name=`直段_${g}`,f.add(i);const b=a.clone();De(f,h,b,m*Z),g++}if(r>0&&p>0){const a=H(r),d=p*Z,i=[];i.push(n.pos.clone());const b=n.pos.clone().add(n.localX.clone().multiplyScalar(-d)),E=Math.max(16,Math.ceil(r/5));for(let P=1;P<=E;P++){const D=a*P/E,T=new s.Matrix4().makeRotationAxis(n.localZ,D),k=n.localX.clone().multiplyScalar(d).applyMatrix4(T),w=b.clone().add(k);i.push(w)}const v=Re(i,m*Z);v.userData={segmentType:"bend",segmentIndex:g,frameIndex:c,angle:r,radius:p,centerPoint:b.toArray(),frame:{Y:u,B:_,C:r,R:p}},v.name=`弯段_${g}`,f.add(v),Math.floor(i.length/2),i[0],n.pos=i[i.length-1].clone();const S=new s.Matrix4().makeRotationAxis(n.localZ,a);n.localY.applyMatrix4(S),n.localX.applyMatrix4(S),g++,h++}}return f}function De(V,m,f,n){const g=new s.Vector3(0,n*2,n*5),h=f.clone().add(g),c=[f,h],C=new s.BufferGeometry().setFromPoints(c),u=new s.LineDashedMaterial({color:16711680,dashSize:n*.5,gapSize:n*.3,linewidth:1}),_=new s.Line(C,u);_.computeLineDistances(),V.add(_);const r=document.createElement("canvas"),p=r.getContext("2d");r.width=128,r.height=128,p.clearRect(0,0,128,128),p.fillStyle="#FF0000",p.font="bold 80px Arial",p.textAlign="center",p.textBaseline="middle",p.fillText(m.toString(),64,64);const a=new s.CanvasTexture(r),d=new s.SpriteMaterial({map:a,transparent:!0,depthTest:!1,depthWrite:!1}),i=new s.Sprite(d),b=n*3;i.scale.set(b,b,1),i.position.copy(h),i.name=`Label_${m}`,i.userData={labelNumber:m},V.add(i)}function Pe(V,m,f){const n=new s.LineCurve3(V,m),g=new s.TubeGeometry(n,2,f,18,!1);return new s.Mesh(g,Ne)}function Re(V,m){const f=new s.CatmullRomCurve3(V,!1,"catmullrom",.01),n=new s.TubeGeometry(f,Math.max(16,V.length*2),m,18,!1);return new s.Mesh(n,Ne)}function _e(V,m,f,n,g,h=0){let c=m.slice(0,g+1);const C=m[g+1];if(C&&h>0){const i={...C,B:(C.B??0)*h,C:(C.C??0)*h};c.push(i)}const u=ke(c),_=Math.max(0,f-u),r=[];r.push(new s.Vector3(0,0,0));const p=new s.Vector3(0,_*Z,0);_>0&&r.push(p);let a={pos:p.clone(),localY:new s.Vector3(0,1,0),localX:new s.Vector3(1,0,0),localZ:new s.Vector3(0,0,1)};const d=[];for(let i=c.length-1;i>=0;i--){const b=c[i],E=Te(b);if(E.length>0){const v=E.map(T=>{const R=T.clone(),k=new s.Matrix4;return k.makeBasis(a.localX,a.localY,a.localZ),R.applyMatrix4(k),R.add(a.pos)});d.push(v);const S=v[v.length-1];a.pos=S.clone();const P=b.B??0,D=b.C??0;if(P!==0){const T=new s.Matrix4().makeRotationAxis(a.localY,H(P));a.localX.applyMatrix4(T),a.localZ.applyMatrix4(T)}if(D>0){const T=H(D),R=new s.Matrix4().makeRotationAxis(a.localZ,T);a.localY.applyMatrix4(R),a.localX.applyMatrix4(R)}}}for(const i of d)i.length>1&&r.push(...i.slice(1));r.length<2&&r.push(new s.Vector3(0,.001,0));try{const i=new s.CatmullRomCurve3(r,!1,"catmullrom",.01),b=new s.TubeGeometry(i,Math.max(2,r.length*4),n*Z,18,!1);V.geometry.dispose(),V.geometry=b}catch(i){console.error("管件更新失败",i)}}function xe(V,m,f,n=0){let g=V.slice(0,f+1);const h=V[f+1];if(h&&n>0){const a={...h,B:(h.B??0)*n,C:(h.C??0)*n};g.push(a)}const c=ke(g),C=Math.max(0,m-c),u=[];u.push(new s.Vector3(0,0,0));const _=new s.Vector3(0,C*Z,0);C>0&&u.push(_);let r={pos:_.clone(),localY:new s.Vector3(0,1,0),localX:new s.Vector3(1,0,0),localZ:new s.Vector3(0,0,1)};const p=[];for(let a=g.length-1;a>=0;a--){const d=g[a],i=Te(d);if(i.length>0){const b=i.map(P=>{const D=P.clone(),T=new s.Matrix4;return T.makeBasis(r.localX,r.localY,r.localZ),D.applyMatrix4(T),D.add(r.pos)});p.push(b);const E=b[b.length-1];r.pos=E.clone();const v=d.B??0,S=d.C??0;if(v!==0){const P=new s.Matrix4().makeRotationAxis(r.localY,H(v));r.localX.applyMatrix4(P),r.localZ.applyMatrix4(P)}if(S>0){const P=H(S),D=new s.Matrix4().makeRotationAxis(r.localZ,P);r.localY.applyMatrix4(D),r.localX.applyMatrix4(D)}}}for(const a of p)a.length>1&&u.push(...a.slice(1));return u.length<2&&u.push(new s.Vector3(0,.001,0)),u}function Ee(V,m,f,n,g,h,c,C=0,u=0){const _=g-u,r=xe(n,_,c,C);let a=xe(f,u,c,C);a.forEach(i=>i.y=-i.y),a.reverse();const d=[...a,...r];try{const i=new s.CatmullRomCurve3(d,!1,"catmullrom",.01),b=new s.TubeGeometry(i,Math.max(2,d.length*4),h*Z,18,!1);m.geometry.dispose(),V.geometry.dispose(),m.parent&&m.parent.remove(m),V.geometry=b}catch(i){console.error("管件更新失败",i)}}const Be={class:"panel-content"},ze={class:"action-bar"},Ae={class:"animation-controls"},$e={class:"control-row"},Fe={class:"control-row"},Ye={class:"frame-info"},Le={class:"control-row"},Ie={class:"progress-bar"},Ue={class:"dialog-footer"},je=e.defineComponent({__name:"animationPanel",props:{model:{},threeData:{}},emits:["getThreeData"],setup(V,{expose:m,emit:f}){const n=V,g=f,h=e.ref(),c=e.ref();e.watch(()=>n.threeData,l=>{const t=l==null?void 0:l.data;c.value=t==null?void 0:t.type},{immediate:!0});const C=async()=>{if(!sessionStorage.getItem("systemKey")){g("getThreeData");return}let t={};c.value===X.robotMode.SINGLE&&(t=await Ce.fetchSingleRobotAnimationData()),c.value===X.robotMode.DOUBLE&&(t=await Ce.fetchDoubleRobotAnimationData());const{initialPipeLength:o=0,pipeRadius:y=0,clampLength:N=0,animationData:x}=t;D.value=o,T.value=y,R.value=N,h.value=x;const O=$.cloneDeep(h.value),K=ce(F.value),q=(O==null?void 0:O["输出(动画数据)"])||[];u.value=q.length?q:[K]},u=e.ref([]),_=e.ref(!1),r=e.ref(""),p=e.ref(!1),a=e.ref(0),d=e.ref(0),i=e.ref(1e3);let b=!1;const E=e.ref(null),v=e.shallowRef(null),S=e.shallowRef(null),P=e.shallowRef(null),D=e.ref(0),T=e.ref(12.5),R=e.ref(30),k=e.ref([]),w=e.ref(null),I=e.computed(()=>n.model?ne.getNonFixedJoints(n.model).map(o=>o.name):[]),G=e.ref(["Y","B","C","R"]),F=e.computed(()=>[...I.value,...G.value]),Y=e.computed(()=>F.value.length>0?`请按以下格式粘贴数据 (第一行为表头,使用 Tab 分隔):
2
2
  ${F.value.join(" ")}
3
3
  0 0 0 ...
4
4
  1 2 3 ...`:"请先加载模型。"),J=()=>u.value.map(l=>({Y:parseFloat(l.Y)||0,B:parseFloat(l.B)||0,C:parseFloat(l.C)||0,R:parseFloat(l.R)||0})),U=()=>{const l=[],t=[];return u.value.forEach(o=>{const{Y1:y,B1:N,C1:x,R1:O,Y2:K,B2:q,C2:ie,R2:A}=o;l.push({Y:parseFloat(y)||0,B:parseFloat(N)||0,C:parseFloat(x)||0,R:parseFloat(O)||0}),t.push({Y:parseFloat(K)||0,B:parseFloat(q)||0,C:parseFloat(ie)||0,R:parseFloat(A)||0})}),{posPipeYbcr:l,negPipeYbcr:t}},L=(l=0,t=0)=>{if(v.value&&S.value){const o=U();Ee(v.value,S.value,o.posPipeYbcr,o.negPipeYbcr,D.value,T.value,l,t,R.value)}else if(v.value){const o=J();_e(v.value,o,D.value,T.value,l,t)}},W=l=>{if(l<0||l>=u.value.length){console.error(`帧索引 ${l} 超出范围`);return}const t=u.value[l];if(console.log(`应用第 ${l} 帧数据 ${t}`),a.value=l,E.value){const o={};I.value.forEach(y=>{const N=parseFloat(t[y]);isNaN(N)||(o[y]=N)}),E.value.setJointAngles(o)}L(l,0)},B=async()=>{if(u.value.length===0){$.ElMessage.error("无法播放动画:无数据");return}if(!p.value){p.value=!0,b=!1,u.value.length-1===a.value&&(a.value=0);try{for(let l=a.value+1;l<u.value.length&&!b;l++){a.value=l;const t=u.value[l],o={};E.value&&I.value.forEach(y=>{const N=parseFloat(t[y]);isNaN(N)||(o[y]=N)}),E.value?await E.value.animateToState(o,i.value,y=>{d.value=(l+y)/u.value.length*100,L(l-1,y)}):(await new Promise(y=>setTimeout(y,i.value)),d.value=(l+1)/u.value.length*100)}b||$.ElMessage.success("动画播放完成")}catch(l){console.error("动画播放出错:",l),$.ElMessage.error("动画播放出错")}finally{p.value=!1,d.value=0}}},z=()=>{b=!0,p.value=!1,d.value=0,$.ElMessage.info("动画已停止")},ae=()=>{a.value=0},j=()=>{if(v.value&&S.value){const l=U();Ee(v.value,S.value,l.posPipeYbcr,l.negPipeYbcr,D.value,T.value,-1,0,R.value)}else if(v.value){const l=J();_e(v.value,l,D.value,T.value,-1,0)}},oe=()=>{E.value&&E.value.resetToZero(),j(),ae(),$.ElMessage.success("机器人和管件已重置")},me=l=>`第 ${l+1} 帧`,ve=l=>{p.value&&z(),W(l)},fe=()=>{p.value&&z(),!(a.value+1>=u.value.length)&&W(a.value+1)},ge=()=>{p.value&&z(),a.value!==0&&W(a.value-1)},se=()=>{P.value&&(P.value.visible=!0),v.value&&v.value.parent&&v.value.parent.remove(v.value),P.value=null,v.value=null,S.value=null},ce=l=>l==null?void 0:l.reduce((t,o)=>(t[o]="0",t),{});e.watch(F,(l,t)=>{if(JSON.stringify(l)!==JSON.stringify(t))if(l.length>0){const o=ce(l);u.value=[o]}else u.value=[]},{immediate:!0});const re=e.ref(0),he=l=>{re.value=l},ue=(l,t)=>{if(!l||!t)return;const o=ne.getTargetJoint(l,t),y=Me();y.visible=!1,o==null||o.add(y)},te=l=>{E.value=new X.URDFRobotController(l),k.value=ne.getAllLinkName(l),w.value="Pipe_Joint"},le=()=>{E.value=null,k.value=[],w.value=null},Ve=l=>{te(l),ue(l,w.value),he(re.value+1),oe()};e.watch(()=>n.model,l=>{if(se(),l){Ve(l);return}le()},{immediate:!0});const de=l=>{var o,y;const t=new s.Mesh(l.geometry.clone(),l.material);return t.name="managed_pipe_clone",(y=(o=l==null?void 0:l.parent)==null?void 0:o.add)==null||y.call(o,t),t.position.copy(l.position),t.rotation.copy(l.rotation),t.scale.copy(l.scale),t};e.watch([w,R,D,re],([l,t])=>{if(se(),n.model&&l){const o=ne.getMeshFromJoint(n.model,l);if(console.log(o,"meshToReplace"),o&&o.parent){P.value=o,o.visible=!1;const y=de(o);if(c.value===X.robotMode.SINGLE&&(y.position.y-=t*.001),v.value=y,c.value===X.robotMode.DOUBLE){const N=de(o);S.value=N}L(0,0)}else l&&console.warn(`在 link '${l}' 中未找到可替换的网格或其没有父级。`)}});const be=async()=>{if(F.value.length===0){$.ElMessage.warning("没有可导出的表头");return}const l=F.value.join(" ");try{await navigator.clipboard.writeText(l),$.ElMessage.success("表头已成功复制到剪贴板!")}catch(t){console.error("复制失败:",t),$.ElMessage.error("复制失败,请检查浏览器权限或手动复制。")}},ye=()=>{if(!r.value.trim()){$.ElMessage.warning("导入内容不能为空");return}const l=r.value.trim().split(`
@@ -1,16 +1,16 @@
1
- import { defineComponent as we, ref as u, computed as z, watch as Z, onUnmounted as He, resolveComponent as q, createElementBlock as M, openBlock as U, createElementVNode as l, createCommentVNode as G, createVNode as i, toDisplayString as B, Fragment as Ke, renderList as We, withCtx as ne, inject as he, shallowRef as ue, onMounted as Ye, nextTick as Ze, onBeforeUnmount as qe, withDirectives as $, vShow as W, renderSlot as Y, unref as d, createBlock as ye, isRef as re, vModelRadio as de } from "vue";
2
- import { az as Qe } from "./index.vue_vue_type_style_index_1_lang-WD8HOZyf.js";
3
- import { U as et, s as ke, u as tt, a as lt, W as at } from "./workpieceTreePanel-CXD_XizT.js";
4
- import { u as nt, a as ot, b as st } from "./iconfont-J7S-v_zE.js";
5
- import { c as it, E as y } from "./index-7pDDKkwc.js";
6
- import "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-DGl2lQmW.js";
7
- import { _ as pe } from "./index-DFbvbOsE.js";
8
- import { g as ut, b as rt, U as dt, J as ct, d as vt } from "./urdfTree-B2Zs54qS.js";
1
+ import { defineComponent as we, ref as u, computed as U, watch as Z, onUnmounted as He, resolveComponent as q, createElementBlock as M, openBlock as z, createElementVNode as l, createCommentVNode as G, createVNode as i, toDisplayString as B, Fragment as Ke, renderList as We, withCtx as ne, inject as he, shallowRef as ue, onMounted as Ye, nextTick as Ze, onBeforeUnmount as qe, withDirectives as $, vShow as W, renderSlot as Y, unref as d, createBlock as ye, isRef as re, vModelRadio as de } from "vue";
2
+ import { aA as Qe } from "./index.vue_vue_type_style_index_1_lang-DwvuVXW6.js";
3
+ import { U as et, s as ke, u as tt, a as lt, W as at } from "./workpieceTreePanel-BvhFt3Xw.js";
4
+ import { u as nt, a as ot, b as st } from "./iconfont-B9Cj3DQM.js";
5
+ import { c as it, E as y } from "./index-HduGypr9.js";
6
+ import "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-CuWDdCiy.js";
7
+ import { _ as pe } from "./index-zZ9bfGNx.js";
8
+ import { g as ut, b as rt, U as dt, J as ct, d as vt } from "./urdfTree-CnkPddyT.js";
9
9
  import { _ as Ce } from "./_plugin-vue_export-helper-CHgC5LLL.js";
10
10
  import { T as h } from "./svgIcon-D-_fXUBL.js";
11
- import { i as pt } from "./animationData-Br4BCkiq.js";
12
- import { O as mt } from "./MTLLoader-j7rSXeZy.js";
13
- import { u as ft, h as gt } from "./index-DcT0aYIX.js";
11
+ import { i as pt } from "./animationData-CMjNjOqc.js";
12
+ import { O as mt } from "./MTLLoader-BreJsr54.js";
13
+ import { u as ft, h as gt } from "./index-C1lZkQG-.js";
14
14
  const bt = { class: "panel-content" }, ht = { class: "action-bar" }, yt = {
15
15
  key: 0,
16
16
  class: "animation-controls"
@@ -25,12 +25,12 @@ const bt = { class: "panel-content" }, ht = { class: "action-bar" }, yt = {
25
25
  xyzbcList: {}
26
26
  },
27
27
  setup(E, { expose: Q }) {
28
- const T = E, n = u([]), V = u(!1), L = u(""), f = u("stopped"), p = u(0), x = u(0), J = u(10), D = u(null);
28
+ const T = E, n = u([]), V = u(!1), A = u(""), f = u("stopped"), p = u(0), x = u(0), J = u(10), D = u(null);
29
29
  let k = 0;
30
- const ee = u([]), R = z(() => T.model ? ut(T.model).map((g) => g.name) : []), j = z(() => [...R.value]), ce = z(() => j.value.length > 0 ? `请按以下格式粘贴数据 (第一行为表头,使用 Tab 分隔):
31
- ${j.value.join(" ")}
30
+ const ee = u([]), R = U(() => T.model ? ut(T.model).map((g) => g.name) : []), L = U(() => [...R.value]), ce = U(() => L.value.length > 0 ? `请按以下格式粘贴数据 (第一行为表头,使用 Tab 分隔):
31
+ ${L.value.join(" ")}
32
32
  0 0 0 ...
33
- 1 2 3 ...` : "请先加载模型。"), X = z(() => n.value[p.value] || {});
33
+ 1 2 3 ...` : "请先加载模型。"), X = U(() => n.value[p.value] || {});
34
34
  Z(() => T.model, (s) => {
35
35
  s ? (D.value = new et(s), ee.value = rt(s), p.value = 0) : (D.value = null, ee.value = []);
36
36
  }, { immediate: !0 });
@@ -74,7 +74,7 @@ ${j.value.join(" ")}
74
74
  } catch (a) {
75
75
  console.error("动画播放出错:", a), y.error("动画播放出错"), f.value = "stopped";
76
76
  }
77
- }, A = () => {
77
+ }, j = () => {
78
78
  if (n.value.length === 0) {
79
79
  y.error("无动画数据");
80
80
  return;
@@ -85,15 +85,15 @@ ${j.value.join(" ")}
85
85
  }, O = () => {
86
86
  k++, f.value = "stopped", p.value = 0, x.value = 0, H(0), y.info("动画已停止并重置");
87
87
  }, _ = () => {
88
- f.value === "playing" ? P() : A();
88
+ f.value === "playing" ? P() : j();
89
89
  }, te = (s) => {
90
90
  k++, f.value = "paused", H(s);
91
91
  }, le = () => {
92
- if (!L.value.trim()) {
92
+ if (!A.value.trim()) {
93
93
  y.warning("导入内容不能为空");
94
94
  return;
95
95
  }
96
- const s = L.value.trim().split(`
96
+ const s = A.value.trim().split(`
97
97
  `).filter((c) => c.trim() !== "");
98
98
  if (s.length < 2) {
99
99
  y.error("导入数据至少需要包含表头行和一行数据");
@@ -101,21 +101,21 @@ ${j.value.join(" ")}
101
101
  }
102
102
  const a = s[0].split(" ").map((c) => c.trim()), g = {};
103
103
  if (a.forEach((c, m) => {
104
- j.value.includes(c) && (g[m] = c);
104
+ L.value.includes(c) && (g[m] = c);
105
105
  }), Object.keys(g).length === 0) {
106
106
  y.error("没有找到匹配的表头,请检查表头名称是否正确");
107
107
  return;
108
108
  }
109
109
  const r = s.slice(1).map((c) => {
110
110
  const m = c.split(" "), S = {};
111
- return j.value.forEach((K) => {
111
+ return L.value.forEach((K) => {
112
112
  S[K] = "0";
113
113
  }), Object.entries(g).forEach(([K, I]) => {
114
114
  const ae = m[parseInt(K)];
115
115
  ae !== void 0 && ae.trim() !== "" && (S[I] = ae.trim());
116
116
  }), S;
117
117
  });
118
- r.length > 0 ? (n.value = r, y.success(`成功导入 ${r.length} 行数据!`), V.value = !1, L.value = "", O()) : y.error("未能解析到有效数据,请检查格式。");
118
+ r.length > 0 ? (n.value = r, y.success(`成功导入 ${r.length} 行数据!`), V.value = !1, A.value = "", O()) : y.error("未能解析到有效数据,请检查格式。");
119
119
  };
120
120
  Z(() => T.xyzbcList, () => {
121
121
  T.xyzbcList && (n.value = it(T.xyzbcList));
@@ -125,22 +125,22 @@ ${j.value.join(" ")}
125
125
  const N = (s) => `第 ${s + 1} 帧`;
126
126
  return Q({
127
127
  handlePlayPause: _,
128
- playAnimation: A,
128
+ playAnimation: j,
129
129
  pauseAnimation: P,
130
130
  stopAnimation: O
131
131
  }), He(() => {
132
132
  k++;
133
133
  }), (s, a) => {
134
134
  const g = q("el-input-number"), C = q("el-slider"), r = q("el-input"), c = q("el-dialog");
135
- return U(), M("div", bt, [
135
+ return z(), M("div", bt, [
136
136
  l("div", ht, [
137
137
  i(pe, {
138
138
  onClick: a[0] || (a[0] = (m) => V.value = !0),
139
- disabled: j.value.length === 0,
139
+ disabled: L.value.length === 0,
140
140
  modelValue: "导入数据"
141
141
  }, null, 8, ["disabled"])
142
142
  ]),
143
- n.value.length > 0 ? (U(), M("div", yt, [
143
+ n.value.length > 0 ? (z(), M("div", yt, [
144
144
  l("div", kt, [
145
145
  a[6] || (a[6] = l("label", null, "帧间隔 (ms):", -1)),
146
146
  i(g, {
@@ -174,11 +174,11 @@ ${j.value.join(" ")}
174
174
  l("div", null, [
175
175
  a[9] || (a[9] = l("label", null, "当前帧数据:", -1)),
176
176
  l("div", null, [
177
- X.value ? (U(!0), M(Ke, { key: 0 }, We(X.value, (m, S) => (U(), M("div", { key: S }, B(S) + ": " + B(m), 1))), 128)) : G("", !0)
177
+ X.value ? (z(!0), M(Ke, { key: 0 }, We(X.value, (m, S) => (z(), M("div", { key: S }, B(S) + ": " + B(m), 1))), 128)) : G("", !0)
178
178
  ])
179
179
  ])
180
180
  ])) : G("", !0),
181
- n.value.length === 0 ? (U(), M("div", xt, a[10] || (a[10] = [
181
+ n.value.length === 0 ? (z(), M("div", xt, a[10] || (a[10] = [
182
182
  l("p", null, "请先导入数据", -1)
183
183
  ]))) : G("", !0),
184
184
  i(c, {
@@ -203,8 +203,8 @@ ${j.value.join(" ")}
203
203
  default: ne(() => [
204
204
  a[11] || (a[11] = l("p", { class: "import-instructions" }, " 请从Excel或CSV中复制数据 (首行为表头, Tab分隔) ", -1)),
205
205
  i(r, {
206
- modelValue: L.value,
207
- "onUpdate:modelValue": a[3] || (a[3] = (m) => L.value = m),
206
+ modelValue: A.value,
207
+ "onUpdate:modelValue": a[3] || (a[3] = (m) => A.value = m),
208
208
  type: "textarea",
209
209
  rows: 10,
210
210
  placeholder: ce.value
@@ -216,7 +216,7 @@ ${j.value.join(" ")}
216
216
  ]);
217
217
  };
218
218
  }
219
- }), Pe = /* @__PURE__ */ Ce($t, [["__scopeId", "data-v-06bc34b3"]]), zt = async (E) => await new mt().loadAsync(E), Ut = async (E) => await zt(E), Tt = { class: "obj-viewer-container" }, Vt = { class: "buttonGroup-top" }, Lt = { class: "buttonGroup-topLeft" }, jt = { class: "buttonGroup-left" }, At = { class: "buttonGroup-right" }, Nt = { class: "buttonGroup-bottom" }, Dt = { class: "top-panel" }, Rt = { class: "panel-header" }, Ot = { class: "panel-body" }, St = { class: "left-panel" }, Ft = { class: "panel-header" }, Mt = { class: "panel-body" }, Bt = {
219
+ }), Pe = /* @__PURE__ */ Ce($t, [["__scopeId", "data-v-06bc34b3"]]), Ut = async (E) => await new mt().loadAsync(E), zt = async (E) => await Ut(E), Tt = { class: "obj-viewer-container" }, Vt = { class: "buttonGroup-top" }, At = { class: "buttonGroup-topLeft" }, Lt = { class: "buttonGroup-left" }, jt = { class: "buttonGroup-right" }, Nt = { class: "buttonGroup-bottom" }, Dt = { class: "top-panel" }, Rt = { class: "panel-header" }, Ot = { class: "panel-body" }, St = { class: "left-panel" }, Ft = { class: "panel-header" }, Mt = { class: "panel-body" }, Bt = {
220
220
  key: 1,
221
221
  class: "clipping-content"
222
222
  }, Et = { class: "radio-group" }, Jt = { class: "radio-label" }, It = { class: "radio-label" }, Gt = { class: "radio-label" }, Xt = { class: "radio-label" }, Ht = { class: "right-panel" }, Kt = { class: "panel-header" }, Wt = { class: "panel-body" }, Yt = {
@@ -230,17 +230,17 @@ ${j.value.join(" ")}
230
230
  },
231
231
  emits: ["getAnimationData", "getThreeData"],
232
232
  setup(E, { emit: Q }) {
233
- const T = Q, n = E, V = he("setManagementPageTitle"), L = he("setManagementPageVisible"), f = z(() => {
233
+ const T = Q, n = E, V = he("setManagementPageTitle"), A = he("setManagementPageVisible"), f = U(() => {
234
234
  var e, o;
235
235
  return (o = (e = n == null ? void 0 : n.threeData) == null ? void 0 : e.data) == null ? void 0 : o.machine;
236
- }), p = z(() => {
236
+ }), p = U(() => {
237
237
  var e, o;
238
238
  return (o = (e = n == null ? void 0 : n.threeData) == null ? void 0 : e.data) == null ? void 0 : o.workpieceInfo;
239
- }), x = z(() => {
239
+ }), x = U(() => {
240
240
  var e, o;
241
241
  return (o = (e = n == null ? void 0 : n.threeData) == null ? void 0 : e.data) == null ? void 0 : o.knife;
242
242
  }), J = u([]), D = async (t) => {
243
- !t || !t.isExtra || (await k(t), V == null || V(t == null ? void 0 : t.pageName), L == null || L(!0));
243
+ !t || !t.isExtra || (await k(t), V == null || V(t == null ? void 0 : t.pageName), A == null || A(!0));
244
244
  }, k = ft(async (t) => {
245
245
  await gt();
246
246
  const { mainKey: e, baseMenuPath: o } = t || {};
@@ -312,7 +312,7 @@ ${j.value.join(" ")}
312
312
  immediate: !0
313
313
  }
314
314
  );
315
- const ee = u([]), R = z(() => {
315
+ const ee = u([]), R = U(() => {
316
316
  var e, o;
317
317
  return (o = (e = n == null ? void 0 : n.threeData) == null ? void 0 : e.data) == null ? void 0 : o.csvUrl;
318
318
  });
@@ -324,10 +324,10 @@ ${j.value.join(" ")}
324
324
  }, {
325
325
  immediate: !0
326
326
  });
327
- const j = z(() => {
327
+ const L = U(() => {
328
328
  var e, o;
329
329
  return (o = (e = n == null ? void 0 : n.threeData) == null ? void 0 : e.data) == null ? void 0 : o.bladeObjUrl;
330
- }), ce = u(ke.ROBOT), X = u(null), H = u(!1), oe = u(""), A = u(!1), P = u(""), O = u(!1), _ = u(""), te = u(!1), le = u(""), N = ue(null), s = u("叶片模型"), a = ue(null), g = ue(null), C = ue(null), r = u(Pe), {
330
+ }), ce = u(ke.ROBOT), X = u(null), H = u(!1), oe = u(""), j = u(!1), P = u(""), O = u(!1), _ = u(""), te = u(!1), le = u(""), N = ue(null), s = u("叶片模型"), a = ue(null), g = ue(null), C = ue(null), r = u(Pe), {
331
331
  currentModels: c,
332
332
  resetView: m,
333
333
  initThreeJS: S,
@@ -342,12 +342,12 @@ ${j.value.join(" ")}
342
342
  c,
343
343
  H,
344
344
  oe
345
- ), { isAnimating: fe, toggleAnimation: ze, stopAnimation: Ue } = ot(I, c), { isClipping: Te, activeClippingAxis: w, toggleClipping: Ve, updateClippingPlanes: F } = st(I, c), { initRaycaster: Le, selectedObject3D: je, setSelectedObjVisible: Ae, updatePosition: Ne, updateRotation: De, dispose: Re } = tt(X, I, c), Oe = () => {
345
+ ), { isAnimating: fe, toggleAnimation: Ue, stopAnimation: ze } = ot(I, c), { isClipping: Te, activeClippingAxis: w, toggleClipping: Ve, updateClippingPlanes: F } = st(I, c), { initRaycaster: Ae, selectedObject3D: Le, setSelectedObjVisible: je, updatePosition: Ne, updateRotation: De, dispose: Re } = tt(X, I, c), Oe = () => {
346
346
  _e();
347
- }, Se = z(() => ce.value === ke.ROBOT), Fe = (t) => {
347
+ }, Se = U(() => ce.value === ke.ROBOT), Fe = (t) => {
348
348
  le.value = t, te.value = !0;
349
349
  }, se = (t) => {
350
- A.value = !0, P.value = t, t === "剖面视图" && !Te.value && Ve();
350
+ j.value = !0, P.value = t, t === "剖面视图" && !Te.value && Ve();
351
351
  }, ve = (t) => {
352
352
  O.value = !0, _.value = t, t === "动画仿真" && T("getAnimationData");
353
353
  }, Me = () => {
@@ -361,8 +361,8 @@ ${j.value.join(" ")}
361
361
  (t = r.value) == null || t.stopAnimation();
362
362
  }, Je = (t, e) => vt(t, e), Ie = async (t) => {
363
363
  const e = Je(t, s.value);
364
- if (g.value = e, console.log("bladeObjUrl", j.value), e && e.parent && j.value) {
365
- const o = await Ut(j.value);
364
+ if (g.value = e, console.log("bladeObjUrl", L.value), e && e.parent && L.value) {
365
+ const o = await zt(L.value);
366
366
  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, a.value = o;
367
367
  } else
368
368
  s.value && console.warn(`在 Blade '${s.value}' 中未找到可替换的网格或其没有父级。`);
@@ -383,14 +383,14 @@ ${j.value.join(" ")}
383
383
  immediate: !0,
384
384
  deep: !0
385
385
  }), Z(N, (t) => {
386
- me(t ? [t] : []), Le();
386
+ me(t ? [t] : []), Ae();
387
387
  });
388
388
  const Ge = () => {
389
389
  S(), window.addEventListener("resize", K);
390
390
  const t = I();
391
391
  C.value = t.scene;
392
392
  }, Xe = () => {
393
- P.value = "", _.value = "", window.removeEventListener("resize", K), fe.value && Ue(), ae(), Re();
393
+ P.value = "", _.value = "", window.removeEventListener("resize", K), fe.value && ze(), ae(), Re();
394
394
  };
395
395
  return Ye(async () => {
396
396
  await Ze();
@@ -403,7 +403,7 @@ ${j.value.join(" ")}
403
403
  Xe();
404
404
  }), (t, e) => {
405
405
  const o = q("el-scrollbar"), ie = q("PipeAnalysisPanel");
406
- return U(), M("div", Tt, [
406
+ return z(), M("div", Tt, [
407
407
  $(l("div", {
408
408
  ref_key: "threejsContainer",
409
409
  ref: X,
@@ -415,7 +415,7 @@ ${j.value.join(" ")}
415
415
  Y(t.$slots, "button-top", { switchTopPanel: Fe }, void 0, !0),
416
416
  Y(t.$slots, "logout", {}, void 0, !0)
417
417
  ]),
418
- l("div", Lt, [
418
+ l("div", At, [
419
419
  i(h, {
420
420
  name: "viewReset",
421
421
  size: "24",
@@ -435,7 +435,7 @@ ${j.value.join(" ")}
435
435
  i(h, {
436
436
  name: "lookAround",
437
437
  size: "24",
438
- onClick: d(ze),
438
+ onClick: d(Ue),
439
439
  title: d(fe) ? "停止动画" : "动画视图"
440
440
  }, null, 8, ["onClick", "title"]),
441
441
  i(h, {
@@ -446,30 +446,30 @@ ${j.value.join(" ")}
446
446
  title: "显隐坐标轴"
447
447
  }, null, 8, ["active"])
448
448
  ]),
449
- l("div", jt, [
449
+ l("div", Lt, [
450
450
  Y(t.$slots, "button-left", { switchRightPanel: se }, void 0, !0),
451
451
  i(h, {
452
452
  name: "jiegoushu",
453
453
  size: "24",
454
454
  onClick: e[0] || (e[0] = (b) => se("场景树")),
455
- active: A.value && P.value === "场景树",
455
+ active: j.value && P.value === "场景树",
456
456
  title: "场景树"
457
457
  }, null, 8, ["active"]),
458
458
  i(h, {
459
459
  name: "clipping",
460
460
  size: "24",
461
461
  onClick: e[1] || (e[1] = (b) => se("剖面视图")),
462
- active: A.value && P.value === "剖面视图",
462
+ active: j.value && P.value === "剖面视图",
463
463
  title: "剖面视图"
464
464
  }, null, 8, ["active"]),
465
465
  i(h, {
466
466
  name: "donghuafangzhen",
467
467
  size: "24",
468
468
  onClick: e[2] || (e[2] = (b) => se("工件树")),
469
- active: A.value && P.value === "工件树"
469
+ active: j.value && P.value === "工件树"
470
470
  }, null, 8, ["active"])
471
471
  ]),
472
- l("div", At, [
472
+ l("div", jt, [
473
473
  Y(t.$slots, "button-right", { switchRightPanel: ve }, void 0, !0),
474
474
  i(h, {
475
475
  name: "jichuangxuanze",
@@ -533,7 +533,7 @@ ${j.value.join(" ")}
533
533
  l("span", null, B(P.value), 1),
534
534
  l("span", {
535
535
  class: "close",
536
- onClick: e[6] || (e[6] = (b) => A.value = !1)
536
+ onClick: e[6] || (e[6] = (b) => j.value = !1)
537
537
  }, " X ")
538
538
  ]),
539
539
  l("div", Mt, [
@@ -541,13 +541,13 @@ ${j.value.join(" ")}
541
541
  default: ne(() => {
542
542
  var b;
543
543
  return [
544
- P.value === "场景树" ? (U(), ye(dt, {
544
+ P.value === "场景树" ? (z(), ye(dt, {
545
545
  key: 0,
546
546
  model: N.value,
547
547
  extraNodes: J.value,
548
548
  onNodeClick: D
549
549
  }, null, 8, ["model", "extraNodes"])) : G("", !0),
550
- P.value === "剖面视图" ? (U(), M("div", Bt, [
550
+ P.value === "剖面视图" ? (z(), M("div", Bt, [
551
551
  l("div", Et, [
552
552
  l("label", Jt, [
553
553
  $(l("input", {
@@ -603,10 +603,10 @@ ${j.value.join(" ")}
603
603
  ])
604
604
  ])
605
605
  ])) : G("", !0),
606
- P.value === "工件树" ? (U(), ye(at, {
606
+ P.value === "工件树" ? (z(), ye(at, {
607
607
  key: 2,
608
- model: (b = d(je)) == null ? void 0 : b.obj,
609
- onVisibleChange: d(Ae),
608
+ model: (b = d(Le)) == null ? void 0 : b.obj,
609
+ onVisibleChange: d(je),
610
610
  onUpdatePosition: d(Ne),
611
611
  onUpdateRotation: d(De)
612
612
  }, null, 8, ["model", "onVisibleChange", "onUpdatePosition", "onUpdateRotation"])) : G("", !0)
@@ -616,7 +616,7 @@ ${j.value.join(" ")}
616
616
  })
617
617
  ])
618
618
  ], 512), [
619
- [W, A.value]
619
+ [W, j.value]
620
620
  ]),
621
621
  $(l("div", Ht, [
622
622
  l("div", Kt, [
@@ -649,7 +649,7 @@ ${j.value.join(" ")}
649
649
  ], 512), [
650
650
  [W, O.value]
651
651
  ]),
652
- H.value ? (U(), M("div", Yt, [
652
+ H.value ? (z(), M("div", Yt, [
653
653
  e[20] || (e[20] = l("div", { class: "loading-spinner" }, null, -1)),
654
654
  l("p", null, B(oe.value), 1)
655
655
  ])) : G("", !0),
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),Te=require("./index.vue_vue_type_style_index_1_lang-f2wxl9Ai.cjs"),A=require("./workpieceTreePanel-Brforhya.cjs"),Z=require("./iconfont-Dsx_JtWY.cjs"),p=require("./index-Dv1G67_Q.cjs");require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-BWh0GUiI.cjs");const Q=require("./index-C9GfFRyr.cjs"),G=require("./urdfTree-nXEMcLFV.cjs"),se=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),g=require("./svgIcon-CUM54R6L.cjs"),De=require("./animationData-rmZ0EGb8.cjs"),Me=require("./MTLLoader-CSavblQS.cjs"),oe=require("./index-lw6M4N-Q.cjs"),$e={class:"panel-content"},Be={class:"action-bar"},ze={key:0,class:"animation-controls"},Le={class:"control-row"},Re={class:"control-row"},Ue={class:"frame-info"},je={class:"control-row"},Ae={key:1,class:"empty-state"},Ie={class:"dialog-footer"},Oe=e.defineComponent({__name:"urdfAnimationPanel",props:{model:{},scene:{},xyzbcList:{}},setup(B,{expose:I}){const k=B,o=e.ref([]),w=e.ref(!1),C=e.ref(""),v=e.ref("stopped"),c=e.ref(0),y=e.ref(0),z=e.ref(10),S=e.ref(null);let h=0;const O=e.ref([]),T=e.computed(()=>k.model?G.getNonFixedJoints(k.model).map(m=>m.name):[]),P=e.computed(()=>[...T.value]),W=e.computed(()=>P.value.length>0?`请按以下格式粘贴数据 (第一行为表头,使用 Tab 分隔):
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),Te=require("./index.vue_vue_type_style_index_1_lang-CrmWclPR.cjs"),A=require("./workpieceTreePanel-DXyb_Wnw.cjs"),Z=require("./iconfont-BDfcbq2v.cjs"),p=require("./index-Dv1G67_Q.cjs");require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-TDoJ17os.cjs");const Q=require("./index-uIVtG4RY.cjs"),G=require("./urdfTree-CWStzmk2.cjs"),se=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),g=require("./svgIcon-CUM54R6L.cjs"),De=require("./animationData-C3-BiUgV.cjs"),Me=require("./MTLLoader-Cqv49Ps8.cjs"),oe=require("./index-D3TgRd-7.cjs"),$e={class:"panel-content"},Be={class:"action-bar"},ze={key:0,class:"animation-controls"},Le={class:"control-row"},Re={class:"control-row"},Ue={class:"frame-info"},je={class:"control-row"},Ae={key:1,class:"empty-state"},Ie={class:"dialog-footer"},Oe=e.defineComponent({__name:"urdfAnimationPanel",props:{model:{},scene:{},xyzbcList:{}},setup(B,{expose:I}){const k=B,o=e.ref([]),w=e.ref(!1),C=e.ref(""),v=e.ref("stopped"),c=e.ref(0),y=e.ref(0),z=e.ref(10),S=e.ref(null);let h=0;const O=e.ref([]),T=e.computed(()=>k.model?G.getNonFixedJoints(k.model).map(m=>m.name):[]),P=e.computed(()=>[...T.value]),W=e.computed(()=>P.value.length>0?`请按以下格式粘贴数据 (第一行为表头,使用 Tab 分隔):
2
2
  ${P.value.join(" ")}
3
3
  0 0 0 ...
4
4
  1 2 3 ...`:"请先加载模型。"),R=e.computed(()=>o.value[c.value]||{});e.watch(()=>k.model,s=>{s?(S.value=new A.URDFRobotController(s),O.value=G.getAllLinkName(s),c.value=0):(S.value=null,O.value=[])},{immediate:!0});const U=s=>{if(s<0||s>=o.value.length){console.error(`帧索引 ${s} 超出范围`);return}const n=o.value[s];if(S.value){const m={};T.value.forEach(N=>{const i=parseFloat(n[N]);isNaN(i)||(m[N]=i)}),S.value.setJointAngles(m)}c.value=s,y.value=o.value.length>1?s/(o.value.length-1)*100:100},H=async s=>{try{for(let n=c.value;n<o.value.length;n++){if(s!==h)return;const m=o.value[n],N={};if(S.value)T.value.forEach(i=>{const r=parseFloat(m[i]);isNaN(r)||(N[i]=r)}),await S.value.animateToState(N,z.value,i=>{s===h&&(y.value=(n+i)/o.value.length*100)});else{if(await new Promise(i=>setTimeout(i,z.value)),s!==h)return;y.value=(n+1)/o.value.length*100}c.value=n}s===h&&(p.ElMessage.success("动画播放完成"),v.value="stopped",y.value=100)}catch(n){console.error("动画播放出错:",n),p.ElMessage.error("动画播放出错"),v.value="stopped"}},_=()=>{if(o.value.length===0){p.ElMessage.error("无动画数据");return}v.value==="stopped"&&(c.value=0,U(0)),v.value="playing",h++,H(h),p.ElMessage.info("动画播放中")},V=()=>{v.value==="playing"&&(h++,v.value="paused",p.ElMessage.info("动画已暂停"))},D=()=>{h++,v.value="stopped",c.value=0,y.value=0,U(0),p.ElMessage.info("动画已停止并重置")},E=()=>{v.value==="playing"?V():_()},F=s=>{h++,v.value="paused",U(s)},q=()=>{if(!C.value.trim()){p.ElMessage.warning("导入内容不能为空");return}const s=C.value.trim().split(`
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),D=require("./iconfont-Dsx_JtWY.cjs"),s=require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-BWh0GUiI.cjs"),ye=require("./fileUtil-BM6WhafY.cjs"),we=require("./index-Dv1G67_Q.cjs"),J=require("./urdfTree-nXEMcLFV.cjs"),v=require("./svgIcon-CUM54R6L.cjs"),Se=require("./isString-Cqq3-gAK.cjs"),xe=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),K=new s.Box3,R=new s.Vector3;class oe extends s.InstancedBufferGeometry{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type="LineSegmentsGeometry";const e=[-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],i=[-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],o=[0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5];this.setIndex(o),this.setAttribute("position",new s.Float32BufferAttribute(e,3)),this.setAttribute("uv",new s.Float32BufferAttribute(i,2))}applyMatrix4(e){const i=this.attributes.instanceStart,o=this.attributes.instanceEnd;return i!==void 0&&(i.applyMatrix4(e),o.applyMatrix4(e),i.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}setPositions(e){let i;e instanceof Float32Array?i=e:Array.isArray(e)&&(i=new Float32Array(e));const o=new s.InstancedInterleavedBuffer(i,6,1);return this.setAttribute("instanceStart",new s.InterleavedBufferAttribute(o,3,0)),this.setAttribute("instanceEnd",new s.InterleavedBufferAttribute(o,3,3)),this.instanceCount=this.attributes.instanceStart.count,this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(e){let i;e instanceof Float32Array?i=e:Array.isArray(e)&&(i=new Float32Array(e));const o=new s.InstancedInterleavedBuffer(i,6,1);return this.setAttribute("instanceColorStart",new s.InterleavedBufferAttribute(o,3,0)),this.setAttribute("instanceColorEnd",new s.InterleavedBufferAttribute(o,3,3)),this}fromWireframeGeometry(e){return this.setPositions(e.attributes.position.array),this}fromEdgesGeometry(e){return this.setPositions(e.attributes.position.array),this}fromMesh(e){return this.fromWireframeGeometry(new s.WireframeGeometry(e.geometry)),this}fromLineSegments(e){const i=e.geometry;return this.setPositions(i.attributes.position.array),this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new s.Box3);const e=this.attributes.instanceStart,i=this.attributes.instanceEnd;e!==void 0&&i!==void 0&&(this.boundingBox.setFromBufferAttribute(e),K.setFromBufferAttribute(i),this.boundingBox.union(K))}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new s.Sphere),this.boundingBox===null&&this.computeBoundingBox();const e=this.attributes.instanceStart,i=this.attributes.instanceEnd;if(e!==void 0&&i!==void 0){const o=this.boundingSphere.center;this.boundingBox.getCenter(o);let n=0;for(let c=0,d=e.count;c<d;c++)R.fromBufferAttribute(e,c),n=Math.max(n,o.distanceToSquared(R)),R.fromBufferAttribute(i,c),n=Math.max(n,o.distanceToSquared(R));this.boundingSphere.radius=Math.sqrt(n),isNaN(this.boundingSphere.radius)&&console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.",this)}}toJSON(){}}s.UniformsLib.line={worldUnits:{value:1},linewidth:{value:1},resolution:{value:new s.Vector2(1,1)},dashOffset:{value:0},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1}};s.ShaderLib.line={uniforms:s.UniformsUtils.merge([s.UniformsLib.common,s.UniformsLib.fog,s.UniformsLib.line]),vertexShader:`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),D=require("./iconfont-BDfcbq2v.cjs"),s=require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-TDoJ17os.cjs"),ye=require("./fileUtil-BFtJHTM0.cjs"),we=require("./index-Dv1G67_Q.cjs"),J=require("./urdfTree-CWStzmk2.cjs"),v=require("./svgIcon-CUM54R6L.cjs"),Se=require("./isString-Cqq3-gAK.cjs"),xe=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),K=new s.Box3,R=new s.Vector3;class oe extends s.InstancedBufferGeometry{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type="LineSegmentsGeometry";const e=[-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],i=[-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],o=[0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5];this.setIndex(o),this.setAttribute("position",new s.Float32BufferAttribute(e,3)),this.setAttribute("uv",new s.Float32BufferAttribute(i,2))}applyMatrix4(e){const i=this.attributes.instanceStart,o=this.attributes.instanceEnd;return i!==void 0&&(i.applyMatrix4(e),o.applyMatrix4(e),i.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}setPositions(e){let i;e instanceof Float32Array?i=e:Array.isArray(e)&&(i=new Float32Array(e));const o=new s.InstancedInterleavedBuffer(i,6,1);return this.setAttribute("instanceStart",new s.InterleavedBufferAttribute(o,3,0)),this.setAttribute("instanceEnd",new s.InterleavedBufferAttribute(o,3,3)),this.instanceCount=this.attributes.instanceStart.count,this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(e){let i;e instanceof Float32Array?i=e:Array.isArray(e)&&(i=new Float32Array(e));const o=new s.InstancedInterleavedBuffer(i,6,1);return this.setAttribute("instanceColorStart",new s.InterleavedBufferAttribute(o,3,0)),this.setAttribute("instanceColorEnd",new s.InterleavedBufferAttribute(o,3,3)),this}fromWireframeGeometry(e){return this.setPositions(e.attributes.position.array),this}fromEdgesGeometry(e){return this.setPositions(e.attributes.position.array),this}fromMesh(e){return this.fromWireframeGeometry(new s.WireframeGeometry(e.geometry)),this}fromLineSegments(e){const i=e.geometry;return this.setPositions(i.attributes.position.array),this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new s.Box3);const e=this.attributes.instanceStart,i=this.attributes.instanceEnd;e!==void 0&&i!==void 0&&(this.boundingBox.setFromBufferAttribute(e),K.setFromBufferAttribute(i),this.boundingBox.union(K))}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new s.Sphere),this.boundingBox===null&&this.computeBoundingBox();const e=this.attributes.instanceStart,i=this.attributes.instanceEnd;if(e!==void 0&&i!==void 0){const o=this.boundingSphere.center;this.boundingBox.getCenter(o);let n=0;for(let c=0,d=e.count;c<d;c++)R.fromBufferAttribute(e,c),n=Math.max(n,o.distanceToSquared(R)),R.fromBufferAttribute(i,c),n=Math.max(n,o.distanceToSquared(R));this.boundingSphere.radius=Math.sqrt(n),isNaN(this.boundingSphere.radius)&&console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.",this)}}toJSON(){}}s.UniformsLib.line={worldUnits:{value:1},linewidth:{value:1},resolution:{value:new s.Vector2(1,1)},dashOffset:{value:0},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1}};s.ShaderLib.line={uniforms:s.UniformsUtils.merge([s.UniformsLib.common,s.UniformsLib.fog,s.UniformsLib.line]),vertexShader:`
2
2
  #include <common>
3
3
  #include <color_pars_vertex>
4
4
  #include <fog_pars_vertex>
@@ -1,11 +1,11 @@
1
1
  import { defineComponent as We, ref as B, shallowRef as he, computed as $, watch as Ve, onMounted as He, onBeforeUnmount as Ne, resolveComponent as $e, createElementBlock as te, openBlock as X, createElementVNode as d, withDirectives as k, createCommentVNode as ne, createVNode as p, unref as b, renderSlot as ve, toDisplayString as ie, withCtx as ge, createBlock as Xe, isRef as Y, vModelRadio as q, vShow as se } from "vue";
2
- import { u as Ye, a as qe, b as Je, f as Ze, d as Ke } from "./iconfont-J7S-v_zE.js";
3
- import { aE as Qe, aF as le, aG as de, av as R, aH as et, B as ce, aD as Ce, V as P, aI as tt, aJ as Q, aK as _e, Y as Ue, aL as ee, k as nt, aM as V, aN as it, r as st, s as Ee, t as ot, w as at, ag as rt, ao as lt } from "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-DGl2lQmW.js";
4
- import { r as dt } from "./fileUtil-BVzW5lTY.js";
5
- import { E as ct } from "./index-7pDDKkwc.js";
6
- import { U as ut, J as ft } from "./urdfTree-B2Zs54qS.js";
2
+ import { u as Ye, a as qe, b as Je, f as Ze, d as Ke } from "./iconfont-B9Cj3DQM.js";
3
+ import { aE as Qe, aF as le, aG as de, av as R, aH as et, B as ce, aD as Ce, V as P, aI as tt, aJ as Q, aK as _e, Y as Ue, aL as ee, k as nt, aM as V, aN as it, r as st, s as Ee, t as ot, w as at, ag as rt, ao as lt } from "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-CuWDdCiy.js";
4
+ import { r as dt } from "./fileUtil-D7XVXEhb.js";
5
+ import { E as ct } from "./index-HduGypr9.js";
6
+ import { U as ut, J as ft } from "./urdfTree-CnkPddyT.js";
7
7
  import { T as v } from "./svgIcon-D-_fXUBL.js";
8
- import { i as pt } from "./isString-BbPmUYHG.js";
8
+ import { i as pt } from "./isString-BuBBWjRr.js";
9
9
  import { _ as mt } from "./_plugin-vue_export-helper-CHgC5LLL.js";
10
10
  const ye = new ce(), J = new P();
11
11
  class Ae extends Qe {
@@ -1,7 +1,7 @@
1
1
  import { computed as _, defineComponent as Y, defineAsyncComponent as S, ref as B, watch as q, createElementBlock as O, openBlock as y, normalizeClass as J, createElementVNode as K, createBlock as P, createCommentVNode as L, renderSlot as p, unref as D, withCtx as T } from "vue";
2
- import { a as A, ca as Q, p as N, s as H } from "./index-7pDDKkwc.js";
3
- import { u as z } from "./index.vue_vue_type_style_index_1_lang-WD8HOZyf.js";
4
- import "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-DGl2lQmW.js";
2
+ import { a as A, cb as Q, p as N, s as H } from "./index-HduGypr9.js";
3
+ import { u as z } from "./index.vue_vue_type_style_index_1_lang-DwvuVXW6.js";
4
+ import "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-CuWDdCiy.js";
5
5
  import { _ as X } from "./_plugin-vue_export-helper-CHgC5LLL.js";
6
6
  function ue(l) {
7
7
  const m = sessionStorage.getItem("loginToken") ?? "123456";
@@ -137,7 +137,7 @@ const te = { class: "top-menu" }, ne = {
137
137
  },
138
138
  emits: ["getThreeData"],
139
139
  setup(l, { emit: m }) {
140
- const v = S(() => import("./threeSceneView-BD22yXw4.js")), k = S(() => import("./threePreview-D99A_IHZ.js")), f = S(() => import("./threeTrackPathView-bFuXaesk.js")), E = S(() => import("./threeSceneViewForCPMPIP-CpBphI9E.js")), o = {
140
+ const v = S(() => import("./threeSceneView-CzgWYHBw.js")), k = S(() => import("./threePreview-DutKTPWH.js")), f = S(() => import("./threeTrackPathView-DA4_8jas.js")), E = S(() => import("./threeSceneViewForCPMPIP-2sXIw3I1.js")), o = {
141
141
  ROBOT_SCENE: "robot",
142
142
  // 机器人场景
143
143
  LATHE_SCENE: "latheScene",
@@ -149,7 +149,7 @@ const te = { class: "top-menu" }, ne = {
149
149
  }, r = l, U = z(N), { platName: d } = H(U), { isGeneralFile: g, isUrdf: c, isTrackPathFile: F, extraExtension: $ } = ee(), w = _(() => (r == null ? void 0 : r.extension) || $.value), I = _(() => {
150
150
  var e, n;
151
151
  return (n = (e = r == null ? void 0 : r.threeData) == null ? void 0 : e.data) == null ? void 0 : n.trackFileType;
152
- }), C = _(() => {
152
+ }), b = _(() => {
153
153
  var n;
154
154
  if (r.componentType)
155
155
  switch (r.componentType) {
@@ -189,8 +189,8 @@ const te = { class: "top-menu" }, ne = {
189
189
  const a = await Z({ url: e });
190
190
  if (a.status !== 200)
191
191
  throw new Error(`下载失败: ${a.status}`);
192
- const b = a.headers["content-disposition"];
193
- u = R(b) || "无文件名", n = a.data;
192
+ const C = a.headers["content-disposition"];
193
+ u = R(C) || "无文件名", n = a.data;
194
194
  } catch (a) {
195
195
  throw console.error("通过 API 下载文件时出错:", a), a;
196
196
  }
@@ -202,9 +202,9 @@ const te = { class: "top-menu" }, ne = {
202
202
  if (n) {
203
203
  let a = n[1].trim();
204
204
  a = a.replace(/^"(.*)"$/, "$1");
205
- const b = a.split("''");
206
- if (b.length === 2) {
207
- const j = b[0].toUpperCase(), M = b[1];
205
+ const C = a.split("''");
206
+ if (C.length === 2) {
207
+ const j = C[0].toUpperCase(), M = C[1];
208
208
  try {
209
209
  if (j === "UTF-8")
210
210
  return decodeURIComponent(M);
@@ -252,7 +252,7 @@ const te = { class: "top-menu" }, ne = {
252
252
  K("div", te, [
253
253
  p(e.$slots, "top-menu", {}, void 0, !0)
254
254
  ]),
255
- C.value === o.ROBOT_SCENE ? (y(), P(D(v), {
255
+ b.value === o.ROBOT_SCENE ? (y(), P(D(v), {
256
256
  key: 0,
257
257
  "file-blobs": t.value,
258
258
  "animation-data": e.animationData,
@@ -266,7 +266,7 @@ const te = { class: "top-menu" }, ne = {
266
266
  p(e.$slots, "management-page", {}, void 0, !0)
267
267
  ]),
268
268
  _: 3
269
- }, 8, ["file-blobs", "animation-data", "threeData"])) : C.value === o.LATHE_SCENE ? (y(), P(D(f), {
269
+ }, 8, ["file-blobs", "animation-data", "threeData"])) : b.value === o.LATHE_SCENE ? (y(), P(D(f), {
270
270
  key: 1,
271
271
  fileUrls: e.fileUrls,
272
272
  threeData: r.threeData,
@@ -279,7 +279,7 @@ const te = { class: "top-menu" }, ne = {
279
279
  p(e.$slots, "management-page", {}, void 0, !0)
280
280
  ]),
281
281
  _: 3
282
- }, 8, ["fileUrls", "threeData", "trackFileType"])) : C.value === o.CPMPIP_SCENE ? (y(), P(D(E), {
282
+ }, 8, ["fileUrls", "threeData", "trackFileType"])) : b.value === o.CPMPIP_SCENE ? (y(), P(D(E), {
283
283
  key: 2,
284
284
  "file-blobs": t.value,
285
285
  threeData: r.threeData
@@ -291,7 +291,7 @@ const te = { class: "top-menu" }, ne = {
291
291
  p(e.$slots, "management-page", {}, void 0, !0)
292
292
  ]),
293
293
  _: 3
294
- }, 8, ["file-blobs", "threeData"])) : C.value === o.PREVIEW ? (y(), P(D(k), {
294
+ }, 8, ["file-blobs", "threeData"])) : b.value === o.PREVIEW ? (y(), P(D(k), {
295
295
  key: 3,
296
296
  "file-blobs": t.value,
297
297
  "animation-data": e.animationData
@@ -313,10 +313,10 @@ const te = { class: "top-menu" }, ne = {
313
313
  }, Symbol.toStringTag, { value: "Module" }));
314
314
  export {
315
315
  ae as T,
316
- ee as a,
317
- ue as b,
316
+ x as a,
317
+ ee as b,
318
318
  me as c,
319
319
  Z as d,
320
320
  fe as t,
321
- x as u
321
+ ue as u
322
322
  };