meshcore-repeater-scad-files/Meshcore Repeater Mounting Plate.scad
2025-11-08 02:03:00 +01:00

103 lines
3.1 KiB
OpenSCAD

width=89;
height=157;
thickness=3;
edge_radius=4;
difference() {
translate([edge_radius,edge_radius,0]) {
minkowski() {
cube([height-2*edge_radius,width-2*edge_radius,thickness/2]);
cylinder(thickness/2, edge_radius, edge_radius);
}
}
mounting_hole_radius=2.5;
translate([5,5,-0.5]) {
cylinder(thickness+1, mounting_hole_radius, mounting_hole_radius);
}
translate([5,width-5,-0.5]) {
cylinder(thickness+1, mounting_hole_radius, mounting_hole_radius);
}
translate([height-5,5,-0.5]) {
cylinder(thickness+1, mounting_hole_radius, mounting_hole_radius);
}
translate([height-5,width-5,-0.5]) {
cylinder(thickness+1, mounting_hole_radius, mounting_hole_radius);
}
}
// pole mount
pipe_diameter=60;
pipe_radius=pipe_diameter/2;
pole_mount_width=15;
pole_mount_length=25;
pole_mount_height=pipe_radius;
channel_width=15;
channel_angle=65; // TODO: Automatically adapt angle to pipe diameter
width_offset=sign(sign(width-pipe_diameter)+1)*((width-pipe_diameter)/2+5);
difference() {
union() {
translate([15,width_offset,0]) {
difference() {
cube([pole_mount_length,pole_mount_width,pole_mount_height]);
translate([pole_mount_length/2-channel_width/2,pole_mount_width,thickness]) {
rotate([channel_angle,0,0]) {
cube([channel_width,2,30]);
}
}
}
}
mirror([0,1,0]) {
translate([15,-width+width_offset,0]) {
difference() {
cube([pole_mount_length,pole_mount_width,pole_mount_height]);
translate([pole_mount_length/2-channel_width/2,pole_mount_width,thickness]) {
rotate([channel_angle,0,0]) {
cube([channel_width,2,30]);
}
}
}
}
}
translate([height-pole_mount_length-15,width_offset,0]) {
difference() {
cube([pole_mount_length,pole_mount_width,pole_mount_height]);
translate([pole_mount_length/2-channel_width/2,pole_mount_width,thickness]) {
rotate([channel_angle,0,0]) {
cube([channel_width,2,30]);
}
}
}
}
mirror([0,1,0]) {
translate([height-pole_mount_length-15,-width+width_offset,0]) {
difference() {
cube([pole_mount_length,pole_mount_width,pole_mount_height]);
translate([pole_mount_length/2-channel_width/2,pole_mount_width,thickness]) {
rotate([channel_angle,0,0]) {
cube([channel_width,2,30]);
}
}
}
}
}
}
// pipe
rotate([0,90,0]) {
translate([-pipe_radius-5,width/2,0]) {
#cylinder(height,pipe_radius,pipe_radius);
}
}
}
$fn=70;