野球のシーム(縫い目)のようなボールを作る

はじめに

球体POVというものを作成しています.

tajmahal0707.hatenablog.com

 

その中で,いままで外殻と呼んでいる透明のボール部分があります.

https://lh3.googleusercontent.com/Uf2_TV6jprZZVTuVSbxgeRL0vNsFn95X3MUV9Wa08J1xl1_c-qAbspuhumKkybLSZIZ4xBLRbBYu1Gy8jln22aXxjpmEYkqa_3-ShQ8ObiE1U5huTyuOVC01fRSakYqwwcUTtFmZae0nRjeTf6v0UkyWZDW-rHuXTz3wPjKMVpiRhKdudED66Yb8JuNazHngNGqZ8rEV9sK4Jm-mKIR0mt5Xf81PDUdTiBw7rCMkFMmIKO1Gmy9rx16Wd0e04U3GDmXPEx1a1DAJmLmB4hKoZIKOeUjiH3Tzy5zYqyCVUe2nx0pVXD5kF5SpQXZlC7hbgCY94tUBfBf1nGydwRJ_T6K9rWnaRCZny8kYR0elMC1F7OHvuleacaWqLAbP-Zyh_3h6siClshtX38seLanCWMfIqMxFFiqPpqtcYMM5LAG4zFynaDhhHNbybrjcD26BwFWgtkM57VChjDgxe_RtyPxu35sF-PNUggGmSILYXcejsTBfUXKWkgVxVpwnNceZFsK6hDXZ56kfIk1QnFP3wNr-u4TxIHRXxYVpIlTv2qZU1CAxpONusyAdGbF6u5k0bf1v5OIezSGpVGcy0W3tmNsSVMWHrqmySFgW5TAbbnRMe67rQ16Ui1WUknJ3fQ8EIQYc8_7xbMT2_cHL1T12jxoFTxwfQxBlzNtXMF7YREoqcCZgqsv6T4Kwh62u4Zuqc8pzQEn7AnWE6esOQhH72Inxbmqikm3aA1Dtz6XCR55fcaeg=w1266-h1686-no

これはAnyCubicのPhotn-Sという光造形型の3Dプリンタで出力しています.

 

打ち出し直後はこんな感じ

https://lh3.googleusercontent.com/X5V4x8wDwkXxCDzfNz9UnewOZU0IFIfbrusuBCgULUPnQ-R5Rm94iSvGxU6J-9eAWGGy30PP6t_znukoiBLrjU2awtBik16-xX91X8fIZs5zf2rLqh8eR0EKHR5pw7oBVgFpRCn_B0begpYbzJJjq7a2HzNqjrHgWxIuP4hH71KjctWmiQVcuf_suGU0j2z07zyLCFzGmX7jDQ9A42PI5bfba83RUpe501Jq_5OPm9P0ctHrriuX32ucM0wk8KtHfk2znusNU3lVH_5rvjfz3VASRdDVcWL9f8G-9Y3aUkRu6QYU70zozfsQ-oKIXX8wJid996jnzt1xMuwX7y-eEUEGnnd85xD6hmFgh7Fj4JdQZ-IvCcgbDfd-IFK0U86NJk45lSVzBdmLa--TKqgX4-_FlPJqWc1vAwpbVRU_OfsSGMBC5mwgoIdbxELF7PPVP6zT8oGVIJ6RfWP09q4gMNiXgVph8gVoRibcqeyTT1xQYY0pm7l7lrHi5VlvTUKAMi8E-G4fGWMkdGQxU_2Nu8ZLx8JEwFXeVK5XtjT7kI9Cqb-5HMb7-HUq0nvD6Aa29cQ6ZflBLRmSWAY1XUKtZpYs2hpUJN18yByc1LVJzS-5XegxtCk53e6EHvyk4uDmngWhwiL7dDSz5fBwGbqfXYe3SUdag2r3VRZITosNaWoz2E_4i_xWFw2-rHprF8H4_gyUdlb710nh3ZOEjM8FPNWl1fswHmAhK87tszkQuyRExFqh=w1266-h1686-no

ちなみにこれが 初めてphoton-sで打ち出したものだったりしますw  photon-sの印刷範囲が116×65×165mm のところに100×50×100mmのものを印刷したのでかなりギリギリだったのに,ちゃんと打ち出すことができました.

ほとんどデフォルトの設定のままでこれだけ出せるんだから大したものです.

打ち出し直後。

f:id:tajmahal0707:20191220155150j:image

これを磨いて、
f:id:tajmahal0707:20191220155146j:image

