feat(rebar): 확대기초 단면 삽도 2단계 (범례·선 스타일·치수선·다리 주석·기둥·말뚝·실제 비율·탭 4개)
- 선 스타일을 삽도에 맞춤: B5–B8 청록 실선, B1–B4 주황 점, B9 보라 세로선, B10 녹색 점, B11 회색 파선, B12 회색 점 - 범례 5항목 (선 모양별) - 하단 치수선(피복 · 격자 e · n@s=G · e)과 우측 높이 치수선(상면 피복 · B10 단 · 하면 피복), 화살 끝 표시 - B6 다리 주석 "B6 다리 → B5 높이 (값)" - 기둥 블록(상부)과 말뚝 머리(하부)를 맥락 그림으로 표시 - 높이 방향을 실제 비율로 그림 (축소 없음) - 탭 4개 중 "교각축 직각 단면 (폭 W)"만 작동, 나머지는 다음 단계 자리로 비활성 Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
bad220d791
commit
6c7a7ff781
3 files changed
+104
-45
No files matched your search
+16
-2
@@ -1373,10 +1373,24 @@ function renderFootingSettings(box: HTMLDivElement, pier: Pier): void {
|
||||
applyFootingRebar(pier.input.name, next);
|
||||
});
|
||||
wrap.append(msg, apply);
|
||||
// 교각축 직각 단면 (폭 W) (승인 2026-10-26, 추천안 1단계): a bubble click highlights that bar family; a second click clears it.
|
||||
// 확대기초 단면 탭 (승인 2026-10-26, 추천안 2단계): 첫 탭 "교각축 직각 단면 (폭 W)"만 작동하고, 나머지 탭은 다음 단계 자리만 둡니다.
|
||||
const tabs = el('div');
|
||||
tabs.style.display = 'flex';
|
||||
tabs.style.flexWrap = 'wrap';
|
||||
tabs.style.gap = '6px';
|
||||
for (const [label, enabled] of [['교각축 직각 단면 (폭 W)', true], ['교각축 단면 (길이 L)', false], ['다리 배치 상세', false], ['B10 모서리', false]] as const) {
|
||||
const b = el('button', label, 'btn small');
|
||||
b.type = 'button';
|
||||
b.setAttribute('aria-pressed', String(enabled));
|
||||
b.disabled = !enabled;
|
||||
if (!enabled) b.title = '다음 단계에서 추가';
|
||||
tabs.appendChild(b);
|
||||
}
|
||||
wrap.appendChild(tabs);
|
||||
// 교각축 직각 단면 (폭 W): a bubble click highlights that bar family; a second click clears it.
|
||||
const sectionFig = el('figure', undefined, 'ground-fig');
|
||||
sectionFig.innerHTML = footingSectionSvg(pier.model);
|
||||
sectionFig.appendChild(el('figcaption', '교각축 직각 단면 (폭 W) · 풍선을 누르면 그 철근만 강조 · 높이 방향 축소 · 다리 생략', 'muted small'));
|
||||
sectionFig.appendChild(el('figcaption', '교각축 직각 단면 (폭 W) · 풍선을 누르면 그 철근만 강조 · 실제 비율 · 다리 생략', 'muted small'));
|
||||
sectionFig.querySelectorAll<SVGGElement>('[data-bubble]').forEach((g) => g.addEventListener('click', () => highlightFootingBar(sectionFig, g.dataset.bubble ?? '')));
|
||||
wrap.appendChild(sectionFig);
|
||||
box.appendChild(wrap);
|
||||
|
||||
Reference in new issue
Block a user