vibe-openscad

tier-2-l-bracket / gpt-5-codex

4 run / 累計 793.6s / 累計 $0.4823

openai gpt 5 codex bare

bare (provider default effort)

run detail →
render
bare render of tier-2-l-bracket
loading STL…
success 174.4s · 294/21265t · $0.2130
SCAD (42 lines)
$fn = 80;

width = 50;
depth = 40;
height = 40;
thickness = 3;

hole_d = 4.5;
cs_d = 8;
cs_depth = 2;

hole_offset = width / 2 - 10;
depth_center = depth / 2;
height_center = height / 2;

module horizontal_hole(x_pos) {
    translate([x_pos, depth_center, 0]) {
        cylinder(h = thickness, r = hole_d / 2);
        translate([0, 0, thickness - cs_depth])
            cylinder(h = cs_depth, r1 = hole_d / 2, r2 = cs_d / 2);
    }
}

module vertical_hole(x_pos) {
    translate([x_pos, 0, height_center])
        rotate([-90, 0, 0]) {
            cylinder(h = thickness, r = hole_d / 2);
            translate([0, 0, thickness - cs_depth])
                cylinder(h = cs_depth, r1 = hole_d / 2, r2 = cs_d / 2);
        }
}

difference() {
    union() {
        translate([-width / 2, 0, 0]) cube([width, depth, thickness]);
        translate([-width / 2, 0, 0]) cube([width, thickness, height]);
    }
    for (x_pos = [-hole_offset, hole_offset]) {
        horizontal_hole(x_pos);
        vertical_hole(x_pos);
    }
}
パラメータ (7)
スライダを動かすと openscad-wasm で再レンダリング

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 ... ``` のフェンスで囲んで出力してください。コードのみで、追加の説明は不要です。

variant: effort

lownot run
medium (default) success
medium
174.4s · 294/21265t · $0.2130
SCAD (42 lines)
$fn = 80;

width = 50;
depth = 40;
height = 40;
thickness = 3;

hole_d = 4.5;
cs_d = 8;
cs_depth = 2;

hole_offset = width / 2 - 10;
depth_center = depth / 2;
height_center = height / 2;

module horizontal_hole(x_pos) {
    translate([x_pos, depth_center, 0]) {
        cylinder(h = thickness, r = hole_d / 2);
        translate([0, 0, thickness - cs_depth])
            cylinder(h = cs_depth, r1 = hole_d / 2, r2 = cs_d / 2);
    }
}

module vertical_hole(x_pos) {
    translate([x_pos, 0, height_center])
        rotate([-90, 0, 0]) {
            cylinder(h = thickness, r = hole_d / 2);
            translate([0, 0, thickness - cs_depth])
                cylinder(h = cs_depth, r1 = hole_d / 2, r2 = cs_d / 2);
        }
}

difference() {
    union() {
        translate([-width / 2, 0, 0]) cube([width, depth, thickness]);
        translate([-width / 2, 0, 0]) cube([width, thickness, height]);
    }
    for (x_pos = [-hole_offset, hole_offset]) {
        horizontal_hole(x_pos);
        vertical_hole(x_pos);
    }
}
highnot run
maxnot run
xhighnot run

iteration: iter-png

i1 success
iter 1
70.1s · 1348/5460t · $0.0563
diff vs bare: +0/-0
  $fn = 80;
  
  width = 50;
  depth = 40;
  height = 40;
  thickness = 3;
  
  hole_d = 4.5;
  cs_d = 8;
  cs_depth = 2;
  
  hole_offset = width / 2 - 10;
  depth_center = depth / 2;
  height_center = height / 2;
  
  module horizontal_hole(x_pos) {
      translate([x_pos, depth_center, 0]) {
          cylinder(h = thickness, r = hole_d / 2);
          translate([0, 0, thickness - cs_depth])
              cylinder(h = cs_depth, r1 = hole_d / 2, r2 = cs_d / 2);
      }
  }
  
  module vertical_hole(x_pos) {
      translate([x_pos, 0, height_center])
          rotate([-90, 0, 0]) {
              cylinder(h = thickness, r = hole_d / 2);
              translate([0, 0, thickness - cs_depth])
                  cylinder(h = cs_depth, r1 = hole_d / 2, r2 = cs_d / 2);
          }
  }
  
  difference() {
      union() {
          translate([-width / 2, 0, 0]) cube([width, depth, thickness]);
          translate([-width / 2, 0, 0]) cube([width, thickness, height]);
      }
      for (x_pos = [-hole_offset, hole_offset]) {
          horizontal_hole(x_pos);
          vertical_hole(x_pos);
      }
  }
SCAD (42 lines)
$fn = 80;

width = 50;
depth = 40;
height = 40;
thickness = 3;

hole_d = 4.5;
cs_d = 8;
cs_depth = 2;

hole_offset = width / 2 - 10;
depth_center = depth / 2;
height_center = height / 2;

module horizontal_hole(x_pos) {
    translate([x_pos, depth_center, 0]) {
        cylinder(h = thickness, r = hole_d / 2);
        translate([0, 0, thickness - cs_depth])
            cylinder(h = cs_depth, r1 = hole_d / 2, r2 = cs_d / 2);
    }
}

module vertical_hole(x_pos) {
    translate([x_pos, 0, height_center])
        rotate([-90, 0, 0]) {
            cylinder(h = thickness, r = hole_d / 2);
            translate([0, 0, thickness - cs_depth])
                cylinder(h = cs_depth, r1 = hole_d / 2, r2 = cs_d / 2);
        }
}

difference() {
    union() {
        translate([-width / 2, 0, 0]) cube([width, depth, thickness]);
        translate([-width / 2, 0, 0]) cube([width, thickness, height]);
    }
    for (x_pos = [-hole_offset, hole_offset]) {
        horizontal_hole(x_pos);
        vertical_hole(x_pos);
    }
}
i2 no_code nocode
no_code
374.7s
model returned empty response (stopReason=in_progress)
SCAD (1 lines)

no SCAD

i3not run