纪念展示板(gift-pcb)
美術のみで回路のないPCB。難所は回路図ではなく、繰り返し見落とされる次の三つ: 参考基板が実際にどのようなものか、各層がそれぞれどの素材か、「見た目が合っている」と「実測で合っている」の差。
三つの鉄則
- 合成図ではなく、層ごとに見る。 銅はレジストに覆われると黒く見える。「銅+開窓」だけが金色になる。
- 見積もるのではなく、計測する。 すべての「十分かどうか」をミリメートル/ピクセルの実測値に落とし込み、回答に記載する。見積もった値は三度目の手直しで必ず破綻する。
- 先にコピーし、それから変更する。 参考基板や公式エンブレムで既に解決された問題は、その形状を直接採用し、再発明してはならない。
八段階とゲート
| 段階 | 成果物 | ゲート(通過しなければ次の段階へ進めない) |
|---|---|---|
| P0 プロジェクト立ち上げ | 受取人、サイズ、プロセス、要素のリスト | すべての要素について「どこに配置するか、どのくらいの大きさか」を回答できること |
| P0.5 要件ヒアリング | 用途、シーン、写実性/装飾性、手書き原稿、予算 | 8つの質問をすべて完了すること(06 参照)、特に「手書き感が必要かどうか」 |
| P1 参考基板のデコード | 各層のレンダリング図+要素リスト+三色の配分表;参考基板がない場合は素材を検索 | ① どの部分が銅・金・シルク・穴かを図示で説明できること;② scripts/00-decode_badge.py を実行し、エンブレムの原形(線画/円盤)、半径、面積、最細線幅を出力していること;③ 参考基板がある場合は金・白・黒の3つの数値を計測していること;④ 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を開かずに確認したい | scripts/20-preview_spec.py |
| EasyEDA プロフェッショナル版の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スキャンライン。ただしラテン文字/数字はテキストオブジェクト(ベクター)を優先、スキャンラインは漢字、手書き文字、図形のみに使用。
- 背景テクスチャは境界でクリップする(角R部分で円と交差)、境界線分を丸ごと捨てないこと。さもないと基板の縁にギザギザの隙間ができる。
- 同じ層に背景テクスチャがある場合、bbox条件フィルタにはすべてサイズシグネチャを追加しないと、テクスチャも一緒に削除してしまう。
- 書き込みバッチは ≤600個/バッチ、バッチ間スリープ、失敗時リトライ、最後に座標で重複除去。
setState_*はディスクに保存されないため、ジオメトリの変更はmodify()のみを信頼する。 - 裏面の三層(2/4/6)はすべてミラー生成すること。最下層シルクは層4であり、層3ではない。
- ユーザーが「似ていない」と言う時、問題はほぼ常にルール(配置、比率、階層)にあり、パラメータではない。参考基板を数字に落とし込むこと。値を調節してはいけない。
- .epcb2 を書き終えたら必ず
session close --destroyしてからopenすること。エディタはディスクの変更を自動リロードせず、エクスポート時に古い図形を取得する(第109条)。 - 基板全体を直接 .epcb2 テキストとして書ける(一行1JSON、1 FILLで1パス)。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項目チェックリスト(基板ごとに1部、口頭で尋ねないこと)- 発注パッケージ: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図は実際にユーザーに貼り付けて見せること(表面+裏面の二枚)。「レンダリング済みです」と言うだけでは不十分。