fix: [rd] 모터 위치/형상 수정 — 브라켓 안쪽에 3개 다리로 안착

- 모터를 벽쪽(바깥)에서 샤프트 방향(안쪽)으로 이동
- 원통형 모터 본체로 변경
- 3개 마운팅 다리 추가 (브라켓 위에 안착)
This commit is contained in:
김보곤
2026-03-08 21:09:23 +09:00
parent 48601175a1
commit ab8d709e19

View File

@@ -1058,12 +1058,33 @@ function fs3dBuild() {
meshes.shaft.position.set(0, shaftY, 0);
scene.add(meshes.shaft);
// === MOTOR (outside bracket, connected via 복주머니) ===
const motorGeo = new THREE.BoxGeometry(150, 100, 120);
// === MOTOR (브라켓 위에 3개 다리로 안착, 샤프트 방향으로 위치) ===
meshes.motor = new THREE.Group();
const motorMat = new THREE.MeshStandardMaterial({ color: 0x2563eb, metalness: 0.4, roughness: 0.4 });
meshes.motor = new THREE.Mesh(motorGeo, motorMat);
const motorXPos = motorDir * (W1 / 2 + 80); // 브라켓 바깥에 위치
meshes.motor.position.set(motorXPos, shaftY, 0);
const legMat = new THREE.MeshStandardMaterial({ color: 0x374151, metalness: 0.5, roughness: 0.4 });
// Motor body (원통형)
const motorLen = 200; // 모터 길이 (X방향, 샤프트 방향)
const motorR = 55; // 모터 반지름
const motorBodyGeo = new THREE.CylinderGeometry(motorR, motorR, motorLen, 24);
motorBodyGeo.rotateZ(Math.PI / 2);
const motorBody = new THREE.Mesh(motorBodyGeo, motorMat);
// 브라켓 안쪽면에서 샤프트 방향으로 모터 배치
const motorCenterX = motorDir * (W1 / 2 - bkW - motorLen / 2);
motorBody.position.set(motorCenterX, 0, 0);
meshes.motor.add(motorBody);
// Motor mounting legs (3개 — 브라켓 위에 안착)
const legW = 8, legH = 40, legD = 20;
const legGeo = new THREE.BoxGeometry(legW, legH, legD);
const legOffsets = [-motorLen * 0.35, 0, motorLen * 0.35]; // 모터 길이 방향 3등분
legOffsets.forEach(dx => {
const leg = new THREE.Mesh(legGeo, legMat);
leg.position.set(motorCenterX + motorDir * dx, -motorR - legH / 2, 0);
meshes.motor.add(leg);
});
meshes.motor.position.set(0, shaftY, 0);
scene.add(meshes.motor);
// === GUIDE RAILS (ExtrudeGeometry) ===