DPS5005/3dPrintFiles/dinrailclips.scad
2020-02-12 13:57:06 +01:00

73 lines
3.0 KiB
OpenSCAD

width = 8;
strength = 2;
hole_diameter = 2.3;
//hole_space = 45.5; // adafruit pwm module
//hole_space = 15.3; // adafruit 3-axis accelerometer
//hole_space = 49; // raspberry pi 3 model b
//hole_space = 46; // 2 channel relais card
//hole_space = 66.5; // 8-ch ssr relais card
//hole_space = 30; // 12 to 5v dc-dc converter
//hole_space = 46.5; // 8-ch relais card (mechanical)
//hole_space = 42; // orange pi
hole_space = 28; // DPS5005
if (width < 5) {
base(5);
} else {
base(width);
}
module base(width) {
linear_extrude(height = width, center = true, convexity = 10) import(file = "dxfimporttest.dxf", layer = "lower");
mountinghole(width);
if (hole_space > 31 && hole_space < 36.5) {
linear_extrude(height = width, center = true, convexity = 10) import(file = "dxfimporttest.dxf", layer = "upper");
// upper connections of release mechanism with mounting hole
translate([-strength, 36, -width/2]) cube([strength, hole_diameter + 2 + 1, width]);
translate([-8, 36, -width/2]) cube([1, hole_diameter + 2 + 1, width]);
translate([-6, hole_diameter * 2, -width/2]) cube([6, 34 - hole_diameter * 2, width]);
translate([0, hole_space, 0]) mountinghole(width);
} else {
if (hole_space > 36) {
difference() {
union() {
translate([0, hole_space - 34]) linear_extrude(height = width, center = true, convexity = 10) import(file = "dxfimporttest.dxf", layer = "upper");
// upper connections of release mechanism with mounting hole
translate([-strength, 34, -width/2]) cube([strength, hole_diameter + hole_space - 29, width]);
translate([-8, 36, -width/2]) cube([1, hole_diameter + hole_space - 31, width]);
translate([-6, hole_diameter * 2, -width/2]) cube([6, 34 - hole_diameter * 2, width]);
translate([0, hole_space, 0]) mountinghole(width);
}
translate([-6, hole_diameter + hole_space, 0]) rotate([0, 90, 0]) cylinder(15, d=hole_diameter, d=hole_diameter, $fn=25);
}
} else {
translate([0, hole_space, 0]) mountinghole(width);
translate([0, -5, 0]) linear_extrude(height = width, center = true, convexity = 10) import(file = "dxfimporttest.dxf", layer = "upper");
translate([-6, hole_diameter * 2, -width/2]) cube([6, 35 - hole_diameter * 4, width]);
}
}
}
module mountinghole(width) {
difference() {
union() {
// lower cube and mounting hole
translate([-6, 0, -width/2]) cube([6, hole_diameter * 2, width]);
translate([-2, hole_diameter, 0]) rotate([0, 90, 0]) cylinder(4, d=hole_diameter + 2, d=hole_diameter + 2, $fn=25);
}
translate([-10, hole_diameter, 0]) rotate([0, 90, 0]) cylinder(15, d=hole_diameter, d=hole_diameter, $fn=25);
}
}