콘텐츠로 이동

실습 2. 커버 가공도 PDF 에서 판 만들기

항목 내용
입력 파일 02-cover-drawing.pdf (1:1 벡터 도면 2장, 데이터로거 커버 + 센서 확장 로거 커버)
걸리는 시간 3분 (판 2장 생성은 1초 미만)
결과물 문서 2개(cover_logger, cover_sensor), 각각 Body 1개 + Spreadsheet Params
배우는 것 도면 PDF 를 AI 에 읽히는 법, 축척 확인, 도면에 없는 치수(두께)를 가정으로 채우고 근거를 남기는 법

실습 1에서는 치수를 전부 말로 불러 줬습니다. 이번에는 도면 파일을 주고 AI 가 치수를 직접 읽게 합니다. 벡터 PDF 는 그림 안에 원·사각형과 치수 글자가 좌표째 들어 있어, AI 가 그것을 뽑아 mm 로 환산할 수 있습니다.

원본: 커버 가공도 PDF
원본 02-cover-drawing.pdf — 1:1 벡터 도면 2장(데이터로거·센서 확장 로거). 이 그림만 PDF 1페이지를 그대로 그린 것(발주처 표시는 지움)
완성: 데이터로거 커버 판
완성 Cover_DataLogger — Pad 1 + Pocket 3(Ø18·Ø25·Ø7), 자유도 0, 104,445 mm³
완성: 센서 확장 로거 커버 판
완성 Cover_SensorExt — Pad 1 + Pocket 1(Ø18 × 10), 자유도 0
구분 파일 설명 크기
원본 02-cover-drawing.pdf PDF 도면 776 KB
완성 02-cover_logger-done.FCStd 데이터로거 커버 32 KB
완성 02-cover_sensor-done.FCStd 센서 확장 로거 커버 19 KB
완성 02-Cover_DataLogger-done.step STEP 28 KB
완성 02-Cover_SensorExt-done.step STEP 22 KB
  1. FreeCAD 1.1.3 을 켭니다. 리포트 뷰에 [CAD X-ray] 서버 시작 http://127.0.0.1:9877 (툴 36개) 가 보이면 됩니다.
  2. PDF 를 내려받아 경로가 짧은 폴더(예: C:\cad-cover-drawing.pdf)에 둡니다. 파일명은 릴리스에서 받은 그대로 쓰면 됩니다.
  3. PowerShell 에서 그 폴더로 이동한 뒤 claude 를 쳐서 AI 툴을 엽니다(Codex·Gemini CLI 도 같은 폴더에서 엽니다).
  4. FreeCAD 에 다른 문서가 열려 있으면 닫아 둡니다. AI 가 “어느 문서에 만들까요”를 묻는 일이 줄어듭니다.
이렇게 말한다
C:\cad-cover-drawing.pdf 읽어서 판별로 «읽은 값 / 가정한 값 / 근거» 표부터 보여줘.

AI 가 하는 일 — PDF 의 벡터 요소(원은 곡선 4개짜리 경로, 사각형은 re)와 치수 글자를 읽어 1 pt = 25.4/72 mm 로 환산합니다. 시키지 않아도 표에 나와야 하는 것이 셋 있습니다. 축척(치수 글자 36.38 과 원 중심 간격 36.38 이 같으면 1:1), 적힌 치수와 그려진 위치가 어긋난 곳(도면 2 의 첫 구멍이 0.4 / 2.2 mm), 그리고 도면에 없어서 가정한 값(판 두께, Ø7 구멍 높이).

확인하기 — 표에 판 크기 224.28×169.37 과 구멍 종류(Ø18·Ø25·Ø7)가 있고, «가정» 표시가 붙은 항목이 두께와 Ø7 높이 둘뿐이면 제대로 읽은 것입니다. 축척이 1:1 이 아니라고 하면 PDF 가 축소 인쇄본일 수 있으니 원본 파일을 다시 받습니다.

이렇게 말한다
적힌 치수 우선, 두께는 3 으로 파라미터, 플랜지 사각형과 그 안 작은 구멍은 가공 안 함. 이대로 두 판 만들어줘. 문서 cover_logger 에 Body Cover_DataLogger, 문서 cover_sensor 에 Body Cover_SensorExt.

