Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20190712 M3 TechTalk キーキャップ作る話

tshohe
July 12, 2019

20190712 M3 TechTalk キーキャップ作る話

tshohe

July 12, 2019
Tweet

More Decks by tshohe

Other Decks in How-to & DIY

Transcript

  1. About me • 名前: Shohei Takahashi  @tshohe1 • キーボード遍歴: ◦ Majestouch2

    茶軸 ◦ HHKB Lite2 ◦ HHKB Professional JP ◦ 自作キーボード (New)
  2. 自作キーボード構成 • Kit: Helix 5行 ◦ 分割式 ◦ 入手が容易だったからという理由 •

    Switch: Gentron Silent 赤軸 ◦ とにかく静音性重視 • KeyCap: DSA 50 dye-sub keycaps for cherry mx switch ◦ 適当にAliExpressで見つけたやつ ◦ 59 keys ◦ … 59 keys? ◦ (6 * 5 + 2) * 2 = 64 ...
  3. キーキャップの種別 • 軸(ステム)の形状 ◦ Cherry MX型 ▪ ただの十字 ▪ 多少ゆるくても許される

    ▪ 作るのがめっちゃ楽そう ◦ Topre型 ▪ 丸いのに差し込むタイプ ▪ サイズ合わせるのが難しそう ◦ Novatouch型 ▪ 謎 • キーの形状 ◦ DCS:場所によって形が違うやつ ◦ DSA:低めで全て同じ形 ▪ サイズ一緒なので一つ作れば使 い回せる ◦ SA:高め全て同じ形 等
  4. OpenSCAD • https://www.openscad.org/ • コードで3Dモデルを書けるやつ • VCSとかで管理可能 • 単純な構造ならすぐ書ける •

    ベースの形状は下の記事を完全にパクり 参考にしました ◦ https://qiita.com/zk_phi/items/ab99315ebaef6 6e84aa0 $fs = 0.1; stem_outer_size = 5.5; stem_cross_length = 4.25; stem_cross_h = 1.35; stem_cross_v = 1.35; difference() { cylinder(d = stem_outer_size, h = 6); translate([- stem_cross_h / 2, - stem_cross_length / 2, 0]) cube([stem_cross_h, stem_cross_length, 15]); translate([- stem_cross_length / 2, - stem_cross_v / 2, 0]) cube([stem_cross_length, stem_cross_v, 15]); } module keycap_outer_shape (key_bottom_size, key_top_size, key_top_height) { hull () { translate([0, 0, key_top_height]) cube([key_top_size, key_top_size, 0.01], center = true); cube([key_bottom_size, key_bottom_size, 0.01], center = true); } } difference() { difference() { keycap_outer_shape(18, 12.5, 7.5); keycap_outer_shape(15, 9.5, 5.5); } translate([0, 0, -2.5]) difference() { sphere(20); sphere(12.5); } translate([0, 0, 67]) sphere(60); }
  5. difference() { difference() { keycap_outer_shape(18, 12.5, 7.5); keycap_outer_shape(15, 9.5, 5.5);

    } translate([0, 0, -2.5]) difference() { sphere(20); sphere(12.5); } }
  6. difference() { difference() { keycap_outer_shape(18, 12.5, 7.5); keycap_outer_shape(15, 9.5, 5.5);

    } translate([0, 0, -2.5]) difference() { sphere(20); sphere(12.5); } translate([0, 0, 67]) sphere(60); }