—
tier-1-mug / gemini-3.1-pro-preview
5 run / 累計 319.9s / 累計 $0.0176
gemini pro 3.1 preview bare
bare (provider default effort)
run detail → render
loading STL…
$fn = 100;
difference() {
union() {
// カップ外側 (外径80mm -> 半径40mm、高さ100mm)
cylinder(h = 100, r = 40);
// 取手 (高さ中心 Z=50あたりに配置)
// 外周から十分にはみ出させるため X=46 へオフセット
translate([46, 0, 50])
rotate([90, 0, 0])
rotate_extrude()
// 半径12mmのリング状の取手 (断面半径は肉厚に合わせた4mm)
translate([12, 0, 0])
circle(r = 4);
}
// カップ内側 (肉厚4mm -> 内径 半径36mm)
// 底面の厚み6mmを残して上までくり抜く
translate([0, 0, 6])
cylinder(h = 95, r = 36);
} prompt
OpenSCAD で、外径 80mm、高さ 100mm、肉厚 4mm のマグカップを作ってください。 底面の厚みは 6mm とし、内側はくり抜いて飲み物を入れられる形状にしてください。 さらに、側面には外径方向に飛び出す半径 12mm の取手(リング状の取手)を付けてください。 取手はカップの中心高さあたりに付け、外周から十分にはみ出して指を通せる形にしてください。 完成したコード全体を ```openscad ... ``` のフェンスで囲んで出力してください。コードのみで、追加の説明は不要です。
variant: thinking
—
SCAD (22 lines)
$fn = 100;
difference() {
union() {
// カップ外側 (外径80mm -> 半径40mm、高さ100mm)
cylinder(h = 100, r = 40);
// 取手 (高さ中心 Z=50あたりに配置)
// 外周から十分にはみ出させるため X=46 へオフセット
translate([46, 0, 50])
rotate([90, 0, 0])
rotate_extrude()
// 半径12mmのリング状の取手 (断面半径は肉厚に合わせた4mm)
translate([12, 0, 0])
circle(r = 4);
}
// カップ内側 (肉厚4mm -> 内径 半径36mm)
// 底面の厚み6mmを残して上までくり抜く
translate([0, 0, 6])
cylinder(h = 95, r = 36);
} iteration: iter-png
diff vs bare: +5/-5
$fn = 100;
difference() {
union() {
// カップ外側 (外径80mm -> 半径40mm、高さ100mm)
cylinder(h = 100, r = 40);
- // 取手 (高さ中心 Z=50あたりに配置)
- // 外周から十分にはみ出させるため X=46 へオフセット
- translate([46, 0, 50])
+ // 取手 (高さ中心 Z=50に配置)
+ // 外周から十分にはみ出させるため X=50 へオフセット
+ translate([50, 0, 50])
rotate([90, 0, 0])
rotate_extrude()
// 半径12mmのリング状の取手 (断面半径は肉厚に合わせた4mm)
translate([12, 0, 0])
circle(r = 4);
}
// カップ内側 (肉厚4mm -> 内径 半径36mm)
- // 底面の厚み6mmを残して上までくり抜く
+ // 底面の厚み6mmを残して上まで確実にくり抜く
translate([0, 0, 6])
- cylinder(h = 95, r = 36);
+ cylinder(h = 100, r = 36);
}
SCAD (22 lines)
$fn = 100;
difference() {
union() {
// カップ外側 (外径80mm -> 半径40mm、高さ100mm)
cylinder(h = 100, r = 40);
// 取手 (高さ中心 Z=50に配置)
// 外周から十分にはみ出させるため X=50 へオフセット
translate([50, 0, 50])
rotate([90, 0, 0])
rotate_extrude()
// 半径12mmのリング状の取手 (断面半径は肉厚に合わせた4mm)
translate([12, 0, 0])
circle(r = 4);
}
// カップ内側 (肉厚4mm -> 内径 半径36mm)
// 底面の厚み6mmを残して上まで確実にくり抜く
translate([0, 0, 6])
cylinder(h = 100, r = 36);
}
diff vs i1: +0/-0
$fn = 100;
difference() {
union() {
// カップ外側 (外径80mm -> 半径40mm、高さ100mm)
cylinder(h = 100, r = 40);
// 取手 (高さ中心 Z=50に配置)
// 外周から十分にはみ出させるため X=50 へオフセット
translate([50, 0, 50])
rotate([90, 0, 0])
rotate_extrude()
// 半径12mmのリング状の取手 (断面半径は肉厚に合わせた4mm)
translate([12, 0, 0])
circle(r = 4);
}
// カップ内側 (肉厚4mm -> 内径 半径36mm)
// 底面の厚み6mmを残して上まで確実にくり抜く
translate([0, 0, 6])
cylinder(h = 100, r = 36);
}
SCAD (22 lines)
$fn = 100;
difference() {
union() {
// カップ外側 (外径80mm -> 半径40mm、高さ100mm)
cylinder(h = 100, r = 40);
// 取手 (高さ中心 Z=50に配置)
// 外周から十分にはみ出させるため X=50 へオフセット
translate([50, 0, 50])
rotate([90, 0, 0])
rotate_extrude()
// 半径12mmのリング状の取手 (断面半径は肉厚に合わせた4mm)
translate([12, 0, 0])
circle(r = 4);
}
// カップ内側 (肉厚4mm -> 内径 半径36mm)
// 底面の厚み6mmを残して上まで確実にくり抜く
translate([0, 0, 6])
cylinder(h = 100, r = 36);
}
diff vs i2: +1/-7
$fn = 100;
difference() {
union() {
- // カップ外側 (外径80mm -> 半径40mm、高さ100mm)
cylinder(h = 100, r = 40);
- // 取手 (高さ中心 Z=50に配置)
- // 外周から十分にはみ出させるため X=50 へオフセット
- translate([50, 0, 50])
+ translate([52, 0, 50])
rotate([90, 0, 0])
rotate_extrude()
- // 半径12mmのリング状の取手 (断面半径は肉厚に合わせた4mm)
translate([12, 0, 0])
circle(r = 4);
}
- // カップ内側 (肉厚4mm -> 内径 半径36mm)
- // 底面の厚み6mmを残して上まで確実にくり抜く
translate([0, 0, 6])
cylinder(h = 100, r = 36);
}
SCAD (16 lines)
$fn = 100;
difference() {
union() {
cylinder(h = 100, r = 40);
translate([52, 0, 50])
rotate([90, 0, 0])
rotate_extrude()
translate([12, 0, 0])
circle(r = 4);
}
translate([0, 0, 6])
cylinder(h = 100, r = 36);
}