redesingd din rail with better dimmentioning possibilities

master
Kerem Yollu 4 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> include <box.scad>
$fn = 50; $fn = 100;
va = 0.02; // Visual addition for difference va = 0.02; // Visual addition for difference
vap = va/2; // Half of visual addition vap = va/2; // Half of visual addition
van = -(va/2); // Negative 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
/* extra_thickness : To allow the addition of Thickness
Description : Standart din rail height of 7.5 mm (7p5) > Positive values
- 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 extra_bending_d : Will change the bending radious
> Value between 0 and 10 [mm] > Positive values
- tollerance : Will oversize the thickness, with and height of the bar proportionaly and has no effect on the mounting holes extra_wing_lenght : Add length to each wing
> Value greater than 0 [mm] > Positive values
*/
//din_rail_7p5(); center : Centers the rail
//din_rail_7p5(230, 2, 0.1); > true or false
module din_rail_7p5(lenght = 100, mounting_hole_starting_offset = 5 , tollerance=0) */
//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; thickness = 1 + extra_thickness;
base_width = 27 + tollerance/2; base_inside_width = 25;
mount_width = 35 + tollerance/2; base_outise_width = base_inside_width + 2*thickness;
wing_width = (mount_width - base_width)/2; total_width = 35;
total_height = 7.5 + tollerance/2; total_height = 7.5;
hole_lenght = 15; hole_lenght = 15;
hole_spacing = 10; hole_spacing = 10;
hole_dia = 6.2; hole_dia = 6.2;
hole_ray = hole_dia/2; hole_ray = hole_dia/2;
rounding_dia = 1.6 - tollerance/2; hole_count = lenght/(hole_lenght+hole_spacing);
rounding_ray = rounding_dia/2;
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); offset_x = wing_width_to_rounding+inner_rounding_ray;
assert(mounting_hole_starting_offset <= 10); 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() difference()
{ {
// Union of the main body with the wings to be able to substract outer roundings // Din Rail
union() 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() difference()
{ {
//Main cube for the base dimention without the wings // Din Rail
cube(size=([lenght,base_width,total_height])); 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() union()
{ {
//Fisrts cube with total width with 2 thinkness and roundin rayon thinner hull()
translate([van,thickness+rounding_ray,thickness]) {
cube(size=([lenght+va,base_width-2*thickness-rounding_dia,total_height-thickness-rounding_ray])); // 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 // triangle base point x offset
translate([van,thickness,thickness+rounding_ray]) translate([small_ray+anchor_triangle_lenght,small_ray,0])
cube(size=([lenght+va,base_width-2*thickness,total_height-thickness-rounding_ray+va])); cylinder(d=small_dia, h=thickness);
}
//Inside rounding 1 near origin hull()
translate([van,rounding_ray+thickness,rounding_ray+thickness]) {
rotate([0,90,0]) // triangle base point x offset
cylinder(d=rounding_dia, h=lenght+va); translate([small_ray+anchor_triangle_lenght,small_ray,0])
cylinder(d=small_dia, h=thickness);
//Inside rounding 2 with y offset // Triangle top
translate([van,base_width-rounding_ray-thickness,rounding_ray+thickness]) translate([small_ray+anchor_triangle_top_start,anchor_triangle_width-small_ray,0])
rotate([0,90,0]) cylinder(d=small_dia, h=thickness);
cylinder(d=rounding_dia, h=lenght+va);
} }
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 // Triangle top
union() 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 //solid base starting
translate([0,0,total_height-thickness]) translate([small_ray+anchor_triangle_top_start,base_heigth-small_ray,0])
cube(size=([lenght,wing_width,thickness])); cylinder(d=small_dia, h=thickness);
// Wing filling 1 for rounting extrusion near ereference //base resess starting
translate([0,wing_width-rounding_ray,total_height-thickness-rounding_ray]) translate([small_ray+anchor_triangle_top_start+base_resses_start,base_heigth-small_ray,0])
cube(size=([lenght,rounding_ray,rounding_ray])); cylinder(d=small_dia, h=thickness);
}
// Wing 2 Y offset hull()
translate([0,mount_width-wing_width,total_height-thickness]) {
cube(size=([lenght,wing_width,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);
// Wing filling 2 for rounting extrusion near ereference //base resess ramp downgoing
translate([0,mount_width-wing_width,total_height-thickness-rounding_ray]) translate([small_ray+anchor_triangle_top_start+base_resses_start+base_resses_ramp_lenght,base_resses_height-small_ray,0])
cube(size=([lenght,rounding_ray,rounding_ray])); 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) hull()
translate([van,mount_width-wing_width+rounding_ray,total_height-rounding_ray-thickness]) {
rotate([0,90,0]) //base resess ramp downgoing
cylinder(d=rounding_dia, h=lenght+va); 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. hull()
union()
{ {
// Rounding 3 for the upperderside of wing 1 //base resess lenght
translate([van,wing_width-rounding_ray,total_height - (rounding_ray+thickness)]) 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 hull()
translate([van,rounding_ray+thickness+wing_width,rounding_ray+thickness])
rotate([180,0,0])
{ {
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 hull()
translate([van,base_width+wing_width+rounding_ray ,total_height - (rounding_ray+thickness)])
rotate([90,0,0])
{ {
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]) // back anchor clip ressesed flat surface
rotate([0,90,0]) 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=rounding_dia+2*thickness, h=lenght+2*va); 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]) hull()
rotate([270,0,0])
{ {
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 // locking point start
for (i = [0:(lenght/(hole_lenght+hole_spacing))]) 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() hull()
{ {
translate([hole_ray,0,van])
cylinder(d=hole_dia, h=thickness+va);
translate([hole_lenght-hole_ray,0,van]) // unmoun -x -y
cylinder(d=hole_dia, h=thickness+va); 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