Files
dxf-to-3d-gasiseol/docs/next-session-p11.md
T
Claude Haiku 363c2a2a25 step3-4: 프로젝트 기본 구조 & 상세 계획 수립
- CLAUDE.md: 프로젝트 전체 가이드 및 워크플로우 정의
- CONSIDERATIONS.md: 8개 영역 고려사항 분석 (기술, 품질, 배포, UX)
- PROGRESS.md: 진행 상황 추적 및 체크리스트
- PLAN.md: 단계 5~9 상세 계획 및 에이전트 역할 정의
- 메모리: 프로젝트 정보 저장

다음: 단계 5 (에이전트/커맨드/스킬/훅 아이디어 제안)
2026-10-16 15:06:18 +09:00

11 KiB
Raw Blame History

다음 세션 프롬프트 — 교각 P11 (꺾임)

그대로 복사해 붙이면 된다. 아래 --- 부터가 프롬프트다.


교각 P11 — 꺾인 코핑

지난 세션에 P9 를 끝냈다

산외교_파이형_교각일반도(울산P9).dwg 로 교각 한 기를 끝까지 세웠다. 코핑 · 원형기둥 2 · 확대기초 2 · 버림 2 · 강관말뚝 44 · 받침 6기(교좌대·모르타르· 받침·솔플레이트) · 미관문양 2 = 77 파트 · 660.4154 m³. 모델러 실측 대비 불일치 0건, 열린 변 0, IFC 내보내기까지 왕복 검증됐다.

이번엔 P11 이다. 산외교_파이형_교각일반도(울산P11-꺾임).dwg. P9 와 뷰 구성이 같지만 코핑 축선이 꺾여 있다. 그게 이번 세션의 전부다.

먼저 읽어라 (순서대로)

  1. CLAUDE.md — 경계 · 작업 순서 · 함정표
  2. docs/methodology.html 11.4 절 — P9 실증 결과. 판정표 · 코어 변경 · 새 함정
  3. src/drawings/pier-p9.mjs — 이번 작업의 원본이다. 통째로 읽어라
  4. docs/2d-3d-conversion.md 교훈 #29~#33 (지난 교량 세션)

대상

drawings-src/산외교_파이형_교각일반도(울산P11-꺾임).dwg
도곽  CXBLKA1 INSERT (1,406,622, 390,000) × scale 100 × A1(841×594)
      → sheet  x[1,406,622 … 1,490,722]  y[390,000 … 449,400]

도곽 밖은 전부 다른 벌이다. 이 파일도 도면집 스택이라 17벌이 y 방향 65,000 간격으로 쌓여 있고, 그중 P9 자리는 치수선만 남아 있다. 상자를 눈으로 잡지 마라 — 도곽 블록에서 계산한다.

이미 확인한 것 (DWG 데이터에서 직접 잰 값)

측점       STA.0+594.570
표고       EL. 82.799 · 82.306 · 81.713   (코핑 상면 3단으로 추정)
           EL. 44.413                      (기초 저면)
기둥       Ø2,200 원형 3본  ·  CS-CONC-MINR CIRCLE
             평면도   (1,416,488, 437,383) (1,425,088, 437,383) (1,433,616, 436,442)
             기초평면 (1,416,488, 403,537) (1,425,088, 403,537) (1,433,616, 402,596)
받침 블록  500x500 ×3 · 530x530 ×2 · 470x470 ×1
연단거리   L=170.600 · H=36.203 · Theta=0

꺾임각 = 6.30°

기둥 1→2   Δx 8,600  Δy    0   →   0.00°   간격 8,600
기둥 2→3   Δx 8,528  Δy −941   →  −6.30°   간격 8,580

두 뷰(평면도·기초평면도)에서 같은 941 이 나온다.

⚠ 지난 세션에 이걸 한 번 「8.7°」로 잘못 말했다. 전 색 각도 분포에 있던 81.3°/171.3° 를 꺾임각으로 읽은 것인데, 구조 외곽선만(ci=256) 세면 그 대역이 없다 — 보조선 각도였다. 기둥 축선에서 직접 잰 6.30° 가 맞다. 각도를 선 분포에서 읽지 말고 부재 좌표에서 재라.

(1,453,587, 436,249) 의 Ø2,200 은 CS-CONC-MAJR 이고 x 가 19,971 떨어져 있다 — 단면 A-A 의 기둥 단면이지 평면도 기둥이 아니다.

1단계 — 꺾임의 정체 (여기서 멈추고 보고)

