fix: [fire-shutter] 셔터박스 전/후면판 ㄱ자 절곡 + 커버 평판 구조로 수정

This commit is contained in:
김보곤
2026-03-09 13:03:26 +09:00
parent b6fe894a3d
commit 91df0d122a

View File

@@ -1137,11 +1137,17 @@ function addPlate(w, h, d, x, y, z) {
m.add(new THREE.LineSegments(edges, boxEdgeMat));
}
// ── 박스 본체 (트레이형, 상부 개방) ──
// ── 박스 본체 ──
const flangeBack = 55; // 후면판 상단 안쪽 절곡 깊이
const flangeFront = 50; // 전면판 상단 안쪽 절곡 깊이
// 후면판 (Back plate — 전체 높이)
addPlate(W1, b.height, pt, 0, b.height / 2, -b.depth / 2 + pt / 2);
// 후면판 상단 'ㄱ' 절곡 (안쪽 수평 선반)
addPlate(W1, pt, flangeBack, 0, b.height - pt / 2, -b.depth / 2 + flangeBack / 2);
// 전면판 (Front plate — 짧음, 상단에서 걸림)
addPlate(W1, frontH, pt, 0, b.height - frontH / 2, b.depth / 2 - pt / 2);
// 전면판 상단 'ㄱ' 절곡 (안쪽 수평 선반)
addPlate(W1, pt, flangeFront, 0, b.height - pt / 2, b.depth / 2 - flangeFront / 2);
// 전면 하부판 (전면판 아래 빈 공간을 막는 수직판)
const frontGap = b.height - frontH;
if (frontGap > 0) addPlate(W1, frontGap, pt, 0, frontGap / 2, b.depth / 2 - pt / 2);
@@ -1158,18 +1164,9 @@ function addPlate(w, h, d, x, y, z) {
addPlate(W1, pt, bottomLipD, 0, pt / 2, b.depth / 2 - bottomLipD / 2);
}
// ── 덮개 (Cover) — 별도 부품, 박스 위에 올라 ──
const coverOverhang = 20; // 전면/후면 오버행
const coverW = W1;
const coverD = b.depth + coverOverhang * 2; // 전후로 오버행
const coverLipH = 50; // 전면 립 높이 (접혀 내려오는 부분)
const coverY = b.height + pt; // 박스 본체 위
// 덮개 상판 (수평)
addPlate(coverW, pt, coverD, 0, coverY + pt / 2, 0);
// 덮개 후면 립 (뒤로 접혀 내려옴)
addPlate(coverW, coverLipH, pt, 0, coverY - coverLipH / 2, -coverD / 2 + pt / 2);
// 덮개 전면 립 (앞으로 접혀 내려옴)
addPlate(coverW, coverLipH, pt, 0, coverY - coverLipH / 2, coverD / 2 - pt / 2);
// ── 덮개 (Cover) — 절곡 선반 위에 올라가는 평판 ──
const coverY = b.height; // 절곡 선반 위
addPlate(W1, pt, b.depth, 0, coverY + pt / 2, 0);
scene.add(meshes.case);