vibe-openscad

bare/claude-sonnet-5 / tier-2-l-bracket

success tier 2

bare (claude sonnet 5)

render
bare render of tier-2-l-bracket
loading STL…
success 90.8s · 381/9516t · $0.0959
SCAD (79 lines)
// =========================================
// L字金具 (L-bracket) with countersunk holes
// =========================================

width      = 50;   // X方向:幅
depth      = 40;   // Y方向:水平面の奥行き
height     = 40;   // Z方向:垂直面の高さ
thick      = 3;    // 板厚

hole_d     = 4.5;  // 貫通穴径 (M4用)
csk_d      = 8;    // 皿座面径
csk_depth  = 2;    // 皿座面深さ
edge_off   = 10;   // 縁からの穴中心オフセット

hole_x = width/2 - edge_off;  // = 15
eps    = 0.5;                 // ブーリアン演算用の余裕

$fn = 64;

// ---------- 本体形状 ----------
module bracket_body(){
    union(){
        // 水平面: 内側面 Z=0 (原点), 外側面 Z=-thick
        translate([-width/2, 0, -thick])
            cube([width, depth, thick]);

        // 垂直面: 内側面 Y=0 (原点), 外側面 Y=-thick
        translate([-width/2, -thick, 0])
            cube([width, thick, height]);

        // 内側コーナーを埋める補強ブロック(折り曲げ部の連続性確保)
        translate([-width/2, -thick, -thick])
            cube([width, thick, thick]);
    }
}

// ---------- 水平面用 皿穴(Z方向に貫通、外側=下面に皿座面) ----------
module h_hole(x, y){
    translate([x, y, 0]){
        // 貫通穴
        translate([0, 0, -thick - eps])
            cylinder(h = thick + 2*eps, d = hole_d);

        // 皿座面(外側 Z=-thick 側が広い)
        translate([0, 0, -thick - eps])
            cylinder(h = csk_depth + eps, r1 = csk_d/2, r2 = hole_d/2);
    }
}

// ---------- 垂直面用 皿穴(Y方向に貫通、外側=背面に皿座面) ----------
module v_hole(x, z){
    translate([x, 0, z])
        rotate([-90, 0, 0]){
            // 貫通穴
            translate([0, 0, -thick - eps])
                cylinder(h = thick + 2*eps, d = hole_d);

            // 皿座面(外側 Y=-thick 側が広い)
            translate([0, 0, -thick - eps])
                cylinder(h = csk_depth + eps, r1 = csk_d/2, r2 = hole_d/2);
        }
}

// ---------- 全ての穴 ----------
module all_holes(){
    // 水平面: 中心線 Y = depth/2, 左右対称にX方向へオフセット
    h_hole( hole_x, depth/2);
    h_hole(-hole_x, depth/2);

    // 垂直面: 中心線 Z = height/2, 左右対称にX方向へオフセット
    v_hole( hole_x, height/2);
    v_hole(-hole_x, height/2);
}

// ---------- 最終形状 ----------
difference(){
    bracket_body();
    all_holes();
}
パラメータ (9) —
スライダを動かすと openscad-wasm で再レンダリング

meta

runIdbare_claude-sonnet-5-2b256ff964f1-2026-09-05T11-14-47-605Z
matrixIdbare/claude-sonnet-5
signature2b256ff964f1a025…
provideranthropic
modelclaude-sonnet-5
harnessbare
statussuccess
duration90.82s (wallclock: load + prompt eval + generation + network)
tokens381 in / 9516 out
wallclock tok/s104.8 tok/s (end-to-end)
cost$0.0959
createdAt2026-09-05T11:14:47.605Z
gitCommite18a2783a338
openscadOpenSCAD version 2026.04.27

prompt

OpenSCAD で、L 字に折れた金具(L-bracket)を作ってください。

形状:
- 水平面と垂直面の 2 つのフランジが直角に繋がっている
- 水平面は 50mm × 40mm(幅 × 奥行き)
- 垂直面は 50mm × 40mm(幅 × 高さ)
- 板厚はどちらも 3mm
- 内側コーナーが原点になるように配置(水平面は +Y 方向、垂直面は +Z 方向に伸びる)

皿穴(countersunk holes):
- 各面に 2 個ずつ、合計 4 個
- M4 ねじ用(貫通穴 Φ4.5mm + 皿座面 Φ8mm × 深さ 2mm)
- 各面の中心線上で、面の縁から 10mm 内側、左右対称に 2 個並べる
- 皿座面は外側(ボルト頭が当たる側)に向ける

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