iter-png-2/o3 / tier-2-offset-handle-mug
success tier 2
bare (o3)
render
// Oriented mug with D-shaped handle
$fn = 128;
// ---------- Mug parameters ----------
mug_outer_d = 80; // mm
mug_inner_d = 70; // mm
mug_height = 90; // mm
bottom_thickness = 6; // mm
wall_thickness = (mug_outer_d - mug_inner_d) / 2; // 5 mm
// ---------- Handle parameters ----------
handle_open_h = 30; // inner void height (Z)
handle_open_w = 25; // inner void radial width (X)
handle_wall = wall_thickness; // thickness around void (5 mm)
handle_depth = 15; // thickness in Y
// Derived
handle_outer_h = handle_open_h + 2*handle_wall; // 40
handle_inner_r = handle_open_h / 2; // 15
handle_outer_r = handle_outer_h / 2; // 20
// ---------- Modules ----------
module mug_body(){
difference(){
cylinder(h = mug_height, r = mug_outer_d/2);
translate([0,0,bottom_thickness])
cylinder(h = mug_height - bottom_thickness, r = mug_inner_d/2);
}
}
// Outer 2-D D-shape (full handle cross-section)
module handle_outer_2d(){
union(){
// straight side against mug
translate([0, -handle_outer_h/2])
square([handle_outer_r, handle_outer_h]);
// curved outer side
translate([handle_outer_r, 0])
circle(r = handle_outer_r);
}
}
// Inner 2-D void to create finger space
module handle_inner_2d(){
union(){
// rectangular part of void
translate([handle_wall, -handle_open_h/2])
square([handle_open_w - handle_inner_r, handle_open_h]);
// semicircular part of void
translate([handle_wall + handle_open_w - handle_inner_r, 0])
circle(r = handle_inner_r);
}
}
module handle(){
// Build 3-D handle by extruding the 2-D profile,
// then rotate so Z is vertical and Y is handle depth
rotate([90,0,0])
linear_extrude(height = handle_depth, center = true)
difference(){
handle_outer_2d();
handle_inner_2d();
}
}
// ---------- Assembly ----------
union(){
// Mug body
mug_body();
// Handle on +X side, centered vertically
translate([mug_outer_d/2 - 0.01, 0, (mug_height - handle_outer_h)/2])
handle();
} パラメータ (7) —
スライダを動かすと openscad-wasm で再レンダリング
iteration chain
各 iteration step は独立した benchmark run です。parentRunId で前段にリンクします。
← parent
iter-png-1/o3 success → children (1)
prompt
OpenSCAD で、向きが指定されたマグカップを作ってください。 本体: - 外径 80mm、内径 70mm(肉厚 5mm)、高さ 90mm の円筒形マグ - 底面の厚みは 6mm - 内側は飲み物を入れられるよう中空 取手(handle): - マグの **+X 軸方向の側面のみ** に付ける(他の方向には付けない) - 取手は D 字形状(外側が半円、本体側が直線)で、本体外周にしっかり接続する - 取手の内側の空間は高さ 30mm × 幅 25mm(指 3 本ぐらい入る) - 取手はマグの高さ方向の中央付近に付ける - 本体と取手は確実に union され、マニフォールド(隙間や宙吊りなし)を保つ 完成したコード全体を ```openscad ... ``` のフェンスで囲んで出力してください。コードのみで、追加の説明は不要です。