redesingd din rail with better dimmentioning possibilities

master
Kerem Yollu 3 years ago
parent 60a6bfba5e
commit d4e9969904

@ -0,0 +1,9 @@
{
"parameterSets": {
"Standardwerte des Designs": {
"$fn": "100",
"va": "0.02"
}
},
"fileFormatVersion": "1"
}

@ -6,204 +6,699 @@ Description : library for din rail and accessories.
include <box.scad>
$fn = 50;
$fn = 100;
va = 0.02; // Visual addition for difference
vap = va/2; // Half of visual addition
van = -(va/2); // Negative half of visual addition
difference()
{
cube(size=([40,10,3]),center=true);
din_rail_75(lenght = 20, hole_offset = 0 , extra_thickness= 0.2, extra_bending_d = 0.2 ,extra_wing_lenght = 0.1, center = true);
}
/* DIN RAIL 35 x 7.5 mm
lenght : Total lenght of the rail
> Positive Values
hole_offset : First Mounting hole offset to border
> 0 will remove holes
> ccepted values between 1 and 9
> Otherwise error will ocure
/*
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]
extra_thickness : To allow the addition of Thickness
> Positive values
- mounting_hole_starting_offset : is the staring offset of the forst mounting hole
> Value between 0 and 10 [mm]
extra_bending_d : Will change the bending radious
> Positive values
- 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]
*/
extra_wing_lenght : Add length to each wing
> Positive values
//din_rail_7p5();
//din_rail_7p5(230, 2, 0.1);
module din_rail_7p5(lenght = 100, mounting_hole_starting_offset = 5 , tollerance=0)
center : Centers the rail
> true or false
*/
//din_rail_75();
module din_rail_75(lenght = 100, hole_offset = 5 , extra_thickness=0, extra_bending_d=0, extra_wing_lenght = 0, center = true)
{
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;
thickness = 1 + extra_thickness;
base_inside_width = 25;
base_outise_width = base_inside_width + 2*thickness;
total_width = 35;
total_height = 7.5;
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;
hole_count = lenght/(hole_lenght+hole_spacing);
inner_rounding_dia = 3 + extra_bending_d;
inner_rounding_ray = inner_rounding_dia/2;
outer_rounding_dia = inner_rounding_dia + 2 * thickness;
outer_rounding_ray = outer_rounding_dia/2;
base_inside_width_with_rounding = base_outise_width - outer_rounding_dia;
base_wall_height = total_height - outer_rounding_dia;
wing_rounding_height =total_height-thickness;
wing_width_to_rounding = (total_width - base_outise_width)/2 - inner_rounding_ray + extra_wing_lenght;
center_x = wing_width_to_rounding+inner_rounding_ray-((total_width+extra_wing_lenght*2)/2);
center_y = -total_height/2;
center_z = 0;
assert(mounting_hole_starting_offset > 0);
assert(mounting_hole_starting_offset <= 10);
offset_x = wing_width_to_rounding+inner_rounding_ray;
offset_y = 0;
offset_z = lenght/2;
// Difference of outer roundings with the main body
assert(hole_offset >= 0);
assert(hole_offset < 10);
if(center == true)
{
translate([center_x,center_y,center_z])
{
difference()
{
// Union of the main body with the wings to be able to substract outer roundings
// Din Rail
union()
{
translate([0,wing_width,0])
// Rail Base
translate([base_inside_width_with_rounding/2+outer_rounding_ray,thickness/2,0])
cube(size=([base_inside_width_with_rounding,thickness,lenght]),center=true);
// Base rounding to wall near origin
translate([thickness,thickness,0])
rotate([0,0,180])
bend(inner_rounding_ray,thickness,lenght,90,center = true);
// Base rounding to wall with base width offset
translate([base_outise_width-thickness,thickness,0])
rotate([0,0,270])
bend(inner_rounding_ray,thickness,lenght,90);
// Base Wall near origin
translate([thickness/2,base_wall_height/2+outer_rounding_ray,0])
cube(size=([thickness,base_wall_height,lenght]),center=true);
// Base Wall with base width offset
translate([thickness/2+base_inside_width + thickness,base_wall_height/2+outer_rounding_ray,0])
cube(size=([thickness,base_wall_height,lenght]),center=true);
// Wall rounding to wing near origin
translate([0,wing_rounding_height,0])
rotate([0,0,0])
bend(inner_rounding_ray,thickness,lenght,90);
// Wall rounding to wing near origin
translate([base_outise_width,wing_rounding_height,0])
rotate([0,0,90])
bend(inner_rounding_ray,thickness,lenght,90);
translate([-wing_width_to_rounding/2-inner_rounding_ray,total_height-thickness/2,0])
cube(size=([wing_width_to_rounding,thickness,lenght]),center=true);
translate([base_outise_width+wing_width_to_rounding/2+inner_rounding_ray,total_height-thickness/2,0])
cube(size=([wing_width_to_rounding,thickness,lenght]),center=true);
}
if(hole_offset > 0)
{
translate([0, 0, hole_offset])
{
for (i = [0:hole_count])
{
translate([base_outise_width/2,0, i*(hole_lenght+hole_spacing) - lenght/2])
hull()
{
translate([0,thickness/2,hole_ray])
rotate([90,0,0])
cylinder(d=hole_dia, h=thickness+va, center = true);
translate([0,thickness/2,hole_lenght-hole_ray])
rotate([90,0,0])
cylinder(d=hole_dia, h=thickness+va, center = true);
}
}
}
}
}
}
}
if(center == false)
{
translate([offset_x,offset_y,offset_z])
{
// Inner roundings for base
difference()
{
//Main cube for the base dimention without the wings
cube(size=([lenght,base_width,total_height]));
// Din Rail
union()
{
// Rail Base
translate([base_inside_width_with_rounding/2+outer_rounding_ray,thickness/2,0])
cube(size=([base_inside_width_with_rounding,thickness,lenght]),center=true);
// Base rounding to wall near origin
translate([thickness,thickness,0])
rotate([0,0,180])
bend(inner_rounding_ray,thickness,lenght,90,center = true);
// Base rounding to wall with base width offset
translate([base_outise_width-thickness,thickness,0])
rotate([0,0,270])
bend(inner_rounding_ray,thickness,lenght,90);
// Base Wall near origin
translate([thickness/2,base_wall_height/2+outer_rounding_ray,0])
cube(size=([thickness,base_wall_height,lenght]),center=true);
// Base Wall with base width offset
translate([thickness/2+base_inside_width + thickness,base_wall_height/2+outer_rounding_ray,0])
cube(size=([thickness,base_wall_height,lenght]),center=true);
// Wall rounding to wing near origin
translate([0,wing_rounding_height,0])
rotate([0,0,0])
bend(inner_rounding_ray,thickness,lenght,90);
// Wall rounding to wing near origin
translate([base_outise_width,wing_rounding_height,0])
rotate([0,0,90])
bend(inner_rounding_ray,thickness,lenght,90);
translate([-wing_width_to_rounding/2-inner_rounding_ray,total_height-thickness/2,0])
cube(size=([wing_width_to_rounding,thickness,lenght]),center=true);
translate([base_outise_width+wing_width_to_rounding/2+inner_rounding_ray,total_height-thickness/2,0])
cube(size=([wing_width_to_rounding,thickness,lenght]),center=true);
}
if(hole_offset > 0)
{
translate([0, 0, hole_offset])
{
for (i = [0:hole_count])
{
translate([base_outise_width/2,0, i*(hole_lenght+hole_spacing) - lenght/2])
hull()
{
translate([0,thickness/2,hole_ray])
rotate([90,0,0])
cylinder(d=hole_dia, h=thickness+va, center = true);
translate([0,thickness/2,hole_lenght-hole_ray])
rotate([90,0,0])
cylinder(d=hole_dia, h=thickness+va, center = true);
}
}
}
}
}
}
}
}
//Union for the inside substraction with the roundin diameters.
//din_mount_wago_style(thickness = 6);
module din_mount_wago_style(thickness = 6)
{
small_dia = 1.2;
small_ray = small_dia/2;
base_lenght = 24;
base_width = 9;
base_heigth = 8;
base_resses_start = 4;
base_resses_ramp_lenght = 5;
base_resses_height = 4;
base_resses_lenght = 10;
anchor_triangle_offset_y = 0.5;
anchor_triangle_offset_x = 10;
anchor_triangle_lenght = 6;
anchor_triangle_angle = 1;
anchor_triangle_width = 4;
anchor_triangle_top_start = anchor_triangle_lenght -2.5;
ancor_back_offset_y = 1;
ancor_back_lenght = 3;
ancor_back_opening = 1.6;
ancor_back_clip_ressess = 0.4;
ancor_back_thickness = 2.6;
ancor_back_incline_spport_len = 4;
ancor_back_incline_spport_to_base_y = 5;
ancor_back_incline_spport_to_base_x = 4;
spring_1_start = 2.5;
locking_point_offset_y = 1.5;
locking_point_incl_y = 6;
locking_point_incl_x = 3;
locking_point_lenght = 8;
locking_point_inside_lenght = 5;
locking_point_width = 5;
locking_point_offset_x = 2;
flex_zone_start_height = 3;
unmount_opening = 4;
unmount_height = 3;
//base + anchor tirangle and achor openeing.
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]));
hull()
{
// triangle base poin near reference
translate([small_ray,small_ray-anchor_triangle_offset_y,0])
cylinder(d=small_dia, h=thickness);
//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]));
// triangle base point x offset
translate([small_ray+anchor_triangle_lenght,small_ray,0])
cylinder(d=small_dia, h=thickness);
}
//Inside rounding 1 near origin
translate([van,rounding_ray+thickness,rounding_ray+thickness])
rotate([0,90,0])
cylinder(d=rounding_dia, h=lenght+va);
hull()
{
// triangle base point x offset
translate([small_ray+anchor_triangle_lenght,small_ray,0])
cylinder(d=small_dia, h=thickness);
//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);
// Triangle top
translate([small_ray+anchor_triangle_top_start,anchor_triangle_width-small_ray,0])
cylinder(d=small_dia, h=thickness);
}
hull()
{
// triangle base poin near reference
translate([small_ray,small_ray-anchor_triangle_offset_y,0])
cylinder(d=small_dia, h=thickness);
// Triangle top
translate([small_ray+anchor_triangle_top_start,anchor_triangle_width-small_ray,0])
cylinder(d=small_dia, h=thickness);
}
hull()
{
// Triangle top
translate([small_ray+anchor_triangle_top_start,anchor_triangle_width-small_ray,0])
cylinder(d=small_dia, h=thickness);
//solid base starting
translate([small_ray+anchor_triangle_top_start,base_heigth-small_ray,0])
cylinder(d=small_dia, h=thickness);
}
// Inner roundings for wings
difference()
hull()
{
// wings
union()
// Triangle top
translate([small_ray+anchor_triangle_top_start,anchor_triangle_width-small_ray,0])
cylinder(d=small_dia, h=thickness);
//base resess starting
translate([small_ray+anchor_triangle_top_start+base_resses_start,base_heigth-small_ray,0])
cylinder(d=small_dia, h=thickness);
}
hull()
{
// Wing 1 near ereference
translate([0,0,total_height-thickness])
cube(size=([lenght,wing_width,thickness]));
//solid base starting
translate([small_ray+anchor_triangle_top_start,base_heigth-small_ray,0])
cylinder(d=small_dia, h=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]));
//base resess starting
translate([small_ray+anchor_triangle_top_start+base_resses_start,base_heigth-small_ray,0])
cylinder(d=small_dia, h=thickness);
}
// Wing 2 Y offset
translate([0,mount_width-wing_width,total_height-thickness])
cube(size=([lenght,wing_width,thickness]));
hull()
{
//base resess starting
translate([small_ray+anchor_triangle_top_start+base_resses_start,base_heigth-small_ray,0])
cylinder(d=small_dia, h=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]));
//base resess ramp downgoing
translate([small_ray+anchor_triangle_top_start+base_resses_start+base_resses_ramp_lenght,base_resses_height-small_ray,0])
cylinder(d=small_dia, h=thickness);
}
// 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);
hull()
{
//base resess ramp downgoing
translate([small_ray+anchor_triangle_top_start+base_resses_start+base_resses_ramp_lenght,base_resses_height-small_ray,0])
cylinder(d=small_dia, h=thickness);
//base resess ramp downgoing to base bottom
translate([small_ray+anchor_triangle_top_start+base_resses_start+base_resses_ramp_lenght,small_ray,0])
cylinder(d=small_dia, h=thickness);
}
hull()
{
//base resess ramp downgoing
translate([small_ray+anchor_triangle_top_start+base_resses_start+base_resses_ramp_lenght,base_resses_height-small_ray,0])
cylinder(d=small_dia, h=thickness);
//base resess lenght
translate([small_ray+anchor_triangle_top_start+base_resses_start+base_resses_ramp_lenght + base_resses_lenght ,base_resses_height-small_ray,0])
cylinder(d=small_dia, h=thickness);
}
// Union of all outer roundings.
union()
hull()
{
// Rounding 3 for the upperderside of wing 1
translate([van,wing_width-rounding_ray,total_height - (rounding_ray+thickness)])
//base resess lenght
translate([small_ray+anchor_triangle_top_start+base_resses_start+base_resses_ramp_lenght + base_resses_lenght ,base_resses_height-small_ray,0])
cylinder(d=small_dia, h=thickness);
//base resess lenght + resse ramp going to b ase again
translate([small_ray+anchor_triangle_top_start+base_resses_start+base_resses_ramp_lenght + base_resses_lenght+ base_resses_ramp_lenght,base_heigth-small_ray,0])
cylinder(d=small_dia, h=thickness);
}
hull()
{
difference()
// triangle base point x offset
translate([small_ray+anchor_triangle_lenght,small_ray,0])
cylinder(d=small_dia, h=thickness);
//base bottom starting
translate([small_ray+anchor_triangle_top_start+base_resses_start+base_resses_ramp_lenght,small_ray,0])
cylinder(d=small_dia, h=thickness);
}
hull()
{
cube(size=([lenght+va,rounding_ray+thickness+va,rounding_ray+thickness+va]));
//base bottom starting
translate([small_ray+anchor_triangle_top_start+base_resses_start+base_resses_ramp_lenght,small_ray,0])
cylinder(d=small_dia, h=thickness);
// base lenght after anchor triangle.
translate([small_ray+anchor_triangle_lenght+base_lenght,small_ray,0])
cylinder(d=small_dia, h=thickness);
translate([-va,0,0])
rotate([0,90,0])
cylinder(d=rounding_dia+2*thickness, h=lenght+2*va);
}
hull()
{
// base lenght after anchor triangle.
translate([small_ray+anchor_triangle_lenght+base_lenght,small_ray,0])
cylinder(d=small_dia, h=thickness);
// back anchor hihg point
translate([small_ray+anchor_triangle_lenght+base_lenght+ancor_back_lenght,small_ray+ancor_back_offset_y,0])
cylinder(d=small_dia, h=thickness);
}
// Rounding 4 for the outer side of base near reference
translate([van,rounding_ray+thickness+wing_width,rounding_ray+thickness])
rotate([180,0,0])
hull()
{
difference()
// back anchor hihg point
translate([small_ray+anchor_triangle_lenght+base_lenght+ancor_back_lenght,small_ray+ancor_back_offset_y,0])
cylinder(d=small_dia, h=thickness);
//base resess lenght + resse ramp going to b ase again
translate([small_ray+anchor_triangle_top_start+base_resses_start+base_resses_ramp_lenght + base_resses_lenght+ base_resses_ramp_lenght,base_heigth-small_ray,0])
cylinder(d=small_dia, h=thickness);
}
hull()
{
cube(size=([lenght+va,rounding_ray+thickness+va,rounding_ray+thickness+va]));
// back anchor opening high point
translate([small_ray+anchor_triangle_lenght+base_lenght+ancor_back_lenght,small_ray+ancor_back_offset_y,0])
cylinder(d=small_dia, h=thickness);
// back anchor opening low point
translate([small_ray+anchor_triangle_lenght+base_lenght+ancor_back_lenght,-small_ray+ancor_back_offset_y-ancor_back_opening,0])
cylinder(d=small_dia, h=thickness);
translate([-va,0,0])
rotate([0,90,0])
cylinder(d=rounding_dia+2*thickness, h=lenght+2*va);
}
hull()
{
// back anchor opening low point
translate([small_ray+anchor_triangle_lenght+base_lenght+ancor_back_lenght,-small_ray+ancor_back_offset_y-ancor_back_opening,0])
cylinder(d=small_dia, h=thickness);
// back anchor opening return point
translate([small_ray+anchor_triangle_lenght+base_lenght,-small_ray-ancor_back_opening,0])
cylinder(d=small_dia, h=thickness);
}
// 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])
hull()
{
difference()
// back anchor opening return point
translate([small_ray+anchor_triangle_lenght+base_lenght,-small_ray-ancor_back_opening,0])
cylinder(d=small_dia, h=thickness);
// back anchor clip ressesed
translate([small_ray+anchor_triangle_lenght+base_lenght + ancor_back_clip_ressess,small_ray-ancor_back_opening-ancor_back_thickness ,0])
cylinder(d=small_dia, h=thickness);
}
hull()
{
cube(size=([lenght+va,rounding_ray+thickness+va,rounding_ray+thickness+va]));
// back anchor clip ressesed
translate([small_ray+anchor_triangle_lenght+base_lenght + ancor_back_clip_ressess,small_ray-ancor_back_opening-ancor_back_thickness ,0])
cylinder(d=small_dia, h=thickness);
translate([-va,0,0])
rotate([0,90,0])
cylinder(d=rounding_dia+2*thickness, h=lenght+2*va);
// back anchor clip ressesed flat surface
translate([small_ray+anchor_triangle_lenght+base_lenght + ancor_back_clip_ressess+ancor_back_lenght,small_ray-ancor_back_opening-ancor_back_thickness ,0])
cylinder(d=small_dia, h=thickness);
}
hull()
{
// back anchor clip ressesed flat surface
translate([small_ray+anchor_triangle_lenght+base_lenght + ancor_back_clip_ressess+ancor_back_lenght,small_ray-ancor_back_opening-ancor_back_thickness ,0])
cylinder(d=small_dia, h=thickness);
// back anchor clip inclined clearance
translate([small_ray+anchor_triangle_lenght+base_lenght + ancor_back_clip_ressess+ancor_back_lenght+ancor_back_lenght,small_ray-ancor_back_opening-ancor_back_thickness + ancor_back_lenght ,0])
cylinder(d=small_dia, h=thickness);
}
// 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])
hull()
{
difference()
// back anchor clip inclined clearance
translate([small_ray+anchor_triangle_lenght+base_lenght + ancor_back_clip_ressess+ancor_back_lenght+ancor_back_lenght,small_ray-ancor_back_opening-ancor_back_thickness + ancor_back_lenght ,0])
cylinder(d=small_dia, h=thickness);
// back anchor clip inclined support point to the oppening wall
translate([small_ray+anchor_triangle_lenght+base_lenght+ancor_back_lenght,small_ray-ancor_back_opening-ancor_back_thickness + ancor_back_lenght,0])
cylinder(d=small_dia, h=thickness);
}
hull()
{
// back anchor clip inclined clearance
translate([small_ray+anchor_triangle_lenght+base_lenght + ancor_back_clip_ressess+ancor_back_lenght+ancor_back_lenght,small_ray-ancor_back_opening-ancor_back_thickness + ancor_back_lenght ,0])
cylinder(d=small_dia, h=thickness);
// back anchor clip inclined clearance
translate([small_ray+anchor_triangle_lenght+base_lenght + ancor_back_clip_ressess+ancor_back_lenght+ancor_back_lenght + ancor_back_incline_spport_to_base_x ,small_ray-ancor_back_opening-ancor_back_thickness + ancor_back_lenght + ancor_back_incline_spport_to_base_y,0])
cylinder(d=small_dia, h=thickness);
}
hull()
{
//base resess lenght + resse ramp going to b ase again
*translate([small_ray+anchor_triangle_top_start+base_resses_start+base_resses_ramp_lenght + base_resses_lenght+ base_resses_ramp_lenght,base_heigth-small_ray,0])
cylinder(d=small_dia, h=thickness);
// back anchor clip inclined clearance support back to base
translate([small_ray+anchor_triangle_lenght+base_lenght + ancor_back_clip_ressess+ancor_back_lenght+ancor_back_lenght + ancor_back_incline_spport_to_base_x - ancor_back_incline_spport_to_base_x /2 ,small_ray-ancor_back_opening-ancor_back_thickness + ancor_back_lenght + ancor_back_incline_spport_to_base_y + ancor_back_incline_spport_to_base_x /2,0])
cylinder(d=small_dia, h=thickness);
// back anchor clip inclined clearance
translate([small_ray+anchor_triangle_lenght+base_lenght + ancor_back_clip_ressess+ancor_back_lenght+ancor_back_lenght + ancor_back_incline_spport_to_base_x ,small_ray-ancor_back_opening-ancor_back_thickness + ancor_back_lenght + ancor_back_incline_spport_to_base_y,0])
cylinder(d=small_dia, h=thickness);
}
hull()
{
cube(size=([lenght+va,rounding_ray+thickness+va,rounding_ray+thickness+va]));
//base resess lenght + resse ramp going to b ase again
translate([small_ray+anchor_triangle_top_start+base_resses_start+base_resses_ramp_lenght + base_resses_lenght+ base_resses_ramp_lenght,base_heigth-small_ray,0])
cylinder(d=small_dia, h=thickness);
// back anchor clip inclined clearance support back to base
translate([small_ray+anchor_triangle_lenght+base_lenght + ancor_back_clip_ressess+ancor_back_lenght+ancor_back_lenght + ancor_back_incline_spport_to_base_x - ancor_back_incline_spport_to_base_x /2 ,small_ray-ancor_back_opening-ancor_back_thickness + ancor_back_lenght + ancor_back_incline_spport_to_base_y + ancor_back_incline_spport_to_base_x /2,0])
cylinder(d=small_dia, h=thickness);
translate([-va,0,0])
rotate([0,90,0])
cylinder(d=rounding_dia+2*thickness, h=lenght+2*va);
}
hull()
{
// back anchor opening high point
translate([small_ray+anchor_triangle_lenght+base_lenght+ancor_back_lenght,small_ray+ancor_back_offset_y,0])
cylinder(d=small_dia, h=thickness);
// back anchor clip inclined clearance support back to base
translate([small_ray+anchor_triangle_lenght+base_lenght + ancor_back_clip_ressess+ancor_back_lenght+ancor_back_lenght + ancor_back_incline_spport_to_base_x - ancor_back_incline_spport_to_base_x /2 ,small_ray-ancor_back_opening-ancor_back_thickness + ancor_back_lenght + ancor_back_incline_spport_to_base_y + ancor_back_incline_spport_to_base_x /2,0])
cylinder(d=small_dia, h=thickness);
}
hull()
{
//solid base starting
translate([small_ray+anchor_triangle_top_start,base_heigth-small_ray,0])
cylinder(d=small_dia, h=thickness);
//starof of spring 1
translate([small_ray+anchor_triangle_top_start- spring_1_start,base_heigth-small_ray,0])
cylinder(d=small_dia, h=thickness);
}
//Mounting holes
translate([mounting_hole_starting_offset, wing_width + base_width/2, 0])
hull()
{
// repeating the mouting hole count depending of the lenght of the rail
for (i = [0:(lenght/(hole_lenght+hole_spacing))])
// locking point start
translate([-small_ray,-small_ray-anchor_triangle_offset_y-locking_point_offset_y,0])
cylinder(d=small_dia, h=thickness);
// locking point start
translate([-small_ray-locking_point_incl_x,-small_ray-anchor_triangle_offset_y-locking_point_offset_y-locking_point_incl_y,0])
cylinder(d=small_dia, h=thickness);
// Locking point -x-y
translate([-small_ray-locking_point_incl_x-locking_point_lenght,-small_ray-anchor_triangle_offset_y-locking_point_offset_y-locking_point_incl_y,0])
cylinder(d=small_dia, h=thickness);
// Locking point -x y
translate([-locking_point_incl_x-locking_point_lenght,-small_ray-anchor_triangle_offset_y-locking_point_offset_y-locking_point_incl_y+locking_point_width-small_ray,0])
cylinder(d=small_dia*2, h=thickness);
// Locking point x y inside
translate([-small_ray-locking_point_offset_x,-small_ray-anchor_triangle_offset_y-locking_point_offset_y-locking_point_incl_y+locking_point_width-small_ray,0])
cylinder(d=small_dia, h=thickness);
}
hull()
{
translate([i*(hole_lenght+hole_spacing), 0, 0])
// Locking point -x-y
translate([-small_ray-locking_point_incl_x-locking_point_lenght,-small_ray-anchor_triangle_offset_y-locking_point_offset_y-locking_point_incl_y,0])
cylinder(d=small_dia, h=thickness);
// unmoun -x -y
translate([-small_ray-locking_point_incl_x-locking_point_lenght-unmount_opening,-small_ray-anchor_triangle_offset_y-locking_point_offset_y-locking_point_incl_y,0])
cylinder(d=small_dia, h=thickness);
}
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);
// unmoun -x -y
translate([-small_ray-locking_point_incl_x-locking_point_lenght-unmount_opening,-small_ray-anchor_triangle_offset_y-locking_point_offset_y-locking_point_incl_y,0])
cylinder(d=small_dia, h=thickness);
// unmoun -x y
translate([-small_ray-locking_point_incl_x-locking_point_lenght-unmount_opening,-small_ray-anchor_triangle_offset_y-locking_point_offset_y-locking_point_incl_y+unmount_height,0])
cylinder(d=small_dia, h=thickness);
}
// unmount wall
translate([-small_ray-locking_point_incl_x-locking_point_lenght-unmount_opening,-small_ray-anchor_triangle_offset_y-locking_point_offset_y-locking_point_incl_y,0])
cube(size=([unmount_opening,unmount_height,0.8]));
hull()
{
// Locking point -x y
translate([-locking_point_incl_x-locking_point_lenght,-small_ray-anchor_triangle_offset_y-locking_point_offset_y-locking_point_incl_y+locking_point_width-small_ray,0])
cylinder(d=small_dia*2, h=thickness);
// Locking flex zone 1 start
translate([-locking_point_incl_x-locking_point_lenght,-small_ray-anchor_triangle_offset_y-locking_point_offset_y-locking_point_incl_y+locking_point_width-small_ray+flex_zone_start_height,0])
cylinder(d=small_dia, h=thickness);
}
hull()
{
// Locking point x y inside
translate([-small_ray-locking_point_offset_x,-small_ray-anchor_triangle_offset_y-locking_point_offset_y-locking_point_incl_y+locking_point_width-small_ray,0])
cylinder(d=small_dia, h=thickness);
// Locking flex zone 2 start
translate([-small_ray-locking_point_offset_x,-small_ray-anchor_triangle_offset_y-locking_point_offset_y-locking_point_incl_y+locking_point_width-small_ray+flex_zone_start_height-1,0])
cylinder(d=small_dia, h=thickness);
}
hull()
{
// Locking flex zone 1 start
translate([-locking_point_incl_x-locking_point_lenght,-small_ray-anchor_triangle_offset_y-locking_point_offset_y-locking_point_incl_y+locking_point_width-small_ray+flex_zone_start_height,0])
cylinder(d=small_dia, h=thickness);
// Locking flex zone 1 back to base
translate([-10,base_heigth-small_ray,0])
cylinder(d=small_dia, h=thickness);
}
hull()
{
// Locking flex zone 2 start
translate([-small_ray-locking_point_offset_x,-small_ray-anchor_triangle_offset_y-locking_point_offset_y-locking_point_incl_y+locking_point_width-small_ray+flex_zone_start_height-1,0])
cylinder(d=small_dia, h=thickness);
// Locking flex zone 2 back to base
translate([-small_ray-locking_point_offset_x+1.8,base_heigth-small_ray,0])
cylinder(d=small_dia, h=thickness);
}
translate([-10-small_ray,base_heigth-small_dia,0])
cube(size=([50,8,thickness]));
}
}
module din_mount_wago_style(thickness = 1)
module bend(inner_bend_r = 1,thikness = 1, lenght = 10, angle = 90, center = true)
{
inner_rad = inner_bend_r;
inner_dia = inner_bend_r * 2;
outer_rad = inner_rad + thikness;
outer_dia = outer_rad * 2;
if(center == true)
{
translate([-inner_rad,-inner_rad,-lenght/2])
rotate_extrude(angle=angle)
polygon( points= [[inner_rad,0],[outer_rad,0], [outer_rad,lenght], [inner_rad,lenght], [inner_rad,lenght]]);
}
if(center == false)
{
rotate_extrude(angle=angle)
polygon( points= [[inner_rad,0],[outer_rad,0], [outer_rad,lenght], [inner_rad,lenght], [inner_rad,lenght]]);
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save