2021年8月3日火曜日

OpenSCADとUltimaker Curaを使用して、LEGO互換の凹みがついたサーボモーター固定台を作る

OpenSCADとUltimaker Curaを使用して、LEGO互換の凹みがついたサーボモーター固定台を作るには以下の手順を実行します。

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

作成手順

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

・LEGO互換の凹みがついたサーボモーター固定台
// LEGO servo mounter
// 底版の厚さ
MOUNTER_THICK=1;
// サーボ固定アームオフセット
ARM_OFFSET=6.4;
// サーボ固定アーム間距離
ARM_DISTANCE=22.5;

// LEGOの1ブロック
LEGO_SQUARE=7.95;
// LEGOの側面の厚さ
LEGO_WALL=1.5;
// LEGOの底面の円の直径
LEGO_BOTTOM_CIRCLE=6.4;

LEGO_BOTTOM_H=3;

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

// サーボ固定アーム
MOUNTER_HANDLE_D=8;
MOUNTER_HANDLE_H=12.2;
MOUNTER_HANDLE_W=4.65;

// サーボ固定底面
//MOUNTER_BOTTOM_D=5;
// ネジ穴
HOLE_RADIUS=0.9;

module lego_servo_mounter()
{
    difference()
    {
        union()
        {
            translate([0, 0, 0])
            linear_extrude(height=MOUNTER_THICK){
                square([LEGO_SQUARE*NUM_HOLE_W, LEGO_SQUARE*NUM_HOLE_D]);
            }

            translate([0, ARM_OFFSET, MOUNTER_THICK])
            linear_extrude(height=MOUNTER_HANDLE_H){
                square([MOUNTER_HANDLE_W, MOUNTER_HANDLE_D]);
            }
            translate([ARM_DISTANCE+MOUNTER_HANDLE_W, ARM_OFFSET, MOUNTER_THICK])
            linear_extrude(height=MOUNTER_HANDLE_H){
                square([MOUNTER_HANDLE_W, MOUNTER_HANDLE_D]);
            }

            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);
                    }
                }
            }

        }

        rotate([-90,0,0])
        translate([MOUNTER_HANDLE_W/2, -MOUNTER_THICK-MOUNTER_HANDLE_H/2, ARM_OFFSET])
        linear_extrude(height=MOUNTER_HANDLE_D){
            circle(HOLE_RADIUS, $fn=50);
        }
        rotate([-90,0,0])
        translate([MOUNTER_HANDLE_W/2+ARM_DISTANCE+MOUNTER_HANDLE_W, -MOUNTER_THICK-MOUNTER_HANDLE_H/2, ARM_OFFSET])
        linear_extrude(height=MOUNTER_HANDLE_D){
            circle(HOLE_RADIUS, $fn=50);
        }

    }   
}
lego_servo_mounter();

・OpenSCADの画面

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

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

関連情報

OpenSCADまとめ

・LEGOに関する他の記事は、こちらを参照してください。

OpenSCADとUltimaker Curaを使用して、LEGO互換の突起がついたサーボモーター固定台を作る
※プレートの下側にサーボモーターを配置したい場合は、以下のページを参照してください。

0 件のコメント:

コメントを投稿