vibe-openscad

tier-2-hex-bolt / gemini-3.1-flash-lite

6 run / 累計 10.7s / 累計 $0.0031

gemini flash-lite 3.1 bare

bare (provider default effort)

run detail →
render
bare render of tier-2-hex-bolt
loading STL…
success 1.4s · 173/141t · $0.0003
SCAD (11 lines)
// M8 六角ボルト (ねじ山なし)

$fn = 64;

// 頭部 (対辺距離 13mm, 高さ 5.3mm)
// 円の半径 = 対辺距離 / sqrt(3)
cylinder(r = 13 / sqrt(3), h = 5.3, $fn = 6);

// シャンク (直径 8mm, 長さ 30mm, z < 0 側)
translate([0, 0, -30])
cylinder(r = 8 / 2, h = 30);

prompt

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

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

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

variant: thinking

off success →
off
1.5s · 173/175t · $0.0003
SCAD (20 lines)
// M8 六角ボルト (ねじ山省略モデル)

$fn = 64;

// 頭部 (対辺距離 13mm, 高さ 5.3mm)
// cylinderのrは外接円半径 = 対辺 / sqrt(3)
module bolt_head() {
    cylinder(d = 13 / cos(180/6), h = 5.3, $fn = 6);
}

// シャンク (直径 8mm, 長さ 30mm)
module shank() {
    translate([0, 0, -30])
    cylinder(d = 8, h = 30);
}

union() {
    bolt_head();
    shank();
}
adaptivenot run
—
dynamic (default) success →
dynamic
1.4s · 173/141t · $0.0003
SCAD (11 lines)
// M8 六角ボルト (ねじ山なし)

$fn = 64;

// 頭部 (対辺距離 13mm, 高さ 5.3mm)
// 円の半径 = 対辺距離 / sqrt(3)
cylinder(r = 13 / sqrt(3), h = 5.3, $fn = 6);

// シャンク (直径 8mm, 長さ 30mm, z < 0 側)
translate([0, 0, -30])
cylinder(r = 8 / 2, h = 30);

iteration: iter-png

i1 success →
iter 1
2.3s · 1446/207t · $0.0007
diff vs bare: +7/-4
  // M8 六角ボルト (ねじ山なし)
  
+ // 頭部の円周方向の滑らかさを設定
  $fn = 64;
  
- // 頭部 (対辺距離 13mm, 高さ 5.3mm)
- // 円の半径 = 対辺距離 / sqrt(3)
- cylinder(r = 13 / sqrt(3), h = 5.3, $fn = 6);
+ // 頭部: 対辺距離 13mm、高さ 5.3mm
+ // OpenSCADのcylinder(fn=6)は「半径」を指定するため、対辺距離(13mm)の半分である「内接円半径」を計算
+ // 内接円半径 = 対辺距離 / 2 = 6.5mm
+ cylinder(r = 6.5 / cos(180/6), h = 5.3, $fn = 6);
  
- // シャンク (直径 8mm, 長さ 30mm, z < 0 側)
+ // シャンク: 直径 8mm、長さ 30mm
+ // z=0の位置から z<0 側へ伸ばす
  translate([0, 0, -30])
  cylinder(r = 8 / 2, h = 30);
SCAD (14 lines)
// M8 六角ボルト (ねじ山なし)

// 頭部の円周方向の滑らかさを設定
$fn = 64;

// 頭部: 対辺距離 13mm、高さ 5.3mm
// OpenSCADのcylinder(fn=6)は「半径」を指定するため、対辺距離(13mm)の半分である「内接円半径」を計算
// 内接円半径 = 対辺距離 / 2 = 6.5mm
cylinder(r = 6.5 / cos(180/6), h = 5.3, $fn = 6);

// シャンク: 直径 8mm、長さ 30mm
// z=0の位置から z<0 側へ伸ばす
translate([0, 0, -30])
cylinder(r = 8 / 2, h = 30);
i2 success →
iter 2
2.0s · 1512/294t · $0.0008
diff vs i1: +11/-10
  // M8 六角ボルト (ねじ山なし)
  
