2021年8月5日木曜日

OpenSCADとUltimaker Curaを使用して、LEGO互換のシャフトが差し込める2x2ブロックを作る

OpenSCADとUltimaker Curaを使用して、LEGO互換のシャフトが差し込める2x2ブロックを作るには以下の手順を実行します。

〇LEGO互換のシャフトが差し込める2x2ブロックの写真
※真ん中の白色ブロックが今回作った物、黒色のシャフトと黄色のブロックは純正のLEGOブロックです。

作成手順

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

・LEGO互換のシャフトが差し込める2x2ブロックのソース
// プレートの厚さ
PLATE_THICK=5;

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

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

// LEGOのシャフトのサイズ
SHAFT_MARGIN=0.2;
LEGO_SHAFT_THICK=1.8+SHAFT_MARGIN;
LEGO_SHAFT_SIZE=4.7+SHAFT_MARGIN;
LEGO_SHAFT_HEIGHT=PLATE_THICK+LEGO_BOTTOM_H;

rotate([-180,0,0])
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, -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);
                }
            }
        }
    }
    union()
    {
        // LEGOシャフトの穴
        translate([(LEGO_SQUARE*NUM_HOLE_W)/2-LEGO_SHAFT_SIZE/2, (LEGO_SQUARE*NUM_HOLE_D)/2-LEGO_SHAFT_THICK/2, -LEGO_BOTTOM_H])
        linear_extrude(height=LEGO_SHAFT_HEIGHT){
                square([LEGO_SHAFT_SIZE, LEGO_SHAFT_THICK]);
        }
        translate([(LEGO_SQUARE*NUM_HOLE_W)/2-LEGO_SHAFT_THICK/2, (LEGO_SQUARE*NUM_HOLE_D)/2-LEGO_SHAFT_SIZE/2, -LEGO_BOTTOM_H])
        linear_extrude(height=LEGO_SHAFT_HEIGHT){
                square([LEGO_SHAFT_THICK, LEGO_SHAFT_SIZE]);
        }
    }

}

・OpenSCADの画面

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

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

関連情報

OpenSCADまとめ

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

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

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

0 件のコメント:

コメントを投稿