- CLAUDE.md: 프로젝트 전체 가이드 및 워크플로우 정의 - CONSIDERATIONS.md: 8개 영역 고려사항 분석 (기술, 품질, 배포, UX) - PROGRESS.md: 진행 상황 추적 및 체크리스트 - PLAN.md: 단계 5~9 상세 계획 및 에이전트 역할 정의 - 메모리: 프로젝트 정보 저장 다음: 단계 5 (에이전트/커맨드/스킬/훅 아이디어 제안)
11 KiB
다음 세션 프롬프트 — 교각 P11 (꺾임)
그대로 복사해 붙이면 된다. 아래
---부터가 프롬프트다.
교각 P11 — 꺾인 코핑
지난 세션에 P9 를 끝냈다
산외교_파이형_교각일반도(울산P9).dwg 로 교각 한 기를 끝까지 세웠다.
코핑 · 원형기둥 2 · 확대기초 2 · 버림 2 · 강관말뚝 44 · 받침 6기(교좌대·모르타르·
받침·솔플레이트) · 미관문양 2 = 77 파트 · 660.4154 m³.
모델러 실측 대비 불일치 0건, 열린 변 0, IFC 내보내기까지 왕복 검증됐다.
이번엔 P11 이다. 산외교_파이형_교각일반도(울산P11-꺾임).dwg.
P9 와 뷰 구성이 같지만 코핑 축선이 꺾여 있다. 그게 이번 세션의 전부다.
먼저 읽어라 (순서대로)
CLAUDE.md— 경계 · 작업 순서 · 함정표docs/methodology.html11.4 절 — P9 실증 결과. 판정표 · 코어 변경 · 새 함정src/drawings/pier-p9.mjs— 이번 작업의 원본이다. 통째로 읽어라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단계 — 꺾임의 정체 (여기서 멈추고 보고)
캡처를 먼저 봐라. 좌표만으로는 못 가른다.
- 평면도 — 꺾이는 자리가 기둥 3번 위인가 그 사이인가. 코핑이 «각진 두 토막»인가 «한 곡선»인가. 꺾임부 폭·필렛
- 정면도 — 파단선 위치 · 코핑 상면 단수 · EL 지시 위치
- 단면도 — 코핑 교축폭 · 헌치
- 기초 평면도 — 기초 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 과 별개, 여력 되면)
manhole1재검증 — loft 결과를 union·difference 인자로 쓴다. C20 의 함정 위에 서 있을 수 있다. 부피가 맞아 보여도 샜을 수 있다- P9 미관문양 형상 재검토 — 사용자가 「제대로 안 된다」고 했다. 지금은 코핑 양 측면의 50 두께 띠 + 하단 250 구간 100 돌출로 세워져 있고, 정면도의 매달린 대각선 6줄(문양 내부 능선)은 재현 안 한다
docs/2d-3d-conversion.md에 교훈 #34~ 추가 — 위 함정표가 아직 안 옮겨졌다- 텍스트 셀렉터 — 기둥 높이·말뚝 길이가 아직
design이다. 치수/표고 텍스트를 집는 수단이 없다.blocks()를 만든 것과 같은 종류
마지막
docs/2d-3d-conversion.md에 교훈 추가docs/methodology.html11.5 절 신설 — P11 이 무엇을 밝혔는지. 판정표를 그대로 싣고, 배지를 올리되 틀린 주장은 지우지 말고 왜 틀렸는지 적어라node src/ui.mjs pier-p11 --port 7333로 파라메트릭 UI 까지 확인node src/emit/ifc.mjs out/pier-p11.ir.json로 IFC 까지