—
tier-2-offset-handle-mug / gemini-3.1-pro-preview
5 run / 累計 354.2s / 累計 $0.0190
gemini pro 3.1 preview bare
bare (provider default effort)
run detail → render
loading STL…
$fn = 100;
union() {
// 本体
difference() {
cylinder(h = 90, r = 40);
translate([0, 0, 6])
cylinder(h = 90, r = 35);
}
// 取手
translate([40, 0, 45])
rotate([90, 0, 0])
linear_extrude(height = 15, center = true) {
difference() {
// 取手の外側
union() {
translate([-3, -23]) square([13, 46]);
translate([10, 0]) circle(r = 23);
}
// 取手の内側の空間
union() {
translate([-4, -15]) square([14, 30]);
translate([10, 0]) circle(r = 15);
}
}
}
} prompt
OpenSCAD で、向きが指定されたマグカップを作ってください。 本体: - 外径 80mm、内径 70mm(肉厚 5mm)、高さ 90mm の円筒形マグ - 底面の厚みは 6mm - 内側は飲み物を入れられるよう中空 取手(handle): - マグの **+X 軸方向の側面のみ** に付ける(他の方向には付けない) - 取手は D 字形状(外側が半円、本体側が直線)で、本体外周にしっかり接続する - 取手の内側の空間は高さ 30mm × 幅 25mm(指 3 本ぐらい入る) - 取手はマグの高さ方向の中央付近に付ける - 本体と取手は確実に union され、マニフォールド(隙間や宙吊りなし)を保つ 完成したコード全体を ```openscad ... ``` のフェンスで囲んで出力してください。コードのみで、追加の説明は不要です。
variant: thinking
—
SCAD (28 lines)
$fn = 100;
union() {
// 本体
difference() {
cylinder(h = 90, r = 40);
translate([0, 0, 6])
cylinder(h = 90, r = 35);
}
// 取手
translate([40, 0, 45])
rotate([90, 0, 0])
linear_extrude(height = 15, center = true) {
difference() {
// 取手の外側
union() {
translate([-3, -23]) square([13, 46]);
translate([10, 0]) circle(r = 23);
}
// 取手の内側の空間
union() {
translate([-4, -15]) square([14, 30]);
translate([10, 0]) circle(r = 15);
}
}
}
} iteration: iter-png
diff vs bare: +0/-0
$fn = 100;
union() {
// 本体
difference() {
cylinder(h = 90, r = 40);
translate([0, 0, 6])
cylinder(h = 90, r = 35);
}
// 取手
translate([40, 0, 45])
rotate([90, 0, 0])
linear_extrude(height = 15, center = true) {
difference() {
// 取手の外側
union() {
translate([-3, -23]) square([13, 46]);
translate([10, 0]) circle(r = 23);
}
// 取手の内側の空間
union() {
translate([-4, -15]) square([14, 30]);
translate([10, 0]) circle(r = 15);
}
}
}
}
SCAD (28 lines)
$fn = 100;
union() {
// 本体
difference() {
cylinder(h = 90, r = 40);
translate([0, 0, 6])
cylinder(h = 90, r = 35);
}
// 取手
translate([40, 0, 45])
rotate([90, 0, 0])
linear_extrude(height = 15, center = true) {
difference() {
// 取手の外側
union() {
translate([-3, -23]) square([13, 46]);
translate([10, 0]) circle(r = 23);
}
// 取手の内側の空間
union() {
translate([-4, -15]) square([14, 30]);
translate([10, 0]) circle(r = 15);
}
}
}
}
diff vs i1: +0/-0
$fn = 100;
union() {
// 本体
difference() {
cylinder(h = 90, r = 40);
translate([0, 0, 6])
cylinder(h = 90, r = 35);
}
// 取手
translate([40, 0, 45])
rotate([90, 0, 0])
linear_extrude(height = 15, center = true) {
difference() {
// 取手の外側
union() {
translate([-3, -23]) square([13, 46]);
translate([10, 0]) circle(r = 23);
}
// 取手の内側の空間
union() {
translate([-4, -15]) square([14, 30]);
translate([10, 0]) circle(r = 15);
}
}
}
}
SCAD (28 lines)
$fn = 100;
union() {
// 本体
difference() {
cylinder(h = 90, r = 40);
translate([0, 0, 6])
cylinder(h = 90, r = 35);
}
// 取手
translate([40, 0, 45])
rotate([90, 0, 0])
linear_extrude(height = 15, center = true) {
difference() {
// 取手の外側
union() {
translate([-3, -23]) square([13, 46]);
translate([10, 0]) circle(r = 23);
}
// 取手の内側の空間
union() {
translate([-4, -15]) square([14, 30]);
translate([10, 0]) circle(r = 15);
}
}
}
}
diff vs i2: +23/-21
$fn = 100;
- union() {
- // 本体
- difference() {
+ difference() {
+ union() {
+ // 本体外側
cylinder(h = 90, r = 40);
- translate([0, 0, 6])
- cylinder(h = 90, r = 35);
- }
-
- // 取手
- translate([40, 0, 45])
- rotate([90, 0, 0])
- linear_extrude(height = 15, center = true) {
- difference() {
- // 取手の外側
- union() {
- translate([-3, -23]) square([13, 46]);
- translate([10, 0]) circle(r = 23);
+
+ // 取手
+ translate([40, 0, 45])
+ rotate([90, 0, 0])
+ linear_extrude(height = 15, center = true) {
+ difference() {
+ // 取手の外側
+ union() {
+ translate([-10, -23]) square([20, 46]);
+ translate([10, 0]) circle(r = 23);
+ }
+ // 取手の内側の空間
+ union() {
+ translate([-10, -15]) square([20, 30]);
+ translate([10, 0]) circle(r = 15);
+ }
}
- // 取手の内側の空間
- union() {
- translate([-4, -15]) square([14, 30]);
- translate([10, 0]) circle(r = 15);
- }
}
}
+
+ // 本体内側(飲み物を入れる中空部分)
+ translate([0, 0, 6])
+ cylinder(h = 90, r = 35);
}
SCAD (30 lines)
$fn = 100;
difference() {
union() {
// 本体外側
cylinder(h = 90, r = 40);
// 取手
translate([40, 0, 45])
rotate([90, 0, 0])
linear_extrude(height = 15, center = true) {
difference() {
// 取手の外側
union() {
translate([-10, -23]) square([20, 46]);
translate([10, 0]) circle(r = 23);
}
// 取手の内側の空間
union() {
translate([-10, -15]) square([20, 30]);
translate([10, 0]) circle(r = 15);
}
}
}
}
// 本体内側(飲み物を入れる中空部分)
translate([0, 0, 6])
cylinder(h = 90, r = 35);
}