실습 5. STL 스풀 가이드 다시 그리기
| 항목 | 내용 |
|---|---|
| 입력 파일 | 05-spool/STING3D SPOOL GUIDE AMS Male 201mm.stl (필라멘트 스풀 가이드, 5,758면, 수나사 포함) |
| 걸리는 시간 | 5분 (분석·재구성·비교 합쳐 25초) |
| 결과물 | 문서 stl_test 에 참고 메시 + Body SpoolGuide(피처 8개, 나사산 1개, 파라미터 시트) |
| 배우는 것 | 메시(STL)는 면·솔리드가 없다는 것, 띠·단면 원·나사를 측정으로 읽는 법, 불리언 없이 편차로 검증하는 법 |
STL 은 삼각형 덩어리라 구멍 찾기·간섭 검사 같은 형상 툴이 읽지 못합니다. 그래서 절차가 STEP 과 다릅니다. 메시를 투명한 참고물로 띄워 두고 높이별 단면을 원으로 맞춰 치수를 얻고, 그 위에 Body 를 겹쳐 그린 뒤 표면 편차로 검증합니다. 원본 기록에서는 메시 정점 1,432개 전부가 모델 표면에서 0.03 mm 안(평균 0.003), 부피 차 0.014 % 였습니다.
원본과 완성
섹션 제목: “원본과 완성”

