fix(536-3): 네일 · 앵커 최소 길이 = 1 m 성긴 걸음 + 이분(길이 대 Fs 단조 아님) · 입력 칸 격자 · 네일 표시 작게 · 보강 단면 그림 즉시 그림(붙으면 ResizeObserver 가 다시)

- 실측: 0+720 우 깎기 우기 L 3 1.049 · 7.5 1.211 · 12 1.156 — 옛 4.5 m 걸음이 O.K 창을 건너뜀
- requestAnimationFrame 이 안 도는 창(ORCA)에서 단면 그림이 비던 것

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-26 04:45:40 +09:00
co-authored by Claude Opus 5.5
parent 590ede4603
commit 498c738cee
5 changed files with 17 additions and 8 deletions
@@ -260,6 +260,8 @@ def run_whatif(root: Path, station_key: str, req: WhatIfRequest) -> dict[str, An
start,
max_ratio=SUPPORT_MAX_LEN,
step=SUPPORT_LEN_STEP,
# 길이 대 Fs 가 늘 단조롭지 않음(활동면이 깊어짐) — 1 m 성긴 걸음 뒤 이분
coarse=max(1, round(SUPPORT_MAX_LEN - start)),
)
else:
found = {"found": None, "tried": []}
@@ -278,7 +278,7 @@ export function buildReinforce(o: ReinforceOptions): HTMLElement {
toggles: { map: false, centers: false, candidates: false },
picked: null,
};
requestAnimationFrame(() => canvas.render(draw));
canvas.render(draw); // 붙기 전 = 기본 폭 · 붙으면 ResizeObserver 가 다시 그림
}
if (o.row.walls) {
const method = createSelectField({
@@ -346,10 +346,10 @@ export function createSectionCanvas(onPick: (index: number | null) => void): Sec
...ns,
}),
svgEl("rect", {
x: s.head[0] - 2.5 * unit,
y: s.head[1] - 2.5 * unit,
width: 5 * unit,
height: 5 * unit,
x: s.head[0] - 1.2 * unit,
y: s.head[1] - 1.2 * unit,
width: 2.4 * unit,
height: 2.4 * unit,
class: "e03-support__head",
}),
);
@@ -358,7 +358,7 @@ export function createSectionCanvas(onPick: (index: number | null) => void): Sec
svgEl("circle", {
cx: s.cross[0],
cy: s.cross[1],
r: 3 * unit,
r: 1.5 * unit,
class: "e03-support__cross",
"data-role": "support-cross",
...ns,
@@ -53,3 +53,10 @@
vertical-align: middle;
background: var(--e03-support);
}
.e03-support-fields {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
gap: var(--spacing-8);
align-items: end;
}
@@ -182,7 +182,7 @@ export function buildSupport(o: SupportOptions): HTMLElement {
});
typeField.select.dataset.role = "support-type";
const inputs = new Map<NumKey, HTMLInputElement>();
const fields = el("div", { className: "e03-panel__row" });
const fields = el("div", { className: "e03-support-fields" });
fields.append(sideField.root, typeField.root);
for (const key of FIELDS) {
const f = createInputField({
@@ -295,6 +295,6 @@ export function buildSupport(o: SupportOptions): HTMLElement {
rec.support_forces?.[o.condition],
),
};
requestAnimationFrame(() => canvas.render(draw));
canvas.render(draw); // 붙기 전 = 기본 폭 · 붙으면 ResizeObserver 가 다시 그림
return host;
}