tier-1-mug / gpt-5-2025-08-07
7 run / 累計 440.5s / 累計 $0.3763
openai gpt 5 2025-08-07 bare prompt
OpenSCAD で、外径 80mm、高さ 100mm、肉厚 4mm のマグカップを作ってください。
底面の厚みは 6mm とし、内側はくり抜いて飲み物を入れられる形状にしてください。
さらに、側面には外径方向に飛び出す半径 12mm の取手(リング状の取手)を付けてください。
取手はカップの中心高さあたりに付け、外周から十分にはみ出して指を通せる形にしてください。
完成したコード全体を ```openscad ... ``` のフェンスで囲んで出力してください。コードのみで、追加の説明は不要です。
variant: effort
34.1s
· 168/2451t · $0.0247
SCAD (47 lines)
// マグカップ仕様
outer_d = 80; // 外径
height = 100; // 高さ
wall = 4; // 肉厚
bottom = 6; // 底面厚
// 取手仕様(リング状)
handle_r_tube = 12; // 取手の断面半径(丸断面)
handle_R_major = 30; // リングの主半径(指を通す空間の大きさ)
attach_overlap = 1; // カップ外周との重なり量
$fn = 128;
// トーラス(リング状取手)
module torus(R, r) {
rotate([90, 0, 0]) // 軸をY方向へ
rotate_extrude(angle = 360)
translate([R, 0, 0])
circle(r = r);
}
// マグ本体
module mug_body() {
outer_r = outer_d/2;
inner_r = outer_r - wall;
difference() {
// 外形
cylinder(r = outer_r, h = height);
// 内側くり抜き(底6mm残し)
translate([0, 0, bottom])
cylinder(r = inner_r, h = height - bottom);
}
}
// 取手の配置(中心高さ、外周から十分はみ出す)
module handle() {
outer_r = outer_d/2;
// カップ外周と少し重なるようにX方向へ配置
translate([outer_r + handle_r_tube - attach_overlap, 0, height/2])
torus(handle_R_major, handle_r_tube);
}
// 組み立て
union() {
mug_body();
handle();
}
medium (default) success →
44.9s
· 168/5404t · $0.0542
SCAD (43 lines)
// マグカップ: 外径80mm, 高さ100mm, 肉厚4mm, 底面厚6mm
// 取手: 半径12mmのリング状、中心高さ付近に配置
$fn = 128;
outer_d = 80;
outer_r = outer_d/2; // 40
height = 100;
wall = 4;
bottom = 6;
inner_r = outer_r - wall; // 36
handle_R = 12; // リング半径
handle_r = 4; // リング断面半径(太さ)
handle_z = height/2; // 中心高さ
handle_out_offset = 1; // 外周から更に押し出す量(内側に貫通しないように少し外へ)
module cup_body() {
difference() {
cylinder(h=height, r=outer_r);
translate([0,0,bottom]) cylinder(h=height-bottom, r=inner_r);
}
}
module torus(R, r) {
rotate_extrude(angle=360)
translate([R,0,0])
circle(r=r);
}
module handle() {
// y軸方向を回転軸にするリング(x-z平面に見える円)
// カップ外周から十分はみ出すように外側へ配置
translate([outer_r + handle_R + handle_out_offset, 0, handle_z])
rotate([0,90,0])
torus(handle_R, handle_r);
}
union() {
cup_body();
handle();
}
144.7s
· 168/11128t · $0.1115
SCAD (30 lines)
$fn = 128;
outer_d = 80; // 外径
height = 100; // 高さ
wall = 4; // 肉厚
bottom = 6; // 底厚
handle_R = 12; // 取手(リング)の半径
handle_r = 4; // 取手の太さ(断面半径)
eps = 0.6; // カップと取手を確実に接合するためのめり込み量
module cup() {
difference() {
cylinder(h = height, r = outer_d/2);
translate([0, 0, bottom])
cylinder(h = height - bottom, r = outer_d/2 - wall);
}
}
module torus_y(R, r) {
rotate([90, 0, 0])
rotate_extrude(angle = 360)
translate([R, 0, 0]) circle(r = r);
}
union() {
cup();
translate([outer_d/2 + (handle_R + handle_r) - eps, 0, height/2])
torus_y(handle_R, handle_r);
}
—
—
iteration: iter-png
73.3s
· 1248/5212t · $0.0537
diff vs bare: +10/-13
- // マグカップ: 外径80mm, 高さ100mm, 肉厚4mm, 底面厚6mm
- // 取手: 半径12mmのリング状、中心高さ付近に配置
-
$fn = 128;
outer_d = 80;
- outer_r = outer_d/2; // 40
+ outer_r = outer_d/2;
height = 100;
wall = 4;
bottom = 6;
- inner_r = outer_r - wall; // 36
+ inner_r = outer_r - wall;
- handle_R = 12; // リング半径
- handle_r = 4; // リング断面半径(太さ)
- handle_z = height/2; // 中心高さ
- handle_out_offset = 1; // 外周から更に押し出す量(内側に貫通しないように少し外へ)
+ handle_R = 12;
+ handle_r = 4;
+ handle_z = height/2;
+ embed = 1;
module cup_body() {
difference() {
cylinder(h=height, r=outer_r);
translate([0,0,bottom]) cylinder(h=height-bottom, r=inner_r);
}
}
module torus(R, r) {
rotate_extrude(angle=360)
translate([R,0,0])
circle(r=r);
}
module handle() {
- // y軸方向を回転軸にするリング(x-z平面に見える円)
- // カップ外周から十分はみ出すように外側へ配置
- translate([outer_r + handle_R + handle_out_offset, 0, handle_z])
- rotate([0,90,0])
+ near_x = inner_r + embed;
+ c = near_x + (handle_R + handle_r);
+ translate([c, 0, handle_z])
+ rotate([90,0,0])
torus(handle_R, handle_r);
}
union() {
cup_body();
handle();
}
SCAD (40 lines)
$fn = 128;
outer_d = 80;
outer_r = outer_d/2;
height = 100;
wall = 4;
bottom = 6;
inner_r = outer_r - wall;
handle_R = 12;
handle_r = 4;
handle_z = height/2;
embed = 1;
module cup_body() {
difference() {
cylinder(h=height, r=outer_r);
translate([0,0,bottom]) cylinder(h=height-bottom, r=inner_r);
}
}
module torus(R, r) {
rotate_extrude(angle=360)
translate([R,0,0])
circle(r=r);
}
module handle() {
near_x = inner_r + embed;
c = near_x + (handle_R + handle_r);
translate([c, 0, handle_z])
rotate([90,0,0])
torus(handle_R, handle_r);
}
union() {
cup_body();
handle();
}
58.1s
· 1109/4398t · $0.0454
diff vs i1: +0/-0
$fn = 128;
outer_d = 80;
outer_r = outer_d/2;
height = 100;
wall = 4;
bottom = 6;
inner_r = outer_r - wall;
handle_R = 12;
handle_r = 4;
handle_z = height/2;
embed = 1;
module cup_body() {
difference() {
cylinder(h=height, r=outer_r);
translate([0,0,bottom]) cylinder(h=height-bottom, r=inner_r);
}
}
module torus(R, r) {
rotate_extrude(angle=360)
translate([R,0,0])
circle(r=r);
}
module handle() {
near_x = inner_r + embed;
c = near_x + (handle_R + handle_r);
translate([c, 0, handle_z])
rotate([90,0,0])
torus(handle_R, handle_r);
}
union() {
cup_body();
handle();
}
SCAD (40 lines)
$fn = 128;
outer_d = 80;
outer_r = outer_d/2;
height = 100;
wall = 4;
bottom = 6;
inner_r = outer_r - wall;
handle_R = 12;
handle_r = 4;
handle_z = height/2;
embed = 1;
module cup_body() {
difference() {
cylinder(h=height, r=outer_r);
translate([0,0,bottom]) cylinder(h=height-bottom, r=inner_r);
}
}
module torus(R, r) {
rotate_extrude(angle=360)
translate([R,0,0])
circle(r=r);
}
module handle() {
near_x = inner_r + embed;
c = near_x + (handle_R + handle_r);
translate([c, 0, handle_z])
rotate([90,0,0])
torus(handle_R, handle_r);
}
union() {
cup_body();
handle();
}
40.5s
· 1109/3118t · $0.0326
diff vs i2: +0/-0
$fn = 128;
outer_d = 80;
outer_r = outer_d/2;
height = 100;
wall = 4;
bottom = 6;
inner_r = outer_r - wall;
handle_R = 12;
handle_r = 4;
handle_z = height/2;
embed = 1;
module cup_body() {
difference() {
cylinder(h=height, r=outer_r);
translate([0,0,bottom]) cylinder(h=height-bottom, r=inner_r);
}
}
module torus(R, r) {
rotate_extrude(angle=360)
translate([R,0,0])
circle(r=r);
}
module handle() {
near_x = inner_r + embed;
c = near_x + (handle_R + handle_r);
translate([c, 0, handle_z])
rotate([90,0,0])
torus(handle_R, handle_r);
}
union() {
cup_body();
handle();
}
SCAD (40 lines)
$fn = 128;
outer_d = 80;
outer_r = outer_d/2;
height = 100;
wall = 4;
bottom = 6;
inner_r = outer_r - wall;
handle_R = 12;
handle_r = 4;
handle_z = height/2;
embed = 1;
module cup_body() {
difference() {
cylinder(h=height, r=outer_r);
translate([0,0,bottom]) cylinder(h=height-bottom, r=inner_r);
}
}
module torus(R, r) {
rotate_extrude(angle=360)
translate([R,0,0])
circle(r=r);
}
module handle() {
near_x = inner_r + embed;
c = near_x + (handle_R + handle_r);
translate([c, 0, handle_z])
rotate([90,0,0])
torus(handle_R, handle_r);
}
union() {
cup_body();
handle();
}