私のポルクスピーカー用のシートロックのためにインサートが必要でした。AIはOpenSCADファイルを思いつきました。
$fn = 64;
IN_TO_MM = 25.4;
// 1 = 左半分(ピン)
// 2 = 右半分(穴)
// 3 = 両方(表示のみ)
パート = 1;
// --- シングルピンZ位置 ---
・0はドライウォールに触れている顔です。12.7は1インチのフレームの中央です。
これらのピン/ホールを上下に移動させるには、この1つの変数を調整してください。
PIN_Z_POS = 12.7;
// --- ピン設定 ---
PIN_RADIUS = 4; // 8 mmの直径
PIN_HEIGHT = 8; // 8 mm長
PIN_TOLERANCE = 0.25; // 穴のための余分なスペース
// --- 寸法 ---
INNER_X = 12.75 * IN_TO_MM;
INNER_Y = 8.75 * IN_TO_MM;
FRAME_WALL = 1.00 * IN_TO_MM;
CONTACT_THICK = 0.50 * IN_TO_MM;
REINFORCE_THICK = 0.50 * IN_TO_MM;
TOTAL_THICK = CONTACT_THICK + REINFORCE_THICK;
OUTER_CLEARANCE = 0.03 * IN_TO_MM;
REINFORCE_INSET = 0.25 * IN_TO_MM;
OUTER_X = (12.75 + 2*1.00)インチからミリへの変換 - (2アウタークリアランス);
OUTER_Y = (8.75 + 2*1.00)インチからミリへの変換 - (2アウタークリアランス);
REINF_OX = OUTER_X - (2 * REINFORCE_INSET);
REINF_OY = OUTER_Y - (2 * REINFORCE_INSET);
// ===== モジュール =====
モジュール rectangular_ring(ox, oy, ix, iy, h) {
差異() {
キューブ([ox, oy, h], center=false);
translate([(ox-ix)/2, (oy-iy)/2, -0.1])
キューブ([ix, iy, h+0.2], center=false);
}
』
モジュール full_model() {
ユニオン() {
長方形の指輪(OUTER_X、OUTER_Y、INNER_X、INNER_Y、CONTACT_THICK);
translate([(OUTER_X-REINF_OX)/2, (OUTER_Y-REINF_OY)/2, CONTACT_THICK])
長方形の指輪(REINF_OX, REINF_OY, INNER_X, INNER_Y, REINFORCE_THICK);
}
』
モジュールpin_geometry(extra=0) {
・ 容易な挿入のためのテーパーシリンダー
回転([0, 90, 0])
シリンダー(r1=PIN_RADIUS+extra, r2=(PIN_RADIUS*0.8)+extra, h=PIN_HEIGHT);
』
SPLIT_X = OUTER_X / 2;
フレームレールの中央にピンを配置するためのロジック
PIN_Y_TOP = OUTER_Y - (FRAME_WALL / 2);
PIN_Y_BOT = FRAME_WALL / 2;
もし(PART == 1 || PART == 3) {
ユニオン() {
交差点() {
フルモデル();
cube([SPLIT_X, OUTER_Y, TOTAL_THICK]);
}
・切り取った顔に追加されたピン(SPLIT_X)
translate([SPLIT_X, PIN_Y_TOP, PIN_Z_POS]) pin_geometry(0);
translate([SPLIT_X, PIN_Y_BOT, PIN_Z_POS]) pin_geometry(0);
}
』
もし(PART == 2 || PART == 3) {
・両方を見ている場合は、少し動かしてください。
VIS_OFFSET = (PART == 3) ? 10 : 0;
translate([VIS_OFFSET, 0, 0])
差異() {
・ 印刷しやすくするために、右半分を原点にシフトする。
translate([-SPLIT_X, 0, 0])
交差点() {
フルモデル();
translate([SPLIT_X, 0, 0]) cube([SPLIT_X, OUTER_Y, TOTAL_THICK]);
}
切断面から穴を差し引く(今はX=0)
translate([0, PIN_Y_TOP, PIN_Z_POS]) pin_geometry(PIN_TOLERANCE);
translate([0, PIN_Y_BOT, PIN_Z_POS]) pin_geometry(PIN_TOLERANCE);
}
』
Model Kaynağı
