2021年8月13日金曜日

OpenSCADとUltimaker Curaを使用して、LEGO互換の垂直方向サーボモーター固定台を作る

OpenSCADとUltimaker Curaを使用して、LEGO互換の垂直方向サーボモーター固定台を作るには以下の手順を実行します。

〇LEGO互換の垂直方向サーボモーター固定台の写真
※白色の垂直方向サーボモーター固定台が今回作った物、黒色のプレート・赤ブロックは純正のLEGOブロックです。

作成手順

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

・LEGO互換の垂直方向サーボモーター固定台の上位部分
// サーボモーター固定台
MOUNTER_THICK=2;
MOUNTER_BOTTOM_THICK=1;
BOX_W=7.95*5;
BOX_H=7.95*2;
SERVO_BOTTOM=7;

// アーム部分
MOUNTER_W=23;
MOUNTER_D=9;
HOLE_RADIUS=0.6;
HANDLE_W = 5;
HANDLE_H=12.2;

module lego_vert_mounter()
{
    difference()
    {
        union()
        {

            translate([-HANDLE_W, 0, 0])
            linear_extrude(height=MOUNTER_THICK){
                square([MOUNTER_W+HANDLE_W*2, MOUNTER_D]);
            }
            translate([-HANDLE_W, 0, MOUNTER_THICK])
            linear_extrude(height=HANDLE_H){
                square([HANDLE_W, MOUNTER_D]);
            }
            translate([MOUNTER_W, 0, MOUNTER_THICK])
            linear_extrude(height=HANDLE_H){
                square([HANDLE_W, MOUNTER_D]);
            }

        }
        // サーボモーター固定用穴
        rotate([-90,0,0])
        translate([-HANDLE_W/2, -MOUNTER_THICK-HANDLE_H/2, 0])
        linear_extrude(height=MOUNTER_D){
            circle(HOLE_RADIUS, $fn=50);
        }

        rotate([-90,0,0])
        translate([MOUNTER_W+HANDLE_W/2, -MOUNTER_THICK-HANDLE_H/2, 0])
        linear_extrude(height=MOUNTER_D){
            circle(HOLE_RADIUS, $fn=50);
        }

    }   

    // servo motor直下
    translate([-HANDLE_W, MOUNTER_D, 0])
    linear_extrude(height=MOUNTER_THICK){
        square([BOX_W, SERVO_BOTTOM]);
    }
    translate([-HANDLE_W, MOUNTER_D+SERVO_BOTTOM, 0])
        linear_extrude(height=BOX_H){
            square([BOX_W, MOUNTER_BOTTOM_THICK]);
    }

}
lego_vert_mounter();

・OpenSCADの画面(上位部分)

・LEGO互換の垂直方向サーボモーター固定台の下位部分
// プレートの厚さ
PLATE_THICK=1;

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

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

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=LEGO_PEG_H){
    square([LEGO_SQUARE*NUM_HOLE_W, LEGO_WALL]);
}

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

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

translate([LEGO_SQUARE*NUM_HOLE_W-LEGO_WALL, 0, PLATE_THICK])
linear_extrude(height=LEGO_PEG_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), PLATE_THICK])
        linear_extrude(height=LEGO_PEG_H){
            circle(LEGO_BOTTOM_CIRCLE/2, $fn=50);
        }
    }
}

・OpenSCADの画面(下位部分)

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

3. 3Dプリンターで印刷します
固定台と突起部分の2つのパーツを印刷します。

4. タミヤセメントなどの接着剤で上位部分と下位部分を接着します。クリップなどで固定するとより強固に接着できます。

関連情報

OpenSCADまとめ

OpenSCADとUltimaker Curaを使用して、LEGO Technic互換の穴とSG90ギアに対応する穴がついた十字アームを作る

OpenSCADとUltimaker Curaを使用して、LEGOブロック上に固定できるLEDキューブを作成する

0 件のコメント:

コメントを投稿