vibe-openscad

tier-1-mug / claude-fable-5-1

6 run / 累計 335.8s / 累計 $1.26

claude fable 5.1 bare

bare (provider default effort)

run detail →
render
bare render of tier-1-mug
loading STL…
success 30.0s · 222/1962t · $0.1003
SCAD (37 lines)
// ===== マグカップ =====
$fn = 96;

// --- カップ本体パラメータ ---
outer_d  = 80;    // 外径
height   = 100;   // 高さ
wall_t   = 4;     // 側面の肉厚
bottom_t = 6;     // 底面の厚み

// --- 取手パラメータ ---
handle_r    = 12;            // リング状取手の半径(リング中心線の半径)
handle_tube = 4;             // リング断面(パイプ)の半径
handle_z    = height / 2;    // 取手の取り付け高さ(カップ中心高さ)
handle_x    = outer_d/2 + handle_r;  // リング中心のX座標(外周からリング半径分外側)

// カップ本体:外筒から内側をくり抜く
module cup_body() {
    difference() {
        cylinder(d = outer_d, h = height);
        translate([0, 0, bottom_t])
            cylinder(d = outer_d - 2 * wall_t, h = height);
    }
}

// リング状の取手(トーラス)を側面に取り付け
module handle() {
    translate([handle_x, 0, handle_z])
        rotate([90, 0, 0])            // リングを縦(XZ平面)に立てる
            rotate_extrude()
                translate([handle_r, 0])
                    circle(r = handle_tube);
}

union() {
    cup_body();
    handle();
}
パラメータ (6) —
スライダを動かすと openscad-wasm で再レンダリング

prompt

OpenSCAD で、外径 80mm、高さ 100mm、肉厚 4mm のマグカップを作ってください。
底面の厚みは 6mm とし、内側はくり抜いて飲み物を入れられる形状にしてください。
さらに、側面には外径方向に飛び出す半径 12mm の取手(リング状の取手)を付けてください。
取手はカップの中心高さあたりに付け、外周から十分にはみ出して指を通せる形にしてください。

完成したコード全体を ```openscad ... ``` のフェンスで囲んで出力してください。コードのみで、追加の説明は不要です。

variant: effort

low success →
low
9.9s · 222/451t · $0.0248
SCAD (39 lines)
// マグカップ
outer_d   = 80;    // 外径
height    = 100;   // 高さ
wall      = 4;     // 側面の肉厚
bottom    = 6;     // 底の厚み

handle_r   = 12;   // 取手リングの半径(内側の穴の半径)
handle_t   = 5;    // 取手の太さ(断面の半径)

$fn = 96;

// カップ本体
module cup_body() {
    difference() {
        cylinder(d = outer_d, h = height);
        translate([0, 0, bottom])
            cylinder(d = outer_d - 2 * wall, h = height);
    }
}

// リング状の取手
module handle() {
    // カップ外周から少し内側へ食い込ませて確実に接合させる
    translate([outer_d / 2 + handle_r - 1, 0, height / 2])
        rotate([90, 0, 0])
            rotate_extrude(convexity = 4)
                translate([handle_r + handle_t, 0, 0])
                    circle(r = handle_t);
}

union() {
    cup_body();
    difference() {
        handle();
        // カップ内部にはみ出した取手部分を削除
        translate([0, 0, bottom])
            cylinder(d = outer_d - 2 * wall, h = height);
    }
}
mediumnot run
—
high (default) success →
high
30.0s · 222/1962t · $0.1003
SCAD (37 lines)
// ===== マグカップ =====
$fn = 96;

// --- カップ本体パラメータ ---
outer_d  = 80;    // 外径
height   = 100;   // 高さ
wall_t   = 4;     // 側面の肉厚
bottom_t = 6;     // 底面の厚み

// --- 取手パラメータ ---
handle_r    = 12;            // リング状取手の半径(リング中心線の半径)
handle_tube = 4;             // リング断面(パイプ)の半径
handle_z    = height / 2;    // 取手の取り付け高さ(カップ中心高さ)
handle_x    = outer_d/2 + handle_r;  // リング中心のX座標(外周からリング半径分外側)

// カップ本体:外筒から内側をくり抜く
module cup_body() {
    difference() {
        cylinder(d = outer_d, h = height);
        translate([0, 0, bottom_t])
            cylinder(d = outer_d - 2 * wall_t, h = height);
    }
}

// リング状の取手(トーラス)を側面に取り付け
module handle() {
    translate([handle_x, 0, handle_z])
        rotate([90, 0, 0])            // リングを縦(XZ平面)に立てる
            rotate_extrude()
                translate([handle_r, 0])
                    circle(r = handle_tube);
}

union() {
    cup_body();
    handle();
}
max success →
max
114.5s · 222/8899t · $0.4472
SCAD (57 lines)
// ============================================
// マグカップ (OpenSCAD)
// 外径 80mm / 高さ 100mm / 肉厚 4mm / 底厚 6mm
// 側面中央にリング状の取手(リング半径 12mm)
// ============================================
$fn = 96;

// --- カップ本体の寸法 ---
outer_d  = 80;               // 外径
height   = 100;              // 高さ
wall_t   = 4;                // 肉厚
bottom_t = 6;                // 底面の厚み

outer_r  = outer_d / 2;      // 外半径 = 40
inner_r  = outer_r - wall_t; // 内半径 = 36

