ちょびっと連絡
穴の種類を増やしたり、バージョンアップしてみました。
使い方はこちらをご参照ください!
はじめに
- HolePlateMakerというユニバーサルプレート自動生成プログラムで自作ユニバーサルプレートのCADデータ(.stl)を作成する。
- 自動生成したCADデータから自作ユニバーサルプレートを出力する。
そもそもユニバーサルプレートって何?
- 株式会社タミヤが提供している楽しい工作シリーズの製品の一つ(製品例:https://www.tamiya.com/japan/products/70157/index.html)
- 3 mmの穴が5 mm間隔で開けられており、タミヤ製のギヤボックスなどのギミック系パーツを自由に組み付けることができる。
- 一般的に手に入る3 mm径のネジが使用でき、また5 mm間隔に穴が空いていることによってキリのいい位置にタミヤ製じゃないギミックなどを組み合わせやすい。そのため、プロトタイピングに使われることも多い。
使用するもの
バージョンなどは特に揃える必要は無いと思う。
- パソコン(自分の環境はmacOS Big Sur、MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports))
- python 3.6.8
- 3Dプリンタ(自分の環境はDa vinci nano w)
- HolePlateMaker
作業
実施することはこの3ステップだけ。ぶっちゃけ2番のコーディングはほぼコピペでOK。
また、3Dプリンタで出力する際には各自の環境に合わせること。
- HolePlateMakerのインストール
- コーディング
- 3Dプリンタで出力。
1. HolePlateMakerのインストール
まず、pipを使ってHolePlateMakerを使うための環境を揃える。
ちなみに私はvenvを使って環境を構築した。
pip3 install numpy
pip3 install numpy-stl
pip3 install matplotlib
その後に、HolePlateMakerのgithubリポジトリ(https://github.com/henjin0/HolePlateMaker )からcloneするか、zipで作業フォルダまで持ってくる。また、zipの場合は解答して、HolePlateMakerのファイル郡の入ったフォルダが作業フォルダの中に入っている状態にする。
HolePlateMakerフォルダを用意できたら、フォルダ名がHolePlateMakerになっていることを確認する。(zipで持ってくるとHolePlateMaker-mainフォルダになっていた。この場合は-mainをフォルダ名から消す。)
2. コーディング
作業フォルダで任意のファイル名でpyファイルを作成し、下記のコードをコピペする。
import numpy as np
from stl import mesh
from HolePlateMaker.NumpyArrayToPlate import NumpyBoolArrayToPlate
plateData = np.array([[True,False,True],
[True,False,True],
[True,True,True,],
[False,False,True],
[False,False,True],])
curMesh = NumpyBoolArrayToPlate(plateData)
curMesh.save('plate.stl')
ここで重要なのが、np.arrayの中身。自分の作りたいユニバーサルプレートをここで定義する。
この論理配列でtrueになっているところにユニバーサルプレートの穴部分が作成され、falseになっているところがそのまま空白になる。
コードの実装が完了したら、pyファイルを実行する。
特段エラーがなければ、CADデータとなるstlファイルが作業フォルダ直下に作成される。
python stlmake.py # 環境によってはpython3 stlmake.pyかも
3Dプリンタで出力
ここからは各自の環境で実行する。
注意としては、3Dプリンタのスライサーソフトによって勝手に縮小されてしまうこともあるらしいので、必ず原寸ママで出力すること。
結果
印刷した結果はこんな感じ。今回の例だとDa vinci nano wで18分で出力できる。
論理配列を操作すれば、自分好みなユニバーサルプレートをガンガン作ることができる。
3 mm径のネジもこの通り入る。
おわりに
- 自作ユニバーサルプレートのCADデータをpythonコードから自動生成できた。
- 自動生成したCADデータから自作ユニバーサルプレートを作成した。