Polk Audio Wall insert for RC85i
Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.
Zapisane na tym urządzeniu.
I needed an insert into the drywall so the speaker wasn't just in dry wall
- Ocena
- 0 / 5
- Polubienia
- 0
- Pobrania
- 2
- Wydruki
- 0
- Wyświetlenia
- 14
- Oceny
- 0
Aktualizacja u źródła:
Informacje o modelu
- Źródło
- Printables
- Kategoria
- Audio
- Licencja
- Creative Commons — Public Domain
I needed an insert for sheetrock for my polk speaker. AI came up with an OpenSCAD file:
// ===== SETTINGS =====
$fn = 64;
IN_TO_MM = 25.4;
// 1 = Left Half (Pins)
// 2 = Right Half (Holes)
// 3 = Both (Viewing only)
PART = 1;
// --- SINGLE PIN Z-LOCATION ---
// 0 is the face touching the drywall. 12.7 is the middle of the 1" frame.
// Adjust this one variable to move all pins/holes up or down.
PIN_Z_POS = 12.7;
// --- Pin Settings ---
PIN_RADIUS = 4; // 8mm diameter
PIN_HEIGHT = 8; // 8mm long
PIN_TOLERANCE = 0.25; // Extra space for the hole
// --- Dimensions ---
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) IN_TO_MM - (2 OUTER_CLEARANCE);
OUTER_Y = (8.75 + 2*1.00) IN_TO_MM - (2 OUTER_CLEARANCE);
REINF_OX = OUTER_X - (2 * REINFORCE_INSET);
REINF_OY = OUTER_Y - (2 * REINFORCE_INSET);
// ===== MODULES =====
module rectangular_ring(ox, oy, ix, iy, h) {
difference() {
cube([ox, oy, h], center=false);
translate([(ox-ix)/2, (oy-iy)/2, -0.1])
cube([ix, iy, h+0.2], center=false);
}
}
module full_model() {
union() {
rectangular_ring(OUTER_X, OUTER_Y, INNER_X, INNER_Y, CONTACT_THICK);
translate([(OUTER_X-REINF_OX)/2, (OUTER_Y-REINF_OY)/2, CONTACT_THICK])
rectangular_ring(REINF_OX, REINF_OY, INNER_X, INNER_Y, REINFORCE_THICK);
}
}
module pin_geometry(extra=0) {
// Tapered cylinder for easy insertion
rotate([0, 90, 0])
cylinder(r1=PIN_RADIUS+extra, r2=(PIN_RADIUS*0.8)+extra, h=PIN_HEIGHT);
}
// ===== ASSEMBLY =====
SPLIT_X = OUTER_X / 2;
// Logic to center pins in the middle of the frame rails
PIN_Y_TOP = OUTER_Y - (FRAME_WALL / 2);
PIN_Y_BOT = FRAME_WALL / 2;
// --- PART 1: LEFT SIDE ---
if (PART == 1 || PART == 3) {
union() {
intersection() {
full_model();
cube([SPLIT_X, OUTER_Y, TOTAL_THICK]);
}
// Pins added to the cut face (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: RIGHT SIDE ---
if (PART == 2 || PART == 3) {
// Move slightly if viewing both
VIS_OFFSET = (PART == 3) ? 10 : 0;
translate([VIS_OFFSET, 0, 0])
difference() {
// Shift the right half to the origin for easier printing
translate([-SPLIT_X, 0, 0])
intersection() {
full_model();
translate([SPLIT_X, 0, 0]) cube([SPLIT_X, OUTER_Y, TOTAL_THICK]);
}
// Subtract holes from the cut face (now at 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);
}
}
