vibe-openscad

tier-2-hex-bolt / gpt-5.4-mini-2026-03-17

7 run / 累計 18.8s / 累計 $0.0071

openai gpt 5.4 mini 2026-03-17 bare

bare (provider default effort)

run detail →
render
bare render of tier-2-hex-bolt
loading STL…
success 2.0s · 200/182t · $0.0006
SCAD (18 lines)
// M8 hex bolt, simplified shank
$fn = 64;

module hex_bolt_m8() {
    union() {
        // Head: hexagonal prism, across-flats 13mm, height 5.3mm
        // For a hexagon, across-flats = 2 * r * cos(30°)
        // So r = AF / (2*cos(30°))
        translate([0, 0, 0])
            cylinder(h = 5.3, r = 13 / (2 * cos(30)), $fn = 6);

        // Shank: cylindrical shaft, diameter 8mm, length 30mm
        translate([0, 0, -30])
            cylinder(h = 30, d = 8);
    }
}

hex_bolt_m8();

prompt

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

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

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

variant: effort

low success
low
3.9s · 200/336t · $0.0011
SCAD (8 lines)
union() {
    // Head
    cylinder(h = 5.3, r = 13 / sqrt(3), $fn = 6);

    // Shank
    translate([0, 0, -30])
        cylinder(h = 30, r = 4, $fn = 64);
}
medium (default) success
medium
2.0s · 200/182t · $0.0006
SCAD (18 lines)
// M8 hex bolt, simplified shank
$fn = 64;

module hex_bolt_m8() {
    union() {
        // Head: hexagonal prism, across-flats 13mm, height 5.3mm
        // For a hexagon, across-flats = 2 * r * cos(30°)
        // So r = AF / (2*cos(30°))
        translate([0, 0, 0])
            cylinder(h = 5.3, r = 13 / (2 * cos(30)), $fn = 6);

        // Shank: cylindrical shaft, diameter 8mm, length 30mm
        translate([0, 0, -30])
            cylinder(h = 30, d = 8);
    }
}

hex_bolt_m8();
high success
high
4.7s · 200/587t · $0.0018
SCAD (6 lines)
union() {
    translate([0, 0, -30])
        cylinder(h = 30, d = 8, $fn = 64);

    cylinder(h = 5.3, r = 13 / (2 * cos(30)), $fn = 6);
}
maxnot run
xhighnot run

iteration: iter-png

i1 success
iter 1
2.4s · 1047/191t · $0.0010
diff vs bare: +5/-5
- // M8 hex bolt, simplified shank
  $fn = 64;
  
- module hex_bolt_m8() {
+ module m8_hex_bolt() {
      union() {
          // Head: hexagonal prism, across-flats 13mm, height 5.3mm
-         // For a hexagon, across-flats = 2 * r * cos(30°)
-         // So r = AF / (2*cos(30°))
+         // In OpenSCAD, cylinder(..., $fn=6) is inscribed in the circumscribed circle,
+         // so the radius must be set from across-flats.
          translate([0, 0, 0])
              cylinder(h = 5.3, r = 13 / (2 * cos(30)), $fn = 6);
  
          // Shank: cylindrical shaft, diameter 8mm, length 30mm
+         // Head bottom at z=0, shank extends toward negative Z.
          translate([0, 0, -30])
              cylinder(h = 30, d = 8);
      }
  }
  
- hex_bolt_m8();
+ m8_hex_bolt();
SCAD (18 lines)
$fn = 64;

module m8_hex_bolt() {
    union() {
        // Head: hexagonal prism, across-flats 13mm, height 5.3mm
        // In OpenSCAD, cylinder(..., $fn=6) is inscribed in the circumscribed circle,
        // so the radius must be set from across-flats.
        translate([0, 0, 0])
            cylinder(h = 5.3, r = 13 / (2 * cos(30)), $fn = 6);

        // Shank: cylindrical shaft, diameter 8mm, length 30mm
        // Head bottom at z=0, shank extends toward negative Z.
        translate([0, 0, -30])
            cylinder(h = 30, d = 8);
    }
}

m8_hex_bolt();
i2 success
iter 2
1.9s · 1056/181t · $0.0010
diff vs i1: +1/-2
  $fn = 64;
  
  module m8_hex_bolt() {
      union() {
          // Head: hexagonal prism, across-flats 13mm, height 5.3mm
-         // In OpenSCAD, cylinder(..., $fn=6) is inscribed in the circumscribed circle,
-         // so the radius must be set from across-flats.
+         // cylinder($fn=6) uses the circumscribed radius, so convert from across-flats.
          translate([0, 0, 0])
              cylinder(h = 5.3, r = 13 / (2 * cos(30)), $fn = 6);
  
          // Shank: cylindrical shaft, diameter 8mm, length 30mm
          // Head bottom at z=0, shank extends toward negative Z.
          translate([0, 0, -30])
              cylinder(h = 30, d = 8);
      }
  }
  
  m8_hex_bolt();
SCAD (17 lines)
$fn = 64;

module m8_hex_bolt() {
    union() {
        // Head: hexagonal prism, across-flats 13mm, height 5.3mm
        // cylinder($fn=6) uses the circumscribed radius, so convert from across-flats.
        translate([0, 0, 0])
            cylinder(h = 5.3, r = 13 / (2 * cos(30)), $fn = 6);

        // Shank: cylindrical shaft, diameter 8mm, length 30mm
        // Head bottom at z=0, shank extends toward negative Z.
        translate([0, 0, -30])
            cylinder(h = 30, d = 8);
    }
}

m8_hex_bolt();
i3 success
iter 3
1.8s · 1040/173t · $0.0009
diff vs i2: +1/-1
  $fn = 64;
  
  module m8_hex_bolt() {
      union() {
          // Head: hexagonal prism, across-flats 13mm, height 5.3mm
-         // cylinder($fn=6) uses the circumscribed radius, so convert from across-flats.
+         // Use cylinder with $fn=6; radius = AF / (2*cos(30))
          translate([0, 0, 0])
              cylinder(h = 5.3, r = 13 / (2 * cos(30)), $fn = 6);
  
          // Shank: cylindrical shaft, diameter 8mm, length 30mm
          // Head bottom at z=0, shank extends toward negative Z.
          translate([0, 0, -30])
              cylinder(h = 30, d = 8);
      }
  }
  
  m8_hex_bolt();
SCAD (17 lines)
$fn = 64;

module m8_hex_bolt() {
    union() {
        // Head: hexagonal prism, across-flats 13mm, height 5.3mm
        // Use cylinder with $fn=6; radius = AF / (2*cos(30))
        translate([0, 0, 0])
            cylinder(h = 5.3, r = 13 / (2 * cos(30)), $fn = 6);

        // Shank: cylindrical shaft, diameter 8mm, length 30mm
        // Head bottom at z=0, shank extends toward negative Z.
        translate([0, 0, -30])
            cylinder(h = 30, d = 8);
    }
}

m8_hex_bolt();