콘텐츠로 이동

실습 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 % 였습니다.

원본: 스풀 가이드 STL
원본 STING3D SPOOL GUIDE AMS Male 201mm.stl 을 Mesh 객체로 읽은 등각(메시 기본 색이라 옅게 보임) — 삼각형 5,758개
완성: 다시 그린 스풀 가이드
완성 SpoolGuide — 피처 8개(나사산 포함), 자유도 0, 부피 차 +0.014 %, 메시 정점 편차 최대 0.028 mm
구분 파일 설명 크기
원본 STING3D SPOOL GUIDE AMS Male 201mm.stl STL 288 KB
완성 완성-spool_guide.FCStd 참고 메시 포함 327 KB
완성 완성-SpoolGuide.step STEP 167 KB
  1. FreeCAD 1.1.3 을 켭니다. 리포트 뷰에 [CAD X-ray] 서버 시작 이 보이면 됩니다.
  2. STL 을 C:\cad\spool-guide.stl 로 복사해 둡니다. 원래 이름(STING3D SPOOL GUIDE AMS Male 201mm.stl)은 띄어쓰기가 있어 대화에서 경로를 따옴표로 감싸야 하므로 짧은 이름으로 바꿔 쓰는 편이 편합니다.
  3. PowerShell 에서 C:\cad 로 이동해 claude 를 엽니다.
  4. 문서는 AI 가 만듭니다. 이미 열린 문서가 있으면 닫아 둡니다.
이렇게 말한다
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 이면 다음으로 갑니다.

이렇게 말한다
읽은 값으로 새 Body SpoolGuide 를 만들어 줘. 치수는 전부 Params 에.
1) 판: Ø201 원판 두께 2, 가운데 Ø36 구멍
2) 슬롯 4개와 창 4개 관통 Pocket (단면 피팅 값 그대로, 90° 씩 회전 대칭)
3) 테두리 벽 폭 1 높이 3, 허브 링 R18–25 높이 3
4) 허브 R18.5–22.4, z 5–28
5) 나사 원통 R22.25, z 28–36
띠는 서로 이어지게 쌓고, 피처마다 검증해서 실패하면 멈춰 줘. 나사산은 아직 넣지 마.

AI 가 하는 일 — 스케치 6개와 Pad 4개·Pocket 2개를 순서대로 만듭니다. 슬롯·창은 1사분면 것을 90° 씩 돌려 4개씩 만듭니다. 메시 중심(CX, CY)을 모든 원의 중심으로 씁니다.

확인하기 — 메시와 Body 가 겹쳐 보이는지 3D 뷰에서 봅니다. 투명 메시 밖으로 Body 가 튀어나오거나 메시가 Body 밖으로 보이면 그 띠의 반지름이 틀린 것입니다.

이렇게 말한다
나사 원통에 수나사를 깎아 줘. 외경 Ø44.5, 골 Ø42.1, 피치 2, 골 폭 0.62, 60° V, 길이 8, 오른나사.
나사가 허브 윗면(z 28)에서 깨끗이 끝나게 한 피치 아래에서 시작하고, 그 아래 깎인 허브 링은 Pad 로 되메워 줘.

AI 가 하는 일 — 축을 지나는 평면에 골 단면(한 피치 전체) 스케치를 만들고 나선 절삭(SubtractiveHelix)을 겁니다. 나선은 프로파일 각도 0° 부터 시작해 그 앞 첫 바퀴는 깎이지 않으므로 한 피치 아래에서 시작(높이 = 길이 + 2피치)하고, 허브에 잘못 파인 z 25–28 링을 PadRefill 로 되메웁니다.

확인하기 — 나사 원통을 확대해 산이 8 mm 길이에 4바퀴 있는지, 허브 윗면 아래에 파인 자국이 없는지 봅니다.

이렇게 말한다
참고 메시와 SpoolGuide 를 비교해 줘. 부피 차와 표면 편차(최대·평균·p95), 편차가 가장 큰 점의 위치도.

AI 가 하는 일 — 불리언을 쓰지 않습니다. Body 면의 표본점에서 법선 방향으로 메시까지 거리를 재고(편차), 반대로 메시 정점에서 Body 까지 거리를 잽니다(역방향 편차). 편차가 큰 점의 위치가 곧 틀린 자리입니다.

확인하기match 면 성공입니다. 나사 시작부 몇 점이 큰 것은 나선 시작 위상 차이라 정상입니다.

이렇게 말한다
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 는 허브 윗면 기준으로” 라고 좌표계를 못 박아 줍니다.
  • 나사 판정이 안 나온다 — 단면이 원으로 보일 만큼 나사가 얕거나 짧은 것입니다. 피치·외경을 아는 값으로 직접 말해 주면 됩니다.
  1. Params.thread_pitch 를 1.5 로 바꿔 재계산합니다. 나선 높이(길이 + 2피치)와 되메움 Pad 가 같이 따라오는지 봅니다.
  2. 이 Body 를 PETG·0.4 노즐로 출력 검토해 봅니다(실습 8). 얇은 테두리 벽(1 mm)이 어떻게 판정되는지 봅니다.
  3. 판을 Ø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