fix: [fire-shutter] ① 마감재 수평면 범위 수정

- 수평면 우측 끝을 C채널 립 끝(lipEndX)에 맞춤
- 140mm 고정값 대신 벽~립 사이 자동 맞춤
- ① 마감재가 C채널 밖으로 돌출되는 문제 해결
This commit is contained in:
김보곤
2026-03-11 18:01:50 +09:00
parent 7d906428db
commit d36c71becc

View File

@@ -759,10 +759,6 @@ function renderGrCross() {
// ── 레이아웃 (좌→우 배치) ──
const pad = 80, wallW = 35;
// ① 마감재 수평면 범위 (코킹립이 방화벽 내면에 맞닿는 구조)
const trimL1 = pad + wallW + 2; // 수평면 좌측 끝 (벽 내면 근처)
const trimR1 = trimL1 + m1c; // 수평면 우측 끝 (개구부 방향)
// ③ 벽연형-C 몸체가 방화벽에 직접 맞닿음 → ③ 립(30mm)이 본체 백월까지 연장
const bkTotalD = c3Lip; // ③ 립 = 벽→본체 백월 깊이
const bx = pad + wallW + bkTotalD; // 본체 백월 외면 X (벽+③립, 갭 없음)
@@ -772,8 +768,12 @@ function renderGrCross() {
// 립 끝
const lipEndX = swEndX + bLip;
// ① 마감재 수평면 범위 (벽 내면 ~ C채널 립 끝)
const trimL1 = pad + wallW + 2; // 수평면 좌측 끝 (벽 내면 근처)
const trimR1 = lipEndX; // 수평면 우측 끝 (C채널 립 끝에 맞춤)
const by = pad; // 본체 상단 Y
const svgW = Math.max(lipEndX, trimR1) + pad + 160;
const svgW = lipEndX + pad + 160;
const svgH = bOuterW + pad * 2 + 100;
// ── 색상 정의 (부재별 명확 구분) ──
@@ -843,7 +843,7 @@ function renderGrCross() {
// ── ① 마감재 SUS 1.2T × 2장 (② 바깥을 감싸는 외피, 절곡: 코킹립10-측면탭11-수평면140-15-13-16, 상하 대칭) ──
// 좌측: 코킹립(10, 벽쪽 수평) + 측면탭(11, 수직) → 방화벽과 'ㄴ'자 립 결합
// 우측: 15(수직) → 13(수평) → 16(수직) — 개구부쪽 접힘
const trimX2 = Math.max(trimR1, lipEndX); // 치수선용 우측 끝
const trimX2 = lipEndX; // 치수선용 우측 끝
// ①는 ② 바깥을 감싸는 구조
const tTop = by - t1; // 상단 ① 수평면 Y (② 상면 바깥)
@@ -859,8 +859,8 @@ function renderGrCross() {
`<rect x="${trimL1-m1a}" y="${tTop+m1b}" width="${m1a}" height="${t1}" fill="${cTrim}" stroke="${cTrim}" stroke-width="0.3"/>`,
// 측면탭: 벽쪽 수직 11mm (코킹립 위에서 수평면까지, 'ㄴ'자 형성)
`<rect x="${trimL1}" y="${tTop}" width="${t1}" height="${m1b+t1}" fill="${cTrim}" stroke="${cTrim}" stroke-width="0.3"/>`,
// 수평면: 140mm (좌→우, 메인 커버)
`<rect x="${trimL1}" y="${tTop}" width="${m1c}" height="${t1}" fill="${cTrim}" stroke="${cTrim}" stroke-width="0.3"/>`,
// 수평면: 벽~립 (좌→우, 메인 커버)
`<rect x="${trimL1}" y="${tTop}" width="${trimR1-trimL1}" height="${t1}" fill="${cTrim}" stroke="${cTrim}" stroke-width="0.3"/>`,
// 개구부쪽 1단: 수직 15mm (수평면 우측 끝에서 아래로)
`<rect x="${wrapX-t1}" y="${tTop+t1}" width="${t1}" height="${m1d}" fill="${cTrim}" stroke="${cTrim}" stroke-width="0.3"/>`,
// 개구부쪽 2단: 수평 13mm (1단 하단에서 벽 방향으로)
@@ -873,7 +873,7 @@ function renderGrCross() {
// 측면탭
`<rect x="${trimL1}" y="${tBot-m1b}" width="${t1}" height="${m1b+t1}" fill="${cTrim}" stroke="${cTrim}" stroke-width="0.3"/>`,
// 수평면
`<rect x="${trimL1}" y="${tBot}" width="${m1c}" height="${t1}" fill="${cTrim}" stroke="${cTrim}" stroke-width="0.3"/>`,
`<rect x="${trimL1}" y="${tBot}" width="${trimR1-trimL1}" height="${t1}" fill="${cTrim}" stroke="${cTrim}" stroke-width="0.3"/>`,
// 개구부쪽 1단: 수직 15mm (위로)
`<rect x="${wrapX-t1}" y="${tBot-m1d}" width="${t1}" height="${m1d}" fill="${cTrim}" stroke="${cTrim}" stroke-width="0.3"/>`,
// 개구부쪽 2단: 수평 13mm (벽 방향)