From e2869d9af33352e02b4be6e6fd39c0cff5a4fa43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Tue, 10 Mar 2026 08:28:43 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20[rd]=20=EC=8A=A4=ED=81=AC=EB=A6=B0=20?= =?UTF-8?q?=EA=B0=80=EC=9D=B4=EB=93=9C=EB=A0=88=EC=9D=BC=20=E2=91=A4?= =?UTF-8?q?=EB=A7=88=EA=B0=90=EC=9E=AC=EB=A5=BC=20polyline=20stroke?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD=20(=EA=B2=B9=EC=B9=A8=20?= =?UTF-8?q?=ED=95=B4=EC=86=8C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rd/fire-shutter-drawing/index.blade.php | 49 +++++++------------ 1 file changed, 17 insertions(+), 32 deletions(-) diff --git a/resources/views/rd/fire-shutter-drawing/index.blade.php b/resources/views/rd/fire-shutter-drawing/index.blade.php index b972b954..050dbc41 100644 --- a/resources/views/rd/fire-shutter-drawing/index.blade.php +++ b/resources/views/rd/fire-shutter-drawing/index.blade.php @@ -767,11 +767,8 @@ function renderGrCross() { // 립 끝 const lipEndX = swEndX + bLip; - // ⑤ 마감재 우측 끝 (립 너머) - const trimEndX = lipEndX + m5e; // 마감재 끝단부 연장 - const by = pad; // 본체 상단 Y - const svgW = trimEndX + pad + 80; + const svgW = lipEndX + pad + 120; const svgH = bOuterW + pad * 2 + 70; // 색상 정의 @@ -837,32 +834,20 @@ function renderGrCross() { ].join('\n'); // ── ⑤ 마감재 SUS 1.2T × 2 (절곡: 10-11-110-30-15-15-15, 상하 대칭) ── - // 본체 외면을 감싸는 커버, 벽측부터 개구부 넘어까지 연장 - // 전개: 벽측립(10) → 벽측면(11) → 사이드월커버(110) → A각절곡(30) → 끝단(15-15-15) - // 사이드월 커버 110mm는 본체 사이드월(80) + 브라켓영역(~30)을 덮음 - const trimStartX = bx - c3Lip + m5a; // 벽측 절곡 시작 - const trimCoverLen = m5c; // 110mm 사이드월 커버 - // 상단 마감재 - const trim5Svg = [ - // ── 상단 마감재 ── - // 벽측 립 (10mm, 백월 뒤에서 벽쪽으로) - ``, - // 벽측 절곡면 (11mm, 수직) - ``, - // 사이드월 커버 (110mm, 수평 — 본체 상면 덮음) - ``, - // A각 후 절곡면 (30mm, 개구부 방향으로 수직 내림) - ``, - // 끝단 15mm (수평, 안쪽) - ``, + // 얇은 SUS 판재를 stroke-width로 표현 (centerline + 두께) + // 절곡 순서: 벽측립(10)→수직면(11)→사이드커버(110)→A각(30)→끝단(15-15-15) + const trimX0 = bx - c3Lip; // 벽측 립 시작 (③ 립 끝 = 벽쪽) + const trimX1 = trimX0 + m5a; // 수직면 X + const trimX2 = trimX1 + m5c; // 커버 우측 끝 (110mm 후) + const tHalf = t5 / 2; // 중심선에서 두께 절반 - // ── 하단 마감재 (대칭) ── - ``, - ``, - ``, - ``, - ``, - ].join('\n'); + // 상단 마감재 centerline path + const topY0 = by - tHalf; // 사이드커버 중심 Y (본체 바로 위) + const trim5Svg = ` + + `; // ── ① 클립 (채널 내부, 개구부 근처 L형) ── const clipArmLen = 10 * sc; @@ -901,7 +886,7 @@ function renderGrCross() { let dimLines = ''; if (g.showDim) { const totalLeft = bx - c3Lip; - const totalRight = trimStartX + trimCoverLen; + const totalRight = trimX2; // 깊이 120mm (하단) dimLines += ``; dimLines += ``; @@ -927,7 +912,7 @@ function renderGrCross() { dimLines += ``; dimLines += ``; dimLines += ``; - dimLines += ``; + dimLines += ``; dimLines += ``; } @@ -959,7 +944,7 @@ function renderGrCross() { ${g.showDim ? `슬랫 t=${g.slatThick}` : ''} - → 개구부 + → 개구부 ${dimLines} GUIDE RAIL — 스크린형 (5부재 조립) `;