vibe-openscad

tier-1-mug / qwen/qwen3.8-27b

4 run / 累計 1918.1s / 累計 $0

qwen/qwen3.8-27b bare

bare (provider default effort)

run detail →
render
bare render of tier-1-mug
loading STL…
success 598.2s · 193/25684t
SCAD (39 lines)
$fn = 128;

outer_d = 80;
H = 100;
wall = 4;
bottom_t = 6;
inner_d = outer_d - 2 * wall;

handle_major = 12;
handle_minor = 3;
handle_x = outer_d / 2 + handle_major;

module torus(R, r) {
    rotate_extrude(angle = 360) {
        circle(d = 2 * r, center = [R, 0]);
    }
}

module cup() {
    difference() {
        cylinder(d = outer_d, h = H);
        translate([0, 0, bottom_t]) {
            cylinder(d = inner_d, h = H);
        }
    }
}

module handle() {
    translate([handle_x, 0, H / 2]) {
        rotate([90, 0, 0]) {
            torus(handle_major, handle_minor);
        }
    }
}

union() {
    cup();
    handle();
}
パラメータ (6) —
スライダを動かすと openscad-wasm で再レンダリング

prompt

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

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

iteration: iter-png

i1 success →
iter 1
832.2s · 1001/35042t
diff vs bare: +11/-11
  $fn = 128;
  
  outer_d = 80;
  H = 100;
  wall = 4;
  bottom_t = 6;
  inner_d = outer_d - 2 * wall;
  
- handle_major = 12;
- handle_minor = 3;
- handle_x = outer_d / 2 + handle_major;
+ handle_r = 12;
+ handle_width = 6;
+ handle_depth = 10;
+ handle_cx = outer_d / 2 + handle_r;
  
- module torus(R, r) {
-     rotate_extrude(angle = 360) {
-         circle(d = 2 * r, center = [R, 0]);
-     }
- }
- 
  module cup() {
      difference() {
          cylinder(d = outer_d, h = H);
          translate([0, 0, bottom_t]) {
              cylinder(d = inner_d, h = H);
          }
      }
  }
  
  module handle() {
-     translate([handle_x, 0, H / 2]) {
+     translate([handle_cx, 0, H / 2]) {
          rotate([90, 0, 0]) {
-             torus(handle_major, handle_minor);
+             translate([0, 0, -handle_depth / 2]) {
+                 difference() {
+                     cylinder(d = 2 * (handle_r + handle_width / 2), h = handle_depth);
+                     cylinder(d = 2 * (handle_r - handle_width / 2), h = handle_depth);
+                 }
+             }
          }
      }
  }
  
  union() {
      cup();
      handle();
  }
SCAD (39 lines)
$fn = 128;

outer_d = 80;
H = 100;
wall = 4;
bottom_t = 6;
inner_d = outer_d - 2 * wall;

handle_r = 12;
handle_width = 6;
handle_depth = 10;
handle_cx = outer_d / 2 + handle_r;

module cup() {
    difference() {
        cylinder(d = outer_d, h = H);
        translate([0, 0, bottom_t]) {
            cylinder(d = inner_d, h = H);
        }
    }
}

module handle() {
    translate([handle_cx, 0, H / 2]) {
        rotate([90, 0, 0]) {
            translate([0, 0, -handle_depth / 2]) {
                difference() {
                    cylinder(d = 2 * (handle_r + handle_width / 2), h = handle_depth);
                    cylinder(d = 2 * (handle_r - handle_width / 2), h = handle_depth);
                }
            }
        }
    }
}

union() {
    cup();
    handle();
}
i2 success →
iter 2
54.1s · 1029/2312t
diff vs i1: +2/-2
  $fn = 128;
  
  outer_d = 80;
  H = 100;
  wall = 4;
  bottom_t = 6;
  inner_d = outer_d - 2 * wall;
  
  handle_r = 12;
- handle_width = 6;
+ handle_width = 8;
  handle_depth = 10;
- handle_cx = outer_d / 2 + handle_r;
+ handle_cx = 48;
  
  module cup() {
      difference() {
          cylinder(d = outer_d, h = H);
          translate([0, 0, bottom_t]) {
              cylinder(d = inner_d, h = H);
          }
      }
  }
  
  module handle() {
      translate([handle_cx, 0, H / 2]) {
          rotate([90, 0, 0]) {
              translate([0, 0, -handle_depth / 2]) {
                  difference() {
                      cylinder(d = 2 * (handle_r + handle_width / 2), h = handle_depth);
                      cylinder(d = 2 * (handle_r - handle_width / 2), h = handle_depth);
                  }
              }
          }
      }
  }
  
  union() {
      cup();
      handle();
  }
SCAD (39 lines)
$fn = 128;

outer_d = 80;
H = 100;
wall = 4;
bottom_t = 6;
inner_d = outer_d - 2 * wall;

handle_r = 12;
handle_width = 8;
handle_depth = 10;
handle_cx = 48;

module cup() {
    difference() {
        cylinder(d = outer_d, h = H);
        translate([0, 0, bottom_t]) {
            cylinder(d = inner_d, h = H);
        }
    }
}

module handle() {
    translate([handle_cx, 0, H / 2]) {
        rotate([90, 0, 0]) {
            translate([0, 0, -handle_depth / 2]) {
                difference() {
                    cylinder(d = 2 * (handle_r + handle_width / 2), h = handle_depth);
                    cylinder(d = 2 * (handle_r - handle_width / 2), h = handle_depth);
                }
            }
        }
    }
}

union() {
    cup();
    handle();
}
i3 success →
iter 3
433.6s · 1024/18678t
diff vs i2: +2/-2
  $fn = 128;
  
  outer_d = 80;
  H = 100;
  wall = 4;
  bottom_t = 6;
  inner_d = outer_d - 2 * wall;
  
  handle_r = 12;
  handle_width = 8;
- handle_depth = 10;
- handle_cx = 48;
+ handle_depth = 12;
+ handle_cx = 52;
  
  module cup() {
      difference() {
          cylinder(d = outer_d, h = H);
          translate([0, 0, bottom_t]) {
              cylinder(d = inner_d, h = H);
          }
      }
  }
  
  module handle() {
      translate([handle_cx, 0, H / 2]) {
          rotate([90, 0, 0]) {
              translate([0, 0, -handle_depth / 2]) {
                  difference() {
                      cylinder(d = 2 * (handle_r + handle_width / 2), h = handle_depth);
                      cylinder(d = 2 * (handle_r - handle_width / 2), h = handle_depth);
                  }
              }
          }
      }
  }
  
  union() {
      cup();
      handle();
  }
SCAD (39 lines)
$fn = 128;

outer_d = 80;
H = 100;
wall = 4;
bottom_t = 6;
inner_d = outer_d - 2 * wall;

handle_r = 12;
handle_width = 8;
handle_depth = 12;
handle_cx = 52;

module cup() {
    difference() {
        cylinder(d = outer_d, h = H);
        translate([0, 0, bottom_t]) {
            cylinder(d = inner_d, h = H);
        }
    }
}

module handle() {
    translate([handle_cx, 0, H / 2]) {
        rotate([90, 0, 0]) {
            translate([0, 0, -handle_depth / 2]) {
                difference() {
                    cylinder(d = 2 * (handle_r + handle_width / 2), h = handle_depth);
                    cylinder(d = 2 * (handle_r - handle_width / 2), h = handle_depth);
                }
            }
        }
    }
}

union() {
    cup();
    handle();
}