vibe-openscad

tier-1-mug / claude-opus-4-1-20250805

5 run / 累計 24.0s / 累計 $0.1355

claude opus 4.1 2025-08-05 bare

bare (provider default effort)

run detail →
render
bare render of tier-1-mug
loading STL…
success 6.3s · 210/257t · $0.0224
SCAD (28 lines)
$fn = 100;

// マグカップ本体
difference() {
    // 外側の円柱
    cylinder(h = 100, r = 40, center = false);
    
    // 内側をくり抜く
    translate([0, 0, 6])
        cylinder(h = 100, r = 36, center = false);
}

// 取手
translate([40, 0, 50]) {
    rotate([90, 0, 0]) {
        difference() {
            // 取手の外側リング
            cylinder(h = 12, r = 35, center = true);
            
            // 取手の内側をくり抜く
            cylinder(h = 13, r = 23, center = true);
            
            // カップ本体との接続部分をカット
            translate([-40, 0, 0])
                cube([40, 80, 14], center = true);
        }
    }
}

prompt

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

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

variant: thinking

off (default) success
off
6.3s · 210/257t · $0.0224
SCAD (28 lines)
$fn = 100;

// マグカップ本体
difference() {
    // 外側の円柱
    cylinder(h = 100, r = 40, center = false);
    
    // 内側をくり抜く
    translate([0, 0, 6])
        cylinder(h = 100, r = 36, center = false);
}

// 取手
translate([40, 0, 50]) {
    rotate([90, 0, 0]) {
        difference() {
            // 取手の外側リング
            cylinder(h = 12, r = 35, center = true);
            
            // 取手の内側をくり抜く
            cylinder(h = 13, r = 23, center = true);
            
            // カップ本体との接続部分をカット
            translate([-40, 0, 0])
                cube([40, 80, 14], center = true);
        }
    }
}
adaptivenot run
dynamicnot run

iteration: iter-png

i1 success
iter 1
4.1s · 1216/171t · $0.0311
diff vs bare: +3/-10
  $fn = 100;
  
  // マグカップ本体
  difference() {
      // 外側の円柱
      cylinder(h = 100, r = 40, center = false);
      
      // 内側をくり抜く
      translate([0, 0, 6])
          cylinder(h = 100, r = 36, center = false);
  }
  
  // 取手
  translate([40, 0, 50]) {
      rotate([90, 0, 0]) {
-         difference() {
-             // 取手の外側リング
-             cylinder(h = 12, r = 35, center = true);
-             
-             // 取手の内側をくり抜く
-             cylinder(h = 13, r = 23, center = true);
-             
-             // カップ本体との接続部分をカット
-             translate([-40, 0, 0])
-                 cube([40, 80, 14], center = true);
+         rotate_extrude() {
+             translate([25, 0, 0])
+                 circle(r = 12);
          }
      }
  }
SCAD (21 lines)
$fn = 100;

// マグカップ本体
difference() {
    // 外側の円柱
    cylinder(h = 100, r = 40, center = false);
    
    // 内側をくり抜く
    translate([0, 0, 6])
        cylinder(h = 100, r = 36, center = false);
}

// 取手
translate([40, 0, 50]) {
    rotate([90, 0, 0]) {
        rotate_extrude() {
            translate([25, 0, 0])
                circle(r = 12);
        }
    }
}
i2 success
iter 2
3.8s · 1130/171t · $0.0298
diff vs i1: +0/-0
  $fn = 100;
  
  // マグカップ本体
  difference() {
      // 外側の円柱
      cylinder(h = 100, r = 40, center = false);
      
      // 内側をくり抜く
      translate([0, 0, 6])
          cylinder(h = 100, r = 36, center = false);
  }
  
  // 取手
  translate([40, 0, 50]) {
      rotate([90, 0, 0]) {
          rotate_extrude() {
              translate([25, 0, 0])
                  circle(r = 12);
          }
      }
  }
SCAD (21 lines)
$fn = 100;

// マグカップ本体
difference() {
    // 外側の円柱
    cylinder(h = 100, r = 40, center = false);
    
    // 内側をくり抜く
    translate([0, 0, 6])
        cylinder(h = 100, r = 36, center = false);
}

// 取手
translate([40, 0, 50]) {
    rotate([90, 0, 0]) {
        rotate_extrude() {
            translate([25, 0, 0])
                circle(r = 12);
        }
    }
}
i3 success
iter 3
3.6s · 1130/171t · $0.0298
diff vs i2: +1/-1
  $fn = 100;
  
  // マグカップ本体
  difference() {
      // 外側の円柱
      cylinder(h = 100, r = 40, center = false);
      
      // 内側をくり抜く
      translate([0, 0, 6])
          cylinder(h = 100, r = 36, center = false);
  }
  
  // 取手
  translate([40, 0, 50]) {
      rotate([90, 0, 0]) {
          rotate_extrude() {
              translate([25, 0, 0])
-                 circle(r = 12);
+                 circle(r = 6);
          }
      }
  }
SCAD (21 lines)
$fn = 100;

// マグカップ本体
difference() {
    // 外側の円柱
    cylinder(h = 100, r = 40, center = false);
    
    // 内側をくり抜く
    translate([0, 0, 6])
        cylinder(h = 100, r = 36, center = false);
}

// 取手
translate([40, 0, 50]) {
    rotate([90, 0, 0]) {
        rotate_extrude() {
            translate([25, 0, 0])
                circle(r = 6);
        }
    }
}