캡처를 먼저 봐라. 좌표만으로는 못 가른다.

  1. 평면도 — 꺾이는 자리가 기둥 3번 위인가 그 사이인가. 코핑이 «각진 두 토막»인가 «한 곡선»인가. 꺾임부 폭·필렛
  2. 정면도 — 파단선 위치 · 코핑 상면 단수 · EL 지시 위치
  3. 단면도 — 코핑 교축폭 · 헌치
  4. 기초 평면도 — 기초 3기인가 · 말뚝 배치(P9 는 22본×2)

2단계 — 형상 전략 (보고 후 진행)

P9 코핑은 「정면 윤곽(YZ) × 교축 압출」 ∩ 「평면 윤곽 빗각기둥 2장」으로 섰다. 꺾이면 그 전제가 깨진다 — 정면도가 투영이라 실제 길이를 안 준다.

후보 셋. 캡처 보고 고른다.

방법 되는 조건 걸림돌
꺾임점에서 끊어 두 토막을 각자 압출 두 토막이 각각 직선 이음매 union — 면으로만 맞닿으면 다음 boolean 이 흘린다
토막마다 로컬 좌표계 가장 정직 IR 에 배치 개념이 없다. 코어 변경
평면 압출 ∩ 정면 압출 꺾임이 평면에만 있고 정면이 실제 길이를 줄 때 대개 안 준다

끊는 쪽이 유력하다. loft 는 쓰지 마라 — 결과가 안 닫혀 boolean 에서 샌다(아래).