// --- 取手の寸法 ---
handle_r  = 12;              // リングの半径(リング中心線までの半径)
handle_t  = 3.5;             // リングの太さ(断面円の半径) → 指穴の直径 = 2*(12-3.5) = 17mm
handle_z  = height / 2;      // 取手を付ける高さ(カップの中心高さ)

// リング中心の X 位置:
// リング中心線が外周に接するようにし、断面の内側半分を壁に埋め込んで一体化させる。
// これによりリングの穴は完全に外周の外側に出て、指を通せる。
handle_cx = outer_r + handle_r;

// 外側の円柱(本体)
module body() {
    cylinder(h = height, r = outer_r);
}

// 内側のくり抜き(底面 bottom_t を残し、上面は突き抜けさせる)
module cavity() {
    translate([0, 0, bottom_t])
        cylinder(h = height, r = inner_r);
}

// リング状の取手(トーラス)。+X 方向(半径方向)に飛び出す
module handle() {
    translate([handle_cx, 0, handle_z])
        rotate([90, 0, 0])              // リングを鉛直面(XZ 平面)に立てる
            rotate_extrude()
                translate([handle_r, 0])
                    circle(r = handle_t);
}

module mug() {
    difference() {
        union() {
            body();
            handle();
        }
        cavity();   // 取手が内側に食い込んでも飲み物の空間はきれいに残す
    }
}

mug();
xhigh success →
xhigh
36.8s · 222/2690t · $0.1367
SCAD (55 lines)
// ===============================
//  マグカップ (OpenSCAD)
//  外径 80mm / 高さ 100mm / 肉厚 4mm / 底厚 6mm
//  半径 12mm のリング状取手付き
// ===============================

$fn = 96;

// --- カップ本体のパラメータ ---
outer_d  = 80;    // 外径
height   = 100;   // 高さ
wall     = 4;     // 側面の肉厚
bottom   = 6;     // 底面の厚み

outer_r  = outer_d / 2;
inner_r  = outer_r - wall;

// --- 取手のパラメータ ---
handle_r      = 12;          // リングの半径(中心線の半径)
handle_tube_r = 4;           // リングの太さ(断面の半径)
handle_z      = height / 2;  // 取手の取り付け高さ(カップ中心高さ)

// リングの内側の穴がカップ外周の外に出るように、
// リング中心を外周より外側に配置する
handle_x = outer_r + handle_r - handle_tube_r;

// --- カップの外形(無垢の円柱) ---
module cup_body() {
    cylinder(r = outer_r, h = height);
}

// --- 内側のくり抜き(底厚を残す) ---
module cavity() {
    translate([0, 0, bottom])
        cylinder(r = inner_r, h = height - bottom + 1);
}

// --- リング状の取手(トーラス) ---
module handle() {
    translate([handle_x, 0, handle_z])
        rotate([90, 0, 0])             // リングを縦向き(XZ平面)にする
            rotate_extrude($fn = 96)
                translate([handle_r, 0, 0])
                    circle(r = handle_tube_r, $fn = 48);
}

// --- 組み立て ---
difference() {
    union() {
        cup_body();
        handle();
    }
    // 取手がカップ内部に食い込んだ部分も一緒に除去する
    cavity();
}

variant: thinking

offnot run
—
adaptive (default) success →
adaptive
114.5s · 222/8899t · $0.4472
SCAD (57 lines)
// ============================================
// マグカップ (OpenSCAD)
// 外径 80mm / 高さ 100mm / 肉厚 4mm / 底厚 6mm
// 側面中央にリング状の取手(リング半径 12mm)
// ============================================
$fn = 96;

// --- カップ本体の寸法 ---
outer_d  = 80;               // 外径
height   = 100;              // 高さ
wall_t   = 4;                // 肉厚
bottom_t = 6;                // 底面の厚み

outer_r  = outer_d / 2;      // 外半径 = 40
inner_r  = outer_r - wall_t; // 内半径 = 36

// --- 取手の寸法 ---
handle_r  = 12;              // リングの半径(リング中心線までの半径)
handle_t  = 3.5;             // リングの太さ(断面円の半径) → 指穴の直径 = 2*(12-3.5) = 17mm
handle_z  = height / 2;      // 取手を付ける高さ(カップの中心高さ)

// リング中心の X 位置:
// リング中心線が外周に接するようにし、断面の内側半分を壁に埋め込んで一体化させる。
// これによりリングの穴は完全に外周の外側に出て、指を通せる。
handle_cx = outer_r + handle_r;

// 外側の円柱(本体)
module body() {
    cylinder(h = height, r = outer_r);
}

// 内側のくり抜き(底面 bottom_t を残し、上面は突き抜けさせる)
module cavity() {
    translate([0, 0, bottom_t])
        cylinder(h = height, r = inner_r);
}

// リング状の取手(トーラス)。+X 方向(半径方向)に飛び出す
module handle() {
    translate([handle_cx, 0, handle_z])
        rotate([90, 0, 0])              // リングを鉛直面(XZ 平面)に立てる
            rotate_extrude()
                translate([handle_r, 0])
                    circle(r = handle_t);
}

module mug() {
    difference() {
        union() {
            body();
            handle();
        }
        cavity();   // 取手が内側に食い込んでも飲み物の空間はきれいに残す
    }
}

mug();
dynamicnot run
—