fix: [fire-shutter] ① 마감재 코킹립 방향 벽쪽 복원 + 벽 겹침 방지 위치 이동

This commit is contained in:
김보곤
2026-03-11 19:36:09 +09:00
parent 60a7257127
commit a4b0eebe6c

View File

@@ -768,8 +768,8 @@ function renderGrCross() {
// 립 끝
const lipEndX = swEndX + bLip;
// ① 마감재 수평면 범위 (벽 내면 ~ C채널 립 끝)
const trimL1 = pad + wallW + 2; // 수평면 좌측 끝 (벽 내면 근처)
// ① 마감재 수평면 범위 (코킹립 끝 = 벽 내면, 측면탭 = 벽 내면 + 코킹립10mm)
const trimL1 = pad + wallW + m1a + 2; // 측면탭 X (코킹립이 벽 내면까지만 도달)
const trimR1 = lipEndX; // 수평면 우측 끝 (C채널 립 끝에 맞춤)
const by = pad; // 본체 상단 Y
@@ -855,9 +855,9 @@ function renderGrCross() {
const trim1Svg = [
// ══════ 상단 ① 마감재 (② 상면 바깥을 감싸기) ══════
// 코킹립: 측면탭 하단에서 채널 내부(우측) 방향 수평 10mm
`<rect x="${trimL1}" y="${tTop+m1b}" width="${m1a}" height="${t1}" fill="${cTrim}" stroke="${cTrim}" stroke-width="0.3"/>`,
// 측면탭: 벽쪽 수직 11mm (코킹립 위에서 수평면까지, 'ㄴ'자 형성)
// 코킹립: 측면탭 하단에서 벽쪽(좌측) 방향 수평 10mm ('ㄴ'자 하단)
`<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"/>`,
// 수평면: 벽~립 (좌→우, 메인 커버)
`<rect x="${trimL1}" y="${tTop}" width="${trimR1-trimL1}" height="${t1}" fill="${cTrim}" stroke="${cTrim}" stroke-width="0.3"/>`,
@@ -868,8 +868,8 @@ function renderGrCross() {
// 개구부쪽 3단: 수직 16mm (2단 좌측에서 아래로)
`<rect x="${wrapX-t1-m1e}" y="${wrap1Y}" width="${t1}" height="${m1f}" fill="${cTrim}" stroke="${cTrim}" stroke-width="0.3"/>`,
// ══════ 하단 ① 마감재 (② 하면 바깥을 감싸기, 거울상) ══════
// 코킹립: 측면탭 하단에서 채널 내부(우측) 방향 수평 10mm
`<rect x="${trimL1}" y="${tBot-m1b-t1}" width="${m1a}" height="${t1}" fill="${cTrim}" stroke="${cTrim}" stroke-width="0.3"/>`,
// 코킹립: 측면탭 하단에서 벽쪽(좌측) 방향 수평 10mm ('ㄴ'자 하단)
`<rect x="${trimL1-m1a}" y="${tBot-m1b-t1}" width="${m1a}" height="${t1}" fill="${cTrim}" stroke="${cTrim}" stroke-width="0.3"/>`,
// 측면탭
`<rect x="${trimL1}" y="${tBot-m1b}" width="${t1}" height="${m1b+t1}" fill="${cTrim}" stroke="${cTrim}" stroke-width="0.3"/>`,
// 수평면
@@ -911,8 +911,8 @@ function renderGrCross() {
dimLines += `<text x="${dimRightX+8}" y="${by+bOuterW/2+4}" fill="#3b82f6" font-size="12" font-weight="900" text-anchor="start" font-family="Pretendard">${g.width} mm</text>`;
// ② 플랜지 26mm (②의 립 끝 기준 라벨)
dimLines += `<text x="${lipEndX+6}" y="${by+bFl/2+3}" fill="${cBody}" font-size="8" font-weight="700" text-anchor="start" font-family="Pretendard">②FL${g.flange}</text>`;
// ① 코킹립 10mm (채널 내부 방향 라벨)
dimLines += `<text x="${trimL1+m1a+4}" y="${tTop+m1b+t1/2+3}" fill="${cTrim}" font-size="8" font-weight="700" text-anchor="start" font-family="Pretendard">①립${m1a/sc}</text>`;
// ① 코킹립 10mm (벽쪽 라벨)
dimLines += `<text x="${trimL1-m1a-4}" y="${tTop+m1b+t1/2+3}" fill="${cTrim}" font-size="8" font-weight="700" text-anchor="end" font-family="Pretendard">①립${m1a/sc}</text>`;
// 슬롯 개구 (우측 중앙)
dimLines += `<text x="${lipEndX+6}" y="${by+bOuterW/2+16}" fill="#22c55e" font-size="8" font-weight="700" text-anchor="start" font-family="Pretendard">슬롯${bSlot/sc}</text>`;
// 립 깊이