—
tier-1-mug / gpt-5.3-codex
5 run / 累計 24.4s / 累計 $0.0241
openai gpt 5.3 codex bare
bare (provider default effort)
run detail → render
$fn = 128;
// Dimensions
outer_d = 80;
outer_r = outer_d / 2;
height = 100;
wall_t = 4;
bottom_t = 6;
inner_d = outer_d - 2 * wall_t;
inner_r = inner_d / 2;
inner_h = height - bottom_t;
// Handle (ring)
handle_tube_r = 12; // 半径12mmのリング断面
handle_center_offset = outer_r + 20; // カップ外周から十分にはみ出す位置
handle_z = height / 2; // 中心高さ付近
module mug_body() {
difference() {
cylinder(h = height, r = outer_r);
translate([0, 0, bottom_t])
cylinder(h = inner_h, r = inner_r);
}
}
module handle_ring() {
// トーラス(リング)をYZ平面に配置し、X方向へ飛び出す取手にする
translate([handle_center_offset, 0, handle_z])
rotate([90, 0, 0])
rotate_extrude(angle = 360)
translate([20, 0, 0])
circle(r = handle_tube_r);
}
union() {
mug_body();
handle_ring();
} パラメータ (5) —
スライダを動かすと openscad-wasm で再レンダリング
prompt
OpenSCAD で、外径 80mm、高さ 100mm、肉厚 4mm のマグカップを作ってください。 底面の厚みは 6mm とし、内側はくり抜いて飲み物を入れられる形状にしてください。 さらに、側面には外径方向に飛び出す半径 12mm の取手(リング状の取手)を付けてください。 取手はカップの中心高さあたりに付け、外周から十分にはみ出して指を通せる形にしてください。 完成したコード全体を ```openscad ... ``` のフェンスで囲んで出力してください。コードのみで、追加の説明は不要です。
variant: effort
SCAD (39 lines)
$fn = 128;
// Dimensions
outer_d = 80;
outer_r = outer_d / 2;
height = 100;
wall_t = 4;
bottom_t = 6;
inner_d = outer_d - 2 * wall_t;
inner_r = inner_d / 2;
inner_h = height - bottom_t;
// Handle (ring)
handle_tube_r = 12; // 半径12mmのリング断面
handle_center_offset = outer_r + 20; // カップ外周から十分にはみ出す位置
handle_z = height / 2; // 中心高さ付近
module mug_body() {
difference() {
cylinder(h = height, r = outer_r);
translate([0, 0, bottom_t])
cylinder(h = inner_h, r = inner_r);
}
}
module handle_ring() {
// トーラス(リング)をYZ平面に配置し、X方向へ飛び出す取手にする
translate([handle_center_offset, 0, handle_z])
rotate([90, 0, 0])
rotate_extrude(angle = 360)
translate([20, 0, 0])
circle(r = handle_tube_r);
}
union() {
mug_body();
handle_ring();
} —
—
—
iteration: iter-png
diff vs bare: +7/-5
$fn = 128;
// Dimensions
outer_d = 80;
outer_r = outer_d / 2;
height = 100;
wall_t = 4;
bottom_t = 6;
inner_d = outer_d - 2 * wall_t;
inner_r = inner_d / 2;
inner_h = height - bottom_t;
// Handle (ring)
- handle_tube_r = 12; // 半径12mmのリング断面
- handle_center_offset = outer_r + 20; // カップ外周から十分にはみ出す位置
- handle_z = height / 2; // 中心高さ付近
+ handle_tube_r = 12; // 半径12mm(取手の太さ)
+ handle_ring_major_r = 18; // 指を通すためのリング半径
+ handle_center_offset = outer_r + 8; // 外周から十分にはみ出す位置
+ handle_z = height / 2; // 中心高さ付近
module mug_body() {
difference() {
cylinder(h = height, r = outer_r);
+ // 上面を開口し、底厚6mmを残して内側をくり抜く
translate([0, 0, bottom_t])
- cylinder(h = inner_h, r = inner_r);
+ cylinder(h = inner_h + 0.1, r = inner_r);
}
}
module handle_ring() {
// トーラス(リング)をYZ平面に配置し、X方向へ飛び出す取手にする
translate([handle_center_offset, 0, handle_z])
rotate([90, 0, 0])
rotate_extrude(angle = 360)
- translate([20, 0, 0])
+ translate([handle_ring_major_r, 0, 0])
circle(r = handle_tube_r);
}
union() {
mug_body();
handle_ring();
}
SCAD (41 lines)
$fn = 128;
// Dimensions
outer_d = 80;
outer_r = outer_d / 2;
height = 100;
wall_t = 4;
bottom_t = 6;
inner_d = outer_d - 2 * wall_t;
inner_r = inner_d / 2;
inner_h = height - bottom_t;
// Handle (ring)
handle_tube_r = 12; // 半径12mm(取手の太さ)
handle_ring_major_r = 18; // 指を通すためのリング半径
handle_center_offset = outer_r + 8; // 外周から十分にはみ出す位置
handle_z = height / 2; // 中心高さ付近
module mug_body() {
difference() {
cylinder(h = height, r = outer_r);
// 上面を開口し、底厚6mmを残して内側をくり抜く
translate([0, 0, bottom_t])
cylinder(h = inner_h + 0.1, r = inner_r);
}
}
module handle_ring() {
// トーラス(リング)をYZ平面に配置し、X方向へ飛び出す取手にする
translate([handle_center_offset, 0, handle_z])
rotate([90, 0, 0])
rotate_extrude(angle = 360)
translate([handle_ring_major_r, 0, 0])
circle(r = handle_tube_r);
}
union() {
mug_body();
handle_ring();
}
diff vs i1: +18/-17
$fn = 128;
- // Dimensions
+ // Cup dimensions
outer_d = 80;
outer_r = outer_d / 2;
- height = 100;
- wall_t = 4;
+ height = 100;
+ wall_t = 4;
bottom_t = 6;
- inner_d = outer_d - 2 * wall_t;
- inner_r = inner_d / 2;
- inner_h = height - bottom_t;
+ inner_r = outer_r - wall_t;
- // Handle (ring)
- handle_tube_r = 12; // 半径12mm(取手の太さ)
- handle_ring_major_r = 18; // 指を通すためのリング半径
- handle_center_offset = outer_r + 8; // 外周から十分にはみ出す位置
- handle_z = height / 2; // 中心高さ付近
+ // Handle dimensions (ring-shaped)
+ handle_tube_r = 12; // specified: 半径12mm
+ handle_major_r = 22; // ring radius to ensure finger-pass hole
+ handle_z = height / 2; // centered in height
+ // Place handle so it intersects cup side and protrudes enough outward
+ // Inner-most x of handle = handle_center_x - (handle_major_r + handle_tube_r)
+ // Set this slightly inside outer wall for robust union.
+ handle_center_x = outer_r + (handle_major_r + handle_tube_r) - 2;
+
module mug_body() {
difference() {
cylinder(h = height, r = outer_r);
- // 上面を開口し、底厚6mmを残して内側をくり抜く
+ // Hollow interior, leaving bottom thickness = 6mm
translate([0, 0, bottom_t])
- cylinder(h = inner_h + 0.1, r = inner_r);
+ cylinder(h = height - bottom_t + 0.2, r = inner_r);
}
}
module handle_ring() {
- // トーラス(リング)をYZ平面に配置し、X方向へ飛び出す取手にする
- translate([handle_center_offset, 0, handle_z])
- rotate([90, 0, 0])
+ translate([handle_center_x, 0, handle_z])
+ rotate([90, 0, 0]) // put torus axis along Y so it protrudes in +X
rotate_extrude(angle = 360)
- translate([handle_ring_major_r, 0, 0])
+ translate([handle_major_r, 0, 0])
circle(r = handle_tube_r);
}
union() {
mug_body();
handle_ring();
}
SCAD (42 lines)
$fn = 128;
// Cup dimensions
outer_d = 80;
outer_r = outer_d / 2;
height = 100;
wall_t = 4;
bottom_t = 6;
inner_r = outer_r - wall_t;
// Handle dimensions (ring-shaped)
handle_tube_r = 12; // specified: 半径12mm
handle_major_r = 22; // ring radius to ensure finger-pass hole
handle_z = height / 2; // centered in height
// Place handle so it intersects cup side and protrudes enough outward
// Inner-most x of handle = handle_center_x - (handle_major_r + handle_tube_r)
// Set this slightly inside outer wall for robust union.
handle_center_x = outer_r + (handle_major_r + handle_tube_r) - 2;
module mug_body() {
difference() {
cylinder(h = height, r = outer_r);
// Hollow interior, leaving bottom thickness = 6mm
translate([0, 0, bottom_t])
cylinder(h = height - bottom_t + 0.2, r = inner_r);
}
}
module handle_ring() {
translate([handle_center_x, 0, handle_z])
rotate([90, 0, 0]) // put torus axis along Y so it protrudes in +X
rotate_extrude(angle = 360)
translate([handle_major_r, 0, 0])
circle(r = handle_tube_r);
}
union() {
mug_body();
handle_ring();
}
diff vs i2: +12/-15
$fn = 128;
// Cup dimensions
- outer_d = 80;
- outer_r = outer_d / 2;
- height = 100;
- wall_t = 4;
+ outer_d = 80;
+ outer_r = outer_d / 2;
+ height = 100;
+ wall_t = 4;
bottom_t = 6;
inner_r = outer_r - wall_t;
- // Handle dimensions (ring-shaped)
- handle_tube_r = 12; // specified: 半径12mm
- handle_major_r = 22; // ring radius to ensure finger-pass hole
- handle_z = height / 2; // centered in height
+ // Handle (ring/torus) dimensions
+ handle_tube_r = 12; // specified radius 12mm
+ handle_major_r = 20; // ring radius (creates finger hole)
+ handle_z = height / 2;
- // Place handle so it intersects cup side and protrudes enough outward
- // Inner-most x of handle = handle_center_x - (handle_major_r + handle_tube_r)
- // Set this slightly inside outer wall for robust union.
- handle_center_x = outer_r + (handle_major_r + handle_tube_r) - 2;
+ // Position so the handle intersects the cup wall and protrudes outward
+ handle_center_x = outer_r + handle_major_r; // gives robust overlap with cup
module mug_body() {
difference() {
cylinder(h = height, r = outer_r);
- // Hollow interior, leaving bottom thickness = 6mm
translate([0, 0, bottom_t])
cylinder(h = height - bottom_t + 0.2, r = inner_r);
}
}
module handle_ring() {
translate([handle_center_x, 0, handle_z])
- rotate([90, 0, 0]) // put torus axis along Y so it protrudes in +X
- rotate_extrude(angle = 360)
+ rotate([90, 0, 0]) // torus axis along Y
+ rotate_extrude(convexity = 10)
translate([handle_major_r, 0, 0])
circle(r = handle_tube_r);
}
union() {
mug_body();
handle_ring();
}
SCAD (39 lines)
$fn = 128;
// Cup dimensions
outer_d = 80;
outer_r = outer_d / 2;
height = 100;
wall_t = 4;
bottom_t = 6;
inner_r = outer_r - wall_t;
// Handle (ring/torus) dimensions
handle_tube_r = 12; // specified radius 12mm
handle_major_r = 20; // ring radius (creates finger hole)
handle_z = height / 2;
// Position so the handle intersects the cup wall and protrudes outward
handle_center_x = outer_r + handle_major_r; // gives robust overlap with cup
module mug_body() {
difference() {
cylinder(h = height, r = outer_r);
translate([0, 0, bottom_t])
cylinder(h = height - bottom_t + 0.2, r = inner_r);
}
}
module handle_ring() {
translate([handle_center_x, 0, handle_z])
rotate([90, 0, 0]) // torus axis along Y
rotate_extrude(convexity = 10)
translate([handle_major_r, 0, 0])
circle(r = handle_tube_r);
}
union() {
mug_body();
handle_ring();
}