기념 전시판 (gift-pcb)
회로 없이 미술만 있는 PCB입니다. 어려운 점은 회로도가 아니라 반복적으로 무시되는 세 가지에 있습니다: 참고판이 실제로 어떻게 생겼는지, 각 레이어가 각각 어떤 재질인지, '그럴듯해 보이는 것'과 '실측이 맞는 것'의 차이.
세 가지 철칙
- 레이어별로 보세요, 합성 그림으로 보지 마세요. 구리는 솔더 마스크로 덮이면 검은색이고, '구리 + 오프닝'만이 금색을 냅니다.
- 측정하세요, 추정하지 마세요. 모든 '충분한지'는 밀리미터/픽셀 실측 숫자로 확인하고 답변에 포함해야 합니다. 추정한 숫자는 세 번째 재작업에서 들통납니다.
- 먼저 복사하고, 그 다음에 수정하세요. 참고판, 공식 로고에서 이미 해결된 문제는 그 기하학을 그대로 가져오고, 재발명하지 마세요.
여덟 단계와 게이트
| 단계 | 산출물 | 게이트 (통과 못하면 다음 단계 안 됨) |
|---|---|---|
| P0 기획 | 수령인, 크기, 공정, 요소 목록 | 모든 요소가 '어디에, 얼마나 크게'에 답할 수 있음 |
| P0.5 요구사항 인터뷰 | 용도, 상황, 사실적/장식용, 손그림 원고, 예산 | 8개 질문 완료 (06 참조), 특히 '손글씨 느낌 필요 여부' |
| P1 참고판 디코딩 | 레이어별 렌더링 이미지 + 요소 목록 + 3색 비율표; 참고판 없으면 자료 검색 | ① 그림으로 구리/금/실크스크린/구멍 구분 가능; ② scripts/00-decode_badge.py 실행으로 로고 프로토타입(선화/원판) + 반경 + 면적 + 가장 가는 선 출력; ③ 참고판 있으면 금/흑/백 세 숫자 측정; ④ 07의 10개 복사 체크리스트 작성 (각 항목 실측 숫자 포함, 복사 여부는 사용자 결정) |
| P2 레이아웃 | 앞/뒤 비트맵 목업 | 사용자가 레이아웃 확인; '미리보기가 최종 결과를 보장하지 않는다'고 명시 |
| P3 벡터 및 제조성 | 로고/텍스트 벡터, 선폭표, 금면적 예산 | 최소 선폭 ≥ 공정 하한; 금 12–24%, 흰색 ≥0.3%, 무광 블랙 65–85% |
| P4 EDA 구현 | 프로젝트 + 보드 + 각 레이어 도형 | 각 레이어 저장 후 다시 읽어서 도형 수가 계획과 일치하는지 확인 |
| P4.5 3D 검수 | scripts/14-render3d.py 출력 앞/뒤 3D 이미지 + 사용자 항목별 확인 (C1 결함 확인 / C2 디자인 평가 / C3 추가 자료 필요 여부) | 사용자가 '됐다'고 말할 때까지, 최소 1회, 이상적으로 2회; 동의 없이 주문 패키지 출력 금지 |
| P5 내보내기 검증 | Gerber 패키지 + 주문 패키지 | scripts/13-check.py 모두 통과 (금/흑/백 세 가지 비율 포함) + ≥60 px/mm 국부 이미지 (육안 검사) |
P0.5와 P4.5는 가장 쉽게 건너뛰고 가장 비용이 많이 드는 게이트입니다. 전자는 올바른 작업을 결정하고, 후자는 사용자 승인을 결정합니다.
바로 찾아보기
| 하고 싶은 일 | 이 문서 읽기 |
|---|---|
| 작업 시작 전 사용자에게 물을 질문, 3D 검수 방법, 금면적 계산법 | references/06-需求访谈与验收.md |
| 참고판 Gerber 열어서 각 레이어 판별 | references/01-参考板解码.md |
| 선폭, 기계 가공 가능 여부, 비트맵->벡터 변환, 스캔라인 정밀도, 직조 패턴 매개변수 | references/02-制造性与矢量.md |
| 직조 패턴 적용 (참고판 텍스처 재현) | scripts/15-weave.py (--extract로 모든 참고판에서 테이블 추출 가능) |
| 참고판에서 무엇을 복사할지 (금테/구멍 그룹/블리드/실크스크린 계층 등) | references/07-从参考板抄什么.md |
| 자료 부족, 인터넷에서 이미지 검색 | references/08-素材爬取计划.md + scripts/17-crawl_assets.py |
| 여러 이미지 중 보드에 올릴 이미지 선별 | scripts/18-filter_assets.py (이미지 벽 출력, 사람이 선택) |
| 작업 시작 전 사용자에게 물을 질문 (작성 가능한 설문) | templates/问卷.md |
| 레이아웃 구성 방법을 모를 때 | templates/layouts/ (3개 템플릿 + 24 px/mm 예시) |
| EDA 열지 않고 spec 미리보기 | scripts/20-preview_spec.py |
| EasyEDA Pro CLI/JS 호출 | references/03-EDA落地.md |
| 도형 하나하나 추가하지 않고 직접 .epcb2 작성 | references/03-EDA落地.md 섹션 8 |
| 로고가 채워진 색상 블록 + 흰색 속이 빈 글자 (원판형) | references/02-制造性与矢量.md '로고에는 두 가지 원형이 있습니다' |
| 사용자 검수를 위한 3D 미리보기 출력 | scripts/14-render3d.py |
| 어떤 단계에서든 '이상해 보이면' 먼저 역사적 실패 사례 확인 | references/04-踩坑清单.md (118개, A–R 섹션) |
| 주문 패키징, 현재 파일이 검수된 버전인지 확인 | scripts/19-pack_order.py (MANIFEST + --verify) |
| 스크립트 수정 후 보드가 손상되지 않았는지 확인 | python -m pytest tests -q (금판 재현/직조 패턴/자체 점검) |
| 글꼴 변경 / 다른 기계에서 실행 안 될 때 | references/02-制造性与矢量.md '글꼴' |
| 자료 검색, 다른 유사 스킬 참고 | references/05-参考资源.md |
P4 시작 전에 반드시 references/03을 읽어야 합니다. 가장 비용이 많이 들었던 실수는 기억에 의존해 create()의 매개변수 순서를 추측한 것이었고, 올바른 시그니처는 항상 우리 03 문서에 있었습니다.
가장 비용이 많이 드는 13가지 (전문은 04 참조)
- 금색 = 구리 + 오프닝, 두 레이어 모두 필수; 금 12–24% (동일 크기 참고판 22.0%,
13-check기준,02'두 가지 기준' 참조). 8% 미만이면 빈 보드이고, 26% 초과이면 전체 보드가 금색입니다. - 로고는 먼저 원형을 판별한 후 작업하세요: 선화형 → 전체 묘사; 원판형(채워진 색상 블록 + 흰색 속이 빈 글자) → 채워진 원반 + 글자는 검은색 속이 빈 처리. 원형을 잘못 판별하면 글자에 톱니가 생깁니다(v3가 이렇게 폐기됨).
- 복잡한 글꼴에 다각형 부울 연산을 사용하지 말고, 래스터화 + 0.06mm 스캔라인을 사용하세요; 단 라틴 문자/숫자는 텍스트 객체(벡터)를 우선 사용하고, 스캔라인은 한자, 손글씨, 그래픽에만 사용합니다.
- 배경 텍스처는 경계에 클리핑해야 합니다(둥근 모서리에서 원과의 교차), 경계를 넘는 선분 전체를 버리지 마세요. 그렇지 않으면 보드 가장자리에 톱니 모양 결함이 생깁니다.
- 같은 레이어에 배경 텍스처가 있을 때 모든 bbox 조건 필터에 크기 서명을 추가해야 합니다. 그렇지 않으면 텍스처가 함께 삭제됩니다.
- 배치 쓰기는 ≤600개/배치, 배치 간 sleep, 실패 시 재시도, 마무리 시 좌표 기반 중복 제거;
setState_*는 디스크에 저장되지 않으며, 기하학 수정은modify()만 신뢰하세요. - 뒷면 3개 레이어(2/4/6)는 모두 미러링하여 생성해야 함; 하단 실크스크린은 레이어 4지 3이 아닙니다.
- 사용자가 '안 닮았다'고 할 때, 문제는 거의 항상 규칙(배치, 비율, 계층)에 있고 매개변수에 있지 않습니다. 참고판을 숫자로 변환하여 확인하고, 숫자를 조정하지 마세요.
- .epcb2를 작성한 후 반드시
session close --destroy후open을 실행해야 합니다. 편집기가 디스크 변경 사항을 자동으로 다시 로드하지 않으며, 내보내기 시 이전 도형을 가져옵니다(109번째 항목). - 전체 보드는 .epcb2 텍스트로 직접 작성할 수 있습니다(한 줄에 하나의 JSON, 하나의 FILL로 하나의 path). CLI 배치 주입보다 한 자릿수 빠릅니다. 단 뒷면 텍스트는
mirror:true로 안 되며, 기하학을 미러링해야 합니다. - 원형은 항상
path:["CIRCLE",cx,cy,r]+ width를 사용하세요. 스캔라인으로 원을 그리면 옆의 글자와 붙어서 틈이 생깁니다. - '복사할 수 있는 것은 모두 복사하라' — 하지만 복사하는 것은 숫자이지 인상이 아닙니다. 보드 가장자리 금테는 보드 프레임 위에 눌려 있고(보이는 너비 = 선폭/2), 구멍 그룹은 그 φ0.3 작은 구멍과 연결되어 있고, 도형은 보드 밖으로 블리드되고, 실크스크린 세 줄은 세 가지 글꼴, 하단 가로선 — 항목별로 측정하여
07의 표를 채우고, 복사 여부는 사용자에게 물어보세요. - 자체 점검은 반드시 '스크립트 출력 표 + ≥60 px/mm 국부 이미지'여야 합니다. 20 px/mm는 0.06mm 결함을 볼 수 없습니다; '허용 가능'이라고 쓰는 것은 보지 못한 것보다 더 나쁩니다. 직조 패턴은 별도로: 반드시 80 px/mm로 12×12mm 블록을 별도로 검사해야 합니다. 합성 이미지에서는 항상 '회색 덩어리'처럼 보입니다.
인도물 (매번 최종본에 포함)
export/<name>_gerber_<date>_v<n>.zippreview/board-gerber<n>.png: 앞/뒤 각각 Gerber 래스터화 후 합성, EDA 스크린샷 아님preview/v<n>_front3d.png/v<n>_back3d.png:14-render3d.py가 출력한 유사 3D (무광 블랙 릴리프 + 금 반사), 사용자 P4.5 검수용docs/03-当前状态.md: 레이어 통계, 기하학 매개변수, 확정 항목, 미결 항목docs/验收单.md:13-check.py --md생성 실측 표 + P4.5 14개 항목 체크 (보드별 한 부씩, 구두로 묻지 마세요)- 주문 패키지: Gerber + 미리보기 이미지 + 프로젝트 소스 파일 +
下单说明.txt(실측 데이터 및 알려진 위험 포함) +MANIFEST.txt(scripts/19-pack_order.py에서 sha256 생성, 압축 풀고--verify로 일치 확인 후 주문)
자체 점검 (매번 인도 전, 하나라도 빠지면 안 됨)
scripts/13-check.py실행, 모두 통과해야 계속 진행 (크기/금면적/최소 선폭/최소 실크스크린/흰색 실크스크린/무광 블랙/드릴/도형 수/링 커버리지). 직조 패턴이 있는 보드는 반드시--weave추가: 보드의 2mm 단위 방향을 참고판 텍스처 테이블과 격자별로 비교, 일치율 ≥90%여야 복사 성공. 동시에--md docs/验收单.md추가, 숫자와 P4.5 14개 항목을 함께 문서화.- ≥60 px/mm 국부 이미지 출력, 세 곳 고정 확인: 로고, 주요 텍스트, 보드 모서리 한 곳.
- 위 두 단계의 숫자를 답변에 포함, '확인했습니다'만 쓰지 마세요.
- 결함 발견: 먼저 수정한 후, '허용 가능'이라고 할지 결정 — '허용 가능'은 수정 방안이 아닙니다.
- P4.5의 3D 이미지를 실제로 사용자에게 보여줘야 합니다 (앞+뒤 두 장), '이미 렌더링되었습니다'라고만 말하지 마세요.