코드로 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: 두 생성기가 작성한 스케치와 각 뷰의 그림.