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

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

Avatar for tshohe tshohe
July 12, 2019

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

Avatar for tshohe

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); }