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);
} gpt-5.4-mini-2026-03-17 7 run / 累計 18.8s / 累計 $0.0071
// 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(); OpenSCAD で、規格に準じた M8 サイズの六角ボルトを作ってください。 ねじ山自体は省略してよく、円柱のシャンクで構いません。 寸法は以下に従ってください: - 頭部は六角柱で、対辺距離(across-flats)13mm、高さ 5.3mm - シャンク(軸部)は直径 8mm、長さ 30mm の円柱 - ボルト全体の中心軸は +Z 軸方向 - 頭部の底面が原点(z=0)に来るように配置し、シャンクは z<0 側へ伸ばす 完成したコード全体を ```openscad ... ``` のフェンスで囲んで出力してください。コードのみで、追加の説明は不要です。
effort
union() {
// Head
cylinder(h = 5.3, r = 13 / sqrt(3), $fn = 6);
// Shank
translate([0, 0, -30])
cylinder(h = 30, r = 4, $fn = 64);
}
// 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();
union() {
translate([0, 0, -30])
cylinder(h = 30, d = 8, $fn = 64);
cylinder(h = 5.3, r = 13 / (2 * cos(30)), $fn = 6);
} iter-png
- // 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();
$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();
$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();
$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();
$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();
$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();