PythonSCAD WORKSHOP

PythonSCADで
サイコロを作ろう

立方体に「1の目」を作る

GOAL

今回の目標

一辺60 mmの立方体を作り、その上面を直径16 mmの球でくりぬいて、サイコロの「1の目」を作ります。

00

準備:PythonSCADの使い方を知ろう

上のボタンからPythonSCADの画面を開いてみましょう。コードを入力する欄と、そのすぐ下に3Dモデルが表示される欄があるのがわかりますか?
上側がプログラムの「コード」を書く場所、下側が完成した3Dモデルが表示される場所です。

上側:コードエディタ

ここにPythonの命令を打ち込みます。

下側:3Dプレビュー

コードを実行すると、すぐ下に3Dで表示されます。

【超重要】コードを実行して3D表示するには?

コードを書いただけでは右側の画面に形は現れません。3Dモデルを表示(更新)するには、以下のどちらかの方法で「実行」する必要があります。毎回使うので覚えておきましょう!

方法1(マウスで操作) 左側の「再生ボタン」を押す
おすすめ!
方法2(キーボードで操作) Shift + Enter を押す

画面の操作とボタンの場所

画面の解説

まずはサンプルを動かしてみよう!

PythonSCADを開くと、最初からサンプルのコードが入力されています。
まずは、上の方法(「再生ボタン」か「Shift+Enter」)で3Dモデルを表示してみましょう。

表示されたら、右側の画面をマウスで操作して、3Dモデルを色々な角度から観察してみましょう。

  • 左ボタンでドラッグ: 視点の回転
  • マウスホイール: ズームイン・アウト

新しいファイルを作ろう!

今回はゼロからサイコロを作っていくので、画面の右上にある「Code」ボタンをクリックして、新しい画面を準備しましょう。これで準備は完了です!

01

立方体を作成する

課題

はじめに、一辺60 mmの立方体を作ります。どのようなコードを書けばよいか考えてみましょう。

ヒント:以下のコードの続きを考えてみよう
from pythonscad import *

# 一辺60 mmの立方体を作成
box = ???


show(box)

立方体を作る命令は cube([Xの長さ, Yの長さ, Zの長さ]) です。今回作りたいのは一辺が60mmなので、X・Y・Zすべてに同じ数字を入れます。

目標のカタチ

立方体の出力結果
02

立方体の位置を合わせる

課題

先ほどの立方体は、角が原点に置かれています。立方体の「中心」を原点に合わせるようにコードを変更してみましょう。

ヒント:かっこの中にオプションを追加しよう
from pythonscad import *

# 中心を原点に合わせて立方体を作成
box = cube(
    [60, 60, 60],
    ???
)


show(box)

かっこの中に center=True という「オプション」をカンマ区切りで書き足すだけで、中心が原点に合います。

目標のカタチ

原点に配置された立方体の出力結果
03

球を作成する

課題

次に、サイコロの目を作るための「球」を作成します。直径16 mmの球を作ってみましょう。

ヒント:球を作る命令を書こう
from pythonscad import *

# 直径16 mmの球を作成
ball = ???


show(ball)

球を作る命令は sphere(r=半径, fn=64) です。「直径」が16 mmのとき、「半径(r)」はいくつになるでしょうか?

目標のカタチ

球の出力結果
04

球の位置を合わせる

課題

立方体の上面は、原点からZ方向に30 mmの位置にあります。作成した球が立方体の上面に乗るように、移動させてみましょう。

ヒント:移動量を足し算しよう
from pythonscad import *

# 球を作成
ball = sphere(r=8, fn=64)

# 球をZ方向に30 mm移動
ball = ball + ???


show(ball)

図形を移動させるには、元の図形に [Xの移動量, Yの移動量, Zの移動量] を足します。今回はZ方向(上)にだけ30mm動かします。

目標のカタチ

移動した球の出力結果
05

立方体から球をくりぬく

課題

最後に、重なった2つの図形を使って、立方体から球を「引き算」し、サイコロの目(くぼみ)を完成させましょう!

ヒント:図形の引き算をしよう
from pythonscad import *

# (立方体:box と 球:ball の作成は省略)

# 球を立方体の上面に移動
ball = ball + [0, 0, 30]

# 立方体から球をくりぬく
dice = ???


show(dice)

図形の引き算は、普通の計算と同じように -(マイナス)の記号を使います。立方体から球を引きましょう。

目標のカタチ

くりぬかれたサイコロの出力結果
FINAL SOURCE

完成コード

ここまでの内容をまとめ、寸法を変数として定義し直した、より美しいコードです。