ss-component-new 1.2.91 → 1.2.92

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 (89) hide show
  1. package/dist/{MTLLoader-BFJXexXd.js → MTLLoader-B5xRp-vz.js} +1 -1
  2. package/dist/{MTLLoader-B7nny5Fq.cjs → MTLLoader-D80GV1WB.cjs} +1 -1
  3. package/dist/{OrbitControls-xaR75UGu.cjs → OrbitControls-CqIpswqa.cjs} +1 -1
  4. package/dist/{OrbitControls-C9jawbH9.js → OrbitControls-Dh9PyFO4.js} +1 -1
  5. package/dist/{animationData-CBP3-eEz.cjs → animationData-BtND2VWy.cjs} +1 -1
  6. package/dist/{animationData-CgRkXv4t.js → animationData-DZ0i7k1j.js} +1 -1
  7. package/dist/{iconfont-CP5tSbKZ.cjs → iconfont-0T5xTLj8.cjs} +1 -1
  8. package/dist/{iconfont-CjxxsF1M.js → iconfont-DN8mra_i.js} +2 -2
  9. package/dist/{index-DFI9yzK6.js → index-1gXFTnuu.js} +13 -13
  10. package/dist/{index-DqVT7oIp.cjs → index-BGvxk4QX.cjs} +1 -1
  11. package/dist/{index-CETcLmm9.js → index-BKaTMDZC.js} +3 -3
  12. package/dist/{index-vOASo2vq.cjs → index-BUYZ6Pzj.cjs} +1 -1
  13. package/dist/{index-BtAr_AHh.cjs → index-BYoEVm0h.cjs} +1 -1
  14. package/dist/{index-Dp0Qfw7S.cjs → index-B_KvjL9P.cjs} +1 -1
  15. package/dist/{index-BlCQ16SZ.cjs → index-BdwtuRne.cjs} +1 -1
  16. package/dist/{index-BekTYc0y.cjs → index-BeEVAZ15.cjs} +1 -1
  17. package/dist/{index-BQ2epFRD.js → index-BjFqn1jw.js} +1 -1
  18. package/dist/{index-DYPr6Y5L.cjs → index-BooqzjWY.cjs} +1 -1
  19. package/dist/{index-DUVWJUDm.cjs → index-BprBzYZ5.cjs} +1 -1
  20. package/dist/{index-Bb1-JDSj.js → index-BtKhX2oM.js} +2 -2
  21. package/dist/{index-C3T-KdRt.js → index-BvxyAOvM.js} +1 -1
  22. package/dist/{index-BAhJFVq5.js → index-C07slqLJ.js} +2 -2
  23. package/dist/{index-1K0-Lril.js → index-C1aAW06_.js} +3 -3
  24. package/dist/{index-DvGuZe_T.js → index-C7HjGMoA.js} +3 -3
  25. package/dist/{index-BMP_6QMQ.js → index-CQ7UrLDv.js} +4 -4
  26. package/dist/{index-C8yBntW8.cjs → index-CRe-_A5B.cjs} +1 -1
  27. package/dist/{index-BEvmMS0i.js → index-CZLI4UKD.js} +1 -1
  28. package/dist/{index-Vsjvei0H.js → index-CZsCZbCY.js} +2 -2
  29. package/dist/{index-BXnPM7aS.cjs → index-C_DIwBxS.cjs} +1 -1
  30. package/dist/{index-Dp6H2nKE.js → index-CewrcECw.js} +1 -1
  31. package/dist/{index-B_PGXhqu.js → index-CfHIgB5C.js} +1 -1
  32. package/dist/{index-D9EZRG95.js → index-CiNYm1fC.js} +1 -1
  33. package/dist/{index-aQEd-0P6.cjs → index-CpYf3edW.cjs} +1 -1
  34. package/dist/{index-BuBu-8ML.cjs → index-CtOo2IDL.cjs} +1 -1
  35. package/dist/{index-DG16Kf33.cjs → index-CuchbMC7.cjs} +1 -1
  36. package/dist/{index-B2gEqMwz.cjs → index-CylLhQJV.cjs} +1 -1
  37. package/dist/{index-Ebo1c622.js → index-DJ14vVkb.js} +1 -1
  38. package/dist/{index-8zvR_tOe.js → index-DQTbLJJt.js} +1 -1
  39. package/dist/{index-CUEf5Kz5.cjs → index-DSmsp4fK.cjs} +1 -1
  40. package/dist/{index-7slO1Rxz.cjs → index-DVMvlM3X.cjs} +1 -1
  41. package/dist/{index-aSIQAW_v.cjs → index-DW_lU8F7.cjs} +1 -1
  42. package/dist/{index-dDyNP3sZ.js → index-DwsI_FxR.js} +6 -6
  43. package/dist/{index-5IXozXfb.cjs → index-NMPHjxEr.cjs} +1 -1
  44. package/dist/{index-q5RVI5cd.js → index-Q33CutvH.js} +3 -3
  45. package/dist/{index-4C4_axeD.js → index-YxS-TBi2.js} +1 -1
  46. package/dist/{index-7Birt--o.cjs → index-Z2dyIgOs.cjs} +1 -1
  47. package/dist/{index-C-L7sbsd.js → index-a_TWt7Sj.js} +6 -6
  48. package/dist/{index-ihwK0f5N.cjs → index-bz_QKqhV.cjs} +1 -1
  49. package/dist/{index-B8bmwRCI.js → index-fbsH9PEh.js} +1 -1
  50. package/dist/{index-CP7aP3gS.cjs → index-m_VPPkQD.cjs} +1 -1
  51. package/dist/{index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-DecIEtG7.cjs → index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-CjVqxeCk.cjs} +1 -1
  52. package/dist/{index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-CFsZEbkA.js → index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-qrHH3IDA.js} +6 -6
  53. package/dist/{index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-DKwIZnH1.js → index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-DEgtwZwW.js} +1642 -1647
  54. package/dist/{index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-Cwx8FIbY.cjs → index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-QzgaFA5S.cjs} +58 -58
  55. package/dist/{index.vue_vue_type_style_index_0_scoped_92477073_lang-BX54cUHO.cjs → index.vue_vue_type_style_index_0_scoped_92477073_lang-9r-1e4S8.cjs} +1 -1
  56. package/dist/{index.vue_vue_type_style_index_0_scoped_92477073_lang-B10uDdFf.js → index.vue_vue_type_style_index_0_scoped_92477073_lang-IuoTm-WE.js} +3 -3
  57. package/dist/{index.vue_vue_type_style_index_1_lang-B-okL2FZ.js → index.vue_vue_type_style_index_1_lang-CDl_PU-6.js} +3 -3
  58. package/dist/{index.vue_vue_type_style_index_1_lang-CTa9TwBd.cjs → index.vue_vue_type_style_index_1_lang-DR71_XjN.cjs} +1 -1
  59. package/dist/{main-Cwa67iI0.cjs → main-BxTLrfxf.cjs} +1 -1
  60. package/dist/{main-t0azuc9l.js → main-D_3GSDl9.js} +2 -2
  61. package/dist/ss-component.cjs +1 -1
  62. package/dist/ss-component.css +1 -1
  63. package/dist/ss-component.js +9 -9
  64. package/dist/ss-component2.cjs +1 -1
  65. package/dist/ss-component2.js +10 -10
  66. package/dist/{threeModel-Byx2BFHA.js → threeModel-BKLggDE-.js} +4 -4
  67. package/dist/{threeModel-BsTUf7j3.cjs → threeModel-D4-2rEpM.cjs} +1 -1
  68. package/dist/{threePreview-DGcEWlwZ.cjs → threePreview-QIurmOdU.cjs} +1 -1
  69. package/dist/{threePreview-B9a62AVY.js → threePreview-oszvdj-G.js} +578 -579
  70. package/dist/threeSceneView-BR1l9yTW.js +1341 -0
  71. package/dist/threeSceneView-CaHI2V82.cjs +5 -0
  72. package/dist/threeSceneViewForCPMPIP-DbvRq5YC.cjs +5 -0
  73. package/dist/{threeSceneViewForCPMPIP-BslGbi80.js → threeSceneViewForCPMPIP-wZTvUhLm.js} +232 -238
  74. package/dist/{threeTrackPathView-CNiRDEIa.js → threeTrackPathView-CAK5om32.js} +258 -305
  75. package/dist/{threeTrackPathView-C5outYjx.cjs → threeTrackPathView-CF9ierHN.cjs} +2 -2
  76. package/dist/{threeViewerHost-C2iVAVlI.js → threeViewerHost-CeTJmyoE.js} +2 -2
  77. package/dist/{threeViewerHost-D3ZmD_As.cjs → threeViewerHost-iajMfGA9.cjs} +2 -2
  78. package/dist/{urdfTree-DEo6cc0y.cjs → urdfTree-CWwnorES.cjs} +1 -1
  79. package/dist/{urdfTree-D_oX4idQ.js → urdfTree-DIyCunQo.js} +1 -1
  80. package/dist/{workpieceTreePanel--92uvFwB.js → workpieceTreePanel-DC0GHh3g.js} +5 -5
  81. package/dist/{workpieceTreePanel-C0Lq3HIU.cjs → workpieceTreePanel-YfDCHyA3.cjs} +1 -1
  82. package/package.json +1 -1
  83. package/dist/obj/model.mtl +0 -42
  84. package/dist/obj/model.obj +0 -26110
  85. package/dist/threeSceneView-BYc0Z0CJ.cjs +0 -5
  86. package/dist/threeSceneView-C59wI_1_.js +0 -1369
  87. package/dist/threeSceneViewForCPMPIP-kGIus7ge.cjs +0 -5
  88. package/public/obj/model.mtl +0 -42
  89. package/public/obj/model.obj +0 -26110
