Browse Source

Conveyor 输送线

master
修宁 7 months ago
parent
commit
66d381f463
  1. 39
      src/designer/model3DView/Model3DView.vue

39
src/designer/model3DView/Model3DView.vue

@ -15,6 +15,7 @@
list-type="picture"> list-type="picture">
<el-button>打开材质</el-button> <el-button>打开材质</el-button>
</el-upload> </el-upload>
<el-button @click="addConveyor">添加输送线</el-button>
<div class="demo-color-block"> <div class="demo-color-block">
<span class="demonstration">材质颜色</span> <span class="demonstration">材质颜色</span>
<el-color-picker v-model="restate.targetColor" /> <el-color-picker v-model="restate.targetColor" />
@ -83,6 +84,7 @@ import { TransformControls } from 'three/examples/jsm/controls/TransformControls
import Split from '@/components/split/split.vue' import Split from '@/components/split/split.vue'
import SplitArea from '@/components/split/split-area.vue' import SplitArea from '@/components/split/split-area.vue'
import { renderIcon } from '@/utils/webutils.js' import { renderIcon } from '@/utils/webutils.js'
import textureUrl from '@/assets/images/conveyor/shapes/Belt1.png'
// DOM refs // DOM refs
const canvasContainer = ref(null) const canvasContainer = ref(null)
@ -163,6 +165,43 @@ watch(() => restate.mode, (newVal) => {
} }
}) })
function addConveyor(){
// 1. 10 0.8
const length = 10; // X
const width = 0.8; // Y
const geometry = new THREE.PlaneGeometry(length, width);
// 2.
const textureLoader = new THREE.TextureLoader();
debugger
textureLoader.load(textureUrl, (texture)=>{
debugger
// 3.
texture.wrapS = THREE.RepeatWrapping; // X
texture.wrapT = THREE.RepeatWrapping; // Y
texture.repeat.set(1, 1); //
// 4. 线Y
// 256px 0.8m
// repeat.y = 0.8 / (texture.height / texture.width * length)
// repeat.y
texture.repeat.set(1, 20); // Y
// 5.
const material = new THREE.MeshBasicMaterial({ map: texture });
// 6.
const conveyorBelt = new THREE.Mesh(geometry, material);
// 7. XPlaneGeometryX/Y
conveyorBelt.rotation.x = -Math.PI / 2; // X/Z
scene.add(conveyorBelt)
});
}
function initThree() { function initThree() {
const viewerDom = canvasContainer.value const viewerDom = canvasContainer.value

Loading…
Cancel
Save