〇巻取り式コードリールの写真
作成手順
1. OpenSCADで以下のコードを実行して形状を調整し、STLファイルにエクスポートします。巻取り式コードリールは、フタ部分、リール部分、底部分の各部分を印刷し、3つをはめ込んで作成します。
穴の半径など3Dプリンタや設定によって微調整してください。
・フタ部分
// コードリールの箱
REELBOX_W=60;
REELBOX_D=60;
REELBOX_H=15;
TOP_H=26;
// 底の厚さ
BOTTOM_THICK=2;
TOP_THICK=2;
// 側面の厚さ
WALL_THICK=4;
THIN_THICK=2;
THIN_WALL=2;
THIN_H=2;
// 四隅の丸み
CORNER_R=5;
// リール
REEL_R=17;
REEL_SR=15;
// コード用穴
HOLE_W=8;
HOLE_H=20;
//マージン
MARGIN=0.0;
MARGIN_CIRCLE=0.2;
module roundrect(px, py, pz, w, d, h, r)
{
iw = w - r*2;
id = d - r*2;
translate([px+r, py, pz])
linear_extrude(height=h){
square([iw, d]);
}
translate([px, py+r, pz])
linear_extrude(height=h){
square([w, id]);
}
translate([px+r, py+r, pz])
linear_extrude(height=h){
circle(r, $fn=50);
}
translate([px+w-r, py+r, pz])
linear_extrude(height=h){
circle(r, $fn=50);
}
translate([px+r, py+d-r, pz])
linear_extrude(height=h){
circle(r, $fn=50);
}
translate([px+w-r, py+d-r, pz])
linear_extrude(height=h){
circle(r, $fn=50);
}
}
difference(){
union(){
roundrect(0, 0, 0, REELBOX_W, REELBOX_D, TOP_H, CORNER_R);
}
union(){
roundrect(THIN_THICK-MARGIN, THIN_THICK-MARGIN, TOP_THICK, REELBOX_W-THIN_THICK*2+MARGIN*2, REELBOX_D-THIN_THICK*2+MARGIN*2, TOP_H, CORNER_R);
// コード穴
translate([REELBOX_W/2-HOLE_W/2, 0, TOP_H-HOLE_H])
linear_extrude(height=HOLE_H){
square([HOLE_W, REELBOX_D]);
}
// リール穴
translate([REELBOX_W/2, REELBOX_D/2, 0])
linear_extrude(height=THIN_WALL){
circle(REEL_SR-MARGIN_CIRCLE, $fn=50);
}
}
}
・OpenSCADの画面(フタ部分)
・リール部分
// コードリールの箱
REELBOX_W=60;
REELBOX_D=60;
REELBOX_H=15;
TOP_H=20;
// 底の厚さ
BOTTOM_THICK=2;
TOP_THICK=2;
// 側面の厚さ
WALL_THICK=4;
THIN_THICK=2;
THIN_WALL=2;
THIN_H=2;
// 四隅の丸み
CORNER_R=5;
// リール
REEL_R=17;
REEL_SR=15;
REEL_H=24;
REEL_BODY_R=15;
REEL_THICK=2;
// コード用穴
HOLE_W=8;
HOLE_H=14;
// ツメ部分
CROW_D=8;
//CROW_H=5;
CROW_GAP=3;
CROW_EDGE=3;
CROW_THICK=1.5;
//マージン
MARGIN=0.2;
HANDLE_W=8;
HANDLE_DEPTH=6;
REEL_CODE_W=5;
REEL_CODE_H=15;
difference(){
union(){
// リール
translate([0, 0, 0])
linear_extrude(height=REEL_THICK){
circle(REEL_R-MARGIN, $fn=50);
}
translate([0, 0, REEL_THICK])
linear_extrude(height=REEL_H-REEL_THICK*2){
circle(REEL_BODY_R-MARGIN, $fn=50);
}
translate([0, 0, REEL_H-REEL_THICK])
linear_extrude(height=REEL_THICK){
circle(REEL_R-MARGIN, $fn=50);
}
// 上部
translate([0, 0, REEL_H])
linear_extrude(height=TOP_THICK){
circle(REEL_SR-MARGIN, $fn=50);
}
}
union(){
// 上部
translate([0, 0, REEL_H-HANDLE_DEPTH])
linear_extrude(height=HANDLE_DEPTH+TOP_THICK){
circle(REEL_SR-REEL_THICK, $fn=50);
}
// コード穴
translate([-REEL_CODE_W/2, -REEL_R, 0])
linear_extrude(height=REEL_CODE_H){
square([REEL_CODE_W, REEL_R*2]);
}
translate([0, -REEL_R, REEL_CODE_H])
rotate([-90, 0, 0])
linear_extrude(height=REEL_R*2){
circle(REEL_CODE_W/2, $fn=50);
}
}
}
translate([-HANDLE_W/2, -REEL_SR+REEL_THICK, REEL_H-HANDLE_DEPTH])
linear_extrude(height=HANDLE_DEPTH+TOP_THICK){
square([HANDLE_W, (REEL_SR-REEL_THICK)*2]);
}
・OpenSCADの画面(リール部分)
・底部分
// コードリールの箱
REELBOX_W=60;
REELBOX_D=60;
REELBOX_H=2;
// 底の厚さ
BOTTOM_THICK=2;
// 側面の厚さ
WALL_THICK=4;
MARGIN=0;
THIN_WALL=2;
THIN_H=2;
INNER_WALL_H=7;
// 四隅の丸み
CORNER_R=5;
// リール
REEL_R=17;
// コード用穴
HOLE_W=8;
HOLE_H=8;
module roundrect(px, py, pz, w, d, h, r)
{
iw = w - r*2;
id = d - r*2;
translate([px+r, py, pz])
linear_extrude(height=h){
square([iw, d]);
}
translate([px, py+r, pz])
linear_extrude(height=h){
square([w, id]);
}
translate([px+r, py+r, pz])
linear_extrude(height=h){
circle(r, $fn=50);
}
translate([px+w-r, py+r, pz])
linear_extrude(height=h){
circle(r, $fn=50);
}
translate([px+r, py+d-r, pz])
linear_extrude(height=h){
circle(r, $fn=50);
}
translate([px+w-r, py+d-r, pz])
linear_extrude(height=h){
circle(r, $fn=50);
}
}
difference(){
union(){
roundrect(0, 0, 0, REELBOX_W, REELBOX_D, REELBOX_H, CORNER_R);
roundrect(THIN_WALL+MARGIN, THIN_WALL+MARGIN, 0, REELBOX_W-(THIN_WALL+MARGIN)*2, REELBOX_D-(THIN_WALL+MARGIN)*2, INNER_WALL_H, CORNER_R);
}
union(){
roundrect(WALL_THICK, WALL_THICK, BOTTOM_THICK, REELBOX_W-WALL_THICK*2, REELBOX_D-WALL_THICK*2, INNER_WALL_H, CORNER_R);
// コード穴
translate([REELBOX_W/2-HOLE_W/2, 0, REELBOX_H])
linear_extrude(height=INNER_WALL_H-REELBOX_H){
square([HOLE_W, REELBOX_D]);
}
translate([REELBOX_W/2, THIN_WALL, REELBOX_H])
linear_extrude(height=INNER_WALL_H-REELBOX_H){
circle(HOLE_W/2, $fn=50);
}
}
}
// リール用の輪
difference(){
union(){
translate([REELBOX_W/2, REELBOX_D/2, BOTTOM_THICK])
linear_extrude(height=THIN_WALL){
circle(REEL_R+THIN_WALL, $fn=50);
}
}
union(){
translate([REELBOX_W/2, REELBOX_D/2, BOTTOM_THICK])
linear_extrude(height=THIN_WALL){
circle(REEL_R, $fn=50);
}
}
}
・OpenSCADの画面(底部分)
2. Ultimaker CuraでSTLファイルを読み込み、スライスしてgcodeを保存します。
3. 3Dプリンターで印刷します
4. コードリールの組み立てとケーブルのセット
フタ部分の真ん中の穴にリール部分をはめます。リール部分のU字の溝にケーブルを通します。底部分を最後にはめて、リール部分の取っ手を回転させてケーブルを巻き取ります。
関連情報
・OpenSCADまとめ・OpenSCADとUltimaker Curaを使用して、単4電池保管ケースを作成する
0 件のコメント:
コメントを投稿