ss-component-new 1.2.57 → 1.2.59

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 (110) hide show
  1. package/dist/animationData-CEkMmPAJ.js +111 -0
  2. package/dist/animationData-FLuoH13j.cjs +1 -0
  3. package/dist/{iconfont-Du5a0yIR.js → iconfont-Dp3iGl32.js} +318 -244
  4. package/dist/iconfont-ji7A-_XJ.cjs +1 -0
  5. package/dist/icons/svg/CopyAddMenu.svg +1 -0
  6. package/dist/icons/svg/DeleteMenu.svg +1 -0
  7. package/dist/icons/svg/FixedMenu.svg +1 -0
  8. package/dist/icons/svg//345/273/272/346/250/241/345/210/206/346/236/220.svg +1 -0
  9. package/dist/icons/svg//347/256/227/346/263/225.svg +1 -1
  10. package/dist/{index-BMMCYEsB.js → index--qwZeW47.js} +1 -1
  11. package/dist/{index-DtlFU8RR.cjs → index-B1U77nyf.cjs} +1 -1
  12. package/dist/index-BEfSpHE6.js +17 -0
  13. package/dist/{index-CEkY4nFt.js → index-BFHCLxvz.js} +1 -1
  14. package/dist/index-BN4opOSk.cjs +1 -0
  15. package/dist/{index-B55haWsS.js → index-BNES2eKm.js} +1 -1
  16. package/dist/{index-kXlrQUA8.js → index-BTwRUubF.js} +2 -2
  17. package/dist/{index-DmfzZIKw.cjs → index-BYIlecoJ.cjs} +1 -1
  18. package/dist/{index-D0NMKMU8.cjs → index-BgwYXT31.cjs} +1 -1
  19. package/dist/{index-hL7adbcf.js → index-BiUFu7a_.js} +1500 -1636
  20. package/dist/{index-DYopbovE.js → index-BooTgcW2.js} +1633 -1632
  21. package/dist/{index-CJVA_tHw.cjs → index-BxEjroD6.cjs} +1 -1
  22. package/dist/index-C14Eek69.js +32 -0
  23. package/dist/index-C8IFPtAJ.js +12233 -0
  24. package/dist/index-C9C84gkB.cjs +1 -0
  25. package/dist/{index-BO7R6DCb.cjs → index-CDW8XzWT.cjs} +1 -1
  26. package/dist/index-CHzlphv9.cjs +1 -0
  27. package/dist/{index-vrO7i-BX.cjs → index-CWG2zhJZ.cjs} +1 -1
  28. package/dist/{index-DURGsNBh.js → index-ChyicQIl.js} +1 -1
  29. package/dist/index-D57Bv8co.cjs +1 -0
  30. package/dist/{index-BPiXU1VF.js → index-DAJoy_Z5.js} +1 -1
  31. package/dist/{index-DhbAgrix.cjs → index-DIpWkFjh.cjs} +1 -1
  32. package/dist/index-DLU6Qv3w.cjs +15 -0
  33. package/dist/{index-BQWUpvXk.js → index-DN40xEbb.js} +2 -2
  34. package/dist/{index-HsZY-XbO.js → index-DNs7ujiq.js} +1 -1
  35. package/dist/{index-C8x2JQx7.cjs → index-DXGiAs1G.cjs} +1 -1
  36. package/dist/{index-D3cFqWf8.js → index-DZQjq0ZR.js} +1 -1
  37. package/dist/index-DkNldOC0.cjs +1 -0
  38. package/dist/{index-CgHWXZbW.cjs → index-DuamAhUi.cjs} +1 -1
  39. package/dist/index-DvgAOa6m.js +2858 -0
  40. package/dist/{index-By-PfzqJ.js → index-FUWILZwY.js} +16 -16
  41. package/dist/{index-C9QGZutp.cjs → index-JXXdn01K.cjs} +1 -1
  42. package/dist/{index-Du-GlV8c.cjs → index-LVKvj2hU.cjs} +1 -1
  43. package/dist/{index-D2vsFTnY.js → index-OLQpbvuS.js} +6 -6
  44. package/dist/{index-JGSZNtiO.js → index-YoJfAd5X.js} +1 -1
  45. package/dist/{index-BgLb2tvo.js → index-bcbWOGXs.js} +3 -3
  46. package/dist/{index-cOj9uZ5B.cjs → index-gcSJbApQ.cjs} +1 -1
  47. package/dist/index-lP-_9Gsb.cjs +1 -0
  48. package/dist/index-qDBAJZN2.cjs +1 -0
  49. package/dist/{index-GShz2NEi.js → index-rPWz6KHn.js} +2 -2
  50. package/dist/index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-Bff2sYnQ.cjs +37 -0
  51. package/dist/{index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-DkxmFS5P.js → index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-D6uh0ooh.js} +10026 -10039
  52. package/dist/index.vue_vue_type_style_index_0_scoped_b00cbae2_lang-DlyCfLDJ.cjs +1 -0
  53. package/dist/index.vue_vue_type_style_index_0_scoped_b00cbae2_lang-Dt5lXvbN.js +195 -0
  54. package/dist/{index.vue_vue_type_style_index_1_lang-BEmLh6pe.js → index.vue_vue_type_style_index_1_lang-BUhvhTqt.js} +1 -1
  55. package/dist/{index.vue_vue_type_style_index_1_lang-Dsas9C9w.cjs → index.vue_vue_type_style_index_1_lang-DDYxgdQk.cjs} +1 -1
  56. package/dist/{main-B59ixZA7.js → main-ChUyYPuq.js} +2 -2
  57. package/dist/{main-B3gx12Xo.cjs → main-D-bdppOV.cjs} +1 -1
  58. package/dist/ss-component.cjs +1 -1
  59. package/dist/ss-component.css +2 -2
  60. package/dist/ss-component.js +6 -6
  61. package/dist/ss-component2.cjs +1 -1
  62. package/dist/ss-component2.js +10 -10
  63. package/dist/{threeModel-CxRJigCx.cjs → threeModel-CDFo3As-.cjs} +1 -1
  64. package/dist/{threeModel-ardn7Q2K.js → threeModel-DcuAlWjb.js} +2 -2
  65. package/dist/{threePreview-L8T-JdQL.js → threePreview-DhMkG1np.js} +350 -380
  66. package/dist/threePreview-q4R-oAs6.cjs +1 -0
  67. package/dist/threeSceneView-CAsVH82L.cjs +5 -0
  68. package/dist/threeSceneView-Dav7AGkH.js +1288 -0
  69. package/dist/threeSceneViewForCPMPIP-9__8NGa5.cjs +5 -0
  70. package/dist/threeSceneViewForCPMPIP-DxFYivgN.js +599 -0
  71. package/dist/threeTrackPathView-B7yrSLKq.cjs +370 -0
  72. package/dist/{threeTrackPathView-gTDb6Ckq.js → threeTrackPathView-DXCMl3aZ.js} +307 -376
  73. package/dist/{xlsx-ByPOQ6N_.js → threeViewerHost-BNnzz6WM.js} +4414 -4032
  74. package/dist/threeViewerHost-D70yS3z2.cjs +104 -0
  75. package/dist/{workpieceTreePanel-GlMrvoGI.js → workpieceTreePanel-CCbVIIlm.js} +92 -101
  76. package/dist/workpieceTreePanel-KdP9UaVe.cjs +1 -0
  77. package/package.json +1 -1
  78. package/public/icons/svg/CopyAddMenu.svg +1 -0
  79. package/public/icons/svg/DeleteMenu.svg +1 -0
  80. package/public/icons/svg/FixedMenu.svg +1 -0
  81. package/public/icons/svg//345/273/272/346/250/241/345/210/206/346/236/220.svg +1 -0
  82. package/public/icons/svg//347/256/227/346/263/225.svg +1 -1
  83. package/dist/animationData-CSjRG83z.cjs +0 -1
  84. package/dist/animationData-DgukZCiZ.js +0 -69
  85. package/dist/dataUtil-Bg8jgTaT.js +0 -52
  86. package/dist/dataUtil-CflXOlIl.cjs +0 -1
  87. package/dist/fileUtil-CVIZ039M.js +0 -99
  88. package/dist/fileUtil-DugRTZPB.cjs +0 -1
  89. package/dist/iconfont-BUDQryy4.cjs +0 -1
  90. package/dist/index-BAkz3vaY.js +0 -12229
  91. package/dist/index-BE76NHis.js +0 -2848
  92. package/dist/index-CXGkiovm.cjs +0 -1
  93. package/dist/index-CaV-J52G.cjs +0 -1
  94. package/dist/index-D4y4pCNq.cjs +0 -1
  95. package/dist/index-DKQuP1UM.cjs +0 -1
  96. package/dist/index-DhPNGzbc.cjs +0 -1
  97. package/dist/index-fw0RZg-d.cjs +0 -15
  98. package/dist/index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-til9urRl.cjs +0 -37
  99. package/dist/index.vue_vue_type_style_index_0_scoped_92477073_lang-5Hi_RNl1.cjs +0 -1
  100. package/dist/index.vue_vue_type_style_index_0_scoped_92477073_lang-DIFWhOl8.js +0 -212
  101. package/dist/threePreview-5-O-sZIc.cjs +0 -1
  102. package/dist/threeSceneView-BYl4rYgi.js +0 -1369
  103. package/dist/threeSceneView-igg9HZ8X.cjs +0 -5
  104. package/dist/threeSceneViewForCPMPIP-C-o-rOZ9.js +0 -662
  105. package/dist/threeSceneViewForCPMPIP-DfPj5iau.cjs +0 -5
  106. package/dist/threeTrackPathView-CgjLFXmL.cjs +0 -370
  107. package/dist/threeViewerHost-DvAkN_z-.js +0 -322
  108. package/dist/threeViewerHost-PGblwq3d.cjs +0 -1
  109. package/dist/workpieceTreePanel-Cr4nTOQE.cjs +0 -1
  110. package/dist/xlsx-BPHygxEf.cjs +0 -104
@@ -1,5 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),X=require("./workpieceTreePanel-Cr4nTOQE.cjs"),pe=require("./iconfont-BUDQryy4.cjs"),$=require("./index-C8qRkCgn.cjs"),s=require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-fAuSnfOH.cjs");require("./index-BpPyaNFa.cjs");const Q=require("./index-B2xsH_Wl.cjs");require("./index.vue_vue_type_style_index_1_lang-Dsas9C9w.cjs");require("./index-CF3dfQ01.cjs");require("./index-CX2C-kjD.cjs");const Ce=require("./animationData-CSjRG83z.cjs"),ne=require("./urdfTree-CPEMi7wo.cjs"),we=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),ee=require("./dataUtil-CflXOlIl.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;