From e53cf9fa29d35edf6b172149aecbd6f65969d89b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Fri, 13 Mar 2026 22:02:22 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20[fire-shutter]=20=EC=85=94=ED=84=B0?= =?UTF-8?q?=EB=B0=95=EC=8A=A4=20=EC=B8=A1=EB=A9=B4=EB=8F=84=20=EA=B5=AC?= =?UTF-8?q?=EC=A1=B0=20=EC=A0=84=EB=A9=B4=20=EC=9E=AC=EC=84=A4=EA=B3=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 거의 밀폐된 실제 박스 구조로 변경 (6개 판재) - 전면: 상부판(240mm) + 슬랫슬롯(75mm) + 하부판(65mm) 3단 구성 - 바닥판: 후면선반(50mm) + 레일홀(70mm) + 전면측 바닥판 - 슬랫 출구를 전면 슬롯으로 이동 (커튼 경로 곡선 표시) - 레일은 바닥판의 70mm 홀로 진입하는 구조 - 치수선에 슬랫슬롯(75mm) 추가 --- .../rd/fire-shutter-drawing/index.blade.php | 118 ++++++++++-------- 1 file changed, 66 insertions(+), 52 deletions(-) diff --git a/resources/views/rd/fire-shutter-drawing/index.blade.php b/resources/views/rd/fire-shutter-drawing/index.blade.php index 179bd709..e10f3f21 100644 --- a/resources/views/rd/fire-shutter-drawing/index.blade.php +++ b/resources/views/rd/fire-shutter-drawing/index.blade.php @@ -1220,62 +1220,83 @@ function renderSbSide() { const b = S.sb; const p = PRODUCTS[S.productType]; const D = b.depth, H = b.height; - const fH = p.sb.frontH; // 전면 높이 (screen:240, steel:410) + const fH = p.sb.frontH; // 전면 상부 높이 (screen:240, steel:410) + const bOpen = p.sb.bottomOpen || 75; // 슬랫 슬롯 높이 75mm + const lowerFH = Math.max(0, H - fH - bOpen); // 전면 하부 패널 (screen:65, steel:65) const sc = Math.min(480 / D, 520 / H); const pad = 80; - const sD = D*sc, sH = H*sc, sfH = fH*sc; - const svgW = sD + pad*2 + 150, svgH = sH + pad*2 + 100; + const sD = D*sc, sH = H*sc, sfH = fH*sc, sBOpen = bOpen*sc, sLFH = lowerFH*sc; + const svgW = sD + pad*2 + 150, svgH = sH + pad*2 + 70; const ox = pad + 65, oy = pad + 30; - const vt = Math.max(5, (b.thickness||1.6)*sc*3); // 판 두께 (표시용 확대) - const bpW = Math.min(fH, D-50)*sc; // 하판 폭 (≒ frontH, 절곡도 기준 240mm) - const railW = (S.productType==='screen' ? 70 : 120)*sc; - const railUp = 100*sc; - const shaftR = (b.shaftDia/2)*sc; - // 샤프트: 상판~하판 사이 공간 중앙에 배치 - const shaftCx = ox + sD*0.48; - const shaftCy = oy + sfH*0.5; - const rollR = shaftR + 20*sc; + const vt = Math.max(5, (b.thickness||1.6)*sc*3); const pf='#4b5563', ps='#6b7280', ff='#374151'; - // 절곡 치수 (절곡도 기준) + // 하판: fH 위치의 내부 선반 (절곡도 기준 240mm) + const shelfW = Math.min(fH, D-50)*sc; + // 바닥판: H 위치, 레일홀(70mm)만 제외하고 전체 커버 + const railHoleW = (S.productType==='screen' ? 70 : 120)*sc; + const backShelf = 50*sc; // 후면 하부 50mm 선반 + const railUp = 100*sc; + + // 샤프트: 상판~내부선반 사이 중앙 + const shaftR = (b.shaftDia/2)*sc; + const shaftCx = ox + sD*0.48; + const shaftCy = oy + sfH*0.45; + const rollR = shaftR + 20*sc; + + // 절곡 치수 const f20=20*sc, f50=50*sc, f55=55*sc, f15=15*sc, f13=13*sc, f17=17*sc; const svg = ` 셔터박스 측면 단면도 (Side Cross-Section) - - + + - - + + - + - + - - + + ${sLFH > 0 ? `` : ''} + + + + + + + - + - + - + - - - - - - + + + + - - - 레일 ${Math.round(railW/sc)} - ↑ 100mm 진입 + + + + + 레일 ${Math.round(railHoleW/sc)} + ↑ ${Math.round(railUp/sc)}mm + + + + + + + ↓ 슬랫 ${b.showShaft ? ` @@ -1294,38 +1315,31 @@ function renderSbSide() { M ` : ''} - - - ↓ 슬랫 - - 개방 - 깊이 ${D} mm - + ${H} mm - + ${fH} mm - - - - - 하판 ${Math.round(bpW/sc)} mm - - - - - ${Math.round(railW/sc)} mm + + + + ${bOpen} mm + + + + + 레일홀 ${Math.round(railHoleW/sc)} mm 벽측 (후면)