fix(m2): V67 K1 band-to-hall mapping corrected - was reversed
Owner directive 2026-07-16: verify the K1 band-hall numbering assumption.
Decisive evidence: 832 electrical circuit labels (P{panel}-{hall}{zone}-{no})
in the trench drawing, zero exceptions: band1=hall5(165) band2=hall4(168)
band3=hall3(168) band4=hall2(168) band5=hall1(163) => band n = hall (6-n).
The previous assumption (band n = hall n) was WRONG - only hall 3 matched by
luck. Mirror features in official JPGs (notch corners, exterior entrances)
independently agree.
- V67: delete all K1 measured rows (old mapping) and reseed with corrected
generators (trench 875, pillars, obstacles, K1 exits). Assembly strips the
V61 y-flip UPDATE (would double-flip) and the global obstacle DELETE
(would wipe K2 rows)
- Swap DWG-tab underlays hall1<->hall5, hall2<->hall4
- All 5 generators now canonically map band = 6 - hall
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@ -360,3 +360,7 @@ git push 최신(HEAD 7f86104, Everything up-to-date). 운영 도메인 kintex.wi
|
||||
### 세션 5 추가 — V66 K2 트렌치 실측 시드 (2026-07-16)
|
||||
|
||||
K2(H6~H10) 트렌치 실측 완료 — 65채널·941포인트(H6 9채널·H7/H8/H9/H10 각 14채널, 피치 9m·6m 샘플링). 소스는 전력간선 평면도(77MB) 분석 결과 그 안의 유틸라인 xref가 크롭본(x≤509.2m)+위상 ~3.5m 오차로 부적합 판정 → **홀 프레임과 동일 원점인 원본-1층 평면도의 블록 내부 TRENCH 레이어**(V61 때 "부재" 오판 교정 — xref 블록 내부라 최상위 순회에 안 잡혔던 것)를 스트리밍 파서+INSERT 체인 변환으로 추출(생성기 `tools/cad/extract_trench_seed_k2.py` 결정적 재생성). 전력간선 도면은 교차검증(각도 0°/±11°/−12° 홀 배치각 일치·9m 피치·쌍선 구조 일치)으로 활용. 오버레이 시각 검증 — 시드 포인트가 CAD 쌍선 채널 정위치. 이로써 **전 홀(H1~H10) 트렌치 실측 완료(PLANNING R4 잔여 해소)**. 게이트: gradle test 통과. 커밋까지(푸시는 상위 세션 게이트).
|
||||
|
||||
### 세션 5 추가 — K1 밴드↔홀 번호 확증·교정 (2026-07-16, 소유자 지시 "K1 밴드↔홀 번호 확증 진행해")
|
||||
|
||||
전기 회로 라벨 832건 전수로 **band n = 홀 (6-n) 확정**(기존 가정 역방향 — H1↔H5·H2↔H4 뒤바뀜, 홀3만 우연 일치). V67로 K1 실측 시드 전면 재배정 + DWG 탭 PNG 스왑 + 생성기 5종 매핑 정본화. JPG 거울상 특징(노치·출입구)과도 일치. 게이트 통과 → push→배포.
|
||||
|
||||
@ -157,3 +157,14 @@ H7/H8 블록 252m=126×2·폭 90m 정확 일치) + 회전 프로브 렌더 시
|
||||
공급 플래그 V5 정책 유지. 이로써 **전 홀(H1~H10) 트렌치 실측 완료** — PLANNING R4 트렌치 잔여 해소.
|
||||
- **한계**: ①포인트 6m 간격은 샘플링 규약(채널 위치·연장만 실측) ②채널 중간 국소 단절(H9 x78~86
|
||||
일부 행)은 min..max 연속으로 근사(K1 동일 단순화) ③세로 피더 트렌치는 M4 후속.
|
||||
|
||||
## K1 밴드↔홀 번호 확증 — 역방향 확정·V67 교정 (2026-07-16)
|
||||
|
||||
- **확증 근거(결정타)**: 트렌치 도면의 전기 회로 라벨 `P{패널}-{홀}{구역}-{번호}` 832건 전수 집계 —
|
||||
band1=홀5(165) band2=홀4(168) band3=홀3(168) band4=홀2(168) band5=홀1(163), 예외 0.
|
||||
**band n = 홀 (6-n)** (기존 "band n=홀 n" 가정 오류 — 홀3만 우연 일치).
|
||||
- **교차 특징 검증**: 공식 JPG의 거울상 특징(홀1 노치 좌상단·외부 출입구 상단 vs 홀5 노치 좌하단·기둥 상단)이
|
||||
역방향 매핑과 정확 일치. H1 재배정 기둥 세트(상단 부속실 포함)가 hall1.jpg 좌상단 노치와 정합.
|
||||
- **V67**: K1 실측 행 전체 삭제(구 매핑) → 교정 생성기 재생성분 재시드(트렌치 875·기둥 74·장애물 60·
|
||||
비상구 K1분). 조립 시 기둥 SQL의 V61 y-플립 UPDATE(이중 반전 위험)·장애물 전역 DELETE(K2 오삭제 위험) 제거.
|
||||
- **DWG 탭 PNG**: hall1↔hall5, hall2↔hall4 스왑. 생성기 5종(trench/pillar/obstacle/exit/render) 매핑 (6-n) 정본화.
|
||||
|
||||
|
Before Width: | Height: | Size: 216 KiB After Width: | Height: | Size: 235 KiB |
|
Before Width: | Height: | Size: 210 KiB After Width: | Height: | Size: 207 KiB |
|
Before Width: | Height: | Size: 207 KiB After Width: | Height: | Size: 210 KiB |
|
Before Width: | Height: | Size: 235 KiB After Width: | Height: | Size: 216 KiB |
@ -1,4 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
"""비상구 실좌표 시드 생성기 — V65 (hall_exit 실측 대체, DOOR 레이어 기반).
|
||||
|
||||
방식: DOOR 계열 레이어 지오메트리를 홀 로컬로 변환, 홀 외곽 ±2m 밴드 내 포인트를
|
||||
@ -133,7 +133,7 @@ def main():
|
||||
if not (0 <= lx < K1["w"]):
|
||||
continue
|
||||
for n in K1["halls"]:
|
||||
y0 = K1["y0"] + (n - 1) * K1["h"]
|
||||
y0 = K1["y0"] + (5 - n) * K1["h"] # band = 6-n (홀번호 역순, 2026-07-16 확증)
|
||||
if y0 <= y < y0 + K1["h"]:
|
||||
k1_pts[n].append((lx, K1["h"] - (y - y0)))
|
||||
for n in K1["halls"]:
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
"""벽·계단·엘리베이터 장애물 실측 시드 생성기 — V63 (hall_obstacle).
|
||||
|
||||
방식: 홀 바닥면(로컬 m)을 1m 셀로 래스터화, 장애물 레이어(WALL/STAIR/ELEVATOR/DRYWALL 계열)
|
||||
@ -84,7 +84,7 @@ def main():
|
||||
if not (0 <= lx < FLOOR_W):
|
||||
continue
|
||||
for n in K1_HALLS:
|
||||
y0 = BAND_Y0 + (n - 1) * BAND_H
|
||||
y0 = BAND_Y0 + (5 - n) * BAND_H # band = 6-n (홀번호 역순, 2026-07-16 확증)
|
||||
if y0 <= y < y0 + BAND_H:
|
||||
ly = BAND_H - (y - y0) # 상하 반전
|
||||
ci, cj = int(lx / CELL), min(H - 1, int(ly / CELL))
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
"""기둥 실측 시드 생성기 — V62 (hall_pillar 테이블 + K1/K2 기둥 + V61 트렌치 y축 보정).
|
||||
|
||||
근거:
|
||||
@ -54,7 +54,7 @@ def k1_pillars(doc):
|
||||
if not (0 <= lx <= FLOOR_W):
|
||||
continue
|
||||
for n in K1_HALLS:
|
||||
y0 = BAND_Y0 + (n - 1) * BAND_H
|
||||
y0 = BAND_Y0 + (5 - n) * BAND_H # band = 6-n (홀번호 역순, 2026-07-16 확증)
|
||||
if y0 <= cy < y0 + BAND_H:
|
||||
ly = BAND_H - (cy - y0) # 상하 반전(도면 상단=0)
|
||||
if not any(abs(px - lx) < 0.8 and abs(py - ly) < 0.8 for px, py, _ in per_hall[n]):
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
"""K1 트렌치 실측 시드 생성기 — CAD(전기,설비 트렌치.dwg → DXF)에서 홀1~5 트렌치 채널을
|
||||
추출해 V61 마이그레이션 SQL을 산출한다(PLANNING R4 실측 대체).
|
||||
|
||||
@ -8,8 +8,9 @@
|
||||
사용:
|
||||
python tools/cad/extract_trench_seed.py <k1_trench.dxf> <out.sql>
|
||||
|
||||
좌표 규약: CAD 전건물 mm → 홀 로컬 m. 홀 바닥 X원점 293.5m·폭 171m, Y밴드 80.1m+63m 피치
|
||||
(밴드 n ↔ 홀 n 가정 — docs/analysis/cad-extraction.md 한계 참조).
|
||||
좌표 규약: CAD 전건물 mm → 홀 로컬 m. 홀 바닥 X원점 293.5m·폭 171m, Y밴드 80.1m+63m 피치.
|
||||
★밴드↔홀 매핑(2026-07-16 확증): band n = 홀 (6-n) — 전기 회로 라벨 P{패널}-{홀}{구역}-{번호}
|
||||
832건 전수 일치(band1=5A 165건 … band5=1A 163건). 예전 "밴드 n=홀 n" 가정은 오류였음(V67 교정).
|
||||
"""
|
||||
import io
|
||||
import math
|
||||
@ -54,7 +55,7 @@ def main():
|
||||
continue
|
||||
my = (a[1] + b[1]) / 2
|
||||
for n in HALLS:
|
||||
y0 = BAND_Y0 + (n - 1) * BAND_H
|
||||
y0 = BAND_Y0 + (5 - n) * BAND_H # band = 6-n (홀번호 역순, 2026-07-16 확증)
|
||||
if y0 <= my < y0 + BAND_H:
|
||||
lx0 = max(0.0, min(a[0], b[0]) - FLOOR_X0)
|
||||
lx1 = min(FLOOR_W, max(a[0], b[0]) - FLOOR_X0)
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
"""CAD DXF → 홀별 DWG-탭 언더레이 PNG 렌더 (ezdxf drawing addon + matplotlib).
|
||||
|
||||
제1전시장 `전기,설비 트렌치.dwg`(평면+트렌치 통합 도면) 기준:
|
||||
@ -58,7 +58,7 @@ def main():
|
||||
|
||||
mm = 1000.0
|
||||
for hall_no in halls:
|
||||
y0_m = Y0_BASE_M + (hall_no - 1) * BAND_M
|
||||
y0_m = Y0_BASE_M + (5 - hall_no) * BAND_M # band = 6-hall (홀번호 역순, 2026-07-16 확증)
|
||||
ax.set_xlim((x0_m - margin) * mm, (x0_m + width_m + margin) * mm)
|
||||
ax.set_ylim((y0_m - margin) * mm, (y0_m + BAND_M + margin) * mm)
|
||||
ax.set_aspect("equal")
|
||||
|
||||