vibe-openscad

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

5 run / 累計 34.3s / 累計 $0.0375

openai gpt 5.3 codex bare

bare (provider default effort)

run detail →
render
bare render of tier-2-l-bracket
loading STL…
success 7.6s · 294/473t · $0.0061
SCAD (53 lines)
// L-bracket parameters
w = 50;          // width (X)
d = 40;          // horizontal depth (Y)
h = 40;          // vertical height (Z)
t = 3;           // thickness

// Hole parameters (M4 countersunk request as specified)
through_d = 4.5; // through hole diameter
cs_d = 8;        // countersink seat diameter
cs_depth = 2;    // countersink seat depth

// Hole placement
edge_inset = 10;             // from edge inward along length direction
x1 = edge_inset;
x2 = w - edge_inset;
y_center = d / 2;
z_center = h / 2;

$fn = 64;

difference() {
    union() {
        // Horizontal flange: extends +Y, thickness in +Z
        cube([w, d, t], center = false);

        // Vertical flange: extends +Z, thickness in +Y
        cube([w, t, h], center = false);
    }

    // ---- Horizontal flange holes (outer side is +Z) ----
    for (x = [x1, x2]) {
        // Through hole
        translate([x, y_center, -1])
            cylinder(d = through_d, h = t + 2);

        // Countersink seat (counterbore as specified: Φ8 x 2mm)
        translate([x, y_center, t - cs_depth])
            cylinder(d = cs_d, h = cs_depth + 0.01);
    }

    // ---- Vertical flange holes (outer side is +Y) ----
    for (x = [x1, x2]) {
        // Through hole (along Y)
        translate([x, -1, z_center])
            rotate([-90, 0, 0])
                cylinder(d = through_d, h = t + 2);

        // Countersink seat on outer side (+Y), depth into flange
        translate([x, t - cs_depth, z_center])
            rotate([-90, 0, 0])
                cylinder(d = cs_d, h = cs_depth + 0.01);
    }
}
パラメータ (8)
スライダを動かすと 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
7.6s · 294/473t · $0.0061
SCAD (53 lines)
// L-bracket parameters
w = 50;          // width (X)
d = 40;          // horizontal depth (Y)
h = 40;          // vertical height (Z)
t = 3;           // thickness

// Hole parameters (M4 countersunk request as specified)
through_d = 4.5; // through hole diameter
cs_d = 8;        // countersink seat diameter
cs_depth = 2;    // countersink seat depth

// Hole placement
edge_inset = 10;             // from edge inward along length direction
x1 = edge_inset;
x2 = w - edge_inset;
y_center = d / 2;
z_center = h / 2;

$fn = 64;

difference() {
    union() {
        // Horizontal flange: extends +Y, thickness in +Z
        cube([w, d, t], center = false);

        // Vertical flange: extends +Z, thickness in +Y
        cube([w, t, h], center = false);
    }

    // ---- Horizontal flange holes (outer side is +Z) ----
    for (x = [x1, x2]) {
        // Through hole
        translate([x, y_center, -1])
            cylinder(d = through_d, h = t + 2);

        // Countersink seat (counterbore as specified: Φ8 x 2mm)
        translate([x, y_center, t - cs_depth])
            cylinder(d = cs_d, h = cs_depth + 0.01);
    }

    // ---- Vertical flange holes (outer side is +Y) ----
    for (x = [x1, x2]) {
        // Through hole (along Y)
        translate([x, -1, z_center])
            rotate([-90, 0, 0])
                cylinder(d = through_d, h = t + 2);

        // Countersink seat on outer side (+Y), depth into flange
        translate([x, t - cs_depth, z_center])
            rotate([-90, 0, 0])
                cylinder(d = cs_d, h = cs_depth + 0.01);
    }
}
highnot run
maxnot run
xhighnot run

iteration: iter-png

i1 success
iter 1
6.2s · 1432/479t · $0.0079
diff vs bare: +21/-24
  // L-bracket parameters
  w = 50;          // width (X)
  d = 40;          // horizontal depth (Y)
  h = 40;          // vertical height (Z)
  t = 3;           // thickness
  
- // Hole parameters (M4 countersunk request as specified)
+ // Hole parameters (M4 screw as specified)
  through_d = 4.5; // through hole diameter
  cs_d = 8;        // countersink seat diameter
  cs_depth = 2;    // countersink seat depth
  
  // Hole placement
- edge_inset = 10;             // from edge inward along length direction
- x1 = edge_inset;
- x2 = w - edge_inset;
- y_center = d / 2;
- z_center = h / 2;
+ edge_inset = 10; // from edge inward along width (X)
+ x_pos = [edge_inset, w - edge_inset];
  
- $fn = 64;
+ $fn = 96;
  
  difference() {
      union() {
-         // Horizontal flange: extends +Y, thickness in +Z
+         // Horizontal flange: 50 x 40, thickness 3, extends +Y from inner corner
          cube([w, d, t], center = false);
  
-         // Vertical flange: extends +Z, thickness in +Y
+         // Vertical flange: 50 x 40, thickness 3, extends +Z from inner corner
          cube([w, t, h], center = false);
      }
  
-     // ---- Horizontal flange holes (outer side is +Z) ----
-     for (x = [x1, x2]) {
+     // Horizontal flange holes (centerline in Y, countersink on outer side +Z)
+     for (x = x_pos) {
          // Through hole
-         translate([x, y_center, -1])
-             cylinder(d = through_d, h = t + 2);
+         translate([x, d/2, -0.1])
+             cylinder(d = through_d, h = t + 0.2);
  
-         // Countersink seat (counterbore as specified: Φ8 x 2mm)
-         translate([x, y_center, t - cs_depth])
-             cylinder(d = cs_d, h = cs_depth + 0.01);
+         // Countersink seat (as cylindrical seat: Φ8 x 2)
+         translate([x, d/2, t - cs_depth])
+             cylinder(d = cs_d, h = cs_depth + 0.1);
      }
  
-     // ---- Vertical flange holes (outer side is +Y) ----
-     for (x = [x1, x2]) {
-         // Through hole (along Y)
-         translate([x, -1, z_center])
+     // Vertical flange holes (centerline in Z, countersink on outer side +Y)
+     for (x = x_pos) {
+         // Through hole (axis along Y)
+         translate([x, -0.1, h/2])
              rotate([-90, 0, 0])
-                 cylinder(d = through_d, h = t + 2);
+                 cylinder(d = through_d, h = t + 0.2);
  
-         // Countersink seat on outer side (+Y), depth into flange
-         translate([x, t - cs_depth, z_center])
+         // Countersink seat (outer side +Y, depth into plate)
+         translate([x, t - cs_depth, h/2])
              rotate([-90, 0, 0])
-                 cylinder(d = cs_d, h = cs_depth + 0.01);
+                 cylinder(d = cs_d, h = cs_depth + 0.1);
      }
  }
SCAD (50 lines)
// L-bracket parameters
w = 50;          // width (X)
d = 40;          // horizontal depth (Y)
h = 40;          // vertical height (Z)
t = 3;           // thickness

// Hole parameters (M4 screw as specified)
through_d = 4.5; // through hole diameter
cs_d = 8;        // countersink seat diameter
cs_depth = 2;    // countersink seat depth

// Hole placement
edge_inset = 10; // from edge inward along width (X)
x_pos = [edge_inset, w - edge_inset];

$fn = 96;

difference() {
    union() {
        // Horizontal flange: 50 x 40, thickness 3, extends +Y from inner corner
        cube([w, d, t], center = false);

        // Vertical flange: 50 x 40, thickness 3, extends +Z from inner corner
        cube([w, t, h], center = false);
    }

    // Horizontal flange holes (centerline in Y, countersink on outer side +Z)
    for (x = x_pos) {
        // Through hole
        translate([x, d/2, -0.1])
            cylinder(d = through_d, h = t + 0.2);

        // Countersink seat (as cylindrical seat: Φ8 x 2)
        translate([x, d/2, t - cs_depth])
            cylinder(d = cs_d, h = cs_depth + 0.1);
    }

    // Vertical flange holes (centerline in Z, countersink on outer side +Y)
    for (x = x_pos) {
        // Through hole (axis along Y)
        translate([x, -0.1, h/2])
            rotate([-90, 0, 0])
                cylinder(d = through_d, h = t + 0.2);

        // Countersink seat (outer side +Y, depth into plate)
        translate([x, t - cs_depth, h/2])
            rotate([-90, 0, 0])
                cylinder(d = cs_d, h = cs_depth + 0.1);
    }
}
i2 success
iter 2
6.8s · 1438/540t · $0.0086
diff vs i1: +11/-5
  // L-bracket parameters
  w = 50;          // width (X)
  d = 40;          // horizontal depth (Y)
  h = 40;          // vertical height (Z)
  t = 3;           // thickness
  
  // Hole parameters (M4 screw as specified)
  through_d = 4.5; // through hole diameter
  cs_d = 8;        // countersink seat diameter
  cs_depth = 2;    // countersink seat depth
  
  // Hole placement
- edge_inset = 10; // from edge inward along width (X)
+ edge_inset = 10; // from side edges along X
  x_pos = [edge_inset, w - edge_inset];
  
  $fn = 96;
  
  difference() {
      union() {
          // Horizontal flange: 50 x 40, thickness 3, extends +Y from inner corner
          cube([w, d, t], center = false);
  
          // Vertical flange: 50 x 40, thickness 3, extends +Z from inner corner
          cube([w, t, h], center = false);
      }
  
-     // Horizontal flange holes (centerline in Y, countersink on outer side +Z)
+     // Horizontal flange holes
+     // centerline: X along width, Y at d/2
+     // pair positioned 10mm from left/right edges (X=10,40)
+     // countersink seat on outer side (+Z)
      for (x = x_pos) {
          // Through hole
          translate([x, d/2, -0.1])
              cylinder(d = through_d, h = t + 0.2);
  
-         // Countersink seat (as cylindrical seat: Φ8 x 2)
+         // Countersink seat (Φ8 x 2 deep from outer face)
          translate([x, d/2, t - cs_depth])
              cylinder(d = cs_d, h = cs_depth + 0.1);
      }
  
-     // Vertical flange holes (centerline in Z, countersink on outer side +Y)
+     // Vertical flange holes
+     // centerline: X along width, Z at h/2
+     // pair positioned 10mm from left/right edges (X=10,40)
+     // countersink seat on outer side (+Y)
      for (x = x_pos) {
          // Through hole (axis along Y)
          translate([x, -0.1, h/2])
              rotate([-90, 0, 0])
                  cylinder(d = through_d, h = t + 0.2);
  
-         // Countersink seat (outer side +Y, depth into plate)
+         // Countersink seat (Φ8 x 2 deep from outer face)
          translate([x, t - cs_depth, h/2])
              rotate([-90, 0, 0])
                  cylinder(d = cs_d, h = cs_depth + 0.1);
      }
  }
SCAD (56 lines)
// L-bracket parameters
w = 50;          // width (X)
d = 40;          // horizontal depth (Y)
h = 40;          // vertical height (Z)
t = 3;           // thickness

// Hole parameters (M4 screw as specified)
through_d = 4.5; // through hole diameter
cs_d = 8;        // countersink seat diameter
cs_depth = 2;    // countersink seat depth

// Hole placement
edge_inset = 10; // from side edges along X
x_pos = [edge_inset, w - edge_inset];

$fn = 96;

difference() {
    union() {
        // Horizontal flange: 50 x 40, thickness 3, extends +Y from inner corner
        cube([w, d, t], center = false);

        // Vertical flange: 50 x 40, thickness 3, extends +Z from inner corner
        cube([w, t, h], center = false);
    }

    // Horizontal flange holes
    // centerline: X along width, Y at d/2
    // pair positioned 10mm from left/right edges (X=10,40)
    // countersink seat on outer side (+Z)
    for (x = x_pos) {
        // Through hole
        translate([x, d/2, -0.1])
            cylinder(d = through_d, h = t + 0.2);

        // Countersink seat (Φ8 x 2 deep from outer face)
        translate([x, d/2, t - cs_depth])
            cylinder(d = cs_d, h = cs_depth + 0.1);
    }

    // Vertical flange holes
    // centerline: X along width, Z at h/2
    // pair positioned 10mm from left/right edges (X=10,40)
    // countersink seat on outer side (+Y)
    for (x = x_pos) {
        // Through hole (axis along Y)
        translate([x, -0.1, h/2])
            rotate([-90, 0, 0])
                cylinder(d = through_d, h = t + 0.2);

        // Countersink seat (Φ8 x 2 deep from outer face)
        translate([x, t - cs_depth, h/2])
            rotate([-90, 0, 0])
                cylinder(d = cs_d, h = cs_depth + 0.1);
    }
}
i3 success
iter 3
6.0s · 1499/540t · $0.0087
diff vs i2: +0/-0
  // L-bracket parameters
  w = 50;          // width (X)
  d = 40;          // horizontal depth (Y)
  h = 40;          // vertical height (Z)
  t = 3;           // thickness
  
  // Hole parameters (M4 screw as specified)
  through_d = 4.5; // through hole diameter
  cs_d = 8;        // countersink seat diameter
  cs_depth = 2;    // countersink seat depth
  
  // Hole placement
  edge_inset = 10; // from side edges along X
  x_pos = [edge_inset, w - edge_inset];
  
  $fn = 96;
  
  difference() {
      union() {
          // Horizontal flange: 50 x 40, thickness 3, extends +Y from inner corner
          cube([w, d, t], center = false);
  
          // Vertical flange: 50 x 40, thickness 3, extends +Z from inner corner
          cube([w, t, h], center = false);
      }
  
      // Horizontal flange holes
      // centerline: X along width, Y at d/2
      // pair positioned 10mm from left/right edges (X=10,40)
      // countersink seat on outer side (+Z)
      for (x = x_pos) {
          // Through hole
          translate([x, d/2, -0.1])
              cylinder(d = through_d, h = t + 0.2);
  
          // Countersink seat (Φ8 x 2 deep from outer face)
          translate([x, d/2, t - cs_depth])
              cylinder(d = cs_d, h = cs_depth + 0.1);
      }
  
      // Vertical flange holes
      // centerline: X along width, Z at h/2
      // pair positioned 10mm from left/right edges (X=10,40)
      // countersink seat on outer side (+Y)
      for (x = x_pos) {
          // Through hole (axis along Y)
          translate([x, -0.1, h/2])
              rotate([-90, 0, 0])
                  cylinder(d = through_d, h = t + 0.2);
  
          // Countersink seat (Φ8 x 2 deep from outer face)
          translate([x, t - cs_depth, h/2])
              rotate([-90, 0, 0])
                  cylinder(d = cs_d, h = cs_depth + 0.1);
      }
  }
SCAD (56 lines)
// L-bracket parameters
w = 50;          // width (X)
d = 40;          // horizontal depth (Y)
h = 40;          // vertical height (Z)
t = 3;           // thickness

// Hole parameters (M4 screw as specified)
through_d = 4.5; // through hole diameter
cs_d = 8;        // countersink seat diameter
cs_depth = 2;    // countersink seat depth

// Hole placement
edge_inset = 10; // from side edges along X
x_pos = [edge_inset, w - edge_inset];

$fn = 96;

difference() {
    union() {
        // Horizontal flange: 50 x 40, thickness 3, extends +Y from inner corner
        cube([w, d, t], center = false);

        // Vertical flange: 50 x 40, thickness 3, extends +Z from inner corner
        cube([w, t, h], center = false);
    }

    // Horizontal flange holes
    // centerline: X along width, Y at d/2
    // pair positioned 10mm from left/right edges (X=10,40)
    // countersink seat on outer side (+Z)
    for (x = x_pos) {
        // Through hole
        translate([x, d/2, -0.1])
            cylinder(d = through_d, h = t + 0.2);

        // Countersink seat (Φ8 x 2 deep from outer face)
        translate([x, d/2, t - cs_depth])
            cylinder(d = cs_d, h = cs_depth + 0.1);
    }

    // Vertical flange holes
    // centerline: X along width, Z at h/2
    // pair positioned 10mm from left/right edges (X=10,40)
    // countersink seat on outer side (+Y)
    for (x = x_pos) {
        // Through hole (axis along Y)
        translate([x, -0.1, h/2])
            rotate([-90, 0, 0])
                cylinder(d = through_d, h = t + 0.2);

        // Countersink seat (Φ8 x 2 deep from outer face)
        translate([x, t - cs_depth, h/2])
            rotate([-90, 0, 0])
                cylinder(d = cs_d, h = cs_depth + 0.1);
    }
}