Skip to content

案例展示

工艺仿真场景

<template>
    <div style="position: relative">
        <div id="TO" :style="{ width: width + '%',height: height + 'px' }"></div>
        <el-button type="primary" @click="startSim" size="small" class="startBtn">开始仿真</el-button>
    </div>
</template>

<script setup>
import { onMounted } from 'vue';
import {Physics} from './utils/Physics'
import {Plc} from "./utils/Plc";
import sceneData from "./utils/sceneData.js"
import plcInfo from "./utils/plcInfo.js";

const props = defineProps({
  width: {
    type: Number,
    default: 100,
  },
  height: {
    type: Number,
    default: 400,
  },
});
let TO = null
let physicsWorld = null
onMounted(() => {
    let sceneDom = document.getElementById("TO")
    TO = new ThingOrigin("easyBuild", sceneDom, sceneData)
    physicsWorld = TO.physics.initWorld();
});

const startSim = () => {
    Physics.initPhysicsWorld(sceneData.physicsSim,sceneData.modelList,TO,physicsWorld)
    Physics.startPhysicsSim()

    Plc.init(TO, 1,20,plcInfo,sceneData.modelList, sceneData.animationList,'dev');
    Plc.start();
}


</script>

<style scoped>
#TO {
  width: 100%;
  height: 400px;
  position: relative;
}

.startBtn{
    position: absolute;
    top: 10px;
    right: 10px;
}

</style>