vibe-openscad

pdf-page/claude-fable-5 / tier-4-gp2y0d413k

success tier 4

pdf-page (claude fable 5)

render
bare render of tier-4-gp2y0d413k
loading STL…
success 138.2s · 3351/11608t · $0.6139
SCAD (158 lines)
// ============================================================
//  Sharp GP2Y0D413K0F  Distance Measuring Sensor
//  Outline model based on datasheet p.2 "Outline Dimensions"
//
//  Units  : mm
//  Origin : center of the main body case
//  Axes   : +Z = up, +Y = front (lens side), connector at bottom
//
//  Note: dimensions marked "*" in the datasheet are lens-center
//        positions, values in ( ) are reference dimensions.
// ============================================================

$fn = 64;

/* ---------------- datasheet dimensions ---------------- */
BODY_W       = 29.45;          // body width
BODY_D       = 6.3;            // body depth (6.3) reference
BODY_H       = 13.05;          // body case height
TOTAL_D      = 7.1;            // overall depth incl. lens case (7.1 +/-0.1)
LENS_PRJ     = TOTAL_D - BODY_D;   // 0.8 : lens-case protrusion

LENS_CASE_H  = 8.4;            // lens case height
LENS_WIN_H   = 7.2;            // lens window opening height
LENS_TOP_OFS = 2.0;            // lens case top, measured from body top

EMIT_X       = 4.5;            // * emitter lens center from left edge
DET_X        = 19.7;           // * detector lens center from left edge
EMIT_LENS_D  = 3.75;           // emitter lens diameter

PWB_W        = 10.1;           // PWB width
PWB_D        = 6.3;            // PWB depth
PWB_T        = 1.2;            // PWB thickness
PWB_GAP      = 1.35;           // gap between case bottom and PWB
                               //  -> overall height 18.9 (+0.3/-0.3)

CONN_W       = 7.0;            // connector JCTC 12001W90-3P-HF (simplified)
CONN_D       = 4.0;
CONN_H       = 3.3;            // (3.3) reference
PIN_PITCH    = 1.5;

TOTAL_H      = 18.9;           // = BODY_H + PWB_GAP + PWB_T + CONN_H

/* ---------------- derived values ---------------- */
X_L     = -BODY_W/2;                                   // body left edge
FRONT   =  BODY_D/2;                                   // body front face
LENS_Z  =  BODY_H/2 - LENS_TOP_OFS - LENS_CASE_H/2;    // lens center height

LC_X0   = X_L + 1.5;            // lens case left edge
LC_W    = 22.5;                 // lens case width
LC_T    = 1.5;                  // lens case slab thickness (overlaps body)

RWIN_X0 = X_L + 8.5;            // detector rectangular window
RWIN_X1 = X_L + 23.0;
WIN_DEP = 0.6;                  // window recess depth

PWB_Z      = -BODY_H/2 - PWB_GAP - PWB_T/2;            // PWB center Z
CONN_TOP_Z = -BODY_H/2 - PWB_GAP - PWB_T;              // connector top Z

/* ---------------- modules ---------------- */

// main body case (Carbonic ABS)
module main_body() {
    color("DimGray")
        cube([BODY_W, BODY_D, BODY_H], center = true);
}

// lens case protruding from the front face, with two windows
module lens_case() {
    color("DimGray")
    difference() {
        // lens case slab
        translate([LC_X0 + LC_W/2,
                   FRONT + LENS_PRJ - LC_T/2,
                   LENS_Z])
            cube([LC_W, LC_T, LENS_CASE_H], center = true);

        // emitter window (circular, left)
        translate([X_L + EMIT_X,
                   FRONT + LENS_PRJ - WIN_DEP,
                   LENS_Z])
            rotate([-90, 0, 0])
                cylinder(d = EMIT_LENS_D + 0.5, h = WIN_DEP + 0.2);

        // detector window (rectangular, right)
        translate([(RWIN_X0 + RWIN_X1)/2,
                   FRONT + LENS_PRJ - WIN_DEP/2 + 0.1,
                   LENS_Z])
            cube([RWIN_X1 - RWIN_X0, WIN_DEP + 0.2, LENS_WIN_H],
                 center = true);
    }
}

// emitter lens (circular, acrylic, visible-light cut-off)
module emitter_lens() {
    color("DarkSlateBlue", 0.9)
        translate([X_L + EMIT_X,
                   FRONT + LENS_PRJ - WIN_DEP,
                   LENS_Z])
            rotate([-90, 0, 0])
                cylinder(d = EMIT_LENS_D, h = 0.35);
}

// detector lens (rectangular window, right side)
module detector_lens() {
    color("DarkSlateBlue", 0.9)
        translate([(RWIN_X0 + RWIN_X1)/2,
                   FRONT + LENS_PRJ - WIN_DEP + 0.18,
                   LENS_Z])
            cube([RWIN_X1 - RWIN_X0 - 0.5, 0.35, LENS_WIN_H - 0.5],
                 center = true);
}

// legs holding the PWB below the case
module pwb_legs() {
    color("DimGray")
    for (sx = [-1, 1])
        translate([sx * (PWB_W/2 + 0.75),
                   0,
                   -BODY_H/2 - (PWB_GAP + PWB_T)/2])
            cube([1.5, BODY_D, PWB_GAP + PWB_T], center = true);
}

// PWB (paper phenol)
module pwb() {
    color("Tan")
        translate([0, 0, PWB_Z])
            cube([PWB_W, PWB_D, PWB_T], center = true);
}

// 3-pin connector JCTC 12001W90-3P-HF (simplified)
module connector() {
    // housing with downward opening
    color("White")
    difference() {
        translate([0, 0, CONN_TOP_Z - CONN_H/2])
            cube([CONN_W, CONN_D, CONN_H], center = true);
        translate([0, 0, CONN_TOP_Z - CONN_H/2 - 0.6])
            cube([CONN_W - 1.4, CONN_D - 1.4, CONN_H], center = true);
    }
    // 3 pins, 1.5 mm pitch
    color("Gold")
    for (i = [-1 : 1])
        translate([i * PIN_PITCH, 0, CONN_TOP_Z - (CONN_H - 0.4)/2])
            cube([0.4, 0.4, CONN_H - 0.4], center = true);
}

/* ---------------- assembly ---------------- */
module GP2Y0D413K0F() {
    main_body();
    lens_case();
    emitter_lens();
    detector_lens();
    pwb_legs();
    pwb();
    connector();
}

GP2Y0D413K0F();
パラメータ (22)
スライダを動かすと openscad-wasm で再レンダリング

meta

runIdpdf-page_claude-fable-5-91e4cae8a1c5-2026-06-09T18-47-33-504Z
matrixIdpdf-page/claude-fable-5
signature91e4cae8a1c5eee2…
provideranthropic
modelclaude-fable-5
harnesspdf-page
statussuccess
duration138.24s (wallclock: load + prompt eval + generation + network)
tokens3351 in / 11608 out
wallclock tok/s84.0 tok/s (end-to-end)
cost$0.6139
createdAt2026-06-09T18:47:33.504Z
gitCommit2b674f55c19d
openscadOpenSCAD version 2026.04.27

prompt

添付の Sharp 製距離センサ GP2Y0D413K0F のデータシート 2 ページ目には、
本体の外形寸法図(Outline Dimensions)が描かれています。図を読み取り、
OpenSCAD でセンサの外形をモデリングしてください。

含めるべき部位:
- 本体ケース(Carbonic ABS、概形は直方体)
- 前面に飛び出すレンズケース(2 つの窓を持つ突起)
- 発光部レンズ(円形の窓、左側)と受光部レンズ(矩形の窓、右側)
- 下部に取り付けられる PWB(プリント基板、薄板)
- 底面の 3 ピンコネクタ(JCTC 12001W90-3P-HF、簡易表現で可)

寸法:
- 図中のミリメートル数値に従ってください
- "*" 印が付いた寸法はレンズ中心位置を示す参照寸法です
- 括弧 `( )` で囲まれた値は参考寸法
- "Unspecified tolerances shall be ± 0.3 mm" に従ってよい

座標系:
- 本体の中心が原点。+Z は上方向(コネクタが下、レンズが前面 +Y)
- 単位は mm

内部の IC や回路素子はモデリング不要、外形だけで十分です。
完成したコード全体を ```openscad ... ``` のフェンスで囲んで出力してください。
コードのみで、追加の説明は不要です。