parent
489b98077c
commit
60a6bfba5e
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,209 @@
|
||||
/*
|
||||
Creator : Kerem Yollu
|
||||
date : 30.06.2021
|
||||
Description : library for din rail and accessories.
|
||||
*/
|
||||
|
||||
|
||||
include <box.scad>
|
||||
$fn = 50;
|
||||
va = 0.02; // Visual addition for difference
|
||||
vap = va/2; // Half of visual addition
|
||||
van = -(va/2); // Negative half of visual addition
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Description : Standart din rail height of 7.5 mm (7p5)
|
||||
- lenght : Is the totla lenght of the rail no negative is allowed
|
||||
> Value greater than 0 [mm]
|
||||
|
||||
- mounting_hole_starting_offset : is the staring offset of the forst mounting hole
|
||||
> Value between 0 and 10 [mm]
|
||||
|
||||
- tollerance : Will oversize the thickness, with and height of the bar proportionaly and has no effect on the mounting holes
|
||||
> Value greater than 0 [mm]
|
||||
*/
|
||||
|
||||
//din_rail_7p5();
|
||||
//din_rail_7p5(230, 2, 0.1);
|
||||
module din_rail_7p5(lenght = 100, mounting_hole_starting_offset = 5 , tollerance=0)
|
||||
{
|
||||
thickness = 1 + tollerance/2;
|
||||
base_width = 27 + tollerance/2;
|
||||
mount_width = 35 + tollerance/2;
|
||||
wing_width = (mount_width - base_width)/2;
|
||||
total_height = 7.5 + tollerance/2;
|
||||
hole_lenght = 15;
|
||||
hole_spacing = 10;
|
||||
hole_dia = 6.2;
|
||||
hole_ray = hole_dia/2;
|
||||
rounding_dia = 1.6 - tollerance/2;
|
||||
rounding_ray = rounding_dia/2;
|
||||
|
||||
|
||||
assert(mounting_hole_starting_offset > 0);
|
||||
assert(mounting_hole_starting_offset <= 10);
|
||||
|
||||
// Difference of outer roundings with the main body
|
||||
difference()
|
||||
{
|
||||
// Union of the main body with the wings to be able to substract outer roundings
|
||||
union()
|
||||
{
|
||||
translate([0,wing_width,0])
|
||||
{
|
||||
// Inner roundings for base
|
||||
difference()
|
||||
{
|
||||
//Main cube for the base dimention without the wings
|
||||
cube(size=([lenght,base_width,total_height]));
|
||||
|
||||
//Union for the inside substraction with the roundin diameters.
|
||||
union()
|
||||
{
|
||||
//Fisrts cube with total width with 2 thinkness and roundin rayon thinner
|
||||
translate([van,thickness+rounding_ray,thickness])
|
||||
cube(size=([lenght+va,base_width-2*thickness-rounding_dia,total_height-thickness-rounding_ray]));
|
||||
|
||||
//Fisrts cube with total width with 2 thinkness thinner and Z offset or rounding rayon
|
||||
translate([van,thickness,thickness+rounding_ray])
|
||||
cube(size=([lenght+va,base_width-2*thickness,total_height-thickness-rounding_ray+va]));
|
||||
|
||||
//Inside rounding 1 near origin
|
||||
translate([van,rounding_ray+thickness,rounding_ray+thickness])
|
||||
rotate([0,90,0])
|
||||
cylinder(d=rounding_dia, h=lenght+va);
|
||||
|
||||
//Inside rounding 2 with y offset
|
||||
translate([van,base_width-rounding_ray-thickness,rounding_ray+thickness])
|
||||
rotate([0,90,0])
|
||||
cylinder(d=rounding_dia, h=lenght+va);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Inner roundings for wings
|
||||
difference()
|
||||
{
|
||||
// wings
|
||||
union()
|
||||
{
|
||||
// Wing 1 near ereference
|
||||
translate([0,0,total_height-thickness])
|
||||
cube(size=([lenght,wing_width,thickness]));
|
||||
|
||||
// Wing filling 1 for rounting extrusion near ereference
|
||||
translate([0,wing_width-rounding_ray,total_height-thickness-rounding_ray])
|
||||
cube(size=([lenght,rounding_ray,rounding_ray]));
|
||||
|
||||
// Wing 2 Y offset
|
||||
translate([0,mount_width-wing_width,total_height-thickness])
|
||||
cube(size=([lenght,wing_width,thickness]));
|
||||
|
||||
// Wing filling 2 for rounting extrusion near ereference
|
||||
translate([0,mount_width-wing_width,total_height-thickness-rounding_ray])
|
||||
cube(size=([lenght,rounding_ray,rounding_ray]));
|
||||
}
|
||||
|
||||
// Rounding 1 for the underside of wing 1
|
||||
translate([van,wing_width-rounding_ray,total_height-rounding_ray-thickness])
|
||||
rotate([0,90,0])
|
||||
cylinder(d=rounding_dia, h=lenght+va);
|
||||
|
||||
// Rounding 2 for the underside of wing 2 (Y offset)
|
||||
translate([van,mount_width-wing_width+rounding_ray,total_height-rounding_ray-thickness])
|
||||
rotate([0,90,0])
|
||||
cylinder(d=rounding_dia, h=lenght+va);
|
||||
}
|
||||
}
|
||||
|
||||
// Union of all outer roundings.
|
||||
union()
|
||||
{
|
||||
// Rounding 3 for the upperderside of wing 1
|
||||
translate([van,wing_width-rounding_ray,total_height - (rounding_ray+thickness)])
|
||||
{
|
||||
difference()
|
||||
{
|
||||
cube(size=([lenght+va,rounding_ray+thickness+va,rounding_ray+thickness+va]));
|
||||
|
||||
translate([-va,0,0])
|
||||
rotate([0,90,0])
|
||||
cylinder(d=rounding_dia+2*thickness, h=lenght+2*va);
|
||||
}
|
||||
}
|
||||
|
||||
// Rounding 4 for the outer side of base near reference
|
||||
translate([van,rounding_ray+thickness+wing_width,rounding_ray+thickness])
|
||||
rotate([180,0,0])
|
||||
{
|
||||
difference()
|
||||
{
|
||||
cube(size=([lenght+va,rounding_ray+thickness+va,rounding_ray+thickness+va]));
|
||||
|
||||
translate([-va,0,0])
|
||||
rotate([0,90,0])
|
||||
cylinder(d=rounding_dia+2*thickness, h=lenght+2*va);
|
||||
}
|
||||
}
|
||||
|
||||
// Rounding 5 for the upperderside of wing 2
|
||||
translate([van,base_width+wing_width+rounding_ray ,total_height - (rounding_ray+thickness)])
|
||||
rotate([90,0,0])
|
||||
{
|
||||
difference()
|
||||
{
|
||||
cube(size=([lenght+va,rounding_ray+thickness+va,rounding_ray+thickness+va]));
|
||||
|
||||
translate([-va,0,0])
|
||||
rotate([0,90,0])
|
||||
cylinder(d=rounding_dia+2*thickness, h=lenght+2*va);
|
||||
}
|
||||
}
|
||||
|
||||
// Rounding 6 for the outer side of base with Y offset
|
||||
translate([van,base_width+wing_width-(rounding_ray+thickness),rounding_ray+thickness])
|
||||
rotate([270,0,0])
|
||||
{
|
||||
difference()
|
||||
{
|
||||
cube(size=([lenght+va,rounding_ray+thickness+va,rounding_ray+thickness+va]));
|
||||
|
||||
translate([-va,0,0])
|
||||
rotate([0,90,0])
|
||||
cylinder(d=rounding_dia+2*thickness, h=lenght+2*va);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Mounting holes
|
||||
translate([mounting_hole_starting_offset, wing_width + base_width/2, 0])
|
||||
{
|
||||
// repeating the mouting hole count depending of the lenght of the rail
|
||||
for (i = [0:(lenght/(hole_lenght+hole_spacing))])
|
||||
{
|
||||
translate([i*(hole_lenght+hole_spacing), 0, 0])
|
||||
hull()
|
||||
{
|
||||
translate([hole_ray,0,van])
|
||||
cylinder(d=hole_dia, h=thickness+va);
|
||||
|
||||
translate([hole_lenght-hole_ray,0,van])
|
||||
cylinder(d=hole_dia, h=thickness+va);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
module din_mount_wago_style(thickness = 1)
|
||||
{
|
||||
|
||||
}
|
Loading…
Reference in new issue