diff --git a/resources/views/rd/fire-shutter-drawing/index.blade.php b/resources/views/rd/fire-shutter-drawing/index.blade.php index ffee72fa..4b1833eb 100644 --- a/resources/views/rd/fire-shutter-drawing/index.blade.php +++ b/resources/views/rd/fire-shutter-drawing/index.blade.php @@ -1057,14 +1057,14 @@ function renderGrCross() { // ====== 철재스라트: 가이드레일 평면도 (130mm × 75mm 결합도) ====== // LEFT = 방화벽(벽쪽), RIGHT = 개구부(실내쪽, 슬랫 통과) - // ① 마감재 SUS 1.2T (빨간색) - 바깥을 감싸는 외피, 상하 2장 + // ① 마감재 SUS 1.2T (빨간색) - ② 바깥을 감싸는 외피, 상하 2장 // 상단: 10←lip + 13↓tab + 120→body + 25↓ + 15← // 하단: 10←lip + 13↑tab + 120→body + 25↑ + 내부스텝(19← + 14↓ + 15←) - // ③ 본체 EGI 1.55T (회색) - 메인 C채널, 개구부가 RIGHT - // 외형: 90mm(가로) × 72mm(세로), 좌측벽에 개구부(④ 진입용) - // 우측 상/하부 립 각 21mm, 내부 계단구조 - // ④ 벽연형 EGI 1.55T (갈색) - ㄷ자(우측열림), 플랜지가 ③ 좌측 개구부로 진입 - // 벽에 부착, 30-45-30, 세로 중앙 정렬 + // ② 본체 EGI 1.55T (회색) - 메인 C채널, 개구부가 RIGHT + // 외형: 90mm(가로) × 72mm(세로), 좌측벽 72mm, 상/하단 플랜지 90mm + // 우측 상부 립 21mm, 내부 개구부가 y=60까지 확장, 하부 립 12mm + // ③ C형 EGI 1.55T (주황색) - ② 내부 좌측 상단에 위치, 30-45-30 ㄷ자(우측열림) + // ④ 벽연형 EGI 1.55T (갈색) - ② 좌측에 위치, 벽과 연결, 30-45-30 ㄷ자(우측열림) { const sc = 4; // px per mm (확대하여 철판 비율 현실적) const t = g.thickness * sc; // 1.55mm → 6.2px (EGI) @@ -1121,43 +1121,37 @@ function renderGrCross() { const P = []; // SVG 부재 요소 배열 // ══════════════════════════════════════════ - // ② 본체 EGI 1.55T (절곡 프로파일, 체이닝 좌표) - // 프로파일 좌표: (0,0)=좌상단, 90×72mm - // 좌측벽에 개구부가 있어 ④가 진입하는 구조 // ══════════════════════════════════════════ - // ④ 세로 중앙 정렬 위치 (본체 좌표계 기준) - const w4TopInBody = (72 - 45) / 2; // 13.5mm: ④ 상단 (본체 기준) - const w4BotInBody = w4TopInBody + 45; // 58.5mm: ④ 하단 (본체 기준) + // ④ C형 보강 EGI 1.55T (갈색, ㄷ자 30-45-30 우측열림) + // 벽 우측면에 부착, 세로 중앙 정렬 + // ══════════════════════════════════════════ + const w4cy = by + (b2h - w4height) / 2; + P.push(``); + P.push(``); + P.push(``); + + // ══════════════════════════════════════════ + // ② 본체 EGI 1.55T (절곡, 체이닝 좌표) + // 프로파일 좌표: (0,0)=좌상단, 90×72mm + // 내부 개구부가 아래로 확장 (④ 진입 공간) + // ══════════════════════════════════════════ { - const ox2 = bx; // ② 좌측벽 = ① 마감재 body 좌측 (④가 개구부로 진입) + const ox2 = w4x + w4depth + (10 + 0.75) * sc; // ② 좌측벽 = ④ 끝 + 10mm + 0.75(반두께) const oy2 = by; // ② 상단 const c = cBody, s = '#94a3b8'; // 프로파일 좌표 → SVG 좌표 변환 function r(x,y,w,h,op) { P.push(``); } - // ── 좌측벽: ④ 개구부로 인해 상/하 분리 ── - // 좌측벽 상부: (0,0) → (0,13.5) — ④ 위쪽 - r(0, 0, 1.55, w4TopInBody); - // 좌측벽 하부: (0,58.5) → (0,72) — ④ 아래쪽 - r(0, w4BotInBody, 1.55, 72 - w4BotInBody); - // 립: (0,60) → (10,60) — 좌측 립 (하부 벽 구간 내) + // 벤드포인트 체이닝 (프로파일 좌표 mm 단위) + // B0=(0,60) → Seg1(10→) → (10,60): 립 우측(채널 안쪽) r(0, 60-0.75, 10, 1.55); - r(0, 60, 10, 1.55); - - // ── 상단/하단 플랜지 ── + // B0=(0,60) → Seg2(60↑) → (0,0): 좌측벽 상부 + r(0, 0, 1.55, 60); // (0,0) → Seg3(90→) → (90,0): 상단 플랜지 r(0, 0, 90, 1.55); - // (90,72) → Seg13(90←) → (0,72): 하단 플랜지 - r(0, 72-1.55, 90, 1.55); - - // ── 우측 립 ── // (90,0) → Seg4(21↓) → (90,21): 상부 립 r(90-1.55, 0, 1.55, 21); - // (90,51) → Seg12(21↓) → (90,72): 하부 립 - r(90-1.55, 51, 1.55, 21); - - // ── 내부 계단 구조 ── // (90,21) → Seg5(15←) → (75,21): 스텝 r(75, 21, 15, 1.55, 1); // (75,21) → Seg6(15↓) → (75,36): 스텝 @@ -1168,24 +1162,20 @@ function r(x,y,w,h,op) { r(55, 21, 1.55, 15, 1); // (55,21) → Seg9(43←) → (12,21): 내부 선반 r(12, 21, 43, 1.55, 1); - // (12,21) → Seg10(30↓) → (12,51): 내부 벽 - r(12, 21, 1.55, 30, 1); - // (12,51) → Seg11(78→) → (90,51): 내부 선반 - r(12, 51, 78, 1.55); + // (12,21) → Seg10(39↓) → (12,60): 내부 벽 (아래로 확장) + r(12, 21, 1.55, 39, 1); + // (12,60) → Seg11(78→) → (90,60): 하부 내부 선반 (아래로 이동) + r(12, 60, 78, 1.55); + // (90,60) → Seg12(12↓) → (90,72): 하부 립 (짧아짐) + r(90-1.55, 60, 1.55, 12); + // (90,72) → Seg13(90←) → (0,72): 하단 플랜지 + r(0, 72-1.55, 90, 1.55); + // (0,72) → Seg14(12↑) → (0,60): 좌측벽 하부 + r(0, 60, 1.55, 12); + // (0,60) → Seg15(10→) → (10,60): 끝 립 (Seg1과 겹침) + r(0, 60, 10, 1.55); } - // ══════════════════════════════════════════ - // ④ 벽연형 EGI 1.55T (갈색, ㄷ자 30-45-30 우측열림) - // 벽 우측면에 부착, 플랜지가 본체 좌측 개구부로 진입 - // ══════════════════════════════════════════ - const w4cy = by + w4TopInBody * sc; - // 좌측 벽 (④ 좌벽) - P.push(``); - // 상단 플랜지 — 본체 개구부로 진입 (w4x → w4x + w4depth) - P.push(``); - // 하단 플랜지 — 본체 개구부로 진입 - P.push(``); - // ══════════════════════════════════════════ // ① 마감재 SUS 1.2T (빨간색) — 상단 장 // 경로: 10←lip + 13↓tab + 120→body + 25↓ + 15← @@ -1273,11 +1263,9 @@ function r(x,y,w,h,op) { const lb1x = bx + m1body / 2, lb1y = tTop - 12; labels += ``; labels += ``; - // ③ 본체 라벨 (본체 내부 상단 중앙) - const lb3x = bx + 45 * sc, lb3y = by + 10 * sc; - labels += ``; - labels += ``; - // ④ 벽연형 라벨 + // (② 라벨 — 제거) + // (③ C형 라벨 — 생략) + // ④ C형 보강 라벨 const lb4x = w4x + w4depth / 2, lb4y = w4cy + w4height / 2; labels += ``; labels += ``;