vibe-openscad

tier-1-mug / gpt-5.6-terra

6 run / 累計 223.3s / 累計 $0.2380

openai gpt 5.6 terra bare

bare (provider default effort)

run detail →
render
bare render of tier-1-mug
loading STL…
success 10.4s · 168/737t · $0.0092
SCAD (33 lines)
$fn = 128;

// マグカップ寸法
outer_radius = 40;
height = 100;
wall_thickness = 4;
bottom_thickness = 6;

// 取手寸法
handle_center_x = 55;
handle_center_z = height / 2;
handle_outer_radius = 18;
handle_inner_radius = 12;
handle_depth = 10;

// カップ本体
difference() {
    cylinder(h = height, r = outer_radius);

    translate([0, 0, bottom_thickness])
        cylinder(
            h = height - bottom_thickness + 1,
            r = outer_radius - wall_thickness
        );
}

// リング状の取手
translate([handle_center_x, 0, handle_center_z])
rotate([90, 0, 0])
difference() {
    cylinder(h = handle_depth, r = handle_outer_radius, center = true);
    cylinder(h = handle_depth + 2, r = handle_inner_radius, center = true);
}
パラメータ (8) —
スライダを動かすと openscad-wasm で再レンダリング

prompt

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

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

variant: effort

low success →
low
14.4s · 168/1174t · $0.0144
SCAD (17 lines)
$fn = 128;

// カップ本体
difference() {
    cylinder(d = 80, h = 100);

    // 内部くり抜き(側面肉厚 4mm、底面厚み 6mm)
    translate([0, 0, 6])
        cylinder(d = 72, h = 95);
}

// リング状取手
translate([48, 0, 50])
    rotate([90, 0, 0])
        rotate_extrude()
            translate([12, 0, 0])
                circle(r = 4, $fn = 48);
medium (default) success →
medium
10.4s · 168/737t · $0.0092
SCAD (33 lines)
$fn = 128;

// マグカップ寸法
outer_radius = 40;
height = 100;
wall_thickness = 4;
bottom_thickness = 6;

// 取手寸法
handle_center_x = 55;
handle_center_z = height / 2;
handle_outer_radius = 18;
handle_inner_radius = 12;
handle_depth = 10;

// カップ本体
difference() {
    cylinder(h = height, r = outer_radius);

    translate([0, 0, bottom_thickness])
        cylinder(
            h = height - bottom_thickness + 1,
            r = outer_radius - wall_thickness
        );
}

// リング状の取手
translate([handle_center_x, 0, handle_center_z])
rotate([90, 0, 0])
difference() {
    cylinder(h = handle_depth, r = handle_outer_radius, center = true);
    cylinder(h = handle_depth + 2, r = handle_inner_radius, center = true);
}
high success →
high
34.7s · 168/2893t · $0.0351
SCAD (46 lines)
$fn = 128;

// カップ寸法
outer_diameter = 80;
outer_radius   = outer_diameter / 2;
height         = 100;
wall_thickness = 4;
bottom_thickness = 6;

// 取手寸法
handle_outer_radius = 12;
handle_inner_radius = 8;
handle_depth        = 8;
handle_center_x     = outer_radius + handle_outer_radius - 2;
handle_center_z     = height / 2;

union() {
    // カップ本体
    difference() {
        cylinder(r = outer_radius, h = height);

        // 内側のくり抜き
        translate([0, 0, bottom_thickness])
            cylinder(
                r = outer_radius - wall_thickness,
                h = height - bottom_thickness + 1
            );
    }

    // リング状の取手
    translate([handle_center_x, 0, handle_center_z])
        rotate([90, 0, 0])
            difference() {
                cylinder(
                    r = handle_outer_radius,
                    h = handle_depth,
                    center = true
                );

                cylinder(
                    r = handle_inner_radius,
                    h = handle_depth + 2,
                    center = true
                );
            }
}
max success →
max
89.8s · 168/8515t · $0.1025
SCAD (38 lines)
$fn = 128;

outer_diameter = 80;
cup_height = 100;
wall_thickness = 4;
bottom_thickness = 6;

outer_radius = outer_diameter / 2;
inner_radius = outer_radius - wall_thickness;

handle_ring_radius = 12;
handle_tube_radius = 2;
handle_center_x = outer_radius + handle_ring_radius;

module cup_body() {
    difference() {
        cylinder(r = outer_radius, h = cup_height);

        translate([0, 0, bottom_thickness])
            cylinder(
                r = inner_radius,
                h = cup_height - bottom_thickness + 1
            );
    }
}

module ring_handle() {
    translate([handle_center_x, 0, cup_height / 2])
        rotate([90, 0, 0])
            rotate_extrude(convexity = 10)
                translate([handle_ring_radius, 0, 0])
                    circle(r = handle_tube_radius);
}

union() {
    cup_body();
    ring_handle();
}
xhigh success →
xhigh
63.5s · 168/5611t · $0.0677
SCAD (37 lines)
$fn = 96;

cup_outer_radius = 40;
cup_inner_radius = 36;
cup_height       = 100;
bottom_thickness = 6;

handle_inner_radius = 12;
handle_grip_radius  = 4;
handle_major_radius = handle_inner_radius + handle_grip_radius;
handle_center_x     = cup_outer_radius + handle_major_radius + handle_grip_radius - 2;
handle_center_z     = cup_height / 2;

module cup_body() {
    difference() {
        cylinder(r = cup_outer_radius, h = cup_height);

        translate([0, 0, bottom_thickness])
            cylinder(
                r = cup_inner_radius,
                h = cup_height - bottom_thickness + 1
            );
    }
}

module handle() {
    translate([handle_center_x, 0, handle_center_z])
        rotate([90, 0, 0])
            rotate_extrude()
                translate([handle_major_radius, 0, 0])
                    circle(r = handle_grip_radius, $fn = 32);
}

union() {
    cup_body();
    handle();
}