bare-max/claude-opus-5 / tier-1-mug
success tier 1
bare (claude opus 5)
render
// ===== マグカップ =====
// 外径 80mm / 高さ 100mm / 肉厚 4mm / 底厚 6mm
// 取手: リング状(トーラス)、リング半径 12mm
$fn = 120;
outer_d = 80; // 外径
outer_r = outer_d / 2;
cup_h = 100; // 全高
wall = 4; // 側面の肉厚
bottom_t = 6; // 底の厚み
inner_r = outer_r - wall; // 内側半径 = 36
inner_h = cup_h - bottom_t; // 内側の深さ = 94
// 取手(トーラス)パラメータ
handle_R = 12; // リングの中心円半径(穴の大きさを決める)
handle_r = 5; // 断面(チューブ)の半径
handle_z = cup_h / 2; // 中心高さ
handle_off = outer_r + handle_R - 6; // 外周から十分はみ出す位置
// --- トーラス(リング)モジュール ---
module torus(R, r) {
rotate_extrude(convexity = 10)
translate([R, 0, 0])
circle(r = r);
}
// --- カップ本体 ---
module cup_body() {
difference() {
cylinder(h = cup_h, r = outer_r);
translate([0, 0, bottom_t])
cylinder(h = inner_h + 1, r = inner_r);
}
}
// --- 取手(縦向きのリング)---
module handle() {
translate([handle_off, 0, handle_z])
rotate([90, 0, 0]) // リング面を XZ 平面に立てる
torus(handle_R, handle_r);
}
// --- 組み立て ---
module mug() {
difference() {
union() {
cup_body();
handle();
}
// 取手が内側に飛び出さないよう、カップ内部を再度くり抜く
translate([0, 0, bottom_t])
cylinder(h = inner_h + 1, r = inner_r);
}
}
mug(); パラメータ (6) —
スライダを動かすと openscad-wasm で再レンダリング
prompt
OpenSCAD で、外径 80mm、高さ 100mm、肉厚 4mm のマグカップを作ってください。 底面の厚みは 6mm とし、内側はくり抜いて飲み物を入れられる形状にしてください。 さらに、側面には外径方向に飛び出す半径 12mm の取手(リング状の取手)を付けてください。 取手はカップの中心高さあたりに付け、外周から十分にはみ出して指を通せる形にしてください。 完成したコード全体を ```openscad ... ``` のフェンスで囲んで出力してください。コードのみで、追加の説明は不要です。