feat(B06): 집수정 I형 벽을 노견 끝 접점으로 이동
- I형 벽 자리 = 상단 도로측 꼭짓점이 노견 끝 지점에 닿는 자리 (2026-08-22 사용자 확정 — 우측 집수정이면 상단 좌측점이 접점). 벽이 도로측으로 1:0.3 기울므로 하단은 그만큼 계류측 바깥. 종전 '관 유입단에서 내공 1.0m' 자리 폐지. - 유입 배관 위치는 유지(노견 끝 + 1.0m) — 벽이 안으로 오면서 관 끝이 벽을 지나 집수정 안으로 들어간다. 마감면은 벽 변 복사 대신 관 끝 자리에서 벽과 나란한 기울기로 절단. - L형 바닥판·ㄷ형 반전벽 구조는 유지(명칭 재조정은 추후). - 검증: 13+15.7 SVG 실좌표 — 벽 상단이 설계선 노견 꺾임점 접점, 관 끝이 벽 바깥면 통과. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -265,8 +265,12 @@ export function computeCulvertLayout(
|
||||
},
|
||||
];
|
||||
};
|
||||
// I형 벽 = 계류측(도로 바깥) 면 — 관 유입단에서 내공 1.0m 떨어져 선다.
|
||||
const wallBase = anchor.offset + outward * innerWidth;
|
||||
// I형 벽 자리 = **상단 도로측 꼭짓점이 노견 끝 지점에 닿는다**(2026-08-22 사용자
|
||||
// 확정 — 우측 집수정이면 상단 좌측점, 좌측이면 우측점이 접점). 벽 상단이
|
||||
// 도로측으로 1:0.3 물러나므로 하단(base)은 그만큼 계류측 바깥이다.
|
||||
// anchor.offset = 노견 끝(관 유입단 기준점), 상단 표고는 invert+관경+여유고라
|
||||
// 관이 토피 상한(노면−관경−토피)에 묻힌 표준 단면에서는 노견 표고와도 일치한다.
|
||||
const wallBase = anchor.offset + outward * (REVET_LEAN_RATIO * wallHeight);
|
||||
const parts: BasinLayout["parts"] = [{ kind: "wall", points: wallOf(wallBase, outward) }];
|
||||
// ㄴ형 = I형 + 바닥판. 바닥은 **아래가 짧은 사다리꼴**(윗변이 길고 아랫변이
|
||||
// 짧다 — 벽과 같은 1:0.3 물매가 양 끝에 붙는다). 위치는 **I형 벽 기준 반대측**
|
||||
@@ -340,28 +344,21 @@ export function computeCulvertLayout(
|
||||
trimMin = wallTopInner;
|
||||
trimMinElevation = anchor.elevation + wallHeight;
|
||||
}
|
||||
// 관 유입 끝단 마감면 = 집수정 벽의 **계류측 변**을 그대로 복사(사용자 ③).
|
||||
const faceBottom = {
|
||||
offset: wallBase + outward * REVET_THICKNESS_M,
|
||||
elevation: anchor.elevation - floorThickness,
|
||||
};
|
||||
const faceTop = {
|
||||
offset: wallBase - outward * REVET_LEAN_RATIO * wallHeight + outward * REVET_THICKNESS_M,
|
||||
elevation: anchor.elevation + wallHeight,
|
||||
};
|
||||
endFaces[spec.role] = {
|
||||
base: faceBottom,
|
||||
direction: {
|
||||
offset: faceTop.offset - faceBottom.offset,
|
||||
elevation: faceTop.elevation - faceBottom.elevation,
|
||||
},
|
||||
};
|
||||
// 관은 집수정 내공을 가로질러 **안쪽 벽면까지** 물린다 — 벽 몸통 중간에서 끊기면
|
||||
// 접속이 어긋나 보인다(2026-08-20 사용자 ③).
|
||||
// 유입 배관 위치는 **현재 유지**(2026-08-22 사용자 확정) — 관 유입단은 종전처럼
|
||||
// 노견 끝에서 내공 1.0m 자리다. 벽이 노견에 붙으면서 관 끝이 벽을 지나 집수정
|
||||
// 안으로 들어가므로, 마감면은 벽 변을 복사하지 않고 **관 끝 자리에서 벽과 나란한
|
||||
// 기울기**로 자른다(벽 변에 자르면 관이 벽 앞에서 끊겨 위치가 바뀐다).
|
||||
basinPipeEnd = {
|
||||
offset: anchor.offset + outward * innerWidth,
|
||||
elevation: anchor.elevation,
|
||||
};
|
||||
endFaces[spec.role] = {
|
||||
base: { offset: basinPipeEnd.offset, elevation: anchor.elevation - floorThickness },
|
||||
direction: {
|
||||
offset: -outward * REVET_LEAN_RATIO * (wallHeight + floorThickness),
|
||||
elevation: wallHeight + floorThickness,
|
||||
},
|
||||
};
|
||||
return null;
|
||||
}
|
||||
// 형상(사용자 스케치 확정 — 좌측 벽 기준, 우측은 반전): 배면(도로측) 수직, 전면
|
||||
|
||||
Reference in New Issue
Block a user