- Code\rebar_pipeline, review_pipeline, pier-program을 정션에서 실제 폴더로 전환 - Code\rhino_mcp 및 CLAUDE_rhino배경.md 추가, .mcp.json은 PYTHONPATH로 새 위치 사용 - pier-program 내부 .git 제거(이력은 backup\pier-program_20261028.bundle에 보관) - worktree 가이드 반영(CLAUDE.local.md, HANDOFF.md) - D:\Rhino-MCP 경로 참조를 새 위치로 치환 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
36 lines
3.1 KiB
HTML
36 lines
3.1 KiB
HTML
{% extends "base.html" %}
|
|
{% block title %}도면에서 읽기 · {{ p.name }}{% endblock %}
|
|
{% block body %}
|
|
<h1>도면에서 읽기</h1>
|
|
<p class="muted">한 화면에서 <b>템플릿 원본 값을 모두 도면 값으로</b> 바꿉니다. 운곡교 P1 도면 틀(P1~P4)의 첫 번째 도면(D1)과 철근재료표에서 코핑·기초·말뚝·기둥·받침·철근 값을 읽어 <code>params</code>(모델 생성값)와 <code>expected</code>(검사 기준)의 현재 값과 비교합니다.
|
|
읽기 규칙은 모두 완성된 교각(P1)에서 같은 값이 재현되는지 먼저 확인한 것입니다(<code>tools/test_geomread.py</code>). 이 도구는 아무것도 자동으로 바꾸지 않고, 고른 줄만 반영합니다. 반영한 묶음은 다시 확정해야 합니다.</p>
|
|
{% if running %}<p class="warn">게이트 실행 중에는 값을 바꿀 수 없습니다.</p>{% endif %}
|
|
{% if state != 'ok' %}
|
|
<p class="fail">{{ msg }}</p>
|
|
{% else %}
|
|
<p class="muted">{{ msg }}{% if msg %} · {% endif %}현재 값과 다른 줄 {{ n }}건</p>
|
|
<div class="flash warn">params와 expected를 같은 도면 읽기에서 채우면 둘이 서로 같은 것은 <b>독립 근거가 아닙니다</b>(앱 확인 C9). 받침 표·솔플레이트 표·재료표 값(아래 "표 값" 구역)도 이 화면에 함께 나오며, 같은 값을 <a href="{{ url_for('candidates', name=p.name) }}">표 후보값</a> 화면에서 따로 골라 반영할 수도 있습니다.
|
|
추론 줄(예: 좌측 스터럽 윗면)은 기본으로 선택되어 있지 않습니다.</div>
|
|
{% if notes %}<h2>확인이 필요한 점</h2><ul>{% for t in notes %}<li>{{ t }}</li>{% endfor %}</ul>{% endif %}
|
|
{% if not n %}<p class="ok">읽은 값이 모두 현재 값과 같습니다(1.5 mm 반올림 안).</p>
|
|
{% else %}
|
|
<form method="post" action="{{ url_for('geomread_apply', name=p.name) }}">
|
|
{% for g, items in groups.items() %}
|
|
<h2>{{ g }} ({{ items|length }}건)</h2>
|
|
<div class="wrap"><table>
|
|
<thead><tr><th>반영</th><th>대상</th><th>현재</th><th>읽은 값</th><th>근거</th></tr></thead>
|
|
<tbody>{% for i, c in items %}
|
|
<tr><td><input type="checkbox" name="row" value="{{ i }}" {% if not c.inferred %}checked{% endif %} aria-label="{{ c.file }}:{{ c.path }} 반영"></td>
|
|
<td><code>{{ c.file }}:{{ c.path }}</code></td>
|
|
<td>{{ brief(c.old)|truncate(60) }}</td><td><b>{{ brief(c.new)|truncate(60) }}</b></td>
|
|
<td>{{ c.why }}{% if c.inferred %} <span class="warn">추론</span>{% endif %}</td></tr>{% endfor %}
|
|
</tbody></table></div>
|
|
{% endfor %}
|
|
<p>반영자 <input type="text" name="by" required> <button {% if running %}disabled{% endif %}>선택한 줄 반영</button></p>
|
|
<p class="muted">반영 전에 <code>params.json</code>·<code>expected.json</code>·<code>confirm.json</code>을 <code>backup/before_geomread_…</code>에 보관하고, 반영 기록은 <code>read_log.json</code>에 남깁니다.</p>
|
|
</form>
|
|
{% endif %}
|
|
{% endif %}
|
|
{% if log %}<h2>최근 반영 기록</h2><ul>{% for e in log %}<li>{{ e.at }} · {{ e.by or '-' }} · {{ e.count }}건 · {{ e.backup }}</li>{% endfor %}</ul>{% endif %}
|
|
{% endblock %}
|