| 구분 | 파일 | 설명 | 크기 |
|---|---|---|---|
| 원본 | STING3D SPOOL GUIDE AMS Male 201mm.stl | STL | 288 KB |
| 완성 | 완성-spool_guide.FCStd | 참고 메시 포함 | 327 KB |
| 완성 | 완성-SpoolGuide.step | STEP | 167 KB |
- FreeCAD 1.1.3 을 켭니다. 리포트 뷰에
[CAD X-ray] 서버 시작이 보이면 됩니다. - STL 을
C:\cad\spool-guide.stl로 복사해 둡니다. 원래 이름(STING3D SPOOL GUIDE AMS Male 201mm.stl)은 띄어쓰기가 있어 대화에서 경로를 따옴표로 감싸야 하므로 짧은 이름으로 바꿔 쓰는 편이 편합니다. - PowerShell 에서
C:\cad로 이동해claude를 엽니다. - 문서는 AI 가 만듭니다. 이미 열린 문서가 있으면 닫아 둡니다.
1. 메시를 참고용으로 띄운다
섹션 제목: “1. 메시를 참고용으로 띄운다”C:\cad\spool-guide.stl 을 새 문서 stl_test 에 참고 메시로 불러와 줘(투명하게). 닫힌 메시인지, 자기 교차가 있는지, 크기가 얼마인지 알려 줘.AI 가 하는 일 — STL 을 Mesh 객체로 넣고 투명도 70 으로 둡니다. 변환하지 않습니다. 닫힘(is_solid)·비다양체·자기 교차와 bbox·부피를 봅니다.
확인하기 — 3D 뷰에 반투명 메시가 보이면 됩니다. is_solid 가 false 면 이후의 부피·편차 값을 믿을 수 없다고 AI 가 경고합니다.
2. 축·띠·단면 원·나사를 읽는다
섹션 제목: “2. 축·띠·단면 원·나사를 읽는다”이 메시의 주축, 띠 경계 높이, 띠별 단면 원(중심·반지름), 공통 중심, 나사가 있으면 피치·외경·골·방향을 분석해 줘.AI 가 하는 일 — 평면 조각으로 주축(Z)과 띠 경계를 잡고, 띠 중간 높이마다 단면 폴리라인을 최소제곱 원으로 맞춥니다(반지름 0.01 mm 안). 높이별 단면의 최대 반지름 각도가 z 에 비례해 돌면 나사로 판정합니다. 원본 기록에서는 1 mm 당 180° 도는 것으로 피치 2 를 찾았습니다(처음엔 캠 돌기로 오해했던 것을 이 방법으로 바로잡았습니다).
확인하기 — 띠 경계 5개와 나사 피치 2 가 나오면 됩니다. 축이 Z 가 아니라고 하면 STL 이 눕혀 저장된 것입니다. “축을 Z 로 보고 다시” 라고 하거나 Placement 를 돌려 달라고 합니다.
3. 원·직선으로 안 떨어지는 단면을 확인한다
섹션 제목: “3. 원·직선으로 안 떨어지는 단면을 확인한다”판의 호형 슬롯 4개와 창 4개는 원이 아니라 호+직선 조합입니다.
z=1 단면을 선분·호·원으로 피팅해서 보여 줘. 피팅이 안 되는 구간이 있으면 어디인지도.AI 가 하는 일 — 단면 폴리라인을 꼭짓점 검출 후 구간별로 호·직선에 맞춥니다. 맞지 않는 구간은 unsupported 로 세어 알려 주고, 그런 구간만 다각형으로 처리하게 됩니다.
확인하기 — 슬롯·창의 반지름 범위가 나오고 unsupported 가 0 이면 다음으로 갑니다.
4. Body 를 띠 순서대로 쌓는다
섹션 제목: “4. Body 를 띠 순서대로 쌓는다”읽은 값으로 새 Body SpoolGuide 를 만들어 줘. 치수는 전부 Params 에.1) 판: Ø201 원판 두께 2, 가운데 Ø36 구멍2) 슬롯 4개와 창 4개 관통 Pocket (단면 피팅 값 그대로, 90° 씩 회전 대칭)3) 테두리 벽 폭 1 높이 3, 허브 링 R18–25 높이 34) 허브 R18.5–22.4, z 5–285) 나사 원통 R22.25, z 28–36띠는 서로 이어지게 쌓고, 피처마다 검증해서 실패하면 멈춰 줘. 나사산은 아직 넣지 마.AI 가 하는 일 — 스케치 6개와 Pad 4개·Pocket 2개를 순서대로 만듭니다. 슬롯·창은 1사분면 것을 90° 씩 돌려 4개씩 만듭니다. 메시 중심(CX, CY)을 모든 원의 중심으로 씁니다.
확인하기 — 메시와 Body 가 겹쳐 보이는지 3D 뷰에서 봅니다. 투명 메시 밖으로 Body 가 튀어나오거나 메시가 Body 밖으로 보이면 그 띠의 반지름이 틀린 것입니다.
5. 나사산을 넣는다
섹션 제목: “5. 나사산을 넣는다”나사 원통에 수나사를 깎아 줘. 외경 Ø44.5, 골 Ø42.1, 피치 2, 골 폭 0.62, 60° V, 길이 8, 오른나사.나사가 허브 윗면(z 28)에서 깨끗이 끝나게 한 피치 아래에서 시작하고, 그 아래 깎인 허브 링은 Pad 로 되메워 줘.AI 가 하는 일 — 축을 지나는 평면에 골 단면(한 피치 전체) 스케치를 만들고 나선 절삭(SubtractiveHelix)을 겁니다. 나선은 프로파일 각도 0° 부터 시작해 그 앞 첫 바퀴는 깎이지 않으므로 한 피치 아래에서 시작(높이 = 길이 + 2피치)하고, 허브에 잘못 파인 z 25–28 링을 PadRefill 로 되메웁니다.
확인하기 — 나사 원통을 확대해 산이 8 mm 길이에 4바퀴 있는지, 허브 윗면 아래에 파인 자국이 없는지 봅니다.
6. 편차로 검증한다
섹션 제목: “6. 편차로 검증한다”참고 메시와 SpoolGuide 를 비교해 줘. 부피 차와 표면 편차(최대·평균·p95), 편차가 가장 큰 점의 위치도.AI 가 하는 일 — 불리언을 쓰지 않습니다. Body 면의 표본점에서 법선 방향으로 메시까지 거리를 재고(편차), 반대로 메시 정점에서 Body 까지 거리를 잽니다(역방향 편차). 편차가 큰 점의 위치가 곧 틀린 자리입니다.
확인하기 — match 면 성공입니다. 나사 시작부 몇 점이 큰 것은 나선 시작 위상 차이라 정상입니다.
7. 저장한다
섹션 제목: “7. 저장한다”iso 스크린샷 보여 주고, 맞으면 C:\cad\spool_guide.FCStd 로 저장해 줘.결과 확인
섹션 제목: “결과 확인”| 기준 | 값 |
|---|---|
| 피처 | Pad 4 + Pocket 2 + 나사산 1 + 되메움 Pad 1, 전부 Valid |
| 스케치 자유도 | 전부 0 |
| 부피 차 | 0.014 % |
| 표면 편차 | 정점 1,432개 전부 0.03 mm 안(평균 0.003), 나사 시작부 3점만 0.4–0.9 |
| 나사 | 수나사 Ø44.5 × 피치 2 × 길이 8 |
잘 안 될 때
섹션 제목: “잘 안 될 때”- is_solid 가 false — 메시에 구멍이 있습니다. 슬라이서나 메시 수리 툴로 닫은 STL 을 다시 받습니다. 부피·편차 값을 믿을 수 없습니다.
- FreeCAD 가 멈췄다 — 메시를 솔리드로 바꿔 불리언을 건 것입니다. 끝날 때까지 기다리거나 강제 종료합니다. 비교할 때 “메시 이름 그대로” 라고 명시합니다.
- 띠 반지름이 메시와 어긋난다 — 단면 원 피팅 값(소수 자리 그대로)을 쓰지 않고 반올림한 것입니다. “피팅 값 그대로” 라고 다시 시킵니다.
- 나사가 원통 밖에 생기거나 반대 방향이다 — 골 단면 프로파일의 반지름·z 부호 문제입니다. “나사 프로파일을 축 기준 반지름 21.05–22.25, z 는 허브 윗면 기준으로” 라고 좌표계를 못 박아 줍니다.
- 나사 판정이 안 나온다 — 단면이 원으로 보일 만큼 나사가 얕거나 짧은 것입니다. 피치·외경을 아는 값으로 직접 말해 주면 됩니다.
더 해보기
섹션 제목: “더 해보기”Params.thread_pitch를 1.5 로 바꿔 재계산합니다. 나선 높이(길이 + 2피치)와 되메움 Pad 가 같이 따라오는지 봅니다.- 이 Body 를 PETG·0.4 노즐로 출력 검토해 봅니다(실습 8). 얇은 테두리 벽(1 mm)이 어떻게 판정되는지 봅니다.
- 판을 Ø180 으로 줄여(
Params.plate_r) 작은 프린터 베드에 맞춰 봅니다.
| 뒤에서 도는 기능 | |
|---|---|
| 읽기 | import_mesh, analyze_mesh |
| 측정 | section_profile(메시 입력, 직선·호·원 피팅) |
| 생성·검증 | build_features(wires·helix op), compare_shapes(메시 입력, 광선 편차) |
| 확인 | get_screenshot, save_document |
원본 기록: https://github.com/WaveSimm/cadxray/blob/master/examples/stl_spool_guide_with_m7.py