vibe-openscad

tier-1-mug / gpt-5.6-luna

6 run / 累計 251.8s / 累計 $0.0292

openai gpt 5.6 luna bare

bare (provider default effort)

run detail →
render
no render
render_error 27.8s · 168/2160t · $0.0026
openscad stl render failed (exit 1): ERROR: Parser error: syntax error in file ../../../../../tmp/render-5uTfVI/input.scad, line 18
Can't parse file '/tmp/render-5uTfVI/input.scad'!

SCAD (42 lines)
$fn = 128;

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

// 取手寸法
handle_radius = 12;
handle_tube_radius = 4;
handle_center_x = outer_radius + handle_radius - handle_tube_radius / 2;
handle_center_z = height / 2;

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

    translate([0, 0, bottom_thickness])
        cylinder(
            r = inner_radius,
            h = height
        );
};

// リング状の取手
handle = translate([handle_center_x, 0, handle_center_z])
    rotate([90, 0, 0])
        rotate_extrude(angle = 360)
            translate([handle_radius, 0, 0])
                circle(r = handle_tube_radius);

// カップと取手を一体化
union() {
    cup;
    handle;
}

prompt

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

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

variant: effort

low success →
low
22.6s · 168/1505t · $0.0018
SCAD (42 lines)
$fn = 128;

outer_diameter = 80;
outer_radius = outer_diameter / 2;
height = 100;
wall_thickness = 4;
bottom_thickness = 6;

inner_radius = outer_radius - wall_thickness;

handle_radius = 12;
handle_tube_radius = 4;
handle_center_x = outer_radius + handle_tube_radius + handle_radius - wall_thickness;
handle_center_z = height / 2;

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

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

module ring_handle() {
    translate([handle_center_x, 0, handle_center_z])
        rotate([90, 0, 0])
            rotate_extrude(convexity = 10)
                translate([handle_radius, 0, 0])
                    circle(r = handle_tube_radius);
}

union() {
    cup_body();
    ring_handle();
}
medium (default) render_error render →
render_error
27.8s · 168/2160t · $0.0026
openscad stl render failed (exit 1): ERROR: Parser error: syntax error in file ../../../../../tmp/render-5uTfVI/input.scad, line 18
Can't parse file '/tmp/render-5uTfVI/input.scad'!

SCAD (42 lines)
$fn = 128;

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

// 取手寸法
handle_radius = 12;
handle_tube_radius = 4;
handle_center_x = outer_radius + handle_radius - handle_tube_radius / 2;
handle_center_z = height / 2;

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

    translate([0, 0, bottom_thickness])
        cylinder(
            r = inner_radius,
            h = height
        );
};

// リング状の取手
handle = translate([handle_center_x, 0, handle_center_z])
    rotate([90, 0, 0])
        rotate_extrude(angle = 360)
            translate([handle_radius, 0, 0])
                circle(r = handle_tube_radius);

// カップと取手を一体化
union() {
    cup;
    handle;
}
high success →
high
24.0s · 168/2695t · $0.0033
SCAD (53 lines)
$fn = 128;

outer_diameter = 80;
outer_radius = outer_diameter / 2;
cup_height = 100;
wall_thickness = 4;
bottom_thickness = 6;
inner_radius = outer_radius - wall_thickness;

handle_outer_radius = 12;
handle_thickness = 4;
handle_inner_radius = handle_outer_radius - handle_thickness;
handle_depth = 8;
handle_center_x = outer_radius + handle_outer_radius - 2;
handle_center_z = cup_height / 2;

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

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

module ring_handle() {
    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
                );
            }
}

union() {
    cup();
    ring_handle();
}
max success →
max
79.1s · 168/8129t · $0.0098
SCAD (37 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_radius = 12;
handle_tube_radius = 4;
handle_center_x = outer_radius + handle_radius;
handle_center_z = cup_height / 2;

module torus(major_radius, minor_radius) {
    rotate_extrude(convexity = 10)
        translate([major_radius, 0, 0])
            circle(r = minor_radius);
}

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

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

union() {
    cup();

    translate([handle_center_x, 0, handle_center_z])
        rotate([90, 0, 0])
            torus(handle_radius, handle_tube_radius);
}
xhigh success →
xhigh
70.6s · 168/7516t · $0.0091
SCAD (33 lines)
$fn = 128;

outer_radius = 40;
inner_radius = 36;
cup_height = 100;
bottom_thickness = 6;

handle_outer_radius = 12;
handle_tube_radius = 2;
handle_centerline_radius = handle_outer_radius - handle_tube_radius;
handle_inner_radius = handle_centerline_radius - handle_tube_radius;
handle_center_x = outer_radius + handle_inner_radius;

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

difference() {
    union() {
        cylinder(r = outer_radius, h = cup_height);
        ring_handle();
    }

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