fix: [fire-shutter] ① 마감재 수평면 범위 수정
- 수평면 우측 끝을 C채널 립 끝(lipEndX)에 맞춤 - 140mm 고정값 대신 벽~립 사이 자동 맞춤 - ① 마감재가 C채널 밖으로 돌출되는 문제 해결
This commit is contained in:
@@ -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 (벽 방향)
|
||||
|
||||
Reference in New Issue
Block a user