diff --git a/resources/views/rd/fire-shutter-drawing/index.blade.php b/resources/views/rd/fire-shutter-drawing/index.blade.php index 4bcc6a65..fbb4e7ae 100644 --- a/resources/views/rd/fire-shutter-drawing/index.blade.php +++ b/resources/views/rd/fire-shutter-drawing/index.blade.php @@ -770,7 +770,7 @@ function renderGrCross() { const lipEndX = swEndX + bLip; const by = pad; // 본체 상단 Y - const svgW = Math.max(lipEndX, bx + m1c) + pad + 160; + const svgW = lipEndX + pad + 160; const svgH = bOuterW + pad * 2 + 100; // ── 색상 정의 (부재별 명확 구분) ── @@ -837,44 +837,41 @@ function renderGrCross() { ``, ].join('\n'); - // ── ① 마감재 SUS 1.2T × 2장 (② 바깥을 감싸는 외피, 절곡: 10-11-110-30-15-15-15, 상하 대칭) ── - // ① 수평면 시작점 = ②백월 바깥 (①이 ②를 감싸므로 ② 좌측 바깥에서 시작) - const wallRight = pad + wallW; // 방화벽 우측면 X - const trimL1 = bx - t1; // ① 수평면 시작 = ② 백월 바깥 (①두께만큼 좌측) - const m1HEnd = trimL1 + m1c; // 수평면 우측 끝 X - const trimR = m1HEnd + t1; // 치수선용 우측 끝 (① 우측 끝) - const trimX2 = trimR; // 치수선용 + // ── ① 마감재 SUS 1.2T × 2장 (② 바깥을 감싸는 외피, 절곡: 코킹립10-측면탭11-수평면110-랩30-3단꺾임15×3, 상하 대칭) ── + // 수평면이 립(개구부) 영역에서 벽쪽(좌측)으로 펼쳐지는 구조 + // 측면탭(우측/립쪽) → 수평면(좌측으로 110mm) → 랩+3단꺾임(좌측/벽쪽) + const trimR1 = lipEndX; // ① 수평면 우측 끝 (② 립 끝) + const trimL1 = trimR1 - m1c; // ① 수평면 좌측 끝 (벽 방향, 110mm) + const trimX2 = trimR1; // 치수선용 우측 끝 // ①는 ② 바깥을 감싸는 구조 (겹침 없음) const tTop = by - t1; // 상단 ① 수평면 Y (② 상면 바깥) const tBot = by + bOuterW; // 하단 ① 수평면 Y (② 하면 바깥) - // 개구부쪽 3단 꺾임 좌표 (상단 기준) - const wrapX = m1HEnd - t1; // 랩 시작 X - const wrap1Y = tTop + t1 + m1d; // 랩 끝 Y - const step1X = wrapX - m1e; // 1단 끝 X - const step2Y = wrap1Y - m1f; // 2단 끝 Y - const step3X = step1X - m1g; // 3단 끝 X + // 벽쪽 랩+3단꺾임 좌표 (상단 기준) + const wrapX = trimL1; // 랩 X = 수평면 좌측 끝 + const wrap1Y = tTop + t1 + m1d; // 랩 하단 Y + const step2Y = wrap1Y - m1f; // 2단 상단 Y const trim1Svg = [ // ══════ 상단 ① 마감재 (② 상면 바깥을 감싸기) ══════ - // 측면탭: ② 백월 좌측을 따라 아래로 (② 내부 방향) - ``, - // 수평면: ② 상면 위를 덮음 (좌→우 110mm) + // 측면탭: ② 립 바깥에서 아래로 (개구부쪽, 우측) + ``, + // 수평면: 립 영역에서 벽 방향으로 110mm (우→좌) ``, - // 랩: 개구부쪽 아래로 30mm + // 랩: 벽쪽 끝에서 아래로 30mm ``, - // 3단 꺾임 - ``, - ``, - ``, + // 3단 꺾임 (벽쪽에서 우측/② 중심 방향으로 접힘) + ``, + ``, + ``, // ══════ 하단 ① 마감재 (② 하면 바깥을 감싸기, 거울상) ══════ - ``, + ``, ``, ``, - ``, - ``, - ``, + ``, + ``, + ``, ].join('\n'); // ── 연기차단재 (현재 비활성 — 위치 재조정 후 활성화 예정) ── @@ -906,8 +903,8 @@ function renderGrCross() { dimLines += `${g.width} mm`; // ② 플랜지 26mm (②의 립 끝 기준 라벨) dimLines += `②FL${g.flange}`; - // ① 랩 30mm (① 마감재 랩 위치 라벨) - dimLines += `①랩${m1d/sc}`; + // ① 랩 30mm (① 마감재 랩 위치 라벨, 벽쪽) + dimLines += `①랩${m1d/sc}`; // 슬롯 개구 (우측 중앙) dimLines += `슬롯${bSlot/sc}`; // 립 깊이 @@ -915,9 +912,9 @@ function renderGrCross() { // 두께 (하단, 120mm 치수선 아래) dimLines += `①t=${g.trimThick||1.2}(SUS) ②t=${g.thickness}(EGI)`; // 부재 번호 라벨 (참조 도면 기준 배치) - // ① 마감재: 우측 랩/플랜지 영역 (상단, 하단 각 1개) - dimLines += ``; - dimLines += ``; + // ① 마감재: 수평면 중앙 (상단, 하단 각 1개) + dimLines += ``; + dimLines += ``; // ② 가이드레일: 채널 내부 중앙 dimLines += ``; // ③ C형: 몸체(45mm) 중심 @@ -952,7 +949,7 @@ function renderGrCross() { ${g.showDim ? `슬랫 t=${g.slatThick}` : ''} - →개구부 + →개구부 ${dimLines} GUIDE RAIL — 스크린형 (①마감재 ②가이드레일 ③C형 ④D형) `;