ss-component-new 1.2.97 → 1.2.98
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-DnouUI-8.js → MTLLoader-CCS24gLm.js} +1 -1
- package/dist/{MTLLoader-zZDM0NQh.cjs → MTLLoader-DlcJK6vT.cjs} +1 -1
- package/dist/{OrbitControls-B85G8nPk.cjs → OrbitControls-BLs9AYBY.cjs} +1 -1
- package/dist/{OrbitControls-DFhYzlF3.js → OrbitControls-KkyEKP5M.js} +1 -1
- package/dist/{animationData-DfKVkFbz.js → animationData-Btgynl98.js} +1 -1
- package/dist/{animationData-DxBvEqB1.cjs → animationData-CCImpyvS.cjs} +1 -1
- package/dist/{iconfont-WOKNi2xx.js → iconfont-B8CQB3CO.js} +2 -2
- package/dist/{iconfont-C7kE-QbU.cjs → iconfont-BXzhYF5A.cjs} +1 -1
- package/dist/{index-DgZVeYqH.js → index--JyaPE1g.js} +1 -1
- package/dist/{index-DHZMd8iK.cjs → index-1TxthiQw.cjs} +1 -1
- package/dist/{index-CLOUp_4j.cjs → index-2wJBzGa-.cjs} +1 -1
- package/dist/{index-D0hovh9R.cjs → index-6sDAnob5.cjs} +1 -1
- package/dist/{index-_PP-dSm3.cjs → index-7ZZHuv4d.cjs} +1 -1
- package/dist/{index-Cr5if46q.js → index-B4YN6ElV.js} +1 -1
- package/dist/{index-Cnk_4Zz5.cjs → index-B8XDW6Ly.cjs} +1 -1
- package/dist/{index-BFzMf0GC.js → index-BCNDy7LZ.js} +1 -1
- package/dist/{index-DSPjcpWK.cjs → index-BMSOMrGq.cjs} +1 -1
- package/dist/{index-Cppt0AsF.cjs → index-B_WRw_3s.cjs} +1 -1
- package/dist/{index-D_igus4A.cjs → index-BaXxrBtb.cjs} +1 -1
- package/dist/{index-DeOwZgqL.js → index-Bk8CKDbz.js} +4 -4
- package/dist/{index-BXv3aZ7v.js → index-BkPXyAKD.js} +1 -1
- package/dist/{index-D_RGoDln.js → index-C9U9aO2Y.js} +3 -3
- package/dist/{index-BI7g3c_u.js → index-CAAOZFSQ.js} +13 -13
- package/dist/{index-hhS08X8b.js → index-CLddyFrz.js} +3 -3
- package/dist/{index-kLDMroPk.js → index-CUAM_spJ.js} +1 -1
- package/dist/{index-CZPnP0uy.cjs → index-CWJuJJYp.cjs} +1 -1
- package/dist/{index-BDxPlbe2.cjs → index-CYmbZuJq.cjs} +1 -1
- package/dist/{index-CQRJ3pLh.cjs → index-C_rjTaFu.cjs} +1 -1
- package/dist/{index-DHjtOySN.js → index-Cmlus98m.js} +2 -2
- package/dist/{index-331j518H.cjs → index-CnBVZu9x.cjs} +1 -1
- package/dist/{index-CqI3frdZ.js → index-Cz7uQ_eD.js} +6 -6
- package/dist/{index-D6u590uA.cjs → index-DMTBVsgY.cjs} +1 -1
- package/dist/{index-DrzK0O_g.cjs → index-DRjN9mko.cjs} +1 -1
- package/dist/{index-C-dlFxRJ.cjs → index-DThE5nRZ.cjs} +1 -1
- package/dist/{index-BYk9Fb6p.js → index-DXrBVvWh.js} +3 -3
- package/dist/{index-DRfVnLTN.js → index-DZf4BLpR.js} +6 -6
- package/dist/{index-DHBoRe9V.cjs → index-DcxUbnrO.cjs} +1 -1
- package/dist/{index-Bhha7SY3.js → index-DdQjdsrn.js} +1 -1
- package/dist/{index-BODyH6MD.js → index-Dggo7EaF.js} +1 -1
- package/dist/{index-DbDM-XfB.cjs → index-DvQRFx9T.cjs} +1 -1
- package/dist/{index-CPAXrzNY.cjs → index-FnJX1FLR.cjs} +1 -1
- package/dist/{index-iZ9BRKg5.js → index-JQ_SaJ0O.js} +1 -1
- package/dist/{index-B_zjoT4m.js → index-blVMOcaF.js} +2 -2
- package/dist/{index-DJ6qg2Mo.js → index-hbpC0O70.js} +3 -3
- package/dist/{index-S1LIIzCa.cjs → index-k579sq5M.cjs} +1 -1
- package/dist/{index-6sZXjGGz.cjs → index-nSLXu4eq.cjs} +1 -1
- package/dist/{index-B-AhHUV1.js → index-tUUpniUl.js} +1 -1
- package/dist/{index-CeGM8aBH.js → index-uWijQ8Cy.js} +2 -2
- package/dist/{index-iErxMZBi.cjs → index-yWC1EX2L.cjs} +1 -1
- package/dist/{index-BoTiP0aV.js → index-zsvDrZxo.js} +1 -1
- package/dist/{index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-DSlAeFA3.cjs → index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-BKdUW522.cjs} +1 -1
- package/dist/{index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-ERjMISIK.js → index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-DPDuWtDv.js} +6 -6
- package/dist/{index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-3GcG1eTD.js → index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-CmofVWvn.js} +1642 -1647
- package/dist/{index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-Dzyqt2Z-.cjs → index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-Y4oIHCVM.cjs} +58 -58
- package/dist/{index.vue_vue_type_style_index_0_scoped_92477073_lang-mJB_yl_P.js → index.vue_vue_type_style_index_0_scoped_92477073_lang-D0zznqn6.js} +3 -3
- package/dist/{index.vue_vue_type_style_index_0_scoped_92477073_lang-DODc2KPN.cjs → index.vue_vue_type_style_index_0_scoped_92477073_lang-YB8ip9Xh.cjs} +1 -1
- package/dist/{index.vue_vue_type_style_index_1_lang-BRFs_L5R.cjs → index.vue_vue_type_style_index_1_lang-BB0IwRdP.cjs} +1 -1
- package/dist/{index.vue_vue_type_style_index_1_lang-BH0DRFVE.js → index.vue_vue_type_style_index_1_lang-CT8c_mLo.js} +3 -3
- package/dist/{main-B541MQH8.cjs → main-BOuiQUiL.cjs} +1 -1
- package/dist/{main-Z5UMyCj6.js → main-CbZLyXuF.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-BcjGbIJZ.js → threeModel-BJ6MrCa-.js} +4 -4
- package/dist/{threeModel-tKq0hvaK.cjs → threeModel-i87HG3Ck.cjs} +1 -1
- package/dist/{threePreview-DD0br2ae.cjs → threePreview-B3v9SadK.cjs} +1 -1
- package/dist/{threePreview-BnPMGQ2H.js → threePreview-D3wObBZq.js} +309 -305
- package/dist/{threeSceneView-BUD002PP.js → threeSceneView-DDpjEIgl.js} +7 -7
- package/dist/{threeSceneView-DVUTlm6F.cjs → threeSceneView-DQpyKixe.cjs} +2 -2
- package/dist/{threeSceneViewForCPMPIP-D4RC4BAo.js → threeSceneViewForCPMPIP-DV_aOUU5.js} +202 -198
- package/dist/threeSceneViewForCPMPIP-iaIkud0j.cjs +5 -0
- package/dist/{threeTrackPathView-DDCEu3Gx.js → threeTrackPathView-D6aAG4g8.js} +375 -359
- package/dist/threeTrackPathView-nPb7Tgdd.cjs +370 -0
- package/dist/{threeViewerHost-Sda_AoRw.cjs → threeViewerHost-I50ZyvKF.cjs} +2 -2
- package/dist/{threeViewerHost-BVeUteVd.js → threeViewerHost-XR9tepbY.js} +2 -2
- package/dist/{urdfTree-Br9VYqKp.cjs → urdfTree-B19ebCHj.cjs} +1 -1
- package/dist/{urdfTree-DaWvX-6R.js → urdfTree-CjxhpnRl.js} +1 -1
- package/dist/{workpieceTreePanel-Z3aVdOWB.cjs → workpieceTreePanel-0L7tkycK.cjs} +1 -1
- package/dist/{workpieceTreePanel-BdRaFNRp.js → workpieceTreePanel-DAnMGvlX.js} +5 -5
- package/package.json +1 -1
- package/dist/obj/model.mtl +0 -42
- package/dist/obj/model.obj +0 -26110
- package/dist/threeSceneViewForCPMPIP-BYYbyqD7.cjs +0 -5
- package/dist/threeTrackPathView-BvUihuyk.cjs +0 -370
- 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"),ze=require("./index.vue_vue_type_style_index_1_lang-B8_elAaU.cjs"),U=require("./workpieceTreePanel-0L7tkycK.cjs"),Q=require("./iconfont-BXzhYF5A.cjs"),f=require("./index-C8qRkCgn.cjs");require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-Y4oIHCVM.cjs");const ee=require("./index-DhufphmT.cjs"),H=require("./urdfTree-B19ebCHj.cjs"),re=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),N=require("./svgIcon-CUM54R6L.cjs"),$e=require("./animationData-CCImpyvS.cjs"),Le=require("./MTLLoader-DlcJK6vT.cjs"),se=require("./index-7ZZHuv4d.cjs"),Re={class:"panel-content"},Ue={class:"action-bar"},je={key:0,class:"animation-controls"},Ae={class:"control-row"},Ie={class:"control-row"},Oe={class:"frame-info"},Fe={class:"control-row"},qe={key:1,class:"empty-state"},Je={class:"dialog-footer"},He=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",Re,[e.createElementVNode("div",Ue,[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",je,[e.createElementVNode("div",Ae,[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",Ie,[n[7]||(n[7]=e.createElementVNode("label",null,"当前帧:",-1)),e.createElementVNode("span",Oe,e.toDisplayString(d.value+1)+" / "+e.toDisplayString(o.value.length),1)]),e.createElementVNode("div",Fe,[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",qe,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",Je,[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(He,[["__scopeId","data-v-06bc34b3"]]),Xe=async T=>await new Le.OBJLoader().loadAsync(T),Ge=async T=>await Xe(T),Ke={class:"obj-viewer-container"},We={class:"buttonGroup-topLeft"},Ye={class:"buttonGroup-left"},Ze={class:"buttonGroup-right"},Qe={class:"buttonGroup-bottom"},et={class:"top-panel"},tt={class:"panel-header"},lt={class:"panel-body"},nt={class:"left-panel"},ot={class:"panel-header"},at={class:"panel-body"},st={key:1,class:"clipping-content"},it={class:"radio-group"},rt={class:"radio-label"},ut={class:"radio-label"},ct={class:"radio-label"},dt={class:"radio-label"},vt={class:"right-panel"},mt={class:"panel-header"},pt={class:"panel-body"},ft={key:0,class:"loading-overlay"},gt={key:1,class:"brand"},ht={class:"brand-item"},Nt={class:"item-value"},Vt={class:"brand-item"},bt={class:"item-value"},yt={class:"brand-item"},Et={class:"item-value"},kt=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||{};ze.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 $e.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,zoomIn:ve,zoomOut:me}=Q.useThreeJS(R),{loadSceneFromFile:pe}=U.useUrdfLoader(J,S,O,F),{isAnimating:ne,toggleAnimation:fe,stopAnimation:ge}=Q.useAnimation(J,S),{isClipping:he,activeClippingAxis:b,toggleClipping:Ne,updateClippingPlanes:x}=Q.useClipping(J,S),{initRaycaster:Ve,selectedObject3D:be,setSelectedObjVisible:ye,updatePosition:Ee,updateRotation:ke,dispose:we}=U.useRaycaster(R,J,S),Ce=()=>{de()},_e=e.computed(()=>W.value===U.sceneType.ROBOT),G=l=>{P.value=!0,y.value=l,l==="剖面视图"&&!he.value&&Ne()},Z=l=>{$.value=!0,k.value=l,l==="动画仿真"&&w("getAnimationData")},Pe=()=>{var l;(l=E.value)==null||l.handlePlayPause()},Se=()=>{var l;(l=E.value)==null||l.pauseAnimation()},xe=()=>{var l;(l=E.value)==null||l.stopAnimation()},Te=(l,t)=>H.getMeshFromLink(l,t),De=async l=>{const t=Te(l,V.value);if(p.value=t,console.log("bladeObjUrl",z.value),t&&t.parent&&z.value){const a=await Ge(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;pe(t).then(a=>{r.value=a,a&&De(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]:[]),Ve()});const Me=()=>{q(),window.addEventListener("resize",te);const l=J();u.value=l.scene},Be=()=>{y.value="",k.value="",window.removeEventListener("resize",te),ne.value&&ge(),ue(),we()};return e.onMounted(async()=>{await e.nextTick();try{Me()}catch(l){console.error("Three.js 初始化失败:",l),f.ElMessage.error("渲染引擎初始化失败!")}}),e.onBeforeUnmount(()=>{Be()}),(l,t)=>{const a=e.resolveComponent("el-scrollbar"),K=e.resolveComponent("PipeAnalysisPanel");return e.openBlock(),e.createElementBlock("div",Ke,[e.withDirectives(e.createElementVNode("div",{ref_key:"threejsContainer",ref:R,class:"threejs-container"},null,512),[[e.vShow,_e.value]]),e.createElementVNode("div",We,[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:"放大",onClick:e.unref(ve)},null,8,["onClick"]),e.createVNode(N.ThreeSvgIcon,{name:"suoxiao",size:"24",title:"缩小",onClick:e.unref(me)},null,8,["onClick"]),e.createVNode(N.ThreeSvgIcon,{name:"lookAround",size:"24",onClick:e.unref(fe),title:e.unref(ne)?"停止动画":"动画视图"},null,8,["onClick","title"]),e.createVNode(N.ThreeSvgIcon,{name:"zuobiaoxi",size:"24",active:e.unref(ce),onClick:Ce,title:"显隐坐标轴"},null,8,["active"])]),e.createElementVNode("div",Ye,[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",Ze,[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",Qe,[e.createVNode(N.ThreeSvgIcon,{name:"bofang",size:"24",backgroundColor:"#ffffff",title:"播放",onClick:Pe}),e.createVNode(N.ThreeSvgIcon,{name:"zanting",size:"24",backgroundColor:"#ffffff",title:"暂停",onClick:Se}),e.createVNode(N.ThreeSvgIcon,{name:"zhongzhi",size:"24",backgroundColor:"#ffffff",title:"停止",onClick:xe})]),e.withDirectives(e.createElementVNode("div",et,[e.createElementVNode("div",tt,[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",lt,[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",nt,[e.createElementVNode("div",ot,[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",at,[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",st,[e.createElementVNode("div",it,[e.createElementVNode("label",rt,[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",ut,[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",ct,[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",dt,[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(be))==null?void 0:h.obj,onVisibleChange:e.unref(ye),onUpdatePosition:e.unref(Ee),onUpdateRotation:e.unref(ke)},null,8,["model","onVisibleChange","onUpdatePosition","onUpdateRotation"])):e.createCommentVNode("",!0)]}),_:1})])],512),[[e.vShow,P.value]]),e.withDirectives(e.createElementVNode("div",vt,[e.createElementVNode("div",mt,[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",pt,[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",ft,[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",gt,[e.createElementVNode("div",ht,[t[21]||(t[21]=e.createElementVNode("div",{class:"item-label"},"厂家:",-1)),e.createElementVNode("div",Nt,e.toDisplayString(L.value),1)]),e.createElementVNode("div",Vt,[t[22]||(t[22]=e.createElementVNode("div",{class:"item-label"},"型号:",-1)),e.createElementVNode("div",bt,e.toDisplayString(d.value),1)]),e.createElementVNode("div",yt,[t[23]||(t[23]=e.createElementVNode("div",{class:"item-label"},"编号:",-1)),e.createElementVNode("div",Et,e.toDisplayString(D.value),1)])])):e.createCommentVNode("",!0),e.createVNode(K,{ref:"pipeAnalysisPanelRef"},null,512)])}}}),wt=re._export_sfc(kt,[["__scopeId","data-v-8cfdaf24"]]);exports.default=wt;
|