AI 가 하는 일 — 데이터로거 판은 스케치 4개(판 사각형 + 구멍 그룹 3개)와 Pad 1개·Pocket 3개, 센서 확장 판은 Pad 1개·Pocket 1개를 순서대로 쌓고 피처마다 재계산해 유효한지 확인합니다. 구멍 중심은 안쪽 사각형 기준 치수에 8.79 를 더한 값이고, 안테나 구멍 x 좌표 4개(120.40 / 138.10 / 165.30 / 183.00)는 안쪽 사각형 폭 206.70 에서 23.70 을 뺀 값과 간격 17.70 / 27.20 / 17.70 으로 역산됩니다. 센서판 x 는 27.40 / 65.12 / 102.92 / 140.72 / 178.52 다섯 열입니다. 치수는 Spreadsheet Params 에 별칭으로 들어가므로 나중에 두께만 바꿔도 전체가 따라옵니다.

확인하기 — 모델 트리에서 Cover_DataLogger 아래 PadPlate, Pocket_D18, Pocket_D25, Pocket_D7, Cover_SensorExt 아래 PadPlate, Pocket_D18 이 보이고 빨간 표시가 없어야 합니다. Params 시트를 열어 thickness 를 5 로 바꾸고 재계산(F5 또는 Ctrl+R)하면 판이 두꺼워지는지 봅니다. 확인했으면 다시 3 으로 되돌립니다. 센서판은 위에서 내려다보며(숫자 키 2) 구멍이 10개인지 셉니다.

이렇게 말한다
두 문서 top 뷰 보여줘. 맞으면 C:\cad\cover_logger.FCStd, C:\cad\cover_sensor.FCStd 로 저장해줘.

AI 가 하는 일 — 스크린샷을 대화에 띄우고, 사용자가 “맞다”고 한 뒤에만 저장합니다. AI 는 시키기 전에는 문서를 저장하지 않는 것이 규칙입니다.

확인하기 — 스크린샷의 구멍 배치를 도면과 겹쳐 봅니다. 특히 센서판의 첫 구멍이 “적힌 치수” 위치에 있는지 봅니다.

기준 값
판 bbox 224.28 × 169.37 × 3.0
스케치 자유도 전부 0
형상 유효성 valid
피처 수 데이터로거 4개(Pad 1 + Pocket 3), 센서 확장 2개(Pad 1 + Pocket 1)
파라미터 Params 에 plate_w, plate_h, inset, thickness, hole_d18 (+ hole_d25, hole_d7)

원본 STEP 이 없는 실습이라 부피 비교는 하지 않습니다. bbox·구멍 개수·스크린샷이 도면과 맞으면 성공입니다.

  • “PDF 를 읽을 수 없다” — 스캔본(이미지 PDF)이면 벡터가 없어 이 방법이 안 됩니다. 실습 1처럼 치수를 말로 불러 주거나 원본 CAD 도면을 받습니다.
  • 축척이 1:1 이 아니라고 한다 — 인쇄용으로 축소된 PDF 입니다. 치수 글자와 그려진 길이의 비율을 AI 가 알려 주므로, “그 배율로 환산해서 진행해” 라고 하면 됩니다.
  • 구멍이 판 밖으로 나간다 — 안쪽 사각형 기준(8.79 오프셋)을 빠뜨린 것입니다. “구멍 좌표에 inset 8.79 를 더했는지 확인해 줘” 라고 합니다.
  • 문서가 여러 개 열려 있어 AI 가 되묻는다 — 문서 이름을 말해 주면 됩니다. 처음부터 “새 문서 cover_logger 에” 처럼 이름을 붙여 시키면 묻지 않습니다.
  • 판이 만들어졌는데 빨간 피처가 있다 — “빨간 피처 원인 찾아서 고쳐 줘” 라고 합니다(실습 6 참고).
  1. Params.thickness 를 2 로 바꾸고 재계산해 봅니다. 구멍 Pocket 이 여전히 관통인지 확인합니다.
  2. Ø7 안테나 구멍 4개에 0.5 mm 챔퍼를 말로 시켜 봅니다. “Ø7 구멍 윗모서리에 0.5 챔퍼” 처럼 모서리 조건을 말하면 됩니다.
  3. 두 판을 한 문서에 넣고 2D 도면을 만들어 봅니다(실습 7).

뒤에서 도는 기능
도면 읽기 AI 툴 자체(pymupdf 로 벡터·글자 추출)
모델 생성 build_features(rect·circles 프로파일, Params 별칭)
확인 inspect_object, get_screenshot, save_document

원본 기록: https://github.com/WaveSimm/cadxray/blob/master/examples/cover_from_pdf_drawing.py