LoginSignup
9
5

More than 3 years have passed since last update.

CadQueryを使って、3Dプリンタデータ(STLファイル)を作成する

Posted at

はじめに

本記事は、CadQueryを使って、3Dプリンタデータ(STLファイル)を作成する方法について紹介します。
CadQueryとは、3Dモデルを作れるpythonのライブラリです。

image0.jpeg

きっかけ

電子工作の幅を広げるために、3Dプリンタを購入しました。
3D CADツール自体は使ったことはなかったので、いろいろと調べたところ、
自分にはCadQueryとFreeCadが使いやすかったです。
(今回は、CadQueryのみ)

CadQueryについて

以下が公式の情報となります。
日本語の記事が極端に少ないです。

情報

インストール・起動

インストール方法は複数ありますが、今回は一番簡単な
CQ-editorをダウンロードする方法で実施します。

※windows10 64bit Homeの場合

CQ-editorより、
"Installation" - "RC1 Windows"よりダウンロードします。

"CQ-editor-0.1RC1-win64.zip"を解凍し、"CQ-editor.exe"を実行し起動します。

立方体を作成する

①コードの作成

エディタ部①に、下記のコードを貼り付けます。

test.py
import cadquery as cq

result = cq.Workplane("front").box(2.0, 2.0, 0.5)
show_object(result)

②コードの実行

再生ボタンを押して、コードを実行します。
立方体が作成されます。

0001.PNG

タッキング穴付きフックをつくる

ページの先頭に記載した写真のフックを作成します。

コードの作成

test.py
# 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平面のコードとの紐づけ

長さと厚さの定義との座標の関係は以下となります。
0002.PNG

コードの実行

コードを実行すると、フック付きのモデルが作成できます。

0003.PNG

STLファイルを出力する

オブジェクトを選択した後、"Tools" - "Export as STL"を選択します。

0004.PNG

ファイル名を指定し、保存します。

あとは、3Dプリンタで印刷します。

image0.jpeg

さいごに

3Dモデルをコードでかけるのは非常に助かります。

9
5
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
9
5