콘텐츠로 이동

실습 6. 빨간 스케치 고치기

항목 내용
입력 파일 없음 (AI 가 연습용 스케치 4개를 만듭니다)
걸리는 시간 5분 (진단·후보·적용은 각각 1초 미만)
결과물 자유도 0·충돌 0·열린 끝점 0 인 스케치 4개와 정상 재계산된 Pad
배우는 것 빨간 스케치의 세 가지 원인(과구속·미구속·열린 끝점), 수정 후보를 번호로 고르는 대화, 재계산 추적으로 «고쳐진 것 / 새로 깨진 것» 확인

FreeCAD 에서 스케치가 빨갛게 되면 제약 패널을 하나씩 눌러 보며 원인을 찾아야 합니다. 이 실습에서는 그 일을 AI 에게 맡깁니다. AI 는 스케치를 직접 읽어 «어느 제약 번호가 충돌하는지», «자유도가 몇 남았는지», «어느 끝점이 벌어졌는지»를 말해 주고, 고칠 방법을 번호 목록으로 내놓습니다. 여러분은 번호만 고릅니다. AI 는 고른 것만 적용하고, 결과가 더 나빠지면 스스로 되돌립니다.

AI 에게 만들어 달라고 해도 되고, 아래 연습 파일을 열어 시작해도 됩니다.

연습: 고치기 전 스케치(편집 모드)
연습 파일 연습-스케치(고치기전).FCStd 의 Sketch 를 편집 모드로 연 화면. 빨간 점 = 열린 끝점, 파란 점 = 미구속 원 중심. 스케치 1개(자유도 19, 열린 끝점 4)
구분 파일 설명 크기
연습 연습-스케치(고치기전).FCStd 고치기 전 스케치 — 자유도 19, 열린 끝점 4 4 KB
  1. FreeCAD 1.1.3 을 켭니다. 리포트 뷰(보기 → 패널 → 리포트 뷰)에 [CAD X-ray] 서버 시작 http://127.0.0.1:9877 가 보이면 됩니다.
  2. 터미널(PowerShell)에서 AI 툴을 엽니다. Claude Code 는 claude, 다른 툴은 AI 툴 연결 참고.
  3. FreeCAD 에서 파일 → 새로 만들기로 빈 문서를 하나 엽니다. 다른 문서는 닫아 두면 AI 가 되묻지 않습니다.
이렇게 말한다
지금 열린 새 문서에 연습용 PartDesign Body 를 하나 만들고, 그 안에 일부러 문제가 있는 스케치 4개를 XY 평면에 만들어 줘.
1. Sk_Under: 사각형인데 치수 제약 2개가 빠진 것
2. Sk_Conflict: 사각형 한 변에 길이 치수가 두 개(40 과 45)로 서로 다른 것
3. Sk_Open: 사각형인데 한 꼭짓점이 0.5 mm 벌어져 닫히지 않은 것, 그리고 이 스케치로 Pad 10 을 시도한 것
4. Sk_Fixes: 0.02 mm 벌어진 사각형(끝점 3곳만 일치) + 0.3° 기운 선 + 길이 같은 선 2개 + 반지름 같은 원 2개
다 만들면 재계산하고 어떤 객체가 빨간지 알려 줘.

AI 가 하는 일 — FreeCAD 안에서 파이썬을 실행해 Body 와 스케치 4개를 만들고 재계산합니다. 그런 다음 문서 구조를 읽어 문제 객체 목록을 보고합니다.

확인하기 — 모델 트리에서 Sk_Conflict, Sk_Open, Pad(Sk_Open 으로 만든 것)에 빨간 표시가 있는지 봅니다. Sk_Under 는 빨갛지 않지만 스케치를 열면 초록(완전 구속)이 아닙니다.

이렇게 말한다
Sk_Conflict 가 왜 빨간지 진단해 줘. 어느 제약 번호가 문제인지 GUI 제약 패널 번호로 알려 줘.

AI 가 하는 일 — 스케치의 솔버 상태를 읽습니다. 값이 다른 치수 두 개는 «과구속(-4)»으로 나오고 두 제약이 conflicting 목록에 들어갑니다. AI 는 제약 번호를 GUI 제약 패널과 같은 번호로 말해 줍니다.

확인하기 — 스케치를 더블클릭해 열고, 왼쪽 제약 패널에서 AI 가 말한 번호 두 개가 빨갛게 표시된 것과 값(40, 45)을 대조합니다.

3. 수정 후보 받고 번호로 고르기

섹션 제목: “3. 수정 후보 받고 번호로 고르기”
이렇게 말한다
고쳐 줘. 후보를 번호 목록으로 보여 주고, 내가 고르기 전엔 적용하지 마.

AI 가 하는 일 — 후보마다 스케치 사본에 적용해 보고 효과(자유도·상태 변화)와 확신도를 붙여 목록을 만듭니다. 원본은 건드리지 않습니다. 충돌 치수 두 개는 «둘 중 하나만» 고르도록 묶여서 나옵니다.

이렇게 말한다
2번으로 해 줘. 설계 치수는 40 이야.

확인하기 — AI 가 적용 뒤 «상태 0, 자유도 0» 을 보고하고, 트리에서 Sk_Conflict 의 빨간 표시가 사라졌는지 봅니다.

이렇게 말한다
Pad 가 왜 실패했는지 보고, Sk_Open 을 고칠 후보를 번호로 보여 줘.

