Files
Beyond-KLE/journal/2026-09-20-led-node.md
T
ewdernaandClaude Opus 5.5 85f333cb24 chore: Markdownのインデント幅を4に固定し、リストの継続行をスペース4つに揃える
継続行がスペース2つだと、VS Codeがインデント幅を2と自動判定する。
.vscode/settings.json でMarkdownの自動判定を切って幅4に固定し、
既存の継続行もリストの記号から4つ下げた位置に揃える。
変更したファイルに markdownlint --fix をかけた分(journalのURL囲みと空行)も含む。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VbfgHT848s3JbuFw8MKFF8
2026-10-19 08:16:12 +09:00

3.9 KiB
Raw Blame History

LEDの持ち方 / 部品ノードへの一般化

結論

  • per-key LEDは、キーが持つboolean 1つ。位置も向きも持たない
  • LED専用ノードは作らない。キー以外の部品を一般の「部品ノード」として持ち、LEDはその一例
  • 部品ノードは transform と partGroup のみ。orientation は持たない
  • 部品グループ名の @ 始まりは予約。エディタ上の描画にのみ使う
  • チェーン順序・論理インデックス・表裏はPHYに持たない

案の比較

per-key LEDの表現

案 位置 採否
キーのboolean 持たない ○
キーに追随する自動生成ノード ノードが座標を持つ × 座標に自由度がない
ユーザーが1個ずつ置く 持つ × キー数ぶんの手作業

独立して置く部品

案 対象 採否
部品ノード(汎用) LED / OLED / エンコーダ / ネジ穴 / MCU など ○
LEDノード専用 LEDのみ × 次の部品で同じ議論をやり直す

根拠

per-key LEDの位置はスイッチのフットプリント内で決まっている(MXならスイッチ上側の窓)。 設計者が選べる自由度がないので、座標を持たせても常に導出可能な値を二重に持つだけになる。 スイッチの品種を持たないと決めた判断と同じ論法。 向きも同様で、per-key LEDはキーの orientation に従う。よってパラメータは有無だけ。

一方、アンダーグローやインジケータは設計者が位置を決めるのでノードが要る。 ここでLED専用ノードにすると、OLED・ロータリーエンコーダ・リセットスイッチ・TRRSジャック・ MCU・ネジ穴が来たときに毎回同じ議論になる。どれも「位置と向きを持つ非キー要素」で構造が同じ。 partGroup(中身を解釈しないラベル)をそのまま流用できるので、一般化するコストがほぼない。

部品ノードが orientation を持たない理由: キーが2軸(キャップの向き = transform.rotation / スイッチの向き = orientation)を持つのは、キャップという外皮とスイッチが独立に回せるため。 部品ノードにはその二重構造がないので transform.rotation だけで足りる。

@ 始まりの予約: 部品グループの中身を解釈しないという原則と、描画を変えたいという要求は、 「描画にのみ使う。フットプリントの選択には使わない」で両立する。 記号始まりにすればユーザーが自由に付けた名前(led-left など)と絶対に衝突しない。 未知のグループ名は既定の形で描く。

キーごとのopt-outが要る理由

一部のキーだけLEDを載せない構成として挙がった例(いずれも未検証):

  • スタビライザとの干渉
  • ロータリーエンコーダに置き換わる位置
  • USBの電流上限に収めるためにLED数を絞る

捨てた案・送った先

  • ファイル単位の「per-key LEDがある」フラグ: キーごとのbooleanから導出できるので存在フラグとしては不要。 既定値を与える設定としては意味があるが、ファイル単位設定の置き場は他にも要求があり別トピックへ。 今回はキーごとのbooleanのみ決め、省略時は false とする
  • レイアウトによって条件付きでLEDの有無が変わる構成: ANSI/ISO Enter のようなキー自体の排他と同じ問題で、 LED固有ではない。マルチレイアウト(未導入の概念)側へ送る
  • 部品の表裏をPHYが持つ: PCB設計ツールが決める情報。ただし描画の描き分けとの絡みが残るので P-12
  • チェーン順序をPHYが持つ: 電気的な接続なのでELC。ただし接点マトリクスと同じ層でよいかに確信がなく P-11