#追記2022/01/14
SCADで「うっきー」試作、蛇腹のデザインに統一しました。
当初、レゴのようなブロックのおもちゃを考えていたのですが、ボンドで接着して組み上げるというスタイルは面倒くさいだけ、な、気がして、放置、
部品を串に刺して、重ね合わせることに限界を感じもやもやした気分のまま、3Dデータを制作していました。
SCADでコンパイル(メッシュ)せずにプレビューだけで動画を楽しむなら、使えなくはない気がします。後にBlenderに触れて、SCADファイルをインポートして、ビジュアルにこだわるてもありだということが解ったので、SCADでグラフィックは重要なことではなくなりました。
3DプリンターのためのSCAD、というのが通常の認識なのでしょうが、射影をSVGにしてくれる便利な機能を用意されていたので、大量に、このような部品を製作したいのなら、レーザー加工機の方が向いていると感じ、3Dプリンターから気持ちが遠のいてしまいました。
このような部品をCAD上でつなぎ合わせて、製作しています。
一つの部品を決めて、造形の内部を「うっきー」で取り尽くすという取り組みを数年かけてぼちぼちとやっていたのです。テーマに楽器を選びました。
「うっきー」で取り尽くしています。
以下は、SCADでアニメーションについて、ざっぱに試した記録になります。
お恥ずかし、過去記事、残しておきます。
#元記事2019/10/19
お粗末ですが。
PlayStation3でOpenSCAD。
かんな屑アート派生。
注)2個の部品の波と波を重ねるにはこの形状だと隙間が出きると思います。
クランプしてひん曲げる感じで接着になってしまいます。
ミリ単位の設定しか出来ないので3Dプリンタの用意が出来たら微調整をしてちゃんと噛み合うようにはしたいです。
以下の画像は修正前のものなので現在のものとは違います。
山は内径14mm、厚さ2mmの筒を3分の1(120°)取り出して谷は内径18mm厚さ2mmの3分の1をつなぎ合わせました。
辺の比1:2:√3の直角三角形で30°が出るんで180-30*2で作図できると思うんですが手打ちでやってます。
頓挫して放置もあり得るので、落書き程度のOpenSCADコード残しておきます。
tabで字下げ整えるの忘れてますが。
後で読み返してみると不審な点があるので次回以降で確認。
、程度低い感じの。
$fn=100;
difference () {
union () {
translate ([1, 7, 1]) {
cube (size = [75, 2, 6]);
}
for (i = [48,16]) {
translate ([i, 0, 1]) {
difference () {
translate ([10, 10, 0]) {
rotate_extrude () {
translate ([7, 0, 0]) {
square (size = [2, 6]);
}
}
}
cube ([40, 28, 16],center = true);
}
}
}
for (i = [64,32,0]) {
translate ([i, 8, 1]) {
intersection () {
translate ([10, 10, 0]) {
rotate_extrude () {
translate ([9, 0, 0]) {
square (size = [2, 6]);
}
}
}
cube ([40, 12, 16],center = true);
}
}
}
}
cube ([10, 20, 20]);
translate ([74, 0, 0]) {
cube ([8, 20, 20]);
}
}
difference () {
union () {
translate ([1, 7, 1]) {
cube (size = [75, 2, 6]);
}
for (i = [48,16]) {
translate ([i, 0, 1]) {
difference () {
translate ([10, 10, 0]) {
rotate_extrude () {
translate ([7, 0, 0]) {
square (size = [2, 6]);
}
}
}
cube ([40, 28, 16],center = true);
}
}
}
for (i = [64,32,0]) {
translate ([i, 8, 1]) {
intersection () {
translate ([10, 10, 0]) {
rotate_extrude () {
translate ([9, 0, 0]) {
square (size = [2, 6]);
}
}
}
cube ([40, 12, 16],center = true);
}
}
}
}
cube ([10, 20, 20]);
translate ([74, 0, 0]) {
cube ([8, 20, 20]);
}
}