- // 頭部の円周方向の滑らかさを設定
- $fn = 64;
- 
  // 頭部: 対辺距離 13mm、高さ 5.3mm
- // OpenSCADのcylinder(fn=6)は「半径」を指定するため、対辺距離(13mm)の半分である「内接円半径」を計算
- // 内接円半径 = 対辺距離 / 2 = 6.5mm
- cylinder(r = 6.5 / cos(180/6), h = 5.3, $fn = 6);
+ // cylinder(fn=6)のrは内接円半径(対辺距離の半分)を指定する
+ head_across_flats = 13;
+ head_height = 5.3;
+ shank_diameter = 8;
+ shank_length = 30;
  
- // シャンク: 直径 8mm、長さ 30mm
- // z=0の位置から z<0 側へ伸ばす
- translate([0, 0, -30])
- cylinder(r = 8 / 2, h = 30);
+ // 頭部: z=0 から z=5.3 まで配置
+ cylinder(r = (head_across_flats / 2) / cos(180/6), h = head_height, $fn = 6);
+ 
+ // シャンク: z=0 から z=-30 まで配置
+ translate([0, 0, -shank_length])
+ cylinder(r = shank_diameter / 2, h = shank_length, $fn = 64);
SCAD (15 lines)
// M8 六角ボルト (ねじ山なし)

// 頭部: 対辺距離 13mm、高さ 5.3mm
// cylinder(fn=6)のrは内接円半径(対辺距離の半分)を指定する
head_across_flats = 13;
head_height = 5.3;
shank_diameter = 8;
shank_length = 30;

// 頭部: z=0 から z=5.3 まで配置
cylinder(r = (head_across_flats / 2) / cos(180/6), h = head_height, $fn = 6);

// シャンク: z=0 から z=-30 まで配置
translate([0, 0, -shank_length])
cylinder(r = shank_diameter / 2, h = shank_length, $fn = 64);
i3 success →
iter 3
2.0s · 1513/275t · $0.0008
diff vs i2: +4/-2
  // M8 六角ボルト (ねじ山なし)
  
  // 頭部: 対辺距離 13mm、高さ 5.3mm
- // cylinder(fn=6)のrは内接円半径(対辺距離の半分)を指定する
+ // OpenSCADのcylinder(fn=6)は「外接円半径」を引数に取るため、
+ // 対辺距離(S)から半径(r)を求めるには r = S / sqrt(3) もしくは r = (S/2) / cos(30°) を用いる
  head_across_flats = 13;
  head_height = 5.3;
  shank_diameter = 8;
  shank_length = 30;
  
  // 頭部: z=0 から z=5.3 まで配置
- cylinder(r = (head_across_flats / 2) / cos(180/6), h = head_height, $fn = 6);
+ // 直径方向の補正: 半径 = (対辺距離 / 2) / cos(30°)
+ cylinder(r = (head_across_flats / 2) / cos(30), h = head_height, $fn = 6);
  
  // シャンク: z=0 から z=-30 まで配置
  translate([0, 0, -shank_length])
  cylinder(r = shank_diameter / 2, h = shank_length, $fn = 64);
SCAD (17 lines)
// M8 六角ボルト (ねじ山なし)

// 頭部: 対辺距離 13mm、高さ 5.3mm
// OpenSCADのcylinder(fn=6)は「外接円半径」を引数に取るため、
// 対辺距離(S)から半径(r)を求めるには r = S / sqrt(3) もしくは r = (S/2) / cos(30°) を用いる
head_across_flats = 13;
head_height = 5.3;
shank_diameter = 8;
shank_length = 30;

// 頭部: z=0 から z=5.3 まで配置
// 直径方向の補正: 半径 = (対辺距離 / 2) / cos(30°)
cylinder(r = (head_across_flats / 2) / cos(30), h = head_height, $fn = 6);

// シャンク: z=0 から z=-30 まで配置
translate([0, 0, -shank_length])
cylinder(r = shank_diameter / 2, h = shank_length, $fn = 64);