@@ -1,5 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),X=require("./workpieceTreePanel-C0Lq3HIU.cjs"),pe=require("./iconfont-CP5tSbKZ.cjs"),$=require("./index-C8qRkCgn.cjs"),s=require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-Cwx8FIbY.cjs");require("./index.vue_vue_type_style_index_1_lang-DnfCrXiN.cjs");require("./index-BpPyaNFa.cjs");const Q=require("./index-D_6peWlG.cjs");require("./index.vue_vue_type_style_index_1_lang-CTa9TwBd.cjs");require("./index-D4EyLxA0.cjs");const Ce=require("./animationData-CBP3-eEz.cjs"),ne=require("./urdfTree-DEo6cc0y.cjs"),we=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),ee=require("./dataUtil-DrslFFRT.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
- ${F.value.join(" ")}
3
- 0 0 0 ...
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(`
5
- `).filter(x=>x.trim()!=="");if(l.length<2){$.ElMessage.error("导入数据至少需要包含表头行和一行数据");return}const t=l[0].split(" ").map(x=>x.trim()),o={};if(t.forEach((x,O)=>{F.value.includes(x)&&(o[O]=x)}),Object.keys(o).length===0){$.ElMessage.error("没有找到匹配的表头,请检查表头名称是否正确");return}const N=l.slice(1).map(x=>{const O=x.split(" "),K={};return F.value.forEach(q=>{K[q]="0"}),Object.entries(o).forEach(([q,ie])=>{const A=O[parseInt(q)];A!==void 0&&A.trim()!==""&&(K[ie]=A.trim())}),K});N.length>0?(u.value=N,$.ElMessage.success(`成功导入 ${N.length} 行数据!`),_.value=!1,r.value=""):$.ElMessage.error("未能解析到有效数据,请检查格式。")};return e.onUnmounted(()=>{se(),b=!0}),m({playAnimation:B,stopAnimation:z,forwardFrame:fe,backwardFrame:ge}),(l,t)=>{const o=e.resolveComponent("el-icon"),y=e.resolveComponent("el-input-number"),N=e.resolveComponent("el-form-item"),x=e.resolveComponent("el-form"),O=e.resolveComponent("el-slider"),K=e.resolveComponent("el-progress"),q=e.resolveComponent("el-input"),ie=e.resolveComponent("el-dialog");return e.openBlock(),e.createElementBlock("div",Be,[e.createElementVNode("div",ze,[e.createVNode(Q._sfc_main,{onClick:C,modelValue:"获取数据"}),e.createVNode(Q._sfc_main,{onClick:be,disabled:F.value.length===0,modelValue:"导出表头"},null,8,["disabled"]),e.createVNode(Q._sfc_main,{modelValue:"播放",onClick:B,disabled:u.value.length===0||p.value,buttonType:"primary"},{default:e.withCtx(()=>[p.value?(e.openBlock(),e.createBlock(o,{key:0,class:"is-loading"},{default:e.withCtx(()=>[e.createVNode(e.unref($.loading_default))]),_:1})):e.createCommentVNode("",!0)]),_:1},8,["disabled"]),e.createVNode(Q._sfc_main,{onClick:z,modelValue:"停止",buttonType:"danger"}),e.createVNode(Q._sfc_main,{onClick:oe,modelValue:"重置",buttonType:"primary"})]),e.createElementVNode("div",Ae,[e.createElementVNode("div",$e,[e.createVNode(x,{"label-width":"auto",style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(N,{label:"帧间隔 (ms):",prop:"frameDuration"},{default:e.withCtx(()=>[e.createVNode(y,{modelValue:i.value,"onUpdate:modelValue":t[0]||(t[0]=A=>i.value=A),min:100,max:5e3,step:100,style:{width:"100%"}},null,8,["modelValue"])]),_:1}),e.createVNode(N,{label:"管件总长 (mm):",prop:"initialPipeLength"},{default:e.withCtx(()=>[e.createVNode(y,{modelValue:D.value,"onUpdate:modelValue":t[1]||(t[1]=A=>D.value=A),min:0,style:{width:"100%"}},null,8,["modelValue"])]),_:1}),e.createVNode(N,{label:"管件半径 (mm):",prop:"pipeRadius"},{default:e.withCtx(()=>[e.createVNode(y,{modelValue:T.value,"onUpdate:modelValue":t[2]||(t[2]=A=>T.value=A),min:0,style:{width:"100%"}},null,8,["modelValue"])]),_:1}),e.createVNode(N,{label:"夹持长度 (mm):",prop:"clampLength"},{default:e.withCtx(()=>[e.createVNode(y,{modelValue:R.value,"onUpdate:modelValue":t[3]||(t[3]=A=>R.value=A),min:0,style:{width:"100%"}},null,8,["modelValue"])]),_:1})]),_:1})]),t[10]||(t[10]=e.createElementVNode("div",{class:"control-row"},[e.createElementVNode("label",null,"管件 Mesh:")],-1)),e.createElementVNode("div",Fe,[t[8]||(t[8]=e.createElementVNode("label",null,"当前帧:",-1)),e.createElementVNode("span",Ye,e.toDisplayString(a.value+1)+" / "+e.toDisplayString(u.value.length),1)]),e.createElementVNode("div",Le,[t[9]||(t[9]=e.createElementVNode("label",null,"动画进度:",-1)),e.createVNode(O,{modelValue:a.value,"onUpdate:modelValue":t[4]||(t[4]=A=>a.value=A),min:0,max:u.value.length>0?u.value.length-1:0,step:1,"format-tooltip":me,onInput:ve,disabled:u.value.length===0,style:{"flex-grow":"1",margin:"0 10px"}},null,8,["modelValue","max","disabled"])]),e.createElementVNode("div",Ie,[e.createVNode(K,{percentage:d.value,"show-text":!1,"stroke-width":6},null,8,["percentage"])])]),e.createVNode(ie,{modelValue:_.value,"onUpdate:modelValue":t[7]||(t[7]=A=>_.value=A),title:"导入数据",width:"500px"},{footer:e.withCtx(()=>[e.createElementVNode("span",Ue,[e.createVNode(Q._sfc_main,{modelValue:"取消",onClick:t[6]||(t[6]=A=>_.value=!1)}),e.createVNode(Q._sfc_main,{modelValue:"确认导入",onClick:ye,type:"primary"})])]),default:e.withCtx(()=>[t[11]||(t[11]=e.createElementVNode("p",{class:"import-instructions"}," 请从Excel或csv中复制数据 (首行为表头, Tab分隔) ",-1)),e.createVNode(q,{modelValue:r.value,"onUpdate:modelValue":t[5]||(t[5]=A=>r.value=A),type:"textarea",rows:10,placeholder:Y.value},null,8,["modelValue","placeholder"])]),_:1,__:[11]},8,["modelValue"])])}}}),Ge=we._export_sfc(je,[["__scopeId","data-v-ca681456"]]),Oe=async()=>{const V=["工件库","弯管"],m=await ee.getMenuData(V),f=ee.getTargetGroup("工件列表",m),n=ee.getMainKeysFromGroup(f);return n==null?void 0:n.map(h=>({name:h,mainKey:h}))},Xe=async V=>{const m=["工件库","弯管"],f=await ee.getDetailData(m,V),n=ee.getTargetGroup("弯管基础参数",f),g=ee.getTargetGroup("弯管特征尺寸",f),h={outerDiameter:0,ybcrList:[]},c=ee.getFormData(n),C=ee.getTableData(g);return h.outerDiameter=(c==null?void 0:c.外径)||0,h.ybcrList=C||[],h},Ze={class:"pipe-analysis-dialog-header"},qe={class:"header-right"},Je={class:"pipe-analysis-dialog-body"},We={class:"panel-left"},Ke={class:"pipe-analysis-input"},He={class:"input-params"},Qe={class:"pipe-analysis-output"},et={class:"ouput-params"},tt=e.defineComponent({__name:"pipeAnalysisPanel",emits:["nodeClick","visibleChange","updatePosition","updateRotation"],setup(V,{expose:m,emit:f}){const n=e.ref(null),g=e.shallowRef(null),{initThreeJS:h,handleResize:c,cleanup:C,clearAllModels:u,addModelAndFit:_}=pe.useThreeJS(n);e.ref(null);const r=e.ref({file:null,pipe:""});e.ref(null),e.ref(!1);const p=e.ref([]),a=k=>{p.value=k};e.ref("ybcr");const d=e.ref({form:{},list:[],reverse:!1}),i=k=>{const{length:w,outerDiameter:I,innerDiameter:G,thickness:F,ybcrList:Y}=k||{};d.value.form={length:w,outerDiameter:I,innerDiameter:G,thickness:F},d.value.list=Y},b=()=>{const{form:k,list:w}=d.value,{outerDiameter:I}=k,G=I/2,F=w==null?void 0:w.map(J=>{const{y:U,b:L,c:W,r:B,Y:z,B:ae,C:j,R:oe}=J;return z?{Y:z,B:ae,C:j,R:oe}:{Y:U,B:L,C:W,R:B}});u();const Y=Se(F,G);_(Y)},E=e.ref(!1),v=()=>{const k=E.value;E.value=!k},S=e.ref(!1),P=()=>{S.value=!1},D=()=>{S.value=!0},T=async()=>{const k=await Oe();a(k)},R=async k=>{const w=await Xe(k);i(w)};return e.watch(()=>d,()=>{b()},{deep:!0}),e.watch(()=>n,()=>{try{if(g.value)return;h(),window.addEventListener("resize",c)}catch(k){console.error("Three.js 初始化失败:",k),$.ElMessage.error("渲染引擎初始化失败!")}},{deep:!0}),e.onMounted(async()=>{T()}),e.onBeforeUnmount(()=>{window.removeEventListener("resize",c),C()}),m({openDialog:D}),(k,w)=>{const I=e.resolveComponent("el-icon"),G=e.resolveComponent("el-option"),F=e.resolveComponent("el-select"),Y=e.resolveComponent("el-form-item"),J=e.resolveComponent("el-form"),U=e.resolveComponent("el-input"),L=e.resolveComponent("el-table-column"),W=e.resolveComponent("el-table");return e.openBlock(),e.createBlock(Q.ssDialog,{class:"pipe-analysis-dialog",visible:S.value,onBeforeDestroy:k.onDestroy,showClose:!1,fullScreen:E.value},{header:e.withCtx(()=>[e.createElementVNode("div",Ze,[w[6]||(w[6]=e.createElementVNode("div",{class:"header-left",title:"管件解析"}," 管件解析 ",-1)),e.createElementVNode("div",qe,[e.createVNode(I,null,{default:e.withCtx(()=>[e.createVNode(e.unref($.full_screen_default),{onClick:v})]),_:1}),e.createVNode(I,null,{default:e.withCtx(()=>[e.createVNode(e.unref($.close_default),{onClick:P})]),_:1})])])]),default:e.withCtx(()=>[e.createElementVNode("div",Je,[e.createElementVNode("div",We,[e.createElementVNode("div",Ke,[w[7]||(w[7]=e.createElementVNode("span",{class:"item-view-group"},[e.createElementVNode("span",{class:"group-name-wrap"},"输入")],-1)),e.createElementVNode("div",He,[e.createVNode(J,{model:r.value,"label-width":"auto","label-position":"top"},{default:e.withCtx(()=>[e.createVNode(Y,{label:"弯管"},{default:e.withCtx(()=>[e.createVNode(F,{modelValue:r.value.pipe,"onUpdate:modelValue":w[0]||(w[0]=B=>r.value.pipe=B),placeholder:"请选择弯管",onChange:R},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,B=>(e.openBlock(),e.createBlock(G,{label:B.name,value:B.mainKey},null,8,["label","value"]))),256))]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),e.createElementVNode("div",Qe,[e.createVNode(Y,{label:"加工方向"},{default:e.withCtx(()=>[e.createVNode(F,{modelValue:d.value.reverse,"onUpdate:modelValue":w[1]||(w[1]=B=>d.value.reverse=B),placeholder:"请选择加工方向"},{default:e.withCtx(()=>[e.createVNode(G,{label:"正向",value:!1}),e.createVNode(G,{label:"反向",value:!0})]),_:1},8,["modelValue"])]),_:1}),w[8]||(w[8]=e.createElementVNode("span",{class:"item-view-group"},[e.createElementVNode("span",{class:"group-name-wrap"},"输出(弯管基础参数)")],-1)),e.createElementVNode("div",et,[e.createVNode(J,{model:d.value.form,"label-width":"auto","label-position":"top",inline:!0},{default:e.withCtx(()=>[e.createVNode(Y,{label:"管长"},{default:e.withCtx(()=>[e.createVNode(U,{modelValue:d.value.form.length,"onUpdate:modelValue":w[2]||(w[2]=B=>d.value.form.length=B)},null,8,["modelValue"])]),_:1}),e.createVNode(Y,{label:"外径"},{default:e.withCtx(()=>[e.createVNode(U,{modelValue:d.value.form.outerDiameter,"onUpdate:modelValue":w[3]||(w[3]=B=>d.value.form.outerDiameter=B)},null,8,["modelValue"])]),_:1}),e.createVNode(Y,{label:"内径"},{default:e.withCtx(()=>[e.createVNode(U,{modelValue:d.value.form.innerDiameter,"onUpdate:modelValue":w[4]||(w[4]=B=>d.value.form.innerDiameter=B)},null,8,["modelValue"])]),_:1}),e.createVNode(Y,{label:"壁厚"},{default:e.withCtx(()=>[e.createVNode(U,{modelValue:d.value.form.thickness,"onUpdate:modelValue":w[5]||(w[5]=B=>d.value.form.thickness=B)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),e.createVNode(W,{ref:"singleTableRef",data:d.value.list,"highlight-current-rowstyle":"width: 100%"},{default:e.withCtx(()=>[e.createVNode(L,{type:"index",width:"50"}),e.createVNode(L,{property:"y",label:"Y"}),e.createVNode(L,{property:"b",label:"B"}),e.createVNode(L,{property:"c",label:"C"}),e.createVNode(L,{property:"r",label:"R"})]),_:1},8,["data"])])])]),e.createElementVNode("div",{class:"panel-right",ref_key:"threejsContainer",ref:n},null,512)])]),_:1},8,["visible","onBeforeDestroy","fullScreen"])}}}),ot=we._export_sfc(tt,[["__scopeId","data-v-61e834a4"]]),lt={class:"obj-viewer-container"},nt={class:"pipe-comparison"},at={ref:"pipe1",class:"pipe-container"},st={ref:"pipe2",class:"pipe-container"},rt={class:"buttonGroup-top"},it={class:"buttonGroup-topLeft"},ct={class:"buttonGroup-left"},ut={class:"buttonGroup-right"},dt={class:"buttonGroup-bottom"},pt={class:"top-panel"},mt={class:"panel-header"},vt={class:"panel-body"},ft={class:"left-panel"},gt={class:"panel-header"},ht={class:"panel-body"},Vt={key:1,class:"clipping-content"},bt={class:"radio-group"},yt={class:"radio-label"},wt={class:"radio-label"},Nt={class:"radio-label"},Ct={class:"radio-label"},_t={class:"right-panel"},xt={class:"panel-header"},Et={class:"panel-body"},kt={key:0,class:"loading-overlay"},Tt=e.defineComponent({__name:"threeSceneView",props:{fileBlobs:{default:()=>[]},animationData:{default:()=>({})},threeData:{}},emits:["getAnimationData","getThreeData"],setup(V,{emit:m}){const f=m,n=V,g=e.ref(X.sceneType.ROBOT),h=e.ref(null),c=e.ref(),C=e.ref(!1),u=e.ref(""),_=e.ref(!1),r=e.ref(""),p=e.ref(!1),a=e.ref(""),d=e.ref(!1),i=e.ref(""),b=e.shallowRef(null),E=e.shallowRef(null),v=e.ref(),{currentModels:S,resetView:P,initThreeJS:D,handleResize:T,getThreeJSObjects:R,cleanup:k,setModels:w,axesHelperVisible:I,toggleAxesVisibility:G,zoomIn:F,zoomOut:Y}=pe.useThreeJS(h),{loadSceneFromFile:J}=X.useUrdfLoader(R,S,C,u),{isAnimating:U,toggleAnimation:L,stopAnimation:W}=pe.useAnimation(R,S),{isClipping:B,activeClippingAxis:z,toggleClipping:ae,updateClippingPlanes:j}=pe.useClipping(R,S),{initRaycaster:oe,selectedObject3D:me,setSelectedObjVisible:ve,updatePosition:fe,updateRotation:ge,dispose:se}=X.useRaycaster(h,R,S),ce=()=>{G()},re=e.computed(()=>g.value===X.sceneType.ROBOT),he=e.computed(()=>g.value===X.sceneType.PIPECOMPARSION),ue=t=>{var o;i.value=t,i.value==="弯管解析"?(o=c.value)==null||o.openDialog():d.value=!0},te=t=>{_.value=!0,r.value=t,t==="剖面视图"&&!B.value&&ae()},le=t=>{p.value=!0,a.value=t,t==="动画仿真"&&f("getAnimationData")},Ve=()=>{f("getThreeData")},de=()=>{var t;(t=v==null?void 0:v.value)==null||t.playAnimation()},be=()=>{var t;(t=v==null?void 0:v.value)==null||t.stopAnimation()},ye=()=>{var t;(t=v==null?void 0:v.value)==null||t.forwardFrame()},l=()=>{var t;(t=v==null?void 0:v.value)==null||t.backwardFrame()};return e.watch(()=>n.fileBlobs,t=>{if(t&&t.length>0){const o=t[0];if(!o.name.toLowerCase().endsWith(".urdf"))return;J(o).then(y=>{b.value=y}).catch(y=>{console.error("加载URDF文件时发生错误:",y),$.ElMessage.error("加载urdf模型失败"),b.value=null})}else b.value=null},{immediate:!0,deep:!0}),e.watch(b,t=>{w(t?[t]:[]),oe()}),e.onMounted(async()=>{await e.nextTick();try{D(),window.addEventListener("resize",T);const t=R();E.value=t.scene}catch(t){console.error("Three.js 初始化失败:",t),$.ElMessage.error("渲染引擎初始化失败!")}}),e.onBeforeUnmount(()=>{r.value="",a.value="",window.removeEventListener("resize",T),U.value&&W(),k(),se()}),(t,o)=>{const y=e.resolveComponent("el-scrollbar");return e.openBlock(),e.createElementBlock("div",lt,[e.withDirectives(e.createElementVNode("div",{ref_key:"threejsContainer",ref:h,class:"threejs-container"},null,512),[[e.vShow,re.value]]),e.withDirectives(e.createElementVNode("div",nt,[e.createElementVNode("div",at,null,512),e.createElementVNode("div",st,null,512)],512),[[e.vShow,he.value]]),e.createElementVNode("div",rt,[e.renderSlot(t.$slots,"button-top",{switchTopPanel:ue},void 0,!0),e.createVNode(M.ThreeSvgIcon,{name:"guanjianjiexi",size:"34",onClick:o[0]||(o[0]=N=>ue("弯管解析"))}),e.createVNode(M.ThreeSvgIcon,{name:"guanjiekongzhi",size:"34"}),e.createVNode(M.ThreeSvgIcon,{name:"gongyishengcheng",size:"34"}),e.createVNode(M.ThreeSvgIcon,{name:"buchangshezhi",size:"34"}),e.createVNode(M.ThreeSvgIcon,{name:"shuchujiagongchengxu",size:"34"}),e.renderSlot(t.$slots,"logout",{},void 0,!0)]),e.createElementVNode("div",it,[e.createVNode(M.ThreeSvgIcon,{name:"viewReset",size:"24",onClick:e.unref(P),title:"重置"},null,8,["onClick"]),e.createVNode(M.ThreeSvgIcon,{name:"fangda",size:"24",title:"放大",onClick:e.unref(F)},null,8,["onClick"]),e.createVNode(M.ThreeSvgIcon,{name:"suoxiao",size:"24",title:"缩小",onClick:e.unref(Y)},null,8,["onClick"]),e.createVNode(M.ThreeSvgIcon,{name:"lookAround",size:"24",onClick:e.unref(L),title:e.unref(U)?"停止动画":"动画视图"},null,8,["onClick","title"]),e.createVNode(M.ThreeSvgIcon,{name:"zuobiaoxi",size:"24",active:e.unref(I),onClick:ce,title:"显隐坐标轴"},null,8,["active"])]),e.createElementVNode("div",ct,[e.renderSlot(t.$slots,"button-left",{switchRightPanel:te},void 0,!0),e.createVNode(M.ThreeSvgIcon,{name:"jiegoushu",size:"24",onClick:o[1]||(o[1]=N=>te("场景树")),active:_.value&&r.value==="场景树",title:"场景树"},null,8,["active"]),e.createVNode(M.ThreeSvgIcon,{name:"clipping",size:"24",onClick:o[2]||(o[2]=N=>te("剖面视图")),active:_.value&&r.value==="剖面视图",title:"剖面视图"},null,8,["active"]),e.createVNode(M.ThreeSvgIcon,{name:"zhaozi",size:"24",onClick:o[3]||(o[3]=N=>te("工件树")),active:_.value&&r.value==="工件树",title:"工件 "},null,8,["active"]),e.createVNode(M.ThreeSvgIcon,{name:"donghuafangzhen",size:"24",onClick:o[4]||(o[4]=N=>te("场景4"))})]),e.createElementVNode("div",ut,[e.renderSlot(t.$slots,"button-right",{switchRightPanel:le},void 0,!0),e.createVNode(M.ThreeSvgIcon,{name:"donghuafangzhen",size:"24"}),e.createVNode(M.ThreeSvgIcon,{name:"donghuafangzhen",size:"24"}),e.createVNode(M.ThreeSvgIcon,{name:"guanjiekongzhi",size:"24",onClick:o[5]||(o[5]=N=>le("关节控制")),active:p.value&&a.value==="关节控制",title:"关节控制"},null,8,["active"]),e.createVNode(M.ThreeSvgIcon,{name:"donghuafangzhen",size:"24",title:"动画仿真",onClick:o[6]||(o[6]=N=>le("动画仿真")),active:p.value&&a.value==="动画仿真"},null,8,["active"]),e.createVNode(M.ThreeSvgIcon,{name:"donghuafangzhen",size:"24",title:"urdf动画",onClick:o[7]||(o[7]=N=>le("urdf动画")),active:p.value&&a.value==="urdf动画"},null,8,["active"]),e.createVNode(M.ThreeSvgIcon,{name:"donghuafangzhen",size:"24"})]),e.createElementVNode("div",dt,[e.createVNode(M.ThreeSvgIcon,{name:"kuaitui",size:"24",backgroundColor:"#ffffff",title:"快退",onClick:l}),e.createVNode(M.ThreeSvgIcon,{name:"bofang",size:"24",backgroundColor:"#ffffff",title:"播放",onClick:de}),e.createVNode(M.ThreeSvgIcon,{name:"kuaijin",size:"24",backgroundColor:"#ffffff",title:"快进",onClick:ye}),e.createVNode(M.ThreeSvgIcon,{name:"zanting",size:"24",backgroundColor:"#ffffff",title:"暂停",onClick:be})]),e.withDirectives(e.createElementVNode("div",pt,[e.createElementVNode("div",mt,[e.createElementVNode("span",null,e.toDisplayString(i.value),1),e.createElementVNode("span",{class:"close",onClick:o[8]||(o[8]=N=>d.value=!1)}," X ")]),e.createElementVNode("div",vt,[e.createVNode(y,{height:"100%"},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"top-panel",{topPanelType:i.value},void 0,!0)]),_:3})])],512),[[e.vShow,d.value]]),e.withDirectives(e.createElementVNode("div",ft,[e.createElementVNode("div",gt,[e.createElementVNode("span",null,e.toDisplayString(r.value),1),e.createElementVNode("span",{class:"close",onClick:o[9]||(o[9]=N=>_.value=!1)}," X ")]),e.createElementVNode("div",ht,[e.createVNode(y,{height:"100%"},{default:e.withCtx(()=>{var N;return[r.value==="场景树"?(e.openBlock(),e.createBlock(ne.UrdfTree,{key:0,model:b.value},null,8,["model"])):e.createCommentVNode("",!0),r.value==="剖面视图"?(e.openBlock(),e.createElementBlock("div",Vt,[e.createElementVNode("div",bt,[e.createElementVNode("label",yt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"none","onUpdate:modelValue":o[10]||(o[10]=x=>e.isRef(z)?z.value=x:null),onChange:o[11]||(o[11]=(...x)=>e.unref(j)&&e.unref(j)(...x))},null,544),[[e.vModelRadio,e.unref(z)]]),o[19]||(o[19]=e.createElementVNode("span",{class:"radio-text"},"无切割",-1))]),e.createElementVNode("label",wt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"x","onUpdate:modelValue":o[12]||(o[12]=x=>e.isRef(z)?z.value=x:null),onChange:o[13]||(o[13]=(...x)=>e.unref(j)&&e.unref(j)(...x))},null,544),[[e.vModelRadio,e.unref(z)]]),o[20]||(o[20]=e.createElementVNode("span",{class:"radio-text"},"X轴切割",-1))]),e.createElementVNode("label",Nt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"y","onUpdate:modelValue":o[14]||(o[14]=x=>e.isRef(z)?z.value=x:null),onChange:o[15]||(o[15]=(...x)=>e.unref(j)&&e.unref(j)(...x))},null,544),[[e.vModelRadio,e.unref(z)]]),o[21]||(o[21]=e.createElementVNode("span",{class:"radio-text"},"Y轴切割",-1))]),e.createElementVNode("label",Ct,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"z","onUpdate:modelValue":o[16]||(o[16]=x=>e.isRef(z)?z.value=x:null),onChange:o[17]||(o[17]=(...x)=>e.unref(j)&&e.unref(j)(...x))},null,544),[[e.vModelRadio,e.unref(z)]]),o[22]||(o[22]=e.createElementVNode("span",{class:"radio-text"},"Z轴切割",-1))])])])):e.createCommentVNode("",!0),r.value==="工件树"?(e.openBlock(),e.createBlock(X.WorkpieceTreePanel,{key:2,model:(N=e.unref(me))==null?void 0:N.obj,onVisibleChange:e.unref(ve),onUpdatePosition:e.unref(fe),onUpdateRotation:e.unref(ge)},null,8,["model","onVisibleChange","onUpdatePosition","onUpdateRotation"])):e.createCommentVNode("",!0)]}),_:1})])],512),[[e.vShow,_.value]]),e.withDirectives(e.createElementVNode("div",_t,[e.createElementVNode("div",xt,[e.createElementVNode("span",null,e.toDisplayString(a.value),1),e.createElementVNode("span",{class:"close",onClick:o[18]||(o[18]=N=>p.value=!1)}," X ")]),e.createElementVNode("div",Et,[e.createVNode(y,{height:"100%"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(ne.JointPanel,{model:b.value},null,8,["model"]),[[e.vShow,a.value==="关节控制"]]),e.withDirectives(e.createVNode(Ge,{ref_key:"animationPanelRef",ref:v,model:b.value,onGetThreeData:Ve,threeData:n.threeData},null,8,["model","threeData"]),[[e.vShow,a.value==="动画仿真"]]),e.renderSlot(t.$slots,"right-panel",{rightPanelType:a.value},void 0,!0)]),_:3})])],512),[[e.vShow,p.value]]),C.value?(e.openBlock(),e.createElementBlock("div",kt,[o[23]||(o[23]=e.createElementVNode("div",{class:"loading-spinner"},null,-1)),e.createElementVNode("p",null,e.toDisplayString(u.value),1)])):e.createCommentVNode("",!0),e.createVNode(ot,{ref_key:"pipeAnalysisPanelRef",ref:c},null,512)])}}}),Mt=we._export_sfc(Tt,[["__scopeId","data-v-0b5b1f0b"]]);exports.default=Mt;