クリヤコートを吹きます。(UV硬化樹脂で、UVで変色しやすいのでUVカット付き)
f:id:tajmahal0707:20191220155141j:image

もうちょっと磨けばよかったな

 

これはこれで満足のいく出来ではあったのですが,今回さらに新しく球体ディスプレイを制作するにあたりボール部分もデザインを一新しようと考えたのでした.

元ネタはthingiverseのこれ.

www.thingiverse.com

見た瞬間「これだ!!」と思い,さっそくダウンロードしましたねw

ところが,中に入っていたのはscad拡張子.全く知らなかったのでしらべてみました.これらしい。。

qiita.com

早速ダウンロードして開いてみます。

f:id:tajmahal0707:20191219021047p:plain

 

 

なるほど.

関数を記述して形状を作るタイプのやつなんですね.これならボールサイズや肉厚もパラメータ変更できそう。POV-RAYなんかと似てますね。

でもそれなら今後使うことを考えて、いつも使っているBlender & pythonで作りたいなあ,ということで作りました.

原理

野球のボールの縫い目に沿ってボールを2分割します.

 

数式は探したら出てきました.あるもんですねーー。

www.darenscotwilson.com

これをblenderに移植します.

単位球表面における縫い目の位置は次式で表されます.

{displaystyle egin{eqnarray}left{egin{array}{l}x_alpha &=& cos(alpha) - B sin(3alpha) y_alpha &=& sin(alpha) + B sin(3alpha) z_alpha &=& F cos(2alpha)end{array} ight.end{eqnarray}}

ここで,(x_alpha, y_alpha, z_alpha)が alpha (0.0〜2pi)における 縫い目の単位球面上の座標値.このとき式にあるBとFは,

 B: 縫い目の隙間の幅を決める係数

 F: 縦横比を決める係数

となります.上のリンクにある図で引用すると,

http://www.darenscotwilson.com/spec/bbseam/bbseam-B0p6_F1p0.jpg

B=0.4
F=1.0
B=0.6
F=1.0
B=0.8
F=1.0

 今回はなんとなくB=0.5でやってみました.

ソースコードはこちら。

github.com

えい.実行!

f:id:tajmahal0707:20191220151055p:plain

こんなかんじに縫い目が出来上がりました.

あとは,これを繋いでポリゴン化(ここのソースコードは気が向いたら公開します)したあとで,ボールとbooleanかけると,,,,
 

f:id:tajmahal0707:20191220143456p:plain

こんな感じ.

これをstl化してFusion360に持ち込みます.

f:id:tajmahal0707:20191220151554p:plain

うっわ.Polygon量デカすぎ. 遅い! ボールのメッシュがすべてPolygonになってしまっているのですね.fusion360などのCAD系だと球は関数ですから, booleanの作業はfusion360で行うことにします.

f:id:tajmahal0707:20191220151823p:plain

先程の縫い目をPolygon化したもの(簡単のため半分(0~pi)だけ制作)をstlまたはobj形式で出力します.

この際に,Polygonの面の向きとか法線方向,重複点などの処理が必要なのですが今回は割愛.自分用のメモなので.

興味ある方からリクエストがあれば手順を書きます.

 

読み込んだstlFusion360上でメッシュとして読み込みます.

読み込んだあと,

f:id:tajmahal0707:20191220152826p:plain

「メッシュからBRep」に変換することで,メッシュをボディに変換することができ,その結果Fusion360上でオブジェクト同士のブーリアン演算などを行うことができるようになるのです.

半分のseamを鏡面コピーして準備完了。

f:id:tajmahal0707:20191220153215p:plain

さらにouter_shell(φ100mmのボール)からブーリアン演算で,inner_shellとseamを2つ抜きます.

f:id:tajmahal0707:20191220153508p:plain

えい,実行!

f:id:tajmahal0707:20191220153619p:plain

できましたw

これに,neon向けに穴あけ処理などを施して,photon-sで打ち出す前に確認としてAnycubic i3 Mega で打ち出してみます.


f:id:tajmahal0707:20191220084020j:imagef:id:tajmahal0707:20191220084023j:image

出ましたねえ。

嵌め込みが結構大変だけれど、なかなかいい感じ。なんだけれど気になる点が3つ

・嵌め込みがキツい。結構無理やり押し込んでる感じ。

・その割には嵌った後がユルい。カタカタいっちゃう感じ。この中にPOV入れて干渉しないかしらん

・この隙間にPOVを通せるのか? 

 

ユルさはこんな感じ.


Printed seam ball

 

今後はBの値を0.5→0.35にして隙間を開けてみようと思います。