This page looks best with JavaScript enabled

キーキャップを設計して3Dプリントして楽しむ!

 ·  ☕ 7 min read  ·  🐶 odanny · 👀... views

記事の概要

「かわいいキーキャップをつくりてえな」と思ったので、3Dモデリング→3Dプリントの流れでキーキャップをつくってみました。


本記事の流れ

  1. OpenSCADで3Dモデルをつくる
  2. 3Dプリントする方法を選定(DMM.makeに決定)
  3. 3Dプリント+着色
  4. 完成!

※3Dモデリングも3Dプリンタも初めてで苦労しました。


1.OpenSCADで3Dモデルをつくる

1.1 OpenSCADのインストール

CADのソフトウェアは幾多あるようだが、初学者が悩んでも時間の無駄なので、このへんの記事を見てOpenSCADに決定した。「久しぶりにPythonが書ける!」という安直な選定理由。

PythonとOpenSCADで快適な3Dモデリング生活 - Qiita

OpenSCADを以下のサイトからインストールして、Pythonのモジュールもインストールしておく。

OpenSCAD Downloads


1.2 OpenSCADの練習

とはいえ、ローカルに環境をつくるのはめんどくさいので、Google Colaboratory上で遊んでみることにした。2021年11月現在ColaboratoryはUbuntu18LTSらしいので、以下のようにして導入した。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# install openSCAD
!sudo add-apt-repository ppa:openscad/releases -y
!sudo apt-get update
!sudo apt-get install openscad

# install modules
!pip install SolidPython
!pip install viewscad

# import
from solid import *
from solid.utils import *
import viewscad

# Colab上で3Dモデルをグリグリするために必要
from google.colab import output
output.enable_custom_widget_manager()

r = viewscad.Renderer()

この状態で例えば以下のように書いてみる。例では立方体、球、円柱を表示している。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
_cube = cube([10,10,10], center=True)

_sphere = sphere(d=10)
_sphere = right(20)(_sphere)

_cylinder = cylinder(r=5, h=10, center=True)
_cylinder = left(20)(_cylinder)

_cad = _cube + _sphere + _cylinder

r.render(_cad);

Untitled

おおー、楽しい!Google Colaboratoryの3Dの描画はオブジェクトが多くなると不安定だが、とりあえず動かしてみるには良い感じ。

練習にあたって下記サイトを参考にした。

OpenScad beginners tutorial

OpenSCAD入門 (全21回) - プログラミングならドットインストール

この調子で、以下の本のサンプルコードを参考にキーキャップを作成してみる。

Interface 2021年10月号 3Dプリンタ&メカ設計入門

例そのままでは味気がないので、印字を変えてみた。

Untitled

裏面もばっちりできている。

Untitled

基本的な理解はここまででできたので、もう少し詳細を詰めていく。


1.3 もっと正確なモデルを用意する

先ほどのキーキャップは、キートップが平らだが市販のキーキャップは湾曲していることが多い。

Untitled

画像出典:deskthority

自分で地道に実装していくのも一案だが、今回は車輪の再発明はせずに巨人の肩に乗ることにする。

(自作しているサイトも見つけた。楽しそう。OpenSCAD でキーキャップをデザインしてみた - bebebe note )

調べてみると「KeyV2: Parametric Mechanical Keycap Library」という素晴らしいプロジェクトがあった。

パラメータをいじれば好きな形状にできるようだが、ひとまずThingverseに公開されている3Dモデルをベースに進めていく。

(Thingverse)KeyV2: Parametric Mechanical Keycap Library by rsheldiii

Thingverseでは .stl の形式で提供されていたので、それをOnedriveにアップロードして、Colaboratory経由で、OpenSCADで読み込む。

1
2
cap = import_stl("/content/drive/MyDrive/Colab Notebooks/stls/KeyV2_+Parametric+Mechanical+Keycap+Library/files/dcs_row-5_length-1.stl")
r.render(cap)

表面

Untitled

裏面

Untitled

3Dプリントのための、補強部分までしっかりできていて勉強になる。


1.4 アーティザンキーキャップにする