AI 가 하는 일 — Pad 의 오류 문자열과 스케치의 열린 끝점(한 군데가 벌어지면 양쪽 끝점 2개로 보고됩니다)을 읽고, «가까운 두 끝점을 일치시키기» 후보를 냅니다. 거리(0.5 mm)를 같이 알려 줍니다.

이렇게 말한다
1번 적용하고, 재계산해서 Pad 가 살아났는지 확인해 줘. 확인되면 iso 스크린샷도 보여 줘.

확인하기 — AI 가 재계산 추적 결과로 «해결됨: Pad, 새로 깨진 것: 없음» 을 보고합니다. 스크린샷에 10 mm 두께 판이 보이면 성공입니다. (Codex·Gemini CLI 에서 이미지가 안 뜨면 FreeCAD 화면을 직접 봅니다.)

완성: 열린 끝점을 닫은 뒤 살아난 Pad 10 mm
완성 1단계 프롬프트대로 스케치 4개(Sk_Under·Sk_Conflict·Sk_Open·Sk_Fixes)를 만들고 2–6단계 후보를 적용한 뒤의 등각 화면. Pad 50×30×10, 문제 객체 0. 위 연습 파일(스케치 1개)과는 다른 문서

5. 자잘한 문제 한 번에 정리하기

섹션 제목: “5. 자잘한 문제 한 번에 정리하기”
이렇게 말한다
Sk_Fixes 의 수정 후보를 전부 보여 줘. 종류별로 몇 개인지도 세어 줘.

AI 가 하는 일 — 벌어진 끝점 잇기, 빠진 수평·수직 제약, 길이·반지름 같음 제약, 남은 자유도용 치수까지 후보를 만듭니다. 이 연습 스케치에서는 끝점 잇기 1개, 수평·수직 4개 이상, 같음 2개(선·반지름)가 나오는 것이 정상입니다.

이렇게 말한다
추천된 것만 적용해 줘. 치수 추가는 빼고.

확인하기 — 적용 뒤 열린 끝점 0, 자유도가 줄었는지 AI 보고를 봅니다. 스케치를 열어 기울었던 선이 수평이 되고 벌어진 꼭짓점이 붙었는지 확인합니다.

이렇게 말한다
Sk_Under 에 남은 자유도 2 를 없애 줘. 사각형은 가로 60, 세로 40 이야.

AI 가 하는 일 — 빠진 치수 두 개를 여러분이 준 값으로 추가하고 재계산합니다.

확인하기 — 스케치를 열면 초록(완전 구속)이고 상태 표시줄에 «Fully constrained» 가 나옵니다.

스케치 성공 기준
Sk_Under 자유도 0, 완전 구속
Sk_Conflict 솔버 상태 0, 충돌 제약 0, 남은 치수 40
Sk_Open + Pad 열린 끝점 0, Pad 정상(Invalid 아님), 재계산 추적에 «해결됨: Pad»
Sk_Fixes 열린 끝점 0, 자유도 감소, 원본 제약 수가 진단 전후 같음(사본 평가는 원본을 건드리지 않음)

「지금 문서 전체 구조 다시 보여 줘」라고 하면 문제 객체 0 인 것을 마지막으로 확인할 수 있습니다.

  • «FreeCAD 에 연결할 수 없습니다(127.0.0.1:9877)» — FreeCAD 가 꺼졌거나 서버가 안 떴습니다. FreeCAD 리포트 뷰를 보고, CAD X-ray 메뉴의 Auto Start 가 꺼져 있으면 켭니다. 설치 문제 해결
  • 문서가 여러 개 열려 있으면 AI 가 어느 문서인지 되묻습니다. 문서 이름을 답하거나 다른 문서를 닫습니다.
  • «스케치가 그사이 바뀌었습니다» 라며 적용을 거부 — 후보를 받은 뒤 여러분이 GUI 에서 스케치를 손댄 경우입니다. 후보를 다시 받으면 됩니다.
  • 자유도가 «null» 이나 이상한 값 — 솔버가 실패한 상태(충돌·잘못된 제약)에서는 자유도를 믿을 수 없습니다. 충돌부터 지운 뒤 다시 진단합니다.
  • 적용했더니 다른 게 깨졌다 — AI 는 상태가 나빠지면 스스로 되돌리고 오류로 알립니다. 후보를 하나씩 적용해 보며 원인을 좁힙니다.
  • 실습 1 에서 만든 판의 스케치에서 치수 하나를 일부러 지우고, AI 에게 «무엇이 빠졌는지» 묻고 복구해 봅니다.
  • 여러분이 예전에 만들다 만 FCStd 파일을 열고 「문제 객체 전부 찾아서 원인만 설명해 줘(고치지는 말고)」로 진단 보고서만 받아 봅니다.
  • 스케치가 아닌 형상 오류(예: 두께 0 인 Pocket)를 만들어 보고, AI 가 스케치 후보가 아니라 파이썬 수정으로 대응하는 것을 관찰합니다.
단계 기능
구조·문제 객체 get_document_graph
스케치 진단 get_sketch_diagnostics
후보 목록·적용 suggest_sketch_fixesapply_sketch_fixes (fingerprint 로 동일 스케치 확인)
재계산 추적·확인 tracked_recompute, get_screenshot
스케치 외 수정 execute_code

진단 순서 원문: CLAUDE.md 「진단 워크플로」