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.
- package/dist/{MTLLoader-BFJXexXd.js → MTLLoader-B5xRp-vz.js} +1 -1
- package/dist/{MTLLoader-B7nny5Fq.cjs → MTLLoader-D80GV1WB.cjs} +1 -1
- package/dist/{OrbitControls-xaR75UGu.cjs → OrbitControls-CqIpswqa.cjs} +1 -1
- package/dist/{OrbitControls-C9jawbH9.js → OrbitControls-Dh9PyFO4.js} +1 -1
- package/dist/{animationData-CBP3-eEz.cjs → animationData-BtND2VWy.cjs} +1 -1
- package/dist/{animationData-CgRkXv4t.js → animationData-DZ0i7k1j.js} +1 -1
- package/dist/{iconfont-CP5tSbKZ.cjs → iconfont-0T5xTLj8.cjs} +1 -1
- package/dist/{iconfont-CjxxsF1M.js → iconfont-DN8mra_i.js} +2 -2
- package/dist/{index-DFI9yzK6.js → index-1gXFTnuu.js} +13 -13
- package/dist/{index-DqVT7oIp.cjs → index-BGvxk4QX.cjs} +1 -1
- package/dist/{index-CETcLmm9.js → index-BKaTMDZC.js} +3 -3
- package/dist/{index-vOASo2vq.cjs → index-BUYZ6Pzj.cjs} +1 -1
- package/dist/{index-BtAr_AHh.cjs → index-BYoEVm0h.cjs} +1 -1
- package/dist/{index-Dp0Qfw7S.cjs → index-B_KvjL9P.cjs} +1 -1
- package/dist/{index-BlCQ16SZ.cjs → index-BdwtuRne.cjs} +1 -1
- package/dist/{index-BekTYc0y.cjs → index-BeEVAZ15.cjs} +1 -1
- package/dist/{index-BQ2epFRD.js → index-BjFqn1jw.js} +1 -1
- package/dist/{index-DYPr6Y5L.cjs → index-BooqzjWY.cjs} +1 -1
- package/dist/{index-DUVWJUDm.cjs → index-BprBzYZ5.cjs} +1 -1
- package/dist/{index-Bb1-JDSj.js → index-BtKhX2oM.js} +2 -2
- package/dist/{index-C3T-KdRt.js → index-BvxyAOvM.js} +1 -1
- package/dist/{index-BAhJFVq5.js → index-C07slqLJ.js} +2 -2
- package/dist/{index-1K0-Lril.js → index-C1aAW06_.js} +3 -3
- package/dist/{index-DvGuZe_T.js → index-C7HjGMoA.js} +3 -3
- package/dist/{index-BMP_6QMQ.js → index-CQ7UrLDv.js} +4 -4
- package/dist/{index-C8yBntW8.cjs → index-CRe-_A5B.cjs} +1 -1
- package/dist/{index-BEvmMS0i.js → index-CZLI4UKD.js} +1 -1
- package/dist/{index-Vsjvei0H.js → index-CZsCZbCY.js} +2 -2
- package/dist/{index-BXnPM7aS.cjs → index-C_DIwBxS.cjs} +1 -1
- package/dist/{index-Dp6H2nKE.js → index-CewrcECw.js} +1 -1
- package/dist/{index-B_PGXhqu.js → index-CfHIgB5C.js} +1 -1
- package/dist/{index-D9EZRG95.js → index-CiNYm1fC.js} +1 -1
- package/dist/{index-aQEd-0P6.cjs → index-CpYf3edW.cjs} +1 -1
- package/dist/{index-BuBu-8ML.cjs → index-CtOo2IDL.cjs} +1 -1
- package/dist/{index-DG16Kf33.cjs → index-CuchbMC7.cjs} +1 -1
- package/dist/{index-B2gEqMwz.cjs → index-CylLhQJV.cjs} +1 -1
- package/dist/{index-Ebo1c622.js → index-DJ14vVkb.js} +1 -1
- package/dist/{index-8zvR_tOe.js → index-DQTbLJJt.js} +1 -1
- package/dist/{index-CUEf5Kz5.cjs → index-DSmsp4fK.cjs} +1 -1
- package/dist/{index-7slO1Rxz.cjs → index-DVMvlM3X.cjs} +1 -1
- package/dist/{index-aSIQAW_v.cjs → index-DW_lU8F7.cjs} +1 -1
- package/dist/{index-dDyNP3sZ.js → index-DwsI_FxR.js} +6 -6
- package/dist/{index-5IXozXfb.cjs → index-NMPHjxEr.cjs} +1 -1
- package/dist/{index-q5RVI5cd.js → index-Q33CutvH.js} +3 -3
- package/dist/{index-4C4_axeD.js → index-YxS-TBi2.js} +1 -1
- package/dist/{index-7Birt--o.cjs → index-Z2dyIgOs.cjs} +1 -1
- package/dist/{index-C-L7sbsd.js → index-a_TWt7Sj.js} +6 -6
- package/dist/{index-ihwK0f5N.cjs → index-bz_QKqhV.cjs} +1 -1
- package/dist/{index-B8bmwRCI.js → index-fbsH9PEh.js} +1 -1
- package/dist/{index-CP7aP3gS.cjs → index-m_VPPkQD.cjs} +1 -1
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/dist/{main-Cwa67iI0.cjs → main-BxTLrfxf.cjs} +1 -1
- package/dist/{main-t0azuc9l.js → main-D_3GSDl9.js} +2 -2
- package/dist/ss-component.cjs +1 -1
- package/dist/ss-component.css +1 -1
- package/dist/ss-component.js +9 -9
- package/dist/ss-component2.cjs +1 -1
- package/dist/ss-component2.js +10 -10
- package/dist/{threeModel-Byx2BFHA.js → threeModel-BKLggDE-.js} +4 -4
- package/dist/{threeModel-BsTUf7j3.cjs → threeModel-D4-2rEpM.cjs} +1 -1
- package/dist/{threePreview-DGcEWlwZ.cjs → threePreview-QIurmOdU.cjs} +1 -1
- package/dist/{threePreview-B9a62AVY.js → threePreview-oszvdj-G.js} +578 -579
- package/dist/threeSceneView-BR1l9yTW.js +1341 -0
- package/dist/threeSceneView-CaHI2V82.cjs +5 -0
- package/dist/threeSceneViewForCPMPIP-DbvRq5YC.cjs +5 -0
- package/dist/{threeSceneViewForCPMPIP-BslGbi80.js → threeSceneViewForCPMPIP-wZTvUhLm.js} +232 -238
- package/dist/{threeTrackPathView-CNiRDEIa.js → threeTrackPathView-CAK5om32.js} +258 -305
- package/dist/{threeTrackPathView-C5outYjx.cjs → threeTrackPathView-CF9ierHN.cjs} +2 -2
- package/dist/{threeViewerHost-C2iVAVlI.js → threeViewerHost-CeTJmyoE.js} +2 -2
- package/dist/{threeViewerHost-D3ZmD_As.cjs → threeViewerHost-iajMfGA9.cjs} +2 -2
- package/dist/{urdfTree-DEo6cc0y.cjs → urdfTree-CWwnorES.cjs} +1 -1
- package/dist/{urdfTree-D_oX4idQ.js → urdfTree-DIyCunQo.js} +1 -1
- package/dist/{workpieceTreePanel--92uvFwB.js → workpieceTreePanel-DC0GHh3g.js} +5 -5
- package/dist/{workpieceTreePanel-C0Lq3HIU.cjs → workpieceTreePanel-YfDCHyA3.cjs} +1 -1
- package/package.json +1 -1
- package/dist/obj/model.mtl +0 -42
- package/dist/obj/model.obj +0 -26110
- package/dist/threeSceneView-BYc0Z0CJ.cjs +0 -5
- package/dist/threeSceneView-C59wI_1_.js +0 -1369
- package/dist/threeSceneViewForCPMPIP-kGIus7ge.cjs +0 -5
- package/public/obj/model.mtl +0 -42
- package/public/obj/model.obj +0 -26110
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),X=require("./workpieceTreePanel-YfDCHyA3.cjs"),de=require("./iconfont-0T5xTLj8.cjs"),A=require("./index-C8qRkCgn.cjs"),a=require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-QzgaFA5S.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-DR71_XjN.cjs");require("./index-D4EyLxA0.cjs");const Ce=require("./animationData-BtND2VWy.cjs"),ne=require("./urdfTree-CWwnorES.cjs"),we=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),ee=require("./dataUtil-DrslFFRT.cjs"),$=require("./svgIcon-CUM54R6L.cjs"),Z=.001,H=a.MathUtils.degToRad,Ne=new a.MeshStandardMaterial({color:13421772,metalness:.3,roughness:.6,side:a.DoubleSide});function Te(y=.005,v=64){const g=new a.CatmullRomCurve3([new a.Vector3(0,0,0),new a.Vector3(0,0,0)]),l=new a.TubeGeometry(g,v,y,16,!1),h=Ne;return new a.Mesh(l,h)}const ke=y=>y.reduce((v,g)=>{let l=0;const h=g.Y??0,V=g.C??0,u=g.R??0;return h>0&&(l+=h),V>0&&u>0&&(l+=u*H(V)),v+l},0),Me=y=>{const v=[],g=y.Y??0,l=y.B??0,h=y.C??0,V=y.R??0,u={pos:new a.Vector3(0,0,0),localY:new a.Vector3(0,1,0),localX:new a.Vector3(1,0,0),localZ:new a.Vector3(0,0,1)};if(!g&&!h)return v;if(v.push(u.pos.clone()),l!==0){const C=new a.Matrix4().makeRotationAxis(u.localY,H(l));u.localX.applyMatrix4(C),u.localZ.applyMatrix4(C)}if(g>0&&(u.pos.add(u.localY.clone().multiplyScalar(g*Z)),v.push(u.pos.clone())),h>0&&V>0){const C=H(h),c=V*Z,_=u.pos.clone().add(u.localX.clone().multiplyScalar(-c)),s=Math.max(16,Math.ceil(h/5));for(let p=1;p<=s;p++){const n=C*p/s,d=new a.Matrix4().makeRotationAxis(u.localZ,n),b=u.localX.clone().multiplyScalar(c).applyMatrix4(d),x=_.clone().add(b);v.push(x)}}return v};function Se(y,v){const g=new a.Group;g.name="CompletePipe";const l={pos:new a.Vector3(0,0,0),localX:new a.Vector3(1,0,0),localY:new a.Vector3(0,1,0),localZ:new a.Vector3(0,0,1)};let h=0,V=1;for(let u=0;u<y.length;u++){const C=y[u],c=C.Y??0,_=C.B??0,s=C.C??0,p=C.R??0;if(_!==0){const n=new a.Matrix4().makeRotationAxis(l.localY,H(_));l.localX.applyMatrix4(n),l.localZ.applyMatrix4(n)}if(c>0){const n=l.pos.clone();l.pos.add(l.localY.clone().multiplyScalar(c*Z));const d=l.pos.clone(),r=Pe(n,d,v*Z);r.userData={segmentType:"straight",segmentIndex:h,frameIndex:u,length:c,frame:{Y:c,B:_,C:s,R:p}},r.name=`直段_${h}`,g.add(r);const b=n.clone();De(g,V,b,v*Z),h++}if(s>0&&p>0){const n=H(s),d=p*Z,r=[];r.push(l.pos.clone());const b=l.pos.clone().add(l.localX.clone().multiplyScalar(-d)),x=Math.max(16,Math.ceil(s/5));for(let S=1;S<=x;S++){const T=n*S/x,k=new a.Matrix4().makeRotationAxis(l.localZ,T),E=l.localX.clone().multiplyScalar(d).applyMatrix4(k),w=b.clone().add(E);r.push(w)}const f=Re(r,v*Z);f.userData={segmentType:"bend",segmentIndex:h,frameIndex:u,angle:s,radius:p,centerPoint:b.toArray(),frame:{Y:c,B:_,C:s,R:p}},f.name=`弯段_${h}`,g.add(f),Math.floor(r.length/2),r[0],l.pos=r[r.length-1].clone();const M=new a.Matrix4().makeRotationAxis(l.localZ,n);l.localY.applyMatrix4(M),l.localX.applyMatrix4(M),h++,V++}}return g}function De(y,v,g,l){const h=new a.Vector3(0,l*2,l*5),V=g.clone().add(h),u=[g,V],C=new a.BufferGeometry().setFromPoints(u),c=new a.LineDashedMaterial({color:16711680,dashSize:l*.5,gapSize:l*.3,linewidth:1}),_=new a.Line(C,c);_.computeLineDistances(),y.add(_);const s=document.createElement("canvas"),p=s.getContext("2d");s.width=128,s.height=128,p.clearRect(0,0,128,128),p.fillStyle="#FF0000",p.font="bold 80px Arial",p.textAlign="center",p.textBaseline="middle",p.fillText(v.toString(),64,64);const n=new a.CanvasTexture(s),d=new a.SpriteMaterial({map:n,transparent:!0,depthTest:!1,depthWrite:!1}),r=new a.Sprite(d),b=l*3;r.scale.set(b,b,1),r.position.copy(V),r.name=`Label_${v}`,r.userData={labelNumber:v},y.add(r)}function Pe(y,v,g){const l=new a.LineCurve3(y,v),h=new a.TubeGeometry(l,2,g,18,!1);return new a.Mesh(h,Ne)}function Re(y,v){const g=new a.CatmullRomCurve3(y,!1,"catmullrom",.01),l=new a.TubeGeometry(g,Math.max(16,y.length*2),v,18,!1);return new a.Mesh(l,Ne)}function _e(y,v,g,l,h,V=0){let u=v.slice(0,h+1);const C=v[h+1];if(C&&V>0){const r={...C,B:(C.B??0)*V,C:(C.C??0)*V};u.push(r)}const c=ke(u),_=Math.max(0,g-c),s=[];s.push(new a.Vector3(0,0,0));const p=new a.Vector3(0,_*Z,0);_>0&&s.push(p);let n={pos:p.clone(),localY:new a.Vector3(0,1,0),localX:new a.Vector3(1,0,0),localZ:new a.Vector3(0,0,1)};const d=[];for(let r=u.length-1;r>=0;r--){const b=u[r],x=Me(b);if(x.length>0){const f=x.map(k=>{const D=k.clone(),E=new a.Matrix4;return E.makeBasis(n.localX,n.localY,n.localZ),D.applyMatrix4(E),D.add(n.pos)});d.push(f);const M=f[f.length-1];n.pos=M.clone();const S=b.B??0,T=b.C??0;if(S!==0){const k=new a.Matrix4().makeRotationAxis(n.localY,H(S));n.localX.applyMatrix4(k),n.localZ.applyMatrix4(k)}if(T>0){const k=H(T),D=new a.Matrix4().makeRotationAxis(n.localZ,k);n.localY.applyMatrix4(D),n.localX.applyMatrix4(D)}}}for(const r of d)r.length>1&&s.push(...r.slice(1));s.length<2&&s.push(new a.Vector3(0,.001,0));try{const r=new a.CatmullRomCurve3(s,!1,"catmullrom",.01),b=new a.TubeGeometry(r,Math.max(2,s.length*4),l*Z,18,!1);y.geometry.dispose(),y.geometry=b}catch(r){console.error("管件更新失败",r)}}function xe(y,v,g,l=0){let h=y.slice(0,g+1);const V=y[g+1];if(V&&l>0){const n={...V,B:(V.B??0)*l,C:(V.C??0)*l};h.push(n)}const u=ke(h),C=Math.max(0,v-u),c=[];c.push(new a.Vector3(0,0,0));const _=new a.Vector3(0,C*Z,0);C>0&&c.push(_);let s={pos:_.clone(),localY:new a.Vector3(0,1,0),localX:new a.Vector3(1,0,0),localZ:new a.Vector3(0,0,1)};const p=[];for(let n=h.length-1;n>=0;n--){const d=h[n],r=Me(d);if(r.length>0){const b=r.map(S=>{const T=S.clone(),k=new a.Matrix4;return k.makeBasis(s.localX,s.localY,s.localZ),T.applyMatrix4(k),T.add(s.pos)});p.push(b);const x=b[b.length-1];s.pos=x.clone();const f=d.B??0,M=d.C??0;if(f!==0){const S=new a.Matrix4().makeRotationAxis(s.localY,H(f));s.localX.applyMatrix4(S),s.localZ.applyMatrix4(S)}if(M>0){const S=H(M),T=new a.Matrix4().makeRotationAxis(s.localZ,S);s.localY.applyMatrix4(T),s.localX.applyMatrix4(T)}}}for(const n of p)n.length>1&&c.push(...n.slice(1));return c.length<2&&c.push(new a.Vector3(0,.001,0)),c}function Ee(y,v,g,l,h,V,u,C=0,c=0){const _=h-c,s=xe(l,_,u,C);let n=xe(g,c,u,C);n.forEach(r=>r.y=-r.y),n.reverse();const d=[...n,...s];try{const r=new a.CatmullRomCurve3(d,!1,"catmullrom",.01),b=new a.TubeGeometry(r,Math.max(2,d.length*4),V*Z,18,!1);v.geometry.dispose(),y.geometry.dispose(),v.parent&&v.parent.remove(v),y.geometry=b}catch(r){console.error("管件更新失败",r)}}const Be={class:"panel-content"},Ae={class:"action-bar"},$e={class:"animation-controls"},ze={class:"control-row"},Fe={class:"control-row"},Ye={class:"frame-info"},Le={class:"control-row"},Ue={class:"progress-bar"},Ie={class:"dialog-footer"},Ge=e.defineComponent({__name:"animationPanel",props:{model:{},threeData:{}},emits:["getThreeData"],setup(y,{expose:v,emit:g}){const l=y,h=g,V=e.ref(),u=e.ref();e.watch(()=>l.threeData,t=>{const o=t==null?void 0:t.data;u.value=o==null?void 0:o.type},{immediate:!0});const C=async()=>{if(!sessionStorage.getItem("systemKey")){h("getThreeData");return}let o={};u.value===X.robotMode.SINGLE&&(o=await Ce.fetchSingleRobotAnimationData()),u.value===X.robotMode.DOUBLE&&(o=await Ce.fetchDoubleRobotAnimationData());const{initialPipeLength:i=0,pipeRadius:m=0,clampLength:N=0,animationData:Y}=o;T.value=i,k.value=m,D.value=N,V.value=Y;const O=A.cloneDeep(V.value),K=ce(z.value),q=(O==null?void 0:O["输出(动画数据)"])||[];c.value=q.length?q:[K]},c=e.ref([]),_=e.ref(!1),s=e.ref(""),p=e.ref(!1),n=e.ref(0),d=e.ref(0),r=e.ref(1e3);let b=!1;const x=e.ref(null),f=e.shallowRef(null),M=e.shallowRef(null),S=e.shallowRef(null),T=e.ref(0),k=e.ref(12.5),D=e.ref(30),E=e.ref([]),w=e.ref(null),U=e.computed(()=>l.model?ne.getNonFixedJoints(l.model).map(i=>i.name):[]),j=e.ref(["Y","B","C","R"]),z=e.computed(()=>[...U.value,...j.value]),F=e.computed(()=>z.value.length>0?`请按以下格式粘贴数据 (第一行为表头,使用 Tab 分隔):
|
|
2
|
+
${z.value.join(" ")}
|
|
3
|
+
0 0 0 ...
|
|
4
|
+
1 2 3 ...`:"请先加载模型。"),J=()=>c.value.map(t=>({Y:parseFloat(t.Y)||0,B:parseFloat(t.B)||0,C:parseFloat(t.C)||0,R:parseFloat(t.R)||0})),I=()=>{const t=[],o=[];return c.value.forEach(i=>{const{Y1:m,B1:N,C1:Y,R1:O,Y2:K,B2:q,C2:ie,R2:B}=i;t.push({Y:parseFloat(m)||0,B:parseFloat(N)||0,C:parseFloat(Y)||0,R:parseFloat(O)||0}),o.push({Y:parseFloat(K)||0,B:parseFloat(q)||0,C:parseFloat(ie)||0,R:parseFloat(B)||0})}),{posPipeYbcr:t,negPipeYbcr:o}},L=(t=0,o=0)=>{if(f.value&&M.value){const i=I();Ee(f.value,M.value,i.posPipeYbcr,i.negPipeYbcr,T.value,k.value,t,o,D.value)}else if(f.value){const i=J();_e(f.value,i,T.value,k.value,t,o)}},W=t=>{if(t<0||t>=c.value.length){console.error(`帧索引 ${t} 超出范围`);return}const o=c.value[t];if(console.log(`应用第 ${t} 帧数据 ${o}`),n.value=t,x.value){const i={};U.value.forEach(m=>{const N=parseFloat(o[m]);isNaN(N)||(i[m]=N)}),x.value.setJointAngles(i)}L(t,0)},P=async()=>{if(c.value.length===0){A.ElMessage.error("无法播放动画:无数据");return}if(!p.value){p.value=!0,b=!1,c.value.length-1===n.value&&(n.value=0);try{for(let t=n.value+1;t<c.value.length&&!b;t++){n.value=t;const o=c.value[t],i={};x.value&&U.value.forEach(m=>{const N=parseFloat(o[m]);isNaN(N)||(i[m]=N)}),x.value?await x.value.animateToState(i,r.value,m=>{d.value=(t+m)/c.value.length*100,L(t-1,m)}):(await new Promise(m=>setTimeout(m,r.value)),d.value=(t+1)/c.value.length*100)}b||A.ElMessage.success("动画播放完成")}catch(t){console.error("动画播放出错:",t),A.ElMessage.error("动画播放出错")}finally{p.value=!1,d.value=0}}},R=()=>{b=!0,p.value=!1,d.value=0,A.ElMessage.info("动画已停止")},ae=()=>{n.value=0},G=()=>{if(f.value&&M.value){const t=I();Ee(f.value,M.value,t.posPipeYbcr,t.negPipeYbcr,T.value,k.value,-1,0,D.value)}else if(f.value){const t=J();_e(f.value,t,T.value,k.value,-1,0)}},oe=()=>{x.value&&x.value.resetToZero(),G(),ae(),A.ElMessage.success("机器人和管件已重置")},pe=t=>`第 ${t+1} 帧`,me=t=>{p.value&&R(),W(t)},ve=()=>{p.value&&R(),!(n.value+1>=c.value.length)&&W(n.value+1)},fe=()=>{p.value&&R(),n.value!==0&&W(n.value-1)},se=()=>{S.value&&(S.value.visible=!0),f.value&&f.value.parent&&f.value.parent.remove(f.value),S.value=null,f.value=null,M.value=null},ce=t=>t==null?void 0:t.reduce((o,i)=>(o[i]="0",o),{});e.watch(z,(t,o)=>{if(JSON.stringify(t)!==JSON.stringify(o))if(t.length>0){const i=ce(t);c.value=[i]}else c.value=[]},{immediate:!0});const re=e.ref(0),ge=t=>{re.value=t},te=(t,o)=>{if(!t||!o)return;const i=ne.getTargetJoint(t,o),m=Te();m.visible=!1,i==null||i.add(m)},le=t=>{x.value=new X.URDFRobotController(t),E.value=ne.getAllLinkName(t),w.value="Pipe_Joint"},he=()=>{x.value=null,E.value=[],w.value=null},Ve=t=>{le(t),te(t,w.value),ge(re.value+1),oe()};e.watch(()=>l.model,t=>{if(se(),t){Ve(t);return}he()},{immediate:!0});const ue=t=>{var i,m;const o=new a.Mesh(t.geometry.clone(),t.material);return o.name="managed_pipe_clone",(m=(i=t==null?void 0:t.parent)==null?void 0:i.add)==null||m.call(i,o),o.position.copy(t.position),o.rotation.copy(t.rotation),o.scale.copy(t.scale),o};e.watch([w,D,T,re],([t,o])=>{if(se(),l.model&&t){const i=ne.getMeshFromJoint(l.model,t);if(console.log(i,"meshToReplace"),i&&i.parent){S.value=i,i.visible=!1;const m=ue(i);if(u.value===X.robotMode.SINGLE&&(m.position.y-=o*.001),f.value=m,u.value===X.robotMode.DOUBLE){const N=ue(i);M.value=N}L(0,0)}else t&&console.warn(`在 link '${t}' 中未找到可替换的网格或其没有父级。`)}});const ye=async()=>{if(z.value.length===0){A.ElMessage.warning("没有可导出的表头");return}const t=z.value.join(" ");try{await navigator.clipboard.writeText(t),A.ElMessage.success("表头已成功复制到剪贴板!")}catch(o){console.error("复制失败:",o),A.ElMessage.error("复制失败,请检查浏览器权限或手动复制。")}},be=()=>{if(!s.value.trim()){A.ElMessage.warning("导入内容不能为空");return}const t=s.value.trim().split(`
|
|
5
|
+
`).filter(Y=>Y.trim()!=="");if(t.length<2){A.ElMessage.error("导入数据至少需要包含表头行和一行数据");return}const o=t[0].split(" ").map(Y=>Y.trim()),i={};if(o.forEach((Y,O)=>{z.value.includes(Y)&&(i[O]=Y)}),Object.keys(i).length===0){A.ElMessage.error("没有找到匹配的表头,请检查表头名称是否正确");return}const N=t.slice(1).map(Y=>{const O=Y.split(" "),K={};return z.value.forEach(q=>{K[q]="0"}),Object.entries(i).forEach(([q,ie])=>{const B=O[parseInt(q)];B!==void 0&&B.trim()!==""&&(K[ie]=B.trim())}),K});N.length>0?(c.value=N,A.ElMessage.success(`成功导入 ${N.length} 行数据!`),_.value=!1,s.value=""):A.ElMessage.error("未能解析到有效数据,请检查格式。")};return e.onUnmounted(()=>{se(),b=!0}),v({playAnimation:P,stopAnimation:R,forwardFrame:ve,backwardFrame:fe}),(t,o)=>{const i=e.resolveComponent("el-icon"),m=e.resolveComponent("el-input-number"),N=e.resolveComponent("el-form-item"),Y=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",Ae,[e.createVNode(Q._sfc_main,{onClick:C,modelValue:"获取数据"}),e.createVNode(Q._sfc_main,{onClick:ye,disabled:z.value.length===0,modelValue:"导出表头"},null,8,["disabled"]),e.createVNode(Q._sfc_main,{modelValue:"播放",onClick:P,disabled:c.value.length===0||p.value,buttonType:"primary"},{default:e.withCtx(()=>[p.value?(e.openBlock(),e.createBlock(i,{key:0,class:"is-loading"},{default:e.withCtx(()=>[e.createVNode(e.unref(A.loading_default))]),_:1})):e.createCommentVNode("",!0)]),_:1},8,["disabled"]),e.createVNode(Q._sfc_main,{onClick:R,modelValue:"停止",buttonType:"danger"}),e.createVNode(Q._sfc_main,{onClick:oe,modelValue:"重置",buttonType:"primary"})]),e.createElementVNode("div",$e,[e.createElementVNode("div",ze,[e.createVNode(Y,{"label-width":"auto",style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(N,{label:"帧间隔 (ms):",prop:"frameDuration"},{default:e.withCtx(()=>[e.createVNode(m,{modelValue:r.value,"onUpdate:modelValue":o[0]||(o[0]=B=>r.value=B),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(m,{modelValue:T.value,"onUpdate:modelValue":o[1]||(o[1]=B=>T.value=B),min:0,style:{width:"100%"}},null,8,["modelValue"])]),_:1}),e.createVNode(N,{label:"管件半径 (mm):",prop:"pipeRadius"},{default:e.withCtx(()=>[e.createVNode(m,{modelValue:k.value,"onUpdate:modelValue":o[2]||(o[2]=B=>k.value=B),min:0,style:{width:"100%"}},null,8,["modelValue"])]),_:1}),e.createVNode(N,{label:"夹持长度 (mm):",prop:"clampLength"},{default:e.withCtx(()=>[e.createVNode(m,{modelValue:D.value,"onUpdate:modelValue":o[3]||(o[3]=B=>D.value=B),min:0,style:{width:"100%"}},null,8,["modelValue"])]),_:1})]),_:1})]),o[10]||(o[10]=e.createElementVNode("div",{class:"control-row"},[e.createElementVNode("label",null,"管件 Mesh:")],-1)),e.createElementVNode("div",Fe,[o[8]||(o[8]=e.createElementVNode("label",null,"当前帧:",-1)),e.createElementVNode("span",Ye,e.toDisplayString(n.value+1)+" / "+e.toDisplayString(c.value.length),1)]),e.createElementVNode("div",Le,[o[9]||(o[9]=e.createElementVNode("label",null,"动画进度:",-1)),e.createVNode(O,{modelValue:n.value,"onUpdate:modelValue":o[4]||(o[4]=B=>n.value=B),min:0,max:c.value.length>0?c.value.length-1:0,step:1,"format-tooltip":pe,onInput:me,disabled:c.value.length===0,style:{"flex-grow":"1",margin:"0 10px"}},null,8,["modelValue","max","disabled"])]),e.createElementVNode("div",Ue,[e.createVNode(K,{percentage:d.value,"show-text":!1,"stroke-width":6},null,8,["percentage"])])]),e.createVNode(ie,{modelValue:_.value,"onUpdate:modelValue":o[7]||(o[7]=B=>_.value=B),title:"导入数据",width:"500px"},{footer:e.withCtx(()=>[e.createElementVNode("span",Ie,[e.createVNode(Q._sfc_main,{modelValue:"取消",onClick:o[6]||(o[6]=B=>_.value=!1)}),e.createVNode(Q._sfc_main,{modelValue:"确认导入",onClick:be,type:"primary"})])]),default:e.withCtx(()=>[o[11]||(o[11]=e.createElementVNode("p",{class:"import-instructions"}," 请从Excel或csv中复制数据 (首行为表头, Tab分隔) ",-1)),e.createVNode(q,{modelValue:s.value,"onUpdate:modelValue":o[5]||(o[5]=B=>s.value=B),type:"textarea",rows:10,placeholder:F.value},null,8,["modelValue","placeholder"])]),_:1,__:[11]},8,["modelValue"])])}}}),je=we._export_sfc(Ge,[["__scopeId","data-v-ca681456"]]),Oe=async()=>{const y=["工件库","弯管"],v=await ee.getMenuData(y),g=ee.getTargetGroup("工件列表",v),l=ee.getMainKeysFromGroup(g);return l==null?void 0:l.map(V=>({name:V,mainKey:V}))},Xe=async y=>{const v=["工件库","弯管"],g=await ee.getDetailData(v,y),l=ee.getTargetGroup("弯管基础参数",g),h=ee.getTargetGroup("弯管特征尺寸",g),V={outerDiameter:0,ybcrList:[]},u=ee.getFormData(l),C=ee.getTableData(h);return V.outerDiameter=(u==null?void 0:u.外径)||0,V.ybcrList=C||[],V},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(y,{expose:v,emit:g}){const l=e.ref(null),h=e.shallowRef(null),{initThreeJS:V,handleResize:u,cleanup:C,clearAllModels:c,addModelAndFit:_}=de.useThreeJS(l);e.ref(null);const s=e.ref({file:null,pipe:""});e.ref(null),e.ref(!1);const p=e.ref([]),n=E=>{p.value=E};e.ref("ybcr");const d=e.ref({form:{},list:[],reverse:!1}),r=E=>{const{length:w,outerDiameter:U,innerDiameter:j,thickness:z,ybcrList:F}=E||{};d.value.form={length:w,outerDiameter:U,innerDiameter:j,thickness:z},d.value.list=F},b=()=>{const{form:E,list:w}=d.value,{outerDiameter:U}=E,j=U/2,z=w==null?void 0:w.map(J=>{const{y:I,b:L,c:W,r:P,Y:R,B:ae,C:G,R:oe}=J;return R?{Y:R,B:ae,C:G,R:oe}:{Y:I,B:L,C:W,R:P}});c();const F=Se(z,j);_(F)},x=e.ref(!1),f=()=>{const E=x.value;x.value=!E},M=e.ref(!1),S=()=>{M.value=!1},T=()=>{M.value=!0},k=async()=>{const E=await Oe();n(E)},D=async E=>{const w=await Xe(E);r(w)};return e.watch(()=>d,()=>{b()},{deep:!0}),e.watch(()=>l,()=>{try{if(h.value)return;V(),window.addEventListener("resize",u)}catch(E){console.error("Three.js 初始化失败:",E),A.ElMessage.error("渲染引擎初始化失败!")}},{deep:!0}),e.onMounted(async()=>{k()}),e.onBeforeUnmount(()=>{window.removeEventListener("resize",u),C()}),v({openDialog:T}),(E,w)=>{const U=e.resolveComponent("el-icon"),j=e.resolveComponent("el-option"),z=e.resolveComponent("el-select"),F=e.resolveComponent("el-form-item"),J=e.resolveComponent("el-form"),I=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:M.value,onBeforeDestroy:E.onDestroy,showClose:!1,fullScreen:x.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(U,null,{default:e.withCtx(()=>[e.createVNode(e.unref(A.full_screen_default),{onClick:f})]),_:1}),e.createVNode(U,null,{default:e.withCtx(()=>[e.createVNode(e.unref(A.close_default),{onClick:S})]),_: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:s.value,"label-width":"auto","label-position":"top"},{default:e.withCtx(()=>[e.createVNode(F,{label:"弯管"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:s.value.pipe,"onUpdate:modelValue":w[0]||(w[0]=P=>s.value.pipe=P),placeholder:"请选择弯管",onChange:D},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,P=>(e.openBlock(),e.createBlock(j,{label:P.name,value:P.mainKey},null,8,["label","value"]))),256))]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),e.createElementVNode("div",Qe,[e.createVNode(F,{label:"加工方向"},{default:e.withCtx(()=>[e.createVNode(z,{modelValue:d.value.reverse,"onUpdate:modelValue":w[1]||(w[1]=P=>d.value.reverse=P),placeholder:"请选择加工方向"},{default:e.withCtx(()=>[e.createVNode(j,{label:"正向",value:!1}),e.createVNode(j,{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(F,{label:"管长"},{default:e.withCtx(()=>[e.createVNode(I,{modelValue:d.value.form.length,"onUpdate:modelValue":w[2]||(w[2]=P=>d.value.form.length=P)},null,8,["modelValue"])]),_:1}),e.createVNode(F,{label:"外径"},{default:e.withCtx(()=>[e.createVNode(I,{modelValue:d.value.form.outerDiameter,"onUpdate:modelValue":w[3]||(w[3]=P=>d.value.form.outerDiameter=P)},null,8,["modelValue"])]),_:1}),e.createVNode(F,{label:"内径"},{default:e.withCtx(()=>[e.createVNode(I,{modelValue:d.value.form.innerDiameter,"onUpdate:modelValue":w[4]||(w[4]=P=>d.value.form.innerDiameter=P)},null,8,["modelValue"])]),_:1}),e.createVNode(F,{label:"壁厚"},{default:e.withCtx(()=>[e.createVNode(I,{modelValue:d.value.form.thickness,"onUpdate:modelValue":w[5]||(w[5]=P=>d.value.form.thickness=P)},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:l},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-topLeft"},it={class:"buttonGroup-left"},ct={class:"buttonGroup-right"},ut={class:"buttonGroup-bottom"},dt={class:"top-panel"},pt={class:"panel-header"},mt={class:"panel-body"},vt={class:"left-panel"},ft={class:"panel-header"},gt={class:"panel-body"},ht={key:1,class:"clipping-content"},Vt={class:"radio-group"},yt={class:"radio-label"},bt={class:"radio-label"},wt={class:"radio-label"},Nt={class:"radio-label"},Ct={class:"right-panel"},_t={class:"panel-header"},xt={class:"panel-body"},Et={key:0,class:"loading-overlay"},kt=e.defineComponent({__name:"threeSceneView",props:{fileBlobs:{default:()=>[]},animationData:{default:()=>({})},threeData:{}},emits:["getAnimationData","getThreeData"],setup(y,{emit:v}){const g=v,l=y,h=e.ref(X.sceneType.ROBOT),V=e.ref(null),u=e.ref(),C=e.ref(!1),c=e.ref(""),_=e.ref(!1),s=e.ref(""),p=e.ref(!1),n=e.ref(""),d=e.ref(!1),r=e.ref(""),b=e.shallowRef(null),x=e.shallowRef(null),f=e.ref(),{currentModels:M,resetView:S,initThreeJS:T,handleResize:k,getThreeJSObjects:D,cleanup:E,setModels:w,axesHelperVisible:U,toggleAxesVisibility:j,zoomIn:z,zoomOut:F}=de.useThreeJS(V),{loadSceneFromFile:J}=X.useUrdfLoader(D,M,C,c),{isAnimating:I,toggleAnimation:L,stopAnimation:W}=de.useAnimation(D,M),{isClipping:P,activeClippingAxis:R,toggleClipping:ae,updateClippingPlanes:G}=de.useClipping(D,M),{initRaycaster:oe,selectedObject3D:pe,setSelectedObjVisible:me,updatePosition:ve,updateRotation:fe,dispose:se}=X.useRaycaster(V,D,M),ce=()=>{j()},re=e.computed(()=>h.value===X.sceneType.ROBOT),ge=e.computed(()=>h.value===X.sceneType.PIPECOMPARSION),te=t=>{_.value=!0,s.value=t,t==="剖面视图"&&!P.value&&ae()},le=t=>{p.value=!0,n.value=t,t==="动画仿真"&&g("getAnimationData")},he=()=>{g("getThreeData")},Ve=()=>{var t;(t=f==null?void 0:f.value)==null||t.playAnimation()},ue=()=>{var t;(t=f==null?void 0:f.value)==null||t.stopAnimation()},ye=()=>{var t;(t=f==null?void 0:f.value)==null||t.forwardFrame()},be=()=>{var t;(t=f==null?void 0:f.value)==null||t.backwardFrame()};return e.watch(()=>l.fileBlobs,t=>{if(t&&t.length>0){const o=t[0];if(!o.name.toLowerCase().endsWith(".urdf"))return;J(o).then(i=>{b.value=i}).catch(i=>{console.error("加载URDF文件时发生错误:",i),A.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{T(),window.addEventListener("resize",k);const t=D();x.value=t.scene}catch(t){console.error("Three.js 初始化失败:",t),A.ElMessage.error("渲染引擎初始化失败!")}}),e.onBeforeUnmount(()=>{s.value="",n.value="",window.removeEventListener("resize",k),I.value&&W(),E(),se()}),(t,o)=>{const i=e.resolveComponent("el-scrollbar");return e.openBlock(),e.createElementBlock("div",lt,[e.withDirectives(e.createElementVNode("div",{ref_key:"threejsContainer",ref:V,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,ge.value]]),e.createElementVNode("div",rt,[e.createVNode($.ThreeSvgIcon,{name:"viewReset",size:"24",onClick:e.unref(S),title:"重置"},null,8,["onClick"]),e.createVNode($.ThreeSvgIcon,{name:"fangda",size:"24",title:"放大",onClick:e.unref(z)},null,8,["onClick"]),e.createVNode($.ThreeSvgIcon,{name:"suoxiao",size:"24",title:"缩小",onClick:e.unref(F)},null,8,["onClick"]),e.createVNode($.ThreeSvgIcon,{name:"lookAround",size:"24",onClick:e.unref(L),title:e.unref(I)?"停止动画":"动画视图"},null,8,["onClick","title"]),e.createVNode($.ThreeSvgIcon,{name:"zuobiaoxi",size:"24",active:e.unref(U),onClick:ce,title:"显隐坐标轴"},null,8,["active"])]),e.createElementVNode("div",it,[e.renderSlot(t.$slots,"button-left",{switchRightPanel:te},void 0,!0),e.createVNode($.ThreeSvgIcon,{name:"jiegoushu",size:"24",onClick:o[0]||(o[0]=m=>te("场景树")),active:_.value&&s.value==="场景树",title:"场景树"},null,8,["active"]),e.createVNode($.ThreeSvgIcon,{name:"clipping",size:"24",onClick:o[1]||(o[1]=m=>te("剖面视图")),active:_.value&&s.value==="剖面视图",title:"剖面视图"},null,8,["active"]),e.createVNode($.ThreeSvgIcon,{name:"zhaozi",size:"24",onClick:o[2]||(o[2]=m=>te("工件树")),active:_.value&&s.value==="工件树",title:"工件 "},null,8,["active"]),e.createVNode($.ThreeSvgIcon,{name:"donghuafangzhen",size:"24",onClick:o[3]||(o[3]=m=>te("场景4"))})]),e.createElementVNode("div",ct,[e.renderSlot(t.$slots,"button-right",{switchRightPanel:le},void 0,!0),e.createVNode($.ThreeSvgIcon,{name:"donghuafangzhen",size:"24"}),e.createVNode($.ThreeSvgIcon,{name:"donghuafangzhen",size:"24"}),e.createVNode($.ThreeSvgIcon,{name:"guanjiekongzhi",size:"24",onClick:o[4]||(o[4]=m=>le("关节控制")),active:p.value&&n.value==="关节控制",title:"关节控制"},null,8,["active"]),e.createVNode($.ThreeSvgIcon,{name:"donghuafangzhen",size:"24",title:"动画仿真",onClick:o[5]||(o[5]=m=>le("动画仿真")),active:p.value&&n.value==="动画仿真"},null,8,["active"]),e.createVNode($.ThreeSvgIcon,{name:"donghuafangzhen",size:"24",title:"urdf动画",onClick:o[6]||(o[6]=m=>le("urdf动画")),active:p.value&&n.value==="urdf动画"},null,8,["active"]),e.createVNode($.ThreeSvgIcon,{name:"donghuafangzhen",size:"24"})]),e.createElementVNode("div",ut,[e.createVNode($.ThreeSvgIcon,{name:"kuaitui",size:"24",backgroundColor:"#ffffff",title:"快退",onClick:be}),e.createVNode($.ThreeSvgIcon,{name:"bofang",size:"24",backgroundColor:"#ffffff",title:"播放",onClick:Ve}),e.createVNode($.ThreeSvgIcon,{name:"kuaijin",size:"24",backgroundColor:"#ffffff",title:"快进",onClick:ye}),e.createVNode($.ThreeSvgIcon,{name:"zanting",size:"24",backgroundColor:"#ffffff",title:"暂停",onClick:ue})]),e.withDirectives(e.createElementVNode("div",dt,[e.createElementVNode("div",pt,[e.createElementVNode("span",null,e.toDisplayString(r.value),1),e.createElementVNode("span",{class:"close",onClick:o[7]||(o[7]=m=>d.value=!1)}," X ")]),e.createElementVNode("div",mt,[e.createVNode(i,{height:"100%"},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"top-panel",{topPanelType:r.value},void 0,!0)]),_:3})])],512),[[e.vShow,d.value]]),e.withDirectives(e.createElementVNode("div",vt,[e.createElementVNode("div",ft,[e.createElementVNode("span",null,e.toDisplayString(s.value),1),e.createElementVNode("span",{class:"close",onClick:o[8]||(o[8]=m=>_.value=!1)}," X ")]),e.createElementVNode("div",gt,[e.createVNode(i,{height:"100%"},{default:e.withCtx(()=>{var m;return[s.value==="场景树"?(e.openBlock(),e.createBlock(ne.UrdfTree,{key:0,model:b.value},null,8,["model"])):e.createCommentVNode("",!0),s.value==="剖面视图"?(e.openBlock(),e.createElementBlock("div",ht,[e.createElementVNode("div",Vt,[e.createElementVNode("label",yt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"none","onUpdate:modelValue":o[9]||(o[9]=N=>e.isRef(R)?R.value=N:null),onChange:o[10]||(o[10]=(...N)=>e.unref(G)&&e.unref(G)(...N))},null,544),[[e.vModelRadio,e.unref(R)]]),o[18]||(o[18]=e.createElementVNode("span",{class:"radio-text"},"无切割",-1))]),e.createElementVNode("label",bt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"x","onUpdate:modelValue":o[11]||(o[11]=N=>e.isRef(R)?R.value=N:null),onChange:o[12]||(o[12]=(...N)=>e.unref(G)&&e.unref(G)(...N))},null,544),[[e.vModelRadio,e.unref(R)]]),o[19]||(o[19]=e.createElementVNode("span",{class:"radio-text"},"X轴切割",-1))]),e.createElementVNode("label",wt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"y","onUpdate:modelValue":o[13]||(o[13]=N=>e.isRef(R)?R.value=N:null),onChange:o[14]||(o[14]=(...N)=>e.unref(G)&&e.unref(G)(...N))},null,544),[[e.vModelRadio,e.unref(R)]]),o[20]||(o[20]=e.createElementVNode("span",{class:"radio-text"},"Y轴切割",-1))]),e.createElementVNode("label",Nt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"z","onUpdate:modelValue":o[15]||(o[15]=N=>e.isRef(R)?R.value=N:null),onChange:o[16]||(o[16]=(...N)=>e.unref(G)&&e.unref(G)(...N))},null,544),[[e.vModelRadio,e.unref(R)]]),o[21]||(o[21]=e.createElementVNode("span",{class:"radio-text"},"Z轴切割",-1))])])])):e.createCommentVNode("",!0),s.value==="工件树"?(e.openBlock(),e.createBlock(X.WorkpieceTreePanel,{key:2,model:(m=e.unref(pe))==null?void 0:m.obj,onVisibleChange:e.unref(me),onUpdatePosition:e.unref(ve),onUpdateRotation:e.unref(fe)},null,8,["model","onVisibleChange","onUpdatePosition","onUpdateRotation"])):e.createCommentVNode("",!0)]}),_:1})])],512),[[e.vShow,_.value]]),e.withDirectives(e.createElementVNode("div",Ct,[e.createElementVNode("div",_t,[e.createElementVNode("span",null,e.toDisplayString(n.value),1),e.createElementVNode("span",{class:"close",onClick:o[17]||(o[17]=m=>p.value=!1)}," X ")]),e.createElementVNode("div",xt,[e.createVNode(i,{height:"100%"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(ne.JointPanel,{model:b.value},null,8,["model"]),[[e.vShow,n.value==="关节控制"]]),e.withDirectives(e.createVNode(je,{ref_key:"animationPanelRef",ref:f,model:b.value,onGetThreeData:he,threeData:l.threeData},null,8,["model","threeData"]),[[e.vShow,n.value==="动画仿真"]]),e.renderSlot(t.$slots,"right-panel",{rightPanelType:n.value},void 0,!0)]),_:3})])],512),[[e.vShow,p.value]]),C.value?(e.openBlock(),e.createElementBlock("div",Et,[o[22]||(o[22]=e.createElementVNode("div",{class:"loading-spinner"},null,-1)),e.createElementVNode("p",null,e.toDisplayString(c.value),1)])):e.createCommentVNode("",!0),e.createVNode(ot,{ref_key:"pipeAnalysisPanelRef",ref:u},null,512)])}}}),Mt=we._export_sfc(kt,[["__scopeId","data-v-6edeedc9"]]);exports.default=Mt;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),Me=require("./index.vue_vue_type_style_index_1_lang-DnfCrXiN.cjs"),U=require("./workpieceTreePanel-YfDCHyA3.cjs"),Q=require("./iconfont-0T5xTLj8.cjs"),f=require("./index-C8qRkCgn.cjs");require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-QzgaFA5S.cjs");const ee=require("./index-D_6peWlG.cjs"),H=require("./urdfTree-CWwnorES.cjs"),re=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),N=require("./svgIcon-CUM54R6L.cjs"),Be=require("./animationData-BtND2VWy.cjs"),ze=require("./MTLLoader-D80GV1WB.cjs"),se=require("./index-BYoEVm0h.cjs"),$e={class:"panel-content"},Le={class:"action-bar"},Re={key:0,class:"animation-controls"},Ue={class:"control-row"},je={class:"control-row"},Ae={class:"frame-info"},Ie={class:"control-row"},Oe={key:1,class:"empty-state"},Fe={class:"dialog-footer"},qe=e.defineComponent({__name:"urdfAnimationPanel",props:{model:{},scene:{},xyzbcList:{}},setup(T,{expose:j}){const w=T,o=e.ref([]),C=e.ref(!1),_=e.ref(""),i=e.ref("stopped"),d=e.ref(0),D=e.ref(0),L=e.ref(10),g=e.ref(null);let m=0;const A=e.ref([]),I=e.computed(()=>w.model?H.getNonFixedJoints(w.model).map(r=>r.name):[]),M=e.computed(()=>[...I.value]),X=e.computed(()=>M.value.length>0?`请按以下格式粘贴数据 (第一行为表头,使用 Tab 分隔):
|
|
2
|
+
${M.value.join(" ")}
|
|
3
|
+
0 0 0 ...
|
|
4
|
+
1 2 3 ...`:"请先加载模型。"),B=e.computed(()=>o.value[d.value]||{});e.watch(()=>w.model,s=>{s?(g.value=new U.URDFRobotController(s),A.value=H.getAllLinkName(s),d.value=0):(g.value=null,A.value=[])},{immediate:!0});const z=s=>{if(s<0||s>=o.value.length){console.error(`帧索引 ${s} 超出范围`);return}const n=o.value[s];if(g.value){const r={};I.value.forEach(V=>{const v=parseFloat(n[V]);isNaN(v)||(r[V]=v)}),g.value.setJointAngles(r)}d.value=s,D.value=o.value.length>1?s/(o.value.length-1)*100:100},W=async s=>{try{for(let n=d.value;n<o.value.length;n++){if(s!==m)return;const r=o.value[n],V={};if(g.value)I.value.forEach(v=>{const p=parseFloat(r[v]);isNaN(p)||(V[v]=p)}),await g.value.animateToState(V,L.value,v=>{s===m&&(D.value=(n+v)/o.value.length*100)});else{if(await new Promise(v=>setTimeout(v,L.value)),s!==m)return;D.value=(n+1)/o.value.length*100}d.value=n}s===m&&(f.ElMessage.success("动画播放完成"),i.value="stopped",D.value=100)}catch(n){console.error("动画播放出错:",n),f.ElMessage.error("动画播放出错"),i.value="stopped"}},R=()=>{if(o.value.length===0){f.ElMessage.error("无动画数据");return}i.value==="stopped"&&(d.value=0,z(0)),i.value="playing",m++,W(m),f.ElMessage.info("动画播放中")},O=()=>{i.value==="playing"&&(m++,i.value="paused",f.ElMessage.info("动画已暂停"))},F=()=>{m++,i.value="stopped",d.value=0,D.value=0,z(0),f.ElMessage.info("动画已停止并重置")},P=()=>{i.value==="playing"?O():R()},y=s=>{m++,i.value="paused",z(s)},$=()=>{if(!_.value.trim()){f.ElMessage.warning("导入内容不能为空");return}const s=_.value.trim().split(`
|
|
5
|
+
`).filter(p=>p.trim()!=="");if(s.length<2){f.ElMessage.error("导入数据至少需要包含表头行和一行数据");return}const n=s[0].split(" ").map(p=>p.trim()),r={};if(n.forEach((p,u)=>{M.value.includes(p)&&(r[u]=p)}),Object.keys(r).length===0){f.ElMessage.error("没有找到匹配的表头,请检查表头名称是否正确");return}const v=s.slice(1).map(p=>{const u=p.split(" "),E={};return M.value.forEach(S=>{E[S]="0"}),Object.entries(r).forEach(([S,Y])=>{const q=u[parseInt(S)];q!==void 0&&q.trim()!==""&&(E[Y]=q.trim())}),E});v.length>0?(o.value=v,f.ElMessage.success(`成功导入 ${v.length} 行数据!`),C.value=!1,_.value="",F()):f.ElMessage.error("未能解析到有效数据,请检查格式。")};e.watch(()=>w.xyzbcList,()=>{w.xyzbcList&&(o.value=f.cloneDeep(w.xyzbcList))},{immediate:!0});const k=s=>`第 ${s+1} 帧`;return j({handlePlayPause:P,playAnimation:R,pauseAnimation:O,stopAnimation:F}),e.onUnmounted(()=>{m++}),(s,n)=>{const r=e.resolveComponent("el-input-number"),V=e.resolveComponent("el-slider"),v=e.resolveComponent("el-input"),p=e.resolveComponent("el-dialog");return e.openBlock(),e.createElementBlock("div",$e,[e.createElementVNode("div",Le,[e.createVNode(ee._sfc_main,{onClick:n[0]||(n[0]=u=>C.value=!0),disabled:M.value.length===0,modelValue:"导入数据"},null,8,["disabled"])]),o.value.length>0?(e.openBlock(),e.createElementBlock("div",Re,[e.createElementVNode("div",Ue,[n[6]||(n[6]=e.createElementVNode("label",null,"帧间隔 (ms):",-1)),e.createVNode(r,{modelValue:L.value,"onUpdate:modelValue":n[1]||(n[1]=u=>L.value=u),min:10,max:5e3,step:100,size:"small",style:{width:"120px"}},null,8,["modelValue"])]),e.createElementVNode("div",je,[n[7]||(n[7]=e.createElementVNode("label",null,"当前帧:",-1)),e.createElementVNode("span",Ae,e.toDisplayString(d.value+1)+" / "+e.toDisplayString(o.value.length),1)]),e.createElementVNode("div",Ie,[n[8]||(n[8]=e.createElementVNode("label",null,"动画进度:",-1)),e.createVNode(V,{modelValue:d.value,"onUpdate:modelValue":n[2]||(n[2]=u=>d.value=u),min:0,max:o.value.length>0?o.value.length-1:0,step:1,"format-tooltip":k,onInput:y,disabled:o.value.length===0||i.value==="playing",style:{"flex-grow":"1",margin:"0 10px"}},null,8,["modelValue","max","disabled"])]),e.createElementVNode("div",null,[n[9]||(n[9]=e.createElementVNode("label",null,"当前帧数据:",-1)),e.createElementVNode("div",null,[B.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(B.value,(u,E)=>(e.openBlock(),e.createElementBlock("div",{key:E},e.toDisplayString(E)+": "+e.toDisplayString(u),1))),128)):e.createCommentVNode("",!0)])])])):e.createCommentVNode("",!0),o.value.length===0?(e.openBlock(),e.createElementBlock("div",Oe,n[10]||(n[10]=[e.createElementVNode("p",null,"请先导入数据",-1)]))):e.createCommentVNode("",!0),e.createVNode(p,{modelValue:C.value,"onUpdate:modelValue":n[5]||(n[5]=u=>C.value=u),title:"导入数据",width:"500px"},{footer:e.withCtx(()=>[e.createElementVNode("span",Fe,[e.createVNode(ee._sfc_main,{modelValue:"取消",onClick:n[4]||(n[4]=u=>C.value=!1)}),e.createVNode(ee._sfc_main,{modelValue:"确认导入",onClick:$,type:"primary"})])]),default:e.withCtx(()=>[n[11]||(n[11]=e.createElementVNode("p",{class:"import-instructions"}," 请从Excel或CSV中复制数据 (首行为表头, Tab分隔) ",-1)),e.createVNode(v,{modelValue:_.value,"onUpdate:modelValue":n[3]||(n[3]=u=>_.value=u),type:"textarea",rows:10,placeholder:X.value},null,8,["modelValue","placeholder"])]),_:1,__:[11]},8,["modelValue"])])}}}),ie=re._export_sfc(qe,[["__scopeId","data-v-06bc34b3"]]),Je=async T=>await new ze.OBJLoader().loadAsync(T),He=async T=>await Je(T),Xe={class:"obj-viewer-container"},Ge={class:"buttonGroup-topLeft"},Ke={class:"buttonGroup-left"},We={class:"buttonGroup-right"},Ye={class:"buttonGroup-bottom"},Ze={class:"top-panel"},Qe={class:"panel-header"},et={class:"panel-body"},tt={class:"left-panel"},lt={class:"panel-header"},nt={class:"panel-body"},ot={key:1,class:"clipping-content"},at={class:"radio-group"},st={class:"radio-label"},it={class:"radio-label"},rt={class:"radio-label"},ut={class:"radio-label"},ct={class:"right-panel"},dt={class:"panel-header"},vt={class:"panel-body"},mt={key:0,class:"loading-overlay"},pt={key:1,class:"brand"},ft={class:"brand-item"},gt={class:"item-value"},ht={class:"brand-item"},Nt={class:"item-value"},Vt={class:"brand-item"},bt={class:"item-value"},yt=e.defineComponent({__name:"threeSceneViewForCPMPIP",props:{fileBlobs:{default:()=>[]},threeData:{}},emits:["getAnimationData","getThreeData"],setup(T,{emit:j}){const w=j,o=T,C=e.inject("setManagementPageTitle"),_=e.inject("setManagementPageVisible"),i=e.computed(()=>{var t,a;return(a=(t=o==null?void 0:o.threeData)==null?void 0:t.data)==null?void 0:a.machine}),d=e.computed(()=>{var t;return(t=i==null?void 0:i.value)==null?void 0:t.产品型号}),D=e.computed(()=>{var t;return(t=i==null?void 0:i.value)==null?void 0:t.编号}),L=e.computed(()=>{var t;return(t=i==null?void 0:i.value)==null?void 0:t.厂家}),g=e.computed(()=>{var t,a;return(a=(t=o==null?void 0:o.threeData)==null?void 0:t.data)==null?void 0:a.workpieceInfo}),m=e.computed(()=>{var t,a;return(a=(t=o==null?void 0:o.threeData)==null?void 0:t.data)==null?void 0:a.knife}),A=e.ref([]),I=async l=>{!l||!l.isExtra||(await M(l),C==null||C(l==null?void 0:l.pageName),_==null||_(!0))},M=se.debounce(async l=>{await se.onPageBack();const{mainKey:t,baseMenuPath:a}=l||{};Me.copyAdd(a,t)},500);e.watch(()=>[d.value,g.value,m.value],()=>{var h,c,oe,ae;const l=[],t={pageName:"机床",name:"机床",label:"机床",type:"机床",id:"机床",path:"机床",baseMenuPath:"设备库/机床",children:[],show:!0,isPenultimate:!1};d.value&&t.children.push({isExtra:!0,pageName:"机床",mainKey:d.value,label:d.value,baseMenuPath:"设备库/机床"});const a={pageName:"工件",name:"工件",label:"工件",type:"工件",id:"工件",path:"工件",baseMenuPath:"设备库/机床",children:[],show:!0,isPenultimate:!1};g.value&&a.children.push({isExtra:!0,type:(h=g.value)==null?void 0:h.type,pageName:"工件",mainKey:(c=g.value)==null?void 0:c.name,label:(oe=g.value)==null?void 0:oe.name,baseMenuPath:`工件库/${(ae=g.value)==null?void 0:ae.type}`});const K={pageName:"刀具",name:"刀具",label:"刀具",type:"刀具",id:"刀具",path:"刀具",children:[],show:!0,isPenultimate:!1};m.value&&K.children.push({isExtra:!0,pageName:"刀具",mainKey:m.value,label:m.value,baseMenuPath:"设备库/刀具"}),l.push(t,a,K),A.value=l},{immediate:!0});const X=e.ref([]),B=e.computed(()=>{var t,a;return(a=(t=o==null?void 0:o.threeData)==null?void 0:t.data)==null?void 0:a.csvUrl});e.watch(()=>B.value,async()=>{if(console.log("three data",o==null?void 0:o.threeData),console.log("csvUrl",B.value),B.value){const l=await Be.initXYZBCList(B.value);X.value=l}},{immediate:!0});const z=e.computed(()=>{var t,a;return(a=(t=o==null?void 0:o.threeData)==null?void 0:t.data)==null?void 0:a.bladeObjUrl}),W=e.ref(U.sceneType.ROBOT),R=e.ref(null),O=e.ref(!1),F=e.ref(""),P=e.ref(!1),y=e.ref(""),$=e.ref(!1),k=e.ref(""),s=e.ref(!1),n=e.ref(""),r=e.shallowRef(null),V=e.ref("叶片模型"),v=e.shallowRef(null),p=e.shallowRef(null),u=e.shallowRef(null),E=e.ref(ie),{currentModels:S,resetView:Y,initThreeJS:q,handleResize:te,getThreeJSObjects:J,cleanup:ue,setModels:le,axesHelperVisible:ce,toggleAxesVisibility:de}=Q.useThreeJS(R),{loadSceneFromFile:ve}=U.useUrdfLoader(J,S,O,F),{isAnimating:ne,toggleAnimation:me,stopAnimation:pe}=Q.useAnimation(J,S),{isClipping:fe,activeClippingAxis:b,toggleClipping:ge,updateClippingPlanes:x}=Q.useClipping(J,S),{initRaycaster:he,selectedObject3D:Ne,setSelectedObjVisible:Ve,updatePosition:be,updateRotation:ye,dispose:Ee}=U.useRaycaster(R,J,S),ke=()=>{de()},we=e.computed(()=>W.value===U.sceneType.ROBOT),G=l=>{P.value=!0,y.value=l,l==="剖面视图"&&!fe.value&&ge()},Z=l=>{$.value=!0,k.value=l,l==="动画仿真"&&w("getAnimationData")},Ce=()=>{var l;(l=E.value)==null||l.handlePlayPause()},_e=()=>{var l;(l=E.value)==null||l.pauseAnimation()},Pe=()=>{var l;(l=E.value)==null||l.stopAnimation()},Se=(l,t)=>H.getMeshFromLink(l,t),xe=async l=>{const t=Se(l,V.value);if(p.value=t,console.log("bladeObjUrl",z.value),t&&t.parent&&z.value){const a=await He(z.value);a.name="blade_clone",t.parent.add(a),a.position.copy(t.position),a.rotation.copy(t.rotation),a.scale.copy(t.scale),t.visible=!1,v.value=a}else V.value&&console.warn(`在 Blade '${V.value}' 中未找到可替换的网格或其没有父级。`)};e.watch(()=>o.fileBlobs,l=>{if(l&&l.length>0){const t=l[0];if(!t.name.toLowerCase().endsWith(".urdf"))return;ve(t).then(a=>{r.value=a,a&&xe(a)}).catch(a=>{console.error("加载URDF文件时发生错误:",a),f.ElMessage.error("加载urdf模型失败"),r.value=null})}else r.value=null},{immediate:!0,deep:!0}),e.watch(r,l=>{le(l?[l]:[]),he()});const Te=()=>{q(),window.addEventListener("resize",te);const l=J();u.value=l.scene},De=()=>{y.value="",k.value="",window.removeEventListener("resize",te),ne.value&&pe(),ue(),Ee()};return e.onMounted(async()=>{await e.nextTick();try{Te()}catch(l){console.error("Three.js 初始化失败:",l),f.ElMessage.error("渲染引擎初始化失败!")}}),e.onBeforeUnmount(()=>{De()}),(l,t)=>{const a=e.resolveComponent("el-scrollbar"),K=e.resolveComponent("PipeAnalysisPanel");return e.openBlock(),e.createElementBlock("div",Xe,[e.withDirectives(e.createElementVNode("div",{ref_key:"threejsContainer",ref:R,class:"threejs-container"},null,512),[[e.vShow,we.value]]),e.createElementVNode("div",Ge,[e.createVNode(N.ThreeSvgIcon,{name:"viewReset",size:"24",onClick:e.unref(Y),title:"重置"},null,8,["onClick"]),e.createVNode(N.ThreeSvgIcon,{name:"fangda",size:"24",title:"放大"}),e.createVNode(N.ThreeSvgIcon,{name:"suoxiao",size:"24",title:"缩小"}),e.createVNode(N.ThreeSvgIcon,{name:"lookAround",size:"24",onClick:e.unref(me),title:e.unref(ne)?"停止动画":"动画视图"},null,8,["onClick","title"]),e.createVNode(N.ThreeSvgIcon,{name:"zuobiaoxi",size:"24",active:e.unref(ce),onClick:ke,title:"显隐坐标轴"},null,8,["active"])]),e.createElementVNode("div",Ke,[e.renderSlot(l.$slots,"button-left",{switchRightPanel:G},void 0,!0),e.createVNode(N.ThreeSvgIcon,{name:"jiegoushu",size:"24",onClick:t[0]||(t[0]=h=>G("场景树")),active:P.value&&y.value==="场景树",title:"场景树"},null,8,["active"]),e.createVNode(N.ThreeSvgIcon,{name:"clipping",size:"24",onClick:t[1]||(t[1]=h=>G("剖面视图")),active:P.value&&y.value==="剖面视图",title:"剖面视图"},null,8,["active"]),e.createVNode(N.ThreeSvgIcon,{name:"donghuafangzhen",size:"24",onClick:t[2]||(t[2]=h=>G("工件树")),active:P.value&&y.value==="工件树"},null,8,["active"])]),e.createElementVNode("div",We,[e.renderSlot(l.$slots,"button-right",{switchRightPanel:Z},void 0,!0),e.createVNode(N.ThreeSvgIcon,{name:"jichuangxuanze",size:"24",onClick:t[3]||(t[3]=h=>Z("机床控制")),active:$.value&&k.value==="机床控制",title:"机床控制"},null,8,["active"]),e.createVNode(N.ThreeSvgIcon,{name:"donghuafangzhen",size:"24",title:"动画仿真",onClick:t[4]||(t[4]=h=>Z("动画仿真")),active:$.value&&k.value==="动画仿真"},null,8,["active"])]),e.createElementVNode("div",Ye,[e.createVNode(N.ThreeSvgIcon,{name:"bofang",size:"24",backgroundColor:"#ffffff",title:"播放",onClick:Ce}),e.createVNode(N.ThreeSvgIcon,{name:"zanting",size:"24",backgroundColor:"#ffffff",title:"暂停",onClick:_e}),e.createVNode(N.ThreeSvgIcon,{name:"zhongzhi",size:"24",backgroundColor:"#ffffff",title:"停止",onClick:Pe})]),e.withDirectives(e.createElementVNode("div",Ze,[e.createElementVNode("div",Qe,[e.createElementVNode("span",null,e.toDisplayString(n.value),1),e.createElementVNode("span",{class:"close",onClick:t[5]||(t[5]=h=>s.value=!1)}," X ")]),e.createElementVNode("div",et,[e.createVNode(a,{height:"100%"},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"top-panel",{topPanelType:n.value},void 0,!0)]),_:3})])],512),[[e.vShow,s.value]]),e.withDirectives(e.createElementVNode("div",tt,[e.createElementVNode("div",lt,[e.createElementVNode("span",null,e.toDisplayString(y.value),1),e.createElementVNode("span",{class:"close",onClick:t[6]||(t[6]=h=>P.value=!1)}," X ")]),e.createElementVNode("div",nt,[e.createVNode(a,{height:"100%"},{default:e.withCtx(()=>{var h;return[y.value==="场景树"?(e.openBlock(),e.createBlock(H.UrdfTree,{key:0,model:r.value,extraNodes:A.value,onNodeClick:I},null,8,["model","extraNodes"])):e.createCommentVNode("",!0),y.value==="剖面视图"?(e.openBlock(),e.createElementBlock("div",ot,[e.createElementVNode("div",at,[e.createElementVNode("label",st,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"none","onUpdate:modelValue":t[7]||(t[7]=c=>e.isRef(b)?b.value=c:null),onChange:t[8]||(t[8]=(...c)=>e.unref(x)&&e.unref(x)(...c))},null,544),[[e.vModelRadio,e.unref(b)]]),t[16]||(t[16]=e.createElementVNode("span",{class:"radio-text"},"无切割",-1))]),e.createElementVNode("label",it,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"x","onUpdate:modelValue":t[9]||(t[9]=c=>e.isRef(b)?b.value=c:null),onChange:t[10]||(t[10]=(...c)=>e.unref(x)&&e.unref(x)(...c))},null,544),[[e.vModelRadio,e.unref(b)]]),t[17]||(t[17]=e.createElementVNode("span",{class:"radio-text"},"X轴切割",-1))]),e.createElementVNode("label",rt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"y","onUpdate:modelValue":t[11]||(t[11]=c=>e.isRef(b)?b.value=c:null),onChange:t[12]||(t[12]=(...c)=>e.unref(x)&&e.unref(x)(...c))},null,544),[[e.vModelRadio,e.unref(b)]]),t[18]||(t[18]=e.createElementVNode("span",{class:"radio-text"},"Y轴切割",-1))]),e.createElementVNode("label",ut,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"z","onUpdate:modelValue":t[13]||(t[13]=c=>e.isRef(b)?b.value=c:null),onChange:t[14]||(t[14]=(...c)=>e.unref(x)&&e.unref(x)(...c))},null,544),[[e.vModelRadio,e.unref(b)]]),t[19]||(t[19]=e.createElementVNode("span",{class:"radio-text"},"Z轴切割",-1))])])])):e.createCommentVNode("",!0),y.value==="工件树"?(e.openBlock(),e.createBlock(U.WorkpieceTreePanel,{key:2,model:(h=e.unref(Ne))==null?void 0:h.obj,onVisibleChange:e.unref(Ve),onUpdatePosition:e.unref(be),onUpdateRotation:e.unref(ye)},null,8,["model","onVisibleChange","onUpdatePosition","onUpdateRotation"])):e.createCommentVNode("",!0)]}),_:1})])],512),[[e.vShow,P.value]]),e.withDirectives(e.createElementVNode("div",ct,[e.createElementVNode("div",dt,[e.createElementVNode("span",null,e.toDisplayString(k.value),1),e.createElementVNode("span",{class:"close",onClick:t[15]||(t[15]=h=>$.value=!1)}," X ")]),e.createElementVNode("div",vt,[e.createVNode(a,{height:"100%"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(H.JointPanel,{model:r.value},null,8,["model"]),[[e.vShow,k.value==="机床控制"]]),e.withDirectives(e.createVNode(ie,{model:r.value,scene:u.value,xyzbcList:X.value,ref_key:"urdfAnimationPanelRef",ref:E},null,8,["model","scene","xyzbcList"]),[[e.vShow,k.value==="动画仿真"]]),e.renderSlot(l.$slots,"right-panel",{rightPanelType:k.value},void 0,!0)]),_:3})])],512),[[e.vShow,$.value]]),O.value?(e.openBlock(),e.createElementBlock("div",mt,[t[20]||(t[20]=e.createElementVNode("div",{class:"loading-spinner"},null,-1)),e.createElementVNode("p",null,e.toDisplayString(F.value),1)])):e.createCommentVNode("",!0),d.value?(e.openBlock(),e.createElementBlock("div",pt,[e.createElementVNode("div",ft,[t[21]||(t[21]=e.createElementVNode("div",{class:"item-label"},"厂家:",-1)),e.createElementVNode("div",gt,e.toDisplayString(L.value),1)]),e.createElementVNode("div",ht,[t[22]||(t[22]=e.createElementVNode("div",{class:"item-label"},"型号:",-1)),e.createElementVNode("div",Nt,e.toDisplayString(d.value),1)]),e.createElementVNode("div",Vt,[t[23]||(t[23]=e.createElementVNode("div",{class:"item-label"},"编号:",-1)),e.createElementVNode("div",bt,e.toDisplayString(D.value),1)])])):e.createCommentVNode("",!0),e.createVNode(K,{ref:"pipeAnalysisPanelRef"},null,512)])}}}),Et=re._export_sfc(yt,[["__scopeId","data-v-eef66dd4"]]);exports.default=Et;
|