**ここからが一番楽しいところ!**ベースのキーキャップを好きにいじって自分だけのアーティザンキーキャップをつくる。以下にいくつか試したものを載せてみる。

※ゲームキャラクター(”Baba is you”や”undertale”)も作ったが、個人利用なので良しだと思う。

Python

Untitled

Untitled

つくったモデルはファイルに吐き出しておくことができる。

1
2
3
4
5
6
from subprocess import run
# generate valid openscad code and store it in file
scad_render_to_file(keycap, 'o.scad')

# run openscad and export to stl
run(["openscad", "-o",  "python.stl", "o.scad"])

2.3Dプリントする(DMM.make)

2.1 プリント方法を選定

3Dプリントするには2通りあり、「自分で3Dプリンタを買ってがんばる」か「3Dプリントサービスに依頼する」のどちらか。3Dプリンタは種類があまりにも多すぎてよく分からんので、3Dプリントサービスを利用した。

複数調べてみて、種類や料金、サポートが良さそうなDMM.MAKEに依頼することにした。

DMM.MAKEは、.stl形式で注文できたのでらくちんだった。(と思ったら意外に大変だった話を後述している)

DMM.make モノづくりのためのプラットフォーム

あと、素材は最安値のナイロンを選んだ。以下のサイトがキーキャップを複数の素材で出力して比較検討しているので、参考になる。ナイロンは細かな部分は出力に粗があるが、初めての3Dプリントとしては満足の仕上がりだった。

キーキャップ設計による OpenSCAD 入門 - Qiita


2.2 3Dデータの修正①ソリッドにする

まずモデルを密にする作業が必要になる。DMM.makeでも以下のような記載がある。

3Dデータのルール
ソリッドモデル(モデルの面が全てつながって一体型)であること。

要は適当につくったモデルは中が空洞だったり、面に穴がある場合があるから、それを修復しておく必要があるようだ。変換の方法はいくつかあるようだが、「MeshMixer」で変換することにした。

インストールして「make solid」で行けた。

※インストールしても起動できない不具合があり、以下の対応で治った。

Meshmixerの起動直後に「ソフトウェアの問題によりMeshmixerが予期せず終了する」というメッセージが表示される


2.3 3Dデータの修正②配置する

作成したキーキャップたちをそれぞれ個別に印刷するとお金がかかる。また空間費の概念があり、できるだけ密に配置したほうが印刷代金が安くなる。よっていい感じに配置する必要があるが、キーキャップなら大した額にならないので、MeshMixier上でGUIで行った。緻密にやるならOpenSCADなどでやるのが良い。

Untitled

これを何段かにして発注用のSTLファイルを作成した。


2.3 注文と再修正の試行錯誤

ここまではいわゆる机上の空論である。データ上は行けてそうだが実際に出力できるかは別の問題。DMM.makeで注文すると、中の人がデータをチェックしてくれて「赤字の部分が細かすぎて出力したらつぶれちゃうよ」と教えてくれた(修正箇所だらけ)。

Untitled

ちまちまと修正して再度アップロードした。このあたりの微調整はつらくて地味1に時間がかかった。

総額としては9つ作成して2,676円だった(1キーあたり297円)。思ったより安い!?


3.キーキャップ着弾から着色まで

注文して4日で手元に届いた。ナイロンは角砂糖のような触り心地で想像以上によいものだった!

Untitled

白いままでも味があるが、着色にも挑戦してみた。着色方法はよくわからんので、水彩絵の具で色を載せた後にニスでテカテカに塗り固めてみた。良いやり方をご存じの方はTwitterで教えてください…

あと金継ぎで余った液体を縫ってみたらかなりよいことがわかった。金継ぎは油に真鍮粉を混ぜ、樹脂で固めているが、それが結構きれいに塗れた。

jp60ss

…よい…。


4.完成!

お気に入りのゲーム「Baba is you」のキーキャップとか色々できた。うれしい。


参考文献

キーキャップの素材と形状まとめ - Sansan Builders Blog

自作キーボードと 3D プリンターとものづくりの民主化 - たのしい人生

Share on

odanny
WRITTEN BY
odanny
自作キーボードはまり中