pdf-page/claude-opus-4-8 / tier-4-gp2y0d413k
success tier 4
pdf-page (claude opus 4.8)
render
// =========================================================
// Sharp GP2Y0D413K0F Distance Sensor
// 単位: mm
// 座標系: 本体中心を原点、取付面(PWB/コネクタ側)を -Z に向ける
// =========================================================
$fn = 48;
// ---- 主要寸法 ----
body_w = 29.45; // 本体 横幅 (X)
body_h = 13.5; // 本体 高さ (Y)
body_d = 7.1; // ケース本体 奥行き (Z) レンズ面まで
lens_case_d = 6.3; // レンズ突起の奥行き(参考)
face_h = 8.4; // フロント面部の高さ
// レンズ関連
lens_dia = 4.0; // レンズ開口径(推定)
lens_center_h = 7.2; // レンズ中心の高さ位置(下面基準)
emitter_x = 4.5; // 左端からエミッタ中心
detector_x = 19.7; // 左端からディテクタ中心
// PWB
pwb_w = 29.45;
pwb_h = 18.9; // PWB全高(参考)
pwb_t = 1.2; // PWB厚
// コネクタ
conn_w = 10.1; // コネクタ幅
conn_h = 4.0; // コネクタ高さ(推定)
conn_d = 3.75; // コネクタ突出(推定)
// =========================================================
// 本体ケース (Carbonic ABS)
// =========================================================
module body_case() {
color([0.15,0.15,0.15]) {
// メイン直方体 (-Z面が取付側)
translate([0,0,-body_d])
cube([body_w, body_h, body_d], center=false);
}
}
// =========================================================
// フロント面 (レンズ面) + レンズ2個
// =========================================================
module lens_face() {
// レンズ面(前面 = +Z)
color([0.1,0.1,0.1])
translate([0, (body_h-face_h)/2, -0.1])
cube([body_w, face_h, 0.1]);
// レンズ(エミッタ・ディテクタ)
color([0.05,0.05,0.05]) {
// エミッタ
translate([emitter_x, lens_center_h, 0])
cylinder(h=0.3, d=lens_dia, center=false);
// ディテクタ
translate([detector_x, lens_center_h, 0])
cylinder(h=0.3, d=lens_dia, center=false);
}
}
// =========================================================
// PWB (Paper phenol) — 本体の -Z 側背面に接する
// =========================================================
module pwb() {
color([0.55,0.42,0.15]) {
// 本体底面(-Z)に貼り付く基板
// PWB は本体より下(-Y)方向へ延びる
translate([0, -(pwb_h - body_h), -(body_d + pwb_t)])
cube([pwb_w, pwb_h, pwb_t], center=false);
}
}
// =========================================================
// コネクタ (JCTC 12001W90-3P-HF) — PWB下部 -Z 側
// =========================================================
module connector() {
color([1.0,1.0,1.0]) {
// コネクタ本体
translate([(body_w-conn_w)/2,
-(pwb_h - body_h) + 2,
-(body_d + pwb_t + conn_d)])
cube([conn_w, conn_h, conn_d], center=false);
}
// 端子ピン ①②③
color([0.8,0.7,0.2]) {
for(i=[0:2]) {
translate([(body_w-conn_w)/2 + 2.5 + i*2.5,
-(pwb_h - body_h) + 4,
-(body_d + pwb_t + conn_d)])
cube([0.6, 0.6, conn_d]);
}
}
}
// =========================================================
// 組み立て (原点=本体中心へ移動)
// =========================================================
module GP2Y0D413K0F() {
// 本体中心が原点に来るように X,Y をオフセット
translate([-body_w/2, -body_h/2, 0]) {
body_case();
lens_face();
pwb();
connector();
}
}
GP2Y0D413K0F(); パラメータ (15) —
スライダを動かすと openscad-wasm で再レンダリング
prompt
添付画像は Sharp 製距離センサ GP2Y0D413K0F のデータシートのページです。 OpenSCAD でモデリングしてください。 座標系: 単位 mm、本体の中心を原点とし、取付面(PWB / コネクタ側)を -Z に向ける。 完成したコード全体を ```openscad ... ``` のフェンスで囲んで出力してください。