절대 규칙

  • src/core/* · src/ir.mjs 에 도면 고유값 금지. 레이어명 · 제목 · 좌표 · 단위 · 축척은 전부 src/drawings/pier-p11.mjs
  • 코어 수정이 필요해 보이면 먼저 보고해라. 그게 방법론의 구멍이다
  • 못 찾거나 여러 개면 예외를 던져라. 자동 선택 금지
  • 손으로 읽은 수를 코드에 적지 마라. 도면에서 집고 다른 값과 대조해라
  • 그림을 먼저 봐라. 뷰 상자를 잡기 전에 시트 → 도형 → 확인 → 상자

게이트 (P9 에서 전부 통과시킨 순서)

0. egm guide | 명령 수         208 이면 편집 모드 · 39 면 뷰어 모드(모델링 불가)
1. node src/run.mjs pier-p11   뷰 폭·높이가 도면 표기와 맞는가
2. node src/gaps.mjs pier-p11  끊김의 원인이 형상인가 파단선인가
3. node src/build.mjs pier-p11 --loops     꼭짓점 수·자기교차
   node src/build.mjs pier-p11 --circles / --blocks
   node src/table.mjs pier-p11 --title "교량받침 ELEVATION TABLE"
4. node src/build.mjs pier-p11             IR 검증
5. node src/volume.mjs pier-p11            해석 부피 (모델러 없이)
6. node src/emit/egm.mjs out/pier-p11.ir.json
   python src/run_egm.py out/pier-p11.egm.json --export=out/pier-p11.obj
7. egm status                              modelCount == 최종 파트 수
8. node src/measure.mjs pier-p11 --ir      의도 vs 결과 (합격선 절대 0.05 m³)
9. node src/emit/ifc.mjs out/pier-p11.ir.json

지난 세션에 코어를 이만큼 고쳤다 (되돌리지 마라)

C12  core/loops.mjs  dropCollinear 중복점 제거
       매달린 변 왕복이 길이 0 인 변을 남긴다. 압출하면 퇴화 면이 나온다
C13  ir.mjs · emit/egm.mjs · volume.mjs   intersect 연산
       BooleanIntersection 은 이항. 「두 방향이 동시에 맞아야 하는 형상」용
C14  ir.mjs · emit/egm.mjs · volume.mjs   extrude.drift (빗각 기둥)
       Extrude C=True D F 가 자유방향을 받고 결과가 닫힌다
C15  core/parse.mjs collectBlocks · run.mjs · core/views.mjs · core/pick.mjs blocks()
       말뚝이 INSERT 블록. 삽입점=위치, 배율=치수
C16  core/table.mjs (신규) · src/table.mjs (CLI) · run.mjs 색인 · pick.tables
       표를 (이름표, CSV) 쌍으로 색인. 이름표 아래 글자높이 ×2 로 표를 찾는다
C17  run.mjs  뷰별 entityFilter
       뷰마다 무엇이 구조선인지 다르다 (문양은 ci=2, 본체는 ci=256)
C18  volume.mjs  교집합 해석 부피
       ① 압출∩압출 닫힌 식  ② 종단∩평면(높이 가변) Z 슬라이스 가우스
C19  emit/ifc.mjs (신규)  IFC4 출력. 해석 솔리드 우선 + IfcMapConversion
C20  emit/egm.mjs  loft → `~Loft Enter` + `~Cap`  (그래도 boolean 엔 못 쓴다)

새로 밟은 함정 (또 밟지 마라)

증상 원인 대응
부피는 맞는데 boolean 이 샌다 Loft 결과가 안 닫힌다. 4각형 단면도 열린 변 12개. 발산 정리 부피는 정확해 부피 검사로 절대 안 걸린다 loft 를 boolean 인자로 쓰지 마라. 평행이동뿐이면 drift 압출
그려진 길이가 실제가 아니다 파단선. 기둥이 6,100 인데 실제 33,800 CS-CUTL 을 본다. 생략량 = 실제 − 도형 (derived)
한 파일에 도형 17벌 도면집 스택 도곽 블록에서 상자를 계산
「단면도」 안쪽 선을 부재로 읽음 절단면이 아니라 투영 치수가 외곽 − 2×R 이면 투영
평면 모서리가 45° 모따기 파서가 bulges 를 버려 90° 호가 현으로 눌림 호 끝점은 정확 → R 은 되찾는다. 링 면적은 못 믿는다
적분값이 0.2 m³ 샘 구간 끝점이 링 꼭짓점 → 스캔라인 교차 수 어긋남 내부 노드 구적(가우스). 심프슨 금지
구조 형상이 표로 잡힘 평면도 격자가 73행×83열 「표」 표 색인에 layerFilter
actualMeasurement 로 단위 판정 실패 주요 m 표기 · 상세 mm 표기 (표시값이 온다) 도곽 배율 · 블록 scale · 격자 간격으로 교차검증

P9 에서 통한 방식 — 그대로 가져다 써라

단위      도곽 A1×100 · 블록 scale ↔ Φ 텍스트 · 격자 ↔ 「4@1.300」 → 넷 다 1단위=1mm
공통중심  부재 대칭으로 자기검증 (코핑 ±7,000 · 기초 ±3,250 · 기둥 ±4,100)
표고      공통 기준선이 없어도 **표가 준다** — EL.'X' = 코핑상면 + h1 + h2
          6기가 모두 같은 절대표고를 내면 그게 원점이다
받침      평면도(위치·평면치수) × 표(적층고·표고·교축위치) 세 겹 검산
파단      생략량 = 기둥_높이 − 기둥_도형길이  (derived. 손으로 적지 마라)

보고 형식 (매 단계)

쓴 도면·도형:   무엇을, 왜 그것을
통과한 게이트:
막힌 곳:        게이트 번호 + 증상 + 원인
설정으로 해결:   무엇을
코드가 필요:     무엇이 왜  (← 방법론의 구멍)
방법론에서 틀린 것: 어느 절의 어느 주장이
새 함정:        증상 → 원인 → 대응

아직 안 한 일 (P11 과 별개, 여력 되면)

  1. manhole1 재검증 — loft 결과를 union·difference 인자로 쓴다. C20 의 함정 위에 서 있을 수 있다. 부피가 맞아 보여도 샜을 수 있다
  2. P9 미관문양 형상 재검토 — 사용자가 「제대로 안 된다」고 했다. 지금은 코핑 양 측면의 50 두께 띠 + 하단 250 구간 100 돌출로 세워져 있고, 정면도의 매달린 대각선 6줄(문양 내부 능선)은 재현 안 한다
  3. docs/2d-3d-conversion.md 에 교훈 #34~ 추가 — 위 함정표가 아직 안 옮겨졌다
  4. 텍스트 셀렉터 — 기둥 높이·말뚝 길이가 아직 design 이다. 치수/표고 텍스트를 집는 수단이 없다. blocks() 를 만든 것과 같은 종류

마지막

  1. docs/2d-3d-conversion.md 에 교훈 추가
  2. docs/methodology.html 11.5 절 신설 — P11 이 무엇을 밝혔는지. 판정표를 그대로 싣고, 배지를 올리되 틀린 주장은 지우지 말고 왜 틀렸는지 적어라
  3. node src/ui.mjs pier-p11 --port 7333 로 파라메트릭 UI 까지 확인
  4. node src/emit/ifc.mjs out/pier-p11.ir.json 로 IFC 까지