Rewrite keystone.scad (#35)
* helper/keystone: rewrite completely * rack-mount/patch-panel: edit to adapt to the new keystone * helper/keystone: fill the lug-side opening * rack-mount/patch-panel: allow combining two types of keystones and plates freely * rack-mount/patch-panel/entry: apply suggestions Co-authored-by: Zhao (Jack) Wang <jazwang@proton.me> * rack-mount/patch-panel: fix animate.scad & regen gif --------- Co-authored-by: Zhao (Jack) Wang <jazwang@proton.me>
This commit is contained in:
@ -3,10 +3,11 @@
|
||||
include <./apply.scad>
|
||||
include <./dovetail.scad>
|
||||
include <./filet.scad>
|
||||
include <./keystone.scad>
|
||||
include <./keystone1.scad>
|
||||
include <./keystone2.scad>
|
||||
include <./math.scad>
|
||||
include <./matrix.scad>
|
||||
include <./screws.scad>
|
||||
include <./sine.scad>
|
||||
|
||||
$fn=64;
|
||||
$fn=64;
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
|
||||
include <../config/common.scad>
|
||||
|
||||
// rj45 slot-to-slot keystone jack model and negative
|
||||
@ -45,3 +44,15 @@ module rj45KeystoneJack_N() {
|
||||
rj45Keystone();
|
||||
}
|
||||
}
|
||||
|
||||
module keystone1(outerWidth, outerHeight) {
|
||||
rotate([0, 0, 180]) // To keep the same direction with keystone2
|
||||
difference() {
|
||||
translate([0, 0, 5.9 / 2])
|
||||
cube([outerWidth, outerHeight, 5.9], center = true);
|
||||
|
||||
translate([-(keystoneMainBodyWidth + xySlack) / 2, (heightWithHookCatch + heightWithBottomLug - keystoneMainBodyHeight) / 2, 0])
|
||||
rotate([90, 0, 0])
|
||||
rj45KeystoneJack_N();
|
||||
}
|
||||
}
|
||||
42
helper/keystone2.scad
Normal file
42
helper/keystone2.scad
Normal file
@ -0,0 +1,42 @@
|
||||
include <../config/common.scad>
|
||||
|
||||
// These all constants are obtained by measuring rj45 keystone modules
|
||||
// in hand. frontToRearDepth and rearPanelThickness are adjusted after testing.
|
||||
// Before printing the Patch Panel, print a keystone2(outerWidth = 19,
|
||||
// outerHeight = 27) to test if it fits.
|
||||
frontWidth = 14.5;
|
||||
frontHeight = 16.2;
|
||||
|
||||
frontToRearDepth = 8.4;
|
||||
|
||||
rearWidth = frontWidth;
|
||||
rearHeight = 19.55;
|
||||
rearPanelThickness = 2 - supportedOverhangSlack;
|
||||
|
||||
maximumWidth = frontWidth;
|
||||
maximumHeight = 22.15;
|
||||
|
||||
lugHeight = 1.3;
|
||||
|
||||
module keystone2(plateThickness = 1, outerWidth, outerHeight) {
|
||||
assert(outerWidth > maximumWidth);
|
||||
assert(outerHeight > maximumHeight);
|
||||
|
||||
difference() {
|
||||
// Outer cube
|
||||
translate([-outerWidth / 2, -outerHeight / 2, 0])
|
||||
cube([outerWidth, outerHeight, frontToRearDepth + rearPanelThickness]);
|
||||
|
||||
// Front panel hole
|
||||
translate([-(frontWidth + xySlack) / 2, -(frontHeight + xySlack) / 2, 0])
|
||||
cube([frontWidth + xySlack, frontHeight + xySlack, plateThickness]);
|
||||
|
||||
// Middle cavity
|
||||
translate([-(maximumWidth + xySlack) / 2, -frontHeight / 2 - lugHeight - xySlack / 2, plateThickness])
|
||||
cube([rearWidth + xySlack, outerHeight + 1000, frontToRearDepth - plateThickness]);
|
||||
|
||||
// Rear panel hole
|
||||
translate([-(rearWidth + xySlack) / 2, -(frontHeight + xySlack) / 2, frontToRearDepth])
|
||||
cube([rearWidth + xySlack, rearHeight + xySlack, rearPanelThickness]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user