Moved cable strain-relief from rear panel to top shell

which provides much better stability.
The strain-relief is angled, so the bracket can still be attached and
screwed when the top shell and base board are glued.
This commit is contained in:
ThorstenB 2022-05-17 21:08:14 +02:00
parent 9008f6b74a
commit 4c5e315a05
6 changed files with 42 additions and 33 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 310 KiB

After

Width:  |  Height:  |  Size: 117 KiB

View File

@ -16,3 +16,26 @@ module button()
rotate([0,180,0]) screwPost(ButtonPegDepth, ButtonPegDiameter+2, ButtonPegDiameter, ButtonPegDepth, 1);
}
module makeCableStrainRelief()
{
StrainReliefHeight=4+SKIN;
difference()
{
union()
{
// cable strain relief
translate([ScrewPostDiameter, 0, 0])
rotate([180,0,0]) screwPost(StrainReliefHeight, ScrewPostDiameter, ScrewDiameter, StrainReliefHeight, 0);
translate([-RearWallCableGapWidth, 0, 0])
rotate([180,0,0]) screwPost(StrainReliefHeight, ScrewPostDiameter, ScrewDiameter, StrainReliefHeight, 0);
translate([-RearWallCableGapWidth+ScrewPostDiameter/3, -(StrainReliefHeight-SKIN)/2, -(StrainReliefHeight-SKIN)])
cube([RearWallCableGapWidth+1, (StrainReliefHeight-SKIN), StrainReliefHeight-SKIN]); // 0.5mm to allow a bit space for the cable
translate([-RearWallCableGapWidth,-ScrewPostDiameter/2,-SKIN])
cube([RearWallCableGapWidth+ScrewPostDiameter, ScrewPostDiameter, SKIN]);
}
translate([ScrewPostDiameter,0,-SKIN]) hole(ScrewDiameter, SKIN);
translate([-RearWallCableGapWidth,0,-SKIN]) hole(ScrewDiameter, SKIN);
}
}

View File

@ -43,16 +43,6 @@ module makeRear()
translate([BoxX_Width-FrontGapX/2, SKIN , BoxZ_Depth-RearWallZOffset-RearWallZLedge/2]) rotate([270, 0, 0])
screwPost(ScrewPostHeight, ScrewPostDiameter, ScrewDiameter, ScrewPostHeight, ScrewPostFillet);
// cable strain relief
translate([BoxX_Width-RearWallGap-RearWallCableGapXOffset+ScrewPostDiameter, BoxY_Height-CableStrainReliefYOffset, BoxZ_Depth-RearWallZOffset-SKIN])
rotate([180,0,0]) screwPost(ScrewPostHeight, ScrewPostDiameter, ScrewDiameter, ScrewPostHeight, ScrewPostFillet);
translate([BoxX_Width-RearWallGap-RearWallCableGapXOffset-RearWallCableGapWidth, BoxY_Height-CableStrainReliefYOffset, BoxZ_Depth-RearWallZOffset-SKIN])
rotate([180,0,0]) screwPost(ScrewPostHeight, ScrewPostDiameter, ScrewDiameter, ScrewPostHeight, ScrewPostFillet);
StrainReliefHeight=2;
CableThickness = 0;
translate([BoxX_Width-RearWallGap-RearWallCableGapXOffset-RearWallCableGapWidth+ScrewPostDiameter/2, BoxY_Height-CableStrainReliefYOffset-StrainReliefHeight/2, BoxZ_Depth-RearWallZOffset-SKIN-ScrewPostHeight+CableThickness])
cube([RearWallCableGapWidth, StrainReliefHeight, ScrewPostHeight-CableThickness]); // 0.5mm to allow a bit space for the cable
// support triangles for stability
SupportWidth = RearWallZLedge-SKIN*2;
// left
@ -66,26 +56,3 @@ module makeRear()
rotate([270, 180, 0]) prism(SKIN, SupportWidth, SupportWidth);
}
module makeCableStrainRelief()
{
StrainReliefHeight=4+SKIN;
difference()
{
union()
{
// cable strain relief
translate([ScrewPostDiameter, 0, 0])
rotate([180,0,0]) screwPost(StrainReliefHeight, ScrewPostDiameter, ScrewDiameter, StrainReliefHeight, 0);
translate([-RearWallCableGapWidth, 0, 0])
rotate([180,0,0]) screwPost(StrainReliefHeight, ScrewPostDiameter, ScrewDiameter, StrainReliefHeight, 0);
translate([-RearWallCableGapWidth+ScrewPostDiameter/3, -(StrainReliefHeight-SKIN)/2, -(StrainReliefHeight-SKIN)])
cube([RearWallCableGapWidth+1, (StrainReliefHeight-SKIN), StrainReliefHeight-SKIN]); // 0.5mm to allow a bit space for the cable
translate([-RearWallCableGapWidth,-ScrewPostDiameter/2,-SKIN])
cube([RearWallCableGapWidth+ScrewPostDiameter, ScrewPostDiameter, SKIN]);
}
translate([ScrewPostDiameter,0,-SKIN]) hole(ScrewDiameter, SKIN);
translate([-RearWallCableGapWidth,0,-SKIN]) hole(ScrewDiameter, SKIN);
}
}

View File

@ -12,6 +12,17 @@ module imprint(x,y,z)
}
}
// cable strain relief (attached to the top shell)
module makeTopCableStrainRelief(height)
{
translate([ScrewPostDiameter, 0, 0])
rotate([180,0,0]) screwPost(height, ScrewPostDiameter+1, ScrewDiameter, height, 0);
translate([-RearWallCableGapWidth, 0, 0])
rotate([180,0,0]) screwPost(height, ScrewPostDiameter+1, ScrewDiameter, height, 0);
StrainReliefWidth=3;
translate([-RearWallCableGapWidth+ScrewPostDiameter/2, -StrainReliefWidth/2, -height])
cube([RearWallCableGapWidth, StrainReliefWidth, height]);
}
// little mounting point, so the base plate does not drop when glueing to the top shell
module makeGlueHelper(Width)
@ -47,6 +58,11 @@ module makeGlueMountingPoints()
{
union()
{
// strain relief, attached to the top shell (which is the most rigid structure)
if (STRAIN_RELIEF == "yes")
translate([BoxX_Width-RearWallGap-RearWallCableGapXOffset-7, BoxY_Height, BoxZ_Depth-RearWallZLedge-RearWallZOffset])
rotate([65+180,0,0]) makeTopCableStrainRelief(7);
for (z=[FrontZ, RearZ, (FrontZ+RearZ)/2])
{
// right

View File

@ -23,6 +23,9 @@ IMPRINT = "MADE IN GERMANY"; // 30
// Distance of the components (when showing 'exploded' elements)
SEPARATION = 30; // [0: 1: 100]
// Add cable strain-relief to top shell
STRAIN_RELIEF = "yes"; // [no:No,yes:Yes]
/* [Hidden] */
// Use prototype cutouts to save filament?
prototype = "no"; // [no:No,yes:Yes]