はじめに
本記事は、CadQueryを使って、3Dプリンタデータ(STLファイル)を作成する方法について紹介します。
CadQueryとは、3Dモデルを作れるpythonのライブラリです。
きっかけ
電子工作の幅を広げるために、3Dプリンタを購入しました。
3D CADツール自体は使ったことはなかったので、いろいろと調べたところ、
自分にはCadQueryとFreeCadが使いやすかったです。
(今回は、CadQueryのみ)
CadQueryについて
以下が公式の情報となります。
日本語の記事が極端に少ないです。
情報
- CadQuery / cadquery
- CadQuery 2.0 Documentation
- CQ-editor
インストール・起動
インストール方法は複数ありますが、今回は一番簡単な
CQ-editorをダウンロードする方法で実施します。
※windows10 64bit Homeの場合
CQ-editorより、
"Installation" - "RC1 Windows"よりダウンロードします。
"CQ-editor-0.1RC1-win64.zip"を解凍し、"CQ-editor.exe"を実行し起動します。
立方体を作成する
①コードの作成
エディタ部①に、下記のコードを貼り付けます。
import cadquery as cq
result = cq.Workplane("front").box(2.0, 2.0, 0.5)
show_object(result)
②コードの実行
再生ボタンを押して、コードを実行します。
立方体が作成されます。
タッキング穴付きフックをつくる
ページの先頭に記載した写真のフックを作成します。
コードの作成
# This is a CadQuery script
import cadquery as cq
import itertools
# 長さと厚さの定義
X1 = 40.0
X2 = 2.0
X3 = 2.0
Y1 = 40.0
Y2 = 2.0
Y3 = 10.0
Z1 = 40.0
# xy平面で記述する
result0 = (cq.Workplane("XY")
.moveTo(0,0)
.lineTo(X1,0)
.lineTo(X1,Y1)
.lineTo(X1-X2,Y1)
.lineTo(X1-X2,Y2)
.lineTo(X3,Y2)
.lineTo(X3,Y3)
.lineTo(0,Y3)
.close())
# z軸方向に押し出す
result = result0.extrude(Z1)
# タッキング用穴
# yz平面 and xz平面への穴の定義
HOLE_Xs = [9*1, 9*3, 9*5, 9*7, 9*9, 9*11]
HOLE_Ys = [9*1, 9*3, 9*5, 9*7, 9*9, 9*11]
HOLE = 5.0
# 穴あけ
for hole_crd in itertools.product(HOLE_Xs, HOLE_Ys):
result = result.faces(">X").workplane().rect(hole_crd[0], hole_crd[1], forConstruction=True).vertices().hole(HOLE)
result = result.faces(">Y").workplane().rect(hole_crd[0], hole_crd[1], forConstruction=True).vertices().hole(HOLE)
# オブジェクトの表示
show_object(result)
xy平面のコードとの紐づけ
コードの実行
コードを実行すると、フック付きのモデルが作成できます。
STLファイルを出力する
オブジェクトを選択した後、"Tools" - "Export as STL"を選択します。
ファイル名を指定し、保存します。
あとは、3Dプリンタで印刷します。
さいごに
3Dモデルをコードでかけるのは非常に助かります。