〇LEGO Technic互換の穴とSG92Rギアに対応する穴がついた十字アームの写真
※十字アームに付けられている灰色の部品は純正のLEGOブロックです。
作成手順
1. OpenSCADで以下のコードを実行して形状を調整し、STLファイルにエクスポートします。・穴の半径など3Dプリンタや設定によって微調整してください。
・ギアの歯の半径サイズはSMALL_RADIUS/LARGE_RADIUSで変更できます。ギアが緩かったり、はまらなかった場合は増減して調整してください。
・アームのサイズは穴・ギアの数を表すNUM_HOLE_Wで調整できます。奇数を指定してください。
〇LEGO Technic互換の穴とSG92Rギアに対応する穴がついた十字アームのソースコード
// アームの厚さ
PLATE_THICK=4;
// LEGOの1ブロック
LEGO_SQUARE=7.95;
// 突起の直径
HOLE_MARGIN=0.5;
LEGO_HOLE=4.8+HOLE_MARGIN;
LEGO_HOLE_R=LEGO_HOLE/2;
LEGO_HOLE_H=1.8;
LEGO_HOLE_L=6.2+HOLE_MARGIN;
LEGO_HOLE_LR=LEGO_HOLE_L/2;
LEGO_HOLE_LH=0.5;
// プレートのサイズ(ブロック単位)
NUM_HOLE_W=7; // 奇数を指定してください
NUM_HOLE_D=1;
// SG92Rのギアのサイズ
SMALL_RADIUS=4.70/2;
LARGE_RADIUS=4.82/2;
NUM_POINTS=20;
GEAR_HEIGHT=3;
ANGLE = 360/NUM_POINTS/2;
module lego_servo_arm()
{
difference()
{
union(){
translate([-(LEGO_SQUARE*(NUM_HOLE_W-1))/2, -LEGO_SQUARE/2, 0])
linear_extrude(height=PLATE_THICK){
square([LEGO_SQUARE*(NUM_HOLE_W-1), LEGO_SQUARE*NUM_HOLE_D]);
}
translate([-(LEGO_SQUARE*NUM_HOLE_W)/2+LEGO_SQUARE/2, 0, 0])
linear_extrude(height=PLATE_THICK){
circle(LEGO_SQUARE/2, $fn=50);
}
translate([(LEGO_SQUARE*NUM_HOLE_W)/2-LEGO_SQUARE/2, 0, 0])
linear_extrude(height=PLATE_THICK){
circle(LEGO_SQUARE/2, $fn=50);
}
}
union(){
for( lw = [0 : NUM_HOLE_W-1] ){
for( ld = [0 : NUM_HOLE_D-1] ){
if( floor(NUM_HOLE_W/2) != lw ){
translate([-(LEGO_SQUARE*NUM_HOLE_W)/2+LEGO_SQUARE*lw+LEGO_SQUARE/2, LEGO_SQUARE*ld+LEGO_SQUARE/2-LEGO_SQUARE/2, 0])
linear_extrude(height=PLATE_THICK){
circle(LEGO_HOLE_R, $fn=50);
}
translate([-(LEGO_SQUARE*NUM_HOLE_W)/2+LEGO_SQUARE*lw+LEGO_SQUARE/2, LEGO_SQUARE*ld+LEGO_SQUARE/2-LEGO_SQUARE/2, 0])
linear_extrude(height=LEGO_HOLE_LH){
circle(LEGO_HOLE_LR, $fn=50);
}
translate([-(LEGO_SQUARE*NUM_HOLE_W)/2+LEGO_SQUARE*lw+LEGO_SQUARE/2, LEGO_SQUARE*ld+LEGO_SQUARE/2-LEGO_SQUARE/2, PLATE_THICK-LEGO_HOLE_LH])
linear_extrude(height=LEGO_HOLE_LH){
circle(LEGO_HOLE_LR, $fn=50);
}
}
}
}
}
}
}
difference(){
union(){
lego_servo_arm();
rotate([0, 0, 90])
lego_servo_arm();
}
union()
{
translate([0, 0, 0])
linear_extrude(height=PLATE_THICK){
for( pt = [0 : NUM_POINTS-1]) {
l_px = cos(pt*ANGLE*2)*LARGE_RADIUS;
l_py = sin(pt*ANGLE*2)*LARGE_RADIUS;
s_px = cos(pt*ANGLE*2+ANGLE)*SMALL_RADIUS;
s_py = sin(pt*ANGLE*2+ANGLE)*SMALL_RADIUS;
l_px2 = cos(pt*ANGLE*2+ANGLE*2)*LARGE_RADIUS;
l_py2 = sin(pt*ANGLE*2+ANGLE*2)*LARGE_RADIUS;
polygon(points=[[0, 0], [l_px, l_py], [s_px, s_py], [l_px2, l_py2]], paths = [[0, 1, 2, 3]]);
}
}
}
}
〇OpenSCADの画面
2. Ultimaker CuraでSTLファイルを読み込み、スライスしてgcodeを保存します。
3. 3Dプリンターで印刷します
関連情報
・OpenSCADまとめ・OpenSCADとUltimaker Curaを使用して、LEGOブロック上に固定できるLEDキューブを作成する
・OpenSCADとUltimaker Curaを使用して、LEGO Technic互換の穴とSG92Rギアに対応する穴が端についたアームを作る
0 件のコメント:
コメントを投稿