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형)
`;