2021年8月17日火曜日

OpenSCADとUltimaker Curaを使用して、micro:bitをLEGOブロック上に縦置きできるホルダーを作成する

OpenSCADとUltimaker Curaを使用して、micro:bitをLEGOブロック上に縦置きできるホルダーを作成するには以下の手順を実行します。

〇micro:bitをLEGOブロック上に縦置きできるホルダーの写真
白い部分が3Dプリンターで作成したmicro:bitを縦置きできるホルダーです。そのほかは純正のLEGOブロックです。ホルダーの上下にLEGO互換の突起・穴がついています。
ブロックの中央に溝がついているので、そこにmicro:bitを差し込みます。

作成手順

1. OpenSCADで以下のコードを実行して形状を調整し、STLファイルにエクスポートします。
3Dプリンタの種類や設定によって、パラメータを微調整してください。

// プレートの厚さ
PLATE_THICK=7;

// LEGOの1ブロック
LEGO_SQUARE=7.95;
// 突起の直径
LEGO_PEG=4.9;
LEGO_PEG_R=LEGO_PEG/2;
LEGO_PEG_H=1.8;
// LEGOの側面の厚さ
LEGO_WALL=1.5;
// LEGOの底面の円の直径
LEGO_BOTTOM_CIRCLE=6.4;
// 底の側面の高さ
LEGO_BOTTOM_H=2.6;

// プレートのサイズ(ブロック単位)
NUM_HOLE_W=8;
NUM_HOLE_D=2;

// 柱の高さ
PILLAR_H=38.5;

// レールの厚さ
RAIL_THICK=2.2;
RAIL_DEPTH=3;

difference(){
    union(){
        // 上面プレート
        translate([0, 0, 0])
        linear_extrude(height=PLATE_THICK){
            square([LEGO_SQUARE*NUM_HOLE_W, LEGO_SQUARE*NUM_HOLE_D]);
        }

        // 左側柱
        translate([0, 0, PLATE_THICK])
        linear_extrude(height=PILLAR_H){
            square([LEGO_SQUARE, LEGO_SQUARE*NUM_HOLE_D]);
        }
        // 左側突起
        for( ld = [0 : NUM_HOLE_D-1] ){
            translate([LEGO_SQUARE/2, LEGO_SQUARE*ld+LEGO_SQUARE/2, PLATE_THICK+PILLAR_H])
            linear_extrude(height=LEGO_PEG_H){
                circle(LEGO_PEG_R, $fn=50);
            }
        }

        // 右側柱
        translate([LEGO_SQUARE*(NUM_HOLE_W-1), 0, PLATE_THICK])
        linear_extrude(height=PILLAR_H){
            square([LEGO_SQUARE, LEGO_SQUARE*NUM_HOLE_D]);
        }

        // 右側突起
        for( ld = [0 : NUM_HOLE_D-1] ){
            translate([LEGO_SQUARE*(NUM_HOLE_W-1)+LEGO_SQUARE/2, LEGO_SQUARE*ld+LEGO_SQUARE/2, PLATE_THICK+PILLAR_H])
            linear_extrude(height=LEGO_PEG_H){
                circle(LEGO_PEG_R, $fn=50);
            }
        }

        // 側面
        translate([0, 0, -LEGO_BOTTOM_H])
        linear_extrude(height=LEGO_BOTTOM_H){
            square([LEGO_SQUARE*NUM_HOLE_W, LEGO_WALL]);
        }

        translate([0, LEGO_SQUARE*NUM_HOLE_D-LEGO_WALL, -LEGO_BOTTOM_H])
        linear_extrude(height=LEGO_BOTTOM_H){
            square([LEGO_SQUARE*NUM_HOLE_W, LEGO_WALL]);
        }

        translate([0, 0, -LEGO_BOTTOM_H])
        linear_extrude(height=LEGO_BOTTOM_H){
            square([LEGO_WALL, LEGO_SQUARE*NUM_HOLE_D]);
        }

        translate([LEGO_SQUARE*NUM_HOLE_W-LEGO_WALL, 0, -LEGO_BOTTOM_H])
        linear_extrude(height=LEGO_BOTTOM_H){
            square([LEGO_WALL, LEGO_SQUARE*NUM_HOLE_D]);
        }

        // 下の円柱
        for( lw = [0 : NUM_HOLE_W-2] ){
            for( ld = [0 : NUM_HOLE_D-2] ){
                translate([LEGO_SQUARE*(lw+1), LEGO_SQUARE*(ld+1), -LEGO_BOTTOM_H])
                linear_extrude(height=LEGO_BOTTOM_H){
                    circle(LEGO_BOTTOM_CIRCLE/2, $fn=50);
                }
            }
        }
    }
    translate([LEGO_SQUARE-RAIL_DEPTH, LEGO_SQUARE-RAIL_THICK/2, PLATE_THICK-RAIL_DEPTH])
    linear_extrude(height=PILLAR_H+RAIL_DEPTH){
        square([LEGO_SQUARE*(NUM_HOLE_W-2)+RAIL_DEPTH*2, RAIL_THICK]);
    }
}

・OpenSCADの画面

2. Ultimaker CuraでSTLファイルを読み込み、スライスしてgcodeを保存します。

3. 3Dプリンターで印刷します

関連情報

OpenSCADまとめ

OpenSCADとUltimaker Curaを使用してRaspberry Pi Picoのケースを作成する

0 件のコメント:

コメントを投稿