vibe-openscad

tier-2-hex-bolt / claude-sonnet-5

7 run / 累計 103.0s / 累計 $0.1111

claude sonnet 5 bare

bare (provider default effort)

run detail →
render
bare render of tier-2-hex-bolt
loading STL…
success 6.6s · 262/562t · $0.0061
SCAD (27 lines)
// M8 六角ボルト(規格準拠、ねじ山省略)

$fn = 100;

// 頭部寸法
head_af = 13;      // 対辺距離 (across-flats)
head_h  = 5.3;     // 頭部高さ

// シャンク寸法
shank_d = 8;       // シャンク直径
shank_l = 30;      // シャンク長さ

// 六角柱を作るための外接円直径
// across-flats = across-corners * cos(30°)
head_diameter = head_af / cos(30);

module hex_bolt() {
    // 頭部:底面が z=0、上方向(+Z)に高さ head_h
    translate([0, 0, 0])
        cylinder(h = head_h, d = head_diameter, $fn = 6);

    // シャンク:z=0 から -shank_l 方向へ伸ばす
    translate([0, 0, -shank_l])
        cylinder(h = shank_l, d = shank_d, $fn = 100);
}

hex_bolt();
パラメータ (4) —
スライダを動かすと openscad-wasm で再レンダリング

prompt

OpenSCAD で、規格に準じた M8 サイズの六角ボルトを作ってください。
ねじ山自体は省略してよく、円柱のシャンクで構いません。

寸法は以下に従ってください:
- 頭部は六角柱で、対辺距離(across-flats)13mm、高さ 5.3mm
- シャンク(軸部)は直径 8mm、長さ 30mm の円柱
- ボルト全体の中心軸は +Z 軸方向
- 頭部の底面が原点(z=0)に来るように配置し、シャンクは z<0 側へ伸ばす

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

variant: effort

low success →
low
3.8s · 262/232t · $0.0028
SCAD (20 lines)
$fn = 100;

module hex_bolt_m8() {
    head_afs = 13;
    head_height = 5.3;
    shank_diameter = 8;
    shank_length = 30;

    head_circumradius = head_afs / cos(30);

    // Head: hexagonal prism, bottom at z=0, extending up
    translate([0, 0, 0])
        cylinder(h = head_height, r = head_circumradius / 2, $fn = 6);

    // Shank: cylinder extending downward from z=0
    translate([0, 0, -shank_length])
        cylinder(h = shank_length, d = shank_diameter);
}

hex_bolt_m8();
mediumnot run
—
high (default) success →
high
5.1s · 262/480t · $0.0053
SCAD (34 lines)
// M8 Hex Bolt (simplified, no thread)

// Parameters
head_across_flats = 13;   // 対辺距離
head_height = 5.3;        // 頭部高さ
shank_diameter = 8;       // シャンク直径
shank_length = 30;        // シャンク長さ

// 六角形の外接円半径 = 対辺距離 / cos(30)
head_circumradius = head_across_flats / cos(180/6);

module hex_bolt() {
    // 頭部: 六角柱、底面がz=0から始まりz=head_heightまで
    translate([0, 0, 0])
        cylinder(h = head_height, r = head_circumradius / 2 * 2 / 2, $fn = 6);

    // シャンク: z<0側へ伸びる円柱
    translate([0, 0, -shank_length])
        cylinder(h = shank_length, d = shank_diameter, $fn = 100);
}

// 六角柱の半径計算を修正して正しく配置
module hex_bolt_correct() {
    r_hex = head_across_flats / (2 * cos(30));

    // 頭部
    cylinder(h = head_height, r = r_hex, $fn = 6);

    // シャンク
    translate([0, 0, -shank_length])
        cylinder(h = shank_length, d = shank_diameter, $fn = 100);
}

hex_bolt_correct();
max success →
max
31.7s · 262/3381t · $0.0343
SCAD (37 lines)
// ------------------------------------------------------------
// M8 六角ボルト(規格準拠、ねじ山省略・シャンクは円柱)
// ------------------------------------------------------------

// 寸法パラメータ [mm]
af           = 13;   // 頭部 対辺距離 (across flats)
head_height  = 5.3;  // 頭部 高さ
shank_dia    = 8;    // シャンク 直径
shank_length = 30;   // シャンク 長さ

// 対辺距離(2×アペセム)から外接円半径(中心→頂点)を算出
// AF = 2 * R * cos(30°)  ->  R = AF / (2 * cos(30°))
hex_radius = af / (2 * cos(30));

$fn = 100; // 円柱(シャンク)の分割数。六角柱は個別に $fn=6 を指定

module hex_head() {
    // cylinder() はデフォルトで z=0 から始まるので底面は原点に一致
    cylinder(h = head_height, r = hex_radius, $fn = 6);
}

module shank() {
    cylinder(h = shank_length, d = shank_dia);
}

module m8_hex_bolt() {
    union() {
        // 頭部: z = 0 ~ +head_height (底面が原点)
        hex_head();

        // シャンク: z = -shank_length ~ 0 (z<0 側へ伸ばす)
        translate([0, 0, -shank_length])
            shank();
    }
}

m8_hex_bolt();
xhigh success →
xhigh
19.0s · 262/2230t · $0.0228
SCAD (20 lines)
// ===== M8 六角ボルト パラメータ =====
af           = 13;    // 対辺距離 (across-flats) [mm]
head_height  = 5.3;   // 頭部高さ [mm]
shank_dia    = 8;     // シャンク直径 [mm]
shank_length = 30;    // シャンク長さ [mm]

// 対辺距離から六角柱の外接円直径を算出
// af = 2 * R * cos(30°)  →  R = af / (2*cos(30°))  →  直径 = af / cos(30°)
hex_dia = af / cos(30);

module hex_bolt() {
    // 頭部(六角柱): 底面が z=0 に位置し、+Z方向へ伸びる
    cylinder(h = head_height, d = hex_dia, $fn = 6);

    // シャンク(円柱): z=0 から -Z方向へ伸びる
    translate([0, 0, -shank_length])
        cylinder(h = shank_length, d = shank_dia, $fn = 64);
}

hex_bolt();

variant: thinking

off success →
off
5.1s · 262/480t · $0.0053
SCAD (34 lines)
// M8 Hex Bolt (simplified, no thread)

// Parameters
head_across_flats = 13;   // 対辺距離
head_height = 5.3;        // 頭部高さ
shank_diameter = 8;       // シャンク直径
shank_length = 30;        // シャンク長さ

// 六角形の外接円半径 = 対辺距離 / cos(30)
head_circumradius = head_across_flats / cos(180/6);

module hex_bolt() {
    // 頭部: 六角柱、底面がz=0から始まりz=head_heightまで
    translate([0, 0, 0])
        cylinder(h = head_height, r = head_circumradius / 2 * 2 / 2, $fn = 6);

    // シャンク: z<0側へ伸びる円柱
    translate([0, 0, -shank_length])
        cylinder(h = shank_length, d = shank_diameter, $fn = 100);
}

// 六角柱の半径計算を修正して正しく配置
module hex_bolt_correct() {
    r_hex = head_across_flats / (2 * cos(30));

    // 頭部
    cylinder(h = head_height, r = r_hex, $fn = 6);

    // シャンク
    translate([0, 0, -shank_length])
        cylinder(h = shank_length, d = shank_diameter, $fn = 100);
}

hex_bolt_correct();
adaptive (default) success →
adaptive
31.7s · 262/3381t · $0.0343
SCAD (37 lines)
// ------------------------------------------------------------
// M8 六角ボルト(規格準拠、ねじ山省略・シャンクは円柱)
// ------------------------------------------------------------

// 寸法パラメータ [mm]
af           = 13;   // 頭部 対辺距離 (across flats)
head_height  = 5.3;  // 頭部 高さ
shank_dia    = 8;    // シャンク 直径
shank_length = 30;   // シャンク 長さ

// 対辺距離(2×アペセム)から外接円半径(中心→頂点)を算出
// AF = 2 * R * cos(30°)  ->  R = AF / (2 * cos(30°))
hex_radius = af / (2 * cos(30));

$fn = 100; // 円柱(シャンク)の分割数。六角柱は個別に $fn=6 を指定

module hex_head() {
    // cylinder() はデフォルトで z=0 から始まるので底面は原点に一致
    cylinder(h = head_height, r = hex_radius, $fn = 6);
}

module shank() {
    cylinder(h = shank_length, d = shank_dia);
}

module m8_hex_bolt() {
    union() {
        // 頭部: z = 0 ~ +head_height (底面が原点)
        hex_head();

        // シャンク: z = -shank_length ~ 0 (z<0 側へ伸ばす)
        translate([0, 0, -shank_length])
            shank();
    }
}

m8_hex_bolt();
dynamicnot run
—