vibe-openscad

tier-4-gp2y0a21yk / gemini-3.5-flash

1 run / 累計 73.0s / 累計 $0.0124

gemini flash 3.5 pdf-page

bare (provider default effort)

run detail →
render
bare render of tier-4-gp2y0a21yk
loading STL…
success 73.0s · 1528/1124t · $0.0124
SCAD (86 lines)
$fn = 50;

// GP2Y0A21YK0F 測距センサ外形モデル
// 座標系: 本体の中心が原点。+Z は上方向(レンズが上面)、+Y は前方(コネクタの反対方向)

module gp2y0a21yk0f() {
    // 全体の中心を原点 (0, 0, 0) に合わせるためのオフセット調整
    // (X方向は対称のため 0、Y方向とZ方向はバウンディングボックスの中心を基準に調整)
    translate([0, 1.3, -10.45]) {
        
        // 1. ベース本体ケース (Base case)
        // 29.5mm x 13mm x 13.5mm の直方体
        difference() {
            translate([-14.75, -6.5, 0])
                cube([29.5, 13, 13.5]);
            
            // 下部のケーブル/コネクタ用切欠き
            translate([-13.85, -6.6, -1])
                cube([10.1, 3.0, 5.0]);
        }
        
        // 2. 連結バー & 取付耳 (Mounting ears)
        // 厚み: 1.8mm (Z: 0 〜 1.8)
        // 穴ピッチ: 37mm (X: -18.5, 18.5)
        // 耳の中心はベース後端から 7.2mm の位置 (Y: -0.7)
        for (x = [-18.5, 18.5]) {
            difference() {
                union() {
                    // 耳の半円部 (R3.75)
                    translate([x, -0.7, 0])
                        cylinder(d=7.5, h=1.8);
                    
                    // ベース本体と耳をつなぐ連結バー
                    if (x < 0) {
                        translate([x, -0.7 - 3.75, 0])
                            cube([3.75, 7.5, 1.8]);
                    } else {
                        translate([x - 3.75, -0.7 - 3.75, 0])
                            cube([3.75, 7.5, 1.8]);
                    }
                }
                // 取付穴 (直径 3.2mm)
                translate([x, -0.7, -1])
                    cylinder(d=3.2, h=4.0);
            }
        }
        
        // 3. レンズ部本体ケース (Lens case)
        // 29.5mm x 6.3mm x 5.4mm
        // ベースの上面 (Z: 13.5) に配置
        translate([-14.75, -1.8, 13.5])
            cube([29.5, 6.3, 5.4]);
            
        // 4. レンズ (Lenses)
        // 高さ: 2.0mm
        
        // 発光側レンズ (Light emitter: 左側、円形)
        // レンズ中心: X = -14.0 (耳から 4.5mm)
        translate([-14.0, 1.35, 18.9]) {
            cylinder(d=5.0, h=2.0);
        }
        
        // 受光側レンズ (Light detector: 右側、角丸矩形)
        // レンズ中心: X = 6.0 (発光側から 20.0mm)
        translate([6.0, 1.35, 18.9]) {
            hull() {
                translate([-2.5, 0, 0]) cylinder(d=4.5, h=2.0);
                translate([2.5, 0, 0]) cylinder(d=4.5, h=2.0);
            }
        }
        
        // 5. コネクタ部 (Connector)
        // 幅 10.1mm、飛び出し 2.6mm
        translate([-13.85, -9.1, -4.0])
            cube([10.1, 2.6, 5.5]);
            
        // 6. ケーブル (Cable: 簡易表現の丸棒)
        translate([-8.8, -7.8, -15.0]) {
            color("gray")
                cylinder(d=3.0, h=11.0);
        }
    }
}

// モデルの呼び出し
gp2y0a21yk0f();

prompt

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

※ 同じ Sharp の GP2Y0D413K0F とは別モデルです:
- レンジ: 10〜80cm(アナログ電圧出力)
- パッケージ:
  - 本体は横長(乗っているレンズ部 + 連結バー部分の2塊で構成)
  - 連結部にケーブル取り出し穴 + 取付穴2個
  - 受光・発光のレンズが本体上部から飛び出している
- コネクタはケーブル(JST PHR-3)で出る、本体下部に直付けではない

含めるべき部位:
- レンズ部本体ケース(直方体に近い、上部にレンズ突起)
- 発光側レンズと受光側レンズ(上面に並ぶ円形 / 矩形の窓)
- 連結バー(レンズ部の下方向に伸びる薄い板状の延長部)
- 連結バーにある取付穴 2 つ + ケーブル取り出しの切欠き
- ケーブル(PCB / コネクタの代わりに丸棒で簡易表現で可)

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

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

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