6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

IoTLTAdvent Calendar 2020

Day 11

Python&HolePlateMakerで自作ユニバーサルプレートを作成する。

Last updated at Posted at 2020-12-10

ちょびっと連絡

穴の種類を増やしたり、バージョンアップしてみました。
使い方はこちらをご参照ください!

はじめに

  • 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プリンタで出力する際には各自の環境に合わせること。

  1. HolePlateMakerのインストール
  2. コーディング
  3. 3Dプリンタで出力。

1. HolePlateMakerのインストール

まず、pipを使ってHolePlateMakerを使うための環境を揃える。
ちなみに私はvenvを使って環境を構築した。

pipにてインストール
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ファイルを作成し、下記のコードをコピペする。

stlmake.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スライサー画像

結果

印刷した結果はこんな感じ。今回の例だとDa vinci nano wで18分で出力できる。
論理配列を操作すれば、自分好みなユニバーサルプレートをガンガン作ることができる。

3Dプリンタ出力結果

3 mm径のネジもこの通り入る。

3Dプリンタ出力結果3 mmネジ付き

おわりに

  • 自作ユニバーサルプレートのCADデータをpythonコードから自動生成できた。
  • 自動生成したCADデータから自作ユニバーサルプレートを作成した。
6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?