Commit Graph

11 Commits

Author SHA1 Message Date
zio
02c6b8ddee 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>
2026-07-16 06:53:55 +09:00
zio
0702b414bf feat(m2): V66 K2 hall 6-10 trench measured seed from CAD (65 channels, 941 points)
- Extract trench channels from original 1F site plan DWG (same origin as
  hall frames) via streaming DXF tag parser that walks xref BLOCK contents
  and resolves INSERT-chain transforms (missed by top-level iteration,
  which caused the earlier 'no trench layer in K2' misjudgment).
- Power trunk plan (E3-59~69) used as cross-validation only: its util-line
  xref is a cropped copy (x<=509.2m) with ~3.5m phase offset; angle
  clusters (0/+-11/-12 deg) confirm frame rotation alignment.
- Generator tools/cad/extract_trench_seed_k2.py: frame rotation, horizontal
  clip (Liang-Barsky), >=30m runs, 1.5m twin-line merge, 6m point sampling
  (V61 convention). H6 9 / H7 H8 H9 H10 14 channels each, is_assumed=false.
- All halls H1-H10 now have measured trench (PLANNING R4 resolved).
- Docs: cad-extraction.md V66 section, OWNER_FEEDBACK log.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 00:49:45 +09:00
zio
d80b761983 feat(m2): V65 measured exit positions + canvas real trench data
Owner directives 2026-07-16 (items 2-3 of follow-up batch).

- tools/cad/extract_exit_seed.py: boundary door clusters (+-2m band) from CAD
  DOOR layers projected onto hall edges -> V65 replaces assumed exits for
  H1-H8 (34 measured); H9/H10 keep assumed (0-1 boundary doors - low trust).
  Cross-validated against V63/V64 obstacle door strips (same source, matching)
- Canvas trench layer: renders real supply points (HallInfo.trenches, r=0.5m
  dots with supplies tooltip) when present; falls back to synthetic 9m grid

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 00:18:42 +09:00
zio
7f86104c74 feat(m2): V64 K2 obstacle seeds - all 10 halls now obstacle-aware
Owner directive 2026-07-15: extend obstacle recognition to K2 (halls 6-10).

- tools/cad/extract_obstacle_seed_k2.py: same 1m-cell raster + row-strip
  method as K1, plus hall-frame rotation transform (+-11..12deg wings)
- 31 measured strips: edge doors, service-room walls, and the full-width
  midline door strips on H9/H10 = the A/B divider shutter tracks - the 1.0m
  door buffer keeps the shutter travel line clear (operationally correct)
- Layers: ELEVATOR, STAIR, DOOR, gypsum/lightweight-steel/cement-panel walls

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 23:45:14 +09:00
zio
ffa133aee5 feat(m2): V63 wall/stair/elevator/door obstacle recognition + avoidance
Owner directive 2026-07-15: recognize walls, stairs, elevators, doors, drywall.

- tools/cad/extract_obstacle_seed.py: rasterize hall floor into 1m cells over
  obstacle layers (WALL/DRYWALL/masonry/panel, STAIR, ELEVATOR, DOOR), connected
  components, row-strip decomposition (prevents bbox inflation of L-shaped
  thin wall runs) -> 60 measured rects for K1 halls 1-5
- V63: hall_obstacle table (kind: stair|elevator|door|wall) + seeds
- Engine: auto-layout reserves obstacles with kind-based buffer (door 1.0m
  approach clearance, others 0.3m)
- Canvas: structure layer renders obstacle rects (door tinted green);
  HallInfo.obstacles contract extension (additive)
- Limits recorded: wall strips not filled room interiors (perimeter margin +
  wall strips still block booth intrusion); K2 deferred (different layer set)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 23:38:29 +09:00
zio
6ff692c03f feat(m2): V62 measured pillar seed + auto-layout pillar avoidance
Owner directive 2026-07-15: extract pillars and make auto-placement avoid them.

- tools/cad/extract_pillar_seed.py: K1 pillars from CAD layer 4-COL-H
  (cross-validated against official drawing dims 54/117m south wall pillars);
  K2 H7-H10 from official drawing dimension annotations (one interior midline
  pillar each, dia 2.3m); H6 not seeded (no source - recorded as limitation)
- V62: hall_pillar table + 74 seeds; also corrects V61 trench y-axis
  (RT points were seeded in CAD-y without the top-of-drawing flip - now 63-y,
  generator fixed as the canonical form)
- Engine: autoGenerate reserves pillar radius + 0.6m buffer, packing skips
  overlapping cells; HallInfo.pillars contract extension (additive, NON_NULL)
- Canvas: structure layer renders pillar circles (editor passes hall pillars)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 23:09:11 +09:00
zio
6be091aa7c feat(m2): V61 measured trench seed for K1 halls 1-5 from CAD
Owner directive 2026-07-15: seed real trench coordinates.

- tools/cad/extract_trench_seed.py: deterministic generator - extracts trench
  channels from CAD layer 5-tranchi (spelling differs from expected), merges
  paired channel edges into centerlines, emits supply points every 6m
- Measured layout (identical across halls 1-5, cross-validating band alignment):
  7 horizontal channels per hall, 9.0m pitch, y=5.85..59.8m local,
  extent x[20.6..170.2]m
- V61: delete assumed grid points for H1-H5, insert 875 measured points
  (is_assumed=false); supply flags keep V5 policy; K2 stays assumed (no trench
  layer in its plan drawing - power trunk drawing analysis is follow-up)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 06:45:32 +09:00
zio
832ab7f8a9 feat(m2): K2 halls 6-10 DWG underlays - DWG tab complete for all 10 halls
Owner directive 2026-07-15: render exhibition center 2 and complete the DWG tab.

- fast_render.py: --rotate/--center options (align tilted halls axis-straight);
  slim-DXF workflow notes (K2 plan 106MB DXF, basement xref/detail layers dropped)
- Hall geometry measured programmatically (long-line angle clusters) and verified
  visually: H6 -12deg 60x93, H7/H8 axis-aligned 90x126 stacked (block exactly
  252m = 2x126, floor width exactly 90m), H9 -11deg / H10 +11deg 99x132
- public/media/floorplans/dwg/hall6..10.png: floor+3m crops, calibration stays
  deterministic (same margin formula as K1)
- hallFloorplan.ts: DWG_HALL_DIMS extended to all 10 halls (rotation noted)
- docs/analysis/cad-extraction.md: K2 section with confirmed coordinates table

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 02:32:58 +09:00
zio
d8ef5c53df feat(m2): DWG/JPG floorplan underlay tabs + CAD extraction pipeline
Owner directives 2026-07-14~15: run the DWG pipeline; split floorplan into DWG and JPG tabs.

- tools/cad/dwg_extract.py: DWG(LibreDWG dwg2dxf) -> DXF -> layer inventory /
  keyword extraction / grid-label anchor detection (ezdxf, recover fallback)
- tools/cad/render_hall_png.py: render hall-band crops from the K1 combined
  plan+trench drawing (x0=293.5m, width 171m, Y bands 80.1m + 63m pitch,
  single load -> multi-crop). Real trench layout confirmed: 7 horizontal runs
  at ~9m pitch + central feeder (differs from assumed 6m grid seed - V61 later)
- public/media/floorplans/dwg/hall1..5.png: K1 hall underlays (3m margin crop,
  deterministic calibration from render params)
- Editor left panel new tool group with JPG/DWG tabs; DWG disabled for
  halls without CAD render yet (K2 pending). Canvas switches url+region.
- docs/analysis/cad-extraction.md: pipeline findings, limits (A3002 LibreDWG
  crash, band-to-hall numbering direction to confirm), next steps

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 00:35:12 +09:00
zio
37aeebdd28 솔루션명 수정 2026-07-13 04:23:07 +09:00
GUARDiA
6294627070 fix(schedule,ui): holidays on exhibition calendar, bilingual brand, neutral calendar borders 2026-07-12 19:16:48 +09:00