第 2 回 サイコロの作成

本日の内容


このドキュメントは http://edu.net.c.dendai.ac.jp/ 上で公開されています。

2-1. 課題の概要

STL ファイルは単純なテキストファイルですが、3Dプリンターを動作させる ためのフォーマットです。 本課題では、STL のプログラムのプリント文で出力する事を考えます。 計算で設計可能な物体を STL 形式で出力するプログラムを作成し、実際にファ イルを作成し、 3Dプリンタで印刷するまでを行います。

2-2. 課題の進め方

想定実施期間1ヶ月

  1. 班で手分けして勉強会を実施する。
    1. STL フォーマットの規格
    2. 単純な立方体を例とした STL フォーマットの構成
    3. 立方体を出力するサンプルプログラム例
  2. ペアプログラミングによりプログラムを作成し、STLファイルを出力します。 作成した STL ファイルによりサイコロを製作する

2-3. サイコロの仕様

以下に難易度別に示す。 一つ選んで実施しなさい

なお、基本的なクラスライブラリを作成しま したので、活用してください。

単純な立方体

単なる立方体を出力。 サンプルプログラムを理解するだけで出力可能。

正多面体

立方体(=正六面体)以外の正多面体サイコロを設計する。正四面体、正八面体は サンプルプログラムを使用すると容易に作ることができる。

面取り

立方体の角を平面で切って、面取りをしたものを作成する。 座標として切りの良い点を選べば、正多面体とあまり変わらずに作ることが できる。

穴空きサイコロ

数を示す穴を開けたサイコロを作成する。 但し、サイコロで重要なのは、重心が中央になければならないことである。

重心は加法的な性質があるので、2つの物体の重心が共通ならば、その物体を 結合したものと考えても重心は同じ重心になります。 さらに、特定の立体から一部の立体を切り取ったことを考えると、切り取った 部分の重心と、元の重心が一致していれば、切り取った後の立体の重心も一致 します。 このことを考慮し、穴の大きさなどについて議論をし、サイコロの穴を開けて も重心がずれていないサイコロを作りなさい。

考え方としては、例えば 1 と 6 が向かい合ってますが、削った部分の重心が 中心になるように穴の位置と大きさを決められれば、削った後のサイコロの重 心は動かないはずです。 今、穴は同じ深さの四角柱状に空けるとします。 サイコロの一辺の長さを s , 穴の深さを d , 1 の目の穴の一辺の長さを r1 , 6の目の穴の一辺の長さを r6 とします。 1 の目を軸状に 6 の目を軸に対してそれぞれ対称になる様に空けると、相互 の重心が釣り合う式は、密度を p とすると次の様になります。

p r12 d s/2 - d/2 = 6 p r62 d s/2 - d/2

これより結局 r1 = 6 r6 が得られ、円の大きさで重心の位置が調整できる事が分かります。

なお、多角形に穴を開ける場合、単純に三角形分割ができなくなるので、穴 の無い、さらに凸な多角形に分割する事を考える必要がある。

多色サイコロ

穴を開けるのではなく、他の色の立体を入れることで数を表現する事を考え る。 すると、他の色の素材も同じ重さと仮定すると、重心の計算をしなくても良 い。 しかし、部品を何分割すると綺麗に組みあがるかが問題となる。

円の外周を回り込む部分は円の面に平行な移動では実現できないため、 左右という分割で組めないないのが 4,5,6 の目である。 そこで、サイコロを4,5,6 の面と 1,2,3 の面の三角柱のような(但し、側 面は正方形)に分割するのが最も分割数が少なく仕上がると思われる。

なお、この多色サイコロは必要な座標点が多いので、次回の 3D CAD を用い た方が良いかもしれない。

2-4. ヒント

すべて計算で求めるのは難しいので、適当なモデルを紙や粘土で作製し、採 寸の後、効率よく出力できるようなプログラムを作製する。 プログラムの出力の正当性は3Dプリンタの出力ソフトで確認できる


坂本直志 <sakamoto@c.dendai.ac.jp>
東京電機大学工学部情報通信工学科