Community코딩 & 개발github.com

markwkiehl/fritzing

Fritzing 스케치(.fzz 및 .fz 파일)를 코드로 빌드, 확인, 편집합니다. 하나의 네트리스트로 브레드보드, 회로도, PCB 뷰를 생성하고, 사용자 정의 부품(.fzp 및 SVG 파일)을 추가하며, SVG 파일로 내보내고 실제 Fritzing 창에서 열어 파일이 정상 로드됨을 검증합니다. 사용자가 Fritzing, .fzz/.fz/.fzp/.fzpz 파일을 언급하거나, 브레드보드/회로도/PCB 형태로 회로를 배선·배치·그리라고 요청할 때 이 스킬을 사용하세요.

fritzing란 무엇인가요?

이 스킬은 개발자가 코드로 Fritzing 스케치를 자동 생성하고 검증할 수 있게 해주는 강력한 도구입니다. 핵심 기능은 세 가지입니다: (1) 핀 연결 목록(네트리스트)을 입력받아 브레드보드·회로도·PCB 세 뷰를 포함한 .fzz 파일로 자동 변환, (2) 사용자 정의 부품(.fzp + SVG)을 스케치에 포함, (3) SVG 내보내기와 실제 Fritzing 창 열기로 파일 무결성 검증. 특히, 스크립트를 통해 핀 연결이 실제로 회로에 반영되었는지, 배선이 올바른지, PCB 디자인 규칙을 통과했는지 자동으로 확인할 수 있어 수동 작업을 크게 줄여줍니다. 이 스킬은 주로 Windows 환경(Fritzing 1.0.x)에서 테스트되었으며, 제공되는 예제 스크립트를 복사하여 부품과 네트만 변경하면 누구나 쉽게 시작할 수 있습니다. 또한, 누락된 핀이나 이미지 파일이 없는 부품 사용 시 발생하는 문제를 사전에 탐지하는 체크 스크립트를 포함하여 안정성을 높였습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
Part ofMobile
npx skills add https://github.com/markwkiehl/medium_claude_fritzing/tree/HEAD/skills/fritzing

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

코드로 Fritzing 스케치 만들기

이 스킬이 제공하는 것

  • 핀 연결 목록(네트리스트)을 브레드보드, 회로도, PCB 세 가지 뷰를 포함한 .fzz 파일로 변환하는 방법
  • 두 가지 완성된 생성기 예제. 하나를 복사해서 부품과 네트만 바꾸면 됩니다.
    • scripts/build_fzz_battery_led.py - Fritzing 기본 부품만 사용합니다: 배터리 홀더, 푸시 버튼, 저항, LED. 여기서 시작하세요.
    • scripts/build_fzz_header_led.py - 사용자 정의 부품(.fzp 파일과 4개의 SVG 파일)을 스케치에 포함하는 방법을 보여줍니다.
  • 부품 검사기 scripts/check_core_part.py - 코어 부품의 이미지 파일이 모두 있는지 확인합니다.
  • 헤드리스 검사기 scripts/fritzing_export.py - Fritzing에서 스케치를 불러와 세 뷰를 SVG 파일로 저장합니다.
  • 윈도우 검사기 scripts/fritzing_gui_shot.ps1 (Windows) - Fritzing 창의 스크린샷을 찍어 상태 표시줄을 확인할 수 있습니다.
  • references/fz-file-format.md의 파일 형식 설명 - XML .fz 파일을 작성하기 전에 반드시 읽으세요.

테스트된 환경

  • 테스트 완료: Windows 11 + Fritzing 1.0.x (C:\Program Files\Fritzing에 설치). examples/의 두 예제 스케일이 모두 빌드, SVG 내보내기, Fritzing 창 열기(세 뷰 모두 "Routing completed" 표시), PCB 디자인 규칙 검사를 통과했습니다. (2026-11-07 확인)
  • 테스트되지 않음: macOS, Linux, Fritzing 1.0.x 이외 버전, 자동 라우팅, 부품이 몇 개 이상인 회로.

Claude를 위한 규칙

  • 부품의 핀을 추측하지 마세요. 반드시 해당 부품의 .fzp 파일을 읽고 커넥터를 확인한 후, 네트리스트와 비교하세요.
  • 코어 부품을 사용하기 전에 항상 scripts/check_core_part.py로 확인하세요. 이미지 파일이 누락된 부품은 빈 화면으로 나타납니다.
  • 사용자의 명시적 동의 없이 파일을 다운로드하지 마세요. (링크를 사용자가 제공한 경우는 예외) 파일 이름, 출처, 크기를 말하고, 각 다운로드는 새 빈 폴더에 넣으세요. 다운로드한 파일을 실행하지 마세요.
  • 생성기가 실행되었다고 해서 스케치가 "작동한다"고 말하지 마세요. Fritzing이 실제로 불러올 수 있어야 하고, 각 뷰에 모든 부품이 표시되어야 합니다. 확인하지 않은 것은 말하지 마세요.
  • 마지막 확인은 사람이 합니다. Fritzing 창에서 파일을 열고 본 내용을 말합니다. 생성기를 수정하고, 파일을 직접 수정하지 마세요.
  • 각 파일과 부품의 전체 이름을 매번 작성하세요.

워크플로우

Fritzing과 부품 라이브러리 찾기

  • Windows (테스트 완료): Fritzing은 C:\Program Files\Fritzing\Fritzing.exe에 있습니다. 부품 라이브러리는 C:\Program Files\Fritzing\fritzing-parts입니다. 샘플 스케치는 C:\Program Files\Fritzing\sketches\core에 있습니다. Fritzing이 작성하는 정확한 XML을 복사하기 위해 읽어보세요.
  • Linux (이 저장소에서는 테스트되지 않음): Fritzing AppImage는 --appimage-extract 옵션으로 새 빈 폴더에 압축을 풀 수 있습니다. 부품 라이브러리는 squashfs-root/fritzing-parts입니다.
  • macOS (테스트되지 않음): 부품 라이브러리는 Fritzing 애플리케이션 내부에 있습니다. fritzing-parts 폴더를 찾으세요.
  • 스크립트는 사용자 자신의 Fritzing 설치에서 부품 라이브러리를 읽습니다. 환경 변수 FRITZING_PARTS를 해당 폴더로 설정하세요.

부품 확인

  • 필요한 부품을 나열하고 각각을 조회하세요: python scripts\check_core_part.py "C:\Program Files\Fritzing\fritzing-parts" <부품 이름>. --all battery를 추가하면 제목에 "battery"가 포함된 모든 코어 부품을 나열합니다.
  • 각 부품에 대해 OK 또는 MISSING을 출력하고, 커넥터 수와 모듈 ID를 보여줍니다. MISSING인 부품은 해당 이미지 파일이 없는 뷰에서 빈 화면으로 나타납니다.
  • 2026-11-07 테스트 설치 예시: 코어 부품 screw_terminal_2_100mil은 회로도 및 PCB 이미지가 없고, Battery block 9V는 PCB 풋프린트(jumper_2_100mil_pcb.svg)가 없습니다. 4 x AAA Battery Mount는 완전합니다.
  • 적합한 코어 부품이 없으면 직접 그리세요. scripts/build_fzz_header_led.py에 예제가 있습니다: .fzp 파일 1개와 SVG 파일 4개입니다.
  • 다른 소스의 부품에 핀이 없으면, 부품을 복사하고 새로운 moduleId를 부여한 후 커넥터를 추가하세요. 브레드보드 SVG, 회로도 SVG, PCB SVG 모두에 핀을 추가하세요.

빌드

  • scripts/build_fzz_battery_led.py를 복사하세요. 부품, 홀 이름, 좌표, 네트를 변경하세요.
  • 네트를 멤버 목록으로 작성하세요. 스크립트는 세 뷰 모두에서 자체 배선을 해당 목록과 비교하고 PCB 트레이스 클리어런스를 확인합니다.
  • 먼저 브레드보드 레이아웃을 선택한 다음, 회로도, 그다음 PCB를 선택하세요. 홀 이름, 스케일, 레이어 이름, 변환에 대해서는 references/fz-file-format.md를 사용하세요.
  • 구부릴 수 있는 다리가 있는 부품의 경우, Fritzing 샘플 스케치에서 다리 XML을 복사하세요. 추측하지 마세요 ("문제가 있었던 사례" 참조).

확인

  • python scripts\fritzing_export.py "C:\Program Files\Fritzing\Fritzing.exe" <sketch.fzz> <새 빈 폴더>를 실행하세요. 출력되는 각 줄을 읽으세요. <name>_breadboard.svg, <name>_schematic.svg, <name>_pcb.svg 파일이 생성됩니다.
  • SVG 파일을 그림으로 보세요. Windows의 한 가지 방법: SVG 파일의 <img>를 포함하는 HTML 페이지를 작성한 후, msedge.exe --headless --window-size=W,H --screenshot=<out.png> file:///<page.html>을 실행하세요. PNG를 읽으세요. 내보내기 시 구리만 표시되고 실크스크린 외곽선은 표시되지 않습니다. 외곽선이 포함된 PCB 그림을 보려면 scripts\fritzing_gui_shot.ps1을 사용하여 Fritzing 창의 PCB 뷰를 스크린샷으로 찍고 보드를 자르세요 (examples/의 PCB 그림들은 이렇게 만들어졌습니다).
  • 각 부품에 대해 세 가지를 확인하세요: 그려졌는지, 핀이 홀 위에 있는지, 각 와이어 끝이 핀에 닿았는지.
  • SVG 내보내기는 ratsnest 선(연결되지 않은 연결을 보여주는 얇은 선)을 그리지 않습니다. 따라서 Fritzing이 연결을 등록했음을 증명할 수 없습니다. Fritzing 창에서 스케치를 여세요.
  • Windows, 실제 Fritzing 창에서:
    • Start-Process로 Fritzing.exe "<sketch.fzz>"를 시작하세요. 25초 기다리세요.
    • 현재 뷰에 대해 scripts\fritzing_gui_shot.ps1 -Out <png>를 실행하고, 회로도 뷰에 대해 -Keys "^3"를, PCB 뷰에 대해 -Keys "^4"를 사용하세요. 각 PNG를 읽으세요.
    • 각 뷰의 상태 표시줄에 "Routing completed"가 표시되고, 녹색 커넥터 점이 보이는지 확인하세요.
    • 디자인 규칙 검사를 위해 PCB 뷰에서 -Keys "^+d" -Wait 5로 스크립트를 실행하세요. 깨끗한 스케치는 "Your sketch is ready for production: there are no connectors or traces that overlap or are too close together."를 표시합니다.
    • 대화상자를 닫고 Stop-Process -Name Fritzing을 실행하세요.

보고

  • 무엇을 확인했고 어떻게 확인했는지 말하세요. 확인하지 않은 것도 말하세요. 작성한 파일의 전체 경로를 명시하세요.
  • 사용자에게 파일 여는 방법을 알려주세요: Fritzing에서 파일(File) → 열기(Open).

문제가 있었던 사례

  • 코어 부품의 이미지 파일이 설치에서 누락됨. 부품이 빈 화면으로 나타납니다. 부품을 사용하기 전에 scripts/check_core_part.py를 실행하세요.
  • 부품이 빈 화면으로 나타남. Fritzing 1.0.x는 브레드보드 SVG에 <g id="breadboard"> 그룹이 없으면 아무것도 그리지 않습니다. 전체 내용을 해당 그룹으로 감싸세요.
  • 와이어 끝이 올바르게 보이지만 연결되지 않음. .fz 파일은 각 연결을 두 항목 모두에 나열해야 합니다. 각 쌍에 대해 link() 호출을 하나씩 작성하고 양쪽을 모두 내보내세요.
  • 구부릴 수 있는 다리가 있는 부품(LED, 저항, 다이오드, 배터리 홀더). .fz 파일에서 커넥터 <geometry x y>는 SVG에서 다리 선의 몸체 쪽 끝(스케일 적용)입니다. <leg> 두 번째 점은 그 점을 기준으로 한 팁입니다. 5mm LED의 경우 팁 오프셋은 (0, 30.5172)입니다. 배터리 홀더의 경우 (6.25, 0)입니다. Fritzing의 샘플 스케치에서 이를 확인할 수 있습니다.
  • 잘못된 스케일. 장면 단위는 1/90인치입니다. in 단위가 있는 SVG는 90 × width_in / viewBox_width로 스케일됩니다. Illustrator에서 만든 일반 px 단위 SVG는 72dpi로 간주되므로 1.25를 곱하세요.
  • 회로도 터미널을 찾을 수 없음. 일부 회로도 SVG 파일은 터미널을 <g> 요소 안에 숨기고, 어떤 것은 터미널이 전혀 없습니다. SVG 파일을 읽고 핀 선의 바깥쪽 끝을 취하세요. LED 회로도 led.svg는 캐소드가 (9.9005, 21.8165), 애노드가 (9.9005, 0.2165)에 있습니다(72dpi 기준).
  • 회전된 부품이 홀에서 벗어남. 참조 파일의 변환 공식을 사용하세요. 부품의 모서리가 아닌 한 핀의 위치로 배치하세요.
  • 트레이스가 교차함. 두 트레이스를 다른 레이어에 배치하세요. 스루홀 패드는 두 레이어를 모두 연결하므로 비아가 필요 없습니다.
  • Python. 스크립트는 표준 라이브러리만 사용합니다. 설치된 패키지가 필요 없습니다.

이 스킬의 파일 목록

  • SKILL.md: 이 파일.
  • references/fz-file-format.md: .fzz 및 .fz 형식, XML 예제, 스케일, 레이어 이름, 수식 포함.
  • scripts/build_fzz_battery_led.py: 코어 부품만 사용하는 생성기 (배터리 홀더, 푸시 버튼, 저항, LED).
  • scripts/build_fzz_header_led.py: 사용자 정의 부품(2핀 헤더)도 작성하는 생성기.
  • scripts/check_core_part.py: 코어 부품에 모든 이미지 파일이 있는지 확인.
  • scripts/fritzing_export.py: 헤드리스 로드 및 내보내기 검사.
  • scripts/fritzing_gui_shot.ps1: Fritzing 창을 활성화하고, 키를 보내며, 스크린샷을 저장합니다 (Windows).
  • examples/battery_led.fzz 및 examples/header_led.fzz: 두 생성기가 작성한 스케치와 각 뷰의 그림.

관련 스킬