wip - add matrix transformations
This commit is contained in:
128
rack/connector/stackYBarConnectors.scad
Normal file
128
rack/connector/stackYBarConnectors.scad
Normal file
@ -0,0 +1,128 @@
|
||||
include <../../helper/screws.scad>
|
||||
include <../../helper/common.scad>
|
||||
include <../../helper/matrix.scad>
|
||||
include <../../helper/slack.scad>
|
||||
include <../../helper/dovetail.scad>
|
||||
include <../../helper/halfspace.scad>
|
||||
|
||||
include <../sharedVariables.scad>
|
||||
|
||||
include <../config.scad>
|
||||
|
||||
connectorYEdgeToYBarYEdge = 5;
|
||||
connectorXEdgeToYBarXEdge = 5;
|
||||
|
||||
connectorRectWidth = 10;
|
||||
connectorRectDepth = 10;
|
||||
connectorTotalHeight = 10;
|
||||
connectorSocketMagnetExtrudeHeight = 1;
|
||||
connectorTaperStartHeight = 3;
|
||||
|
||||
connectorTopR = 3;
|
||||
|
||||
connectorRectPlugSlack = -0.2;
|
||||
connectorRectSocketSlack = 0.2;
|
||||
|
||||
connectorBottomToScrew = 6;
|
||||
|
||||
module stackConnectorBase(rectSlack, topSlack=0.0) {
|
||||
|
||||
wSlacked = connectorRectWidth + rectSlack;
|
||||
dSlacked = connectorRectDepth + rectSlack;
|
||||
topRSlacked = connectorTopR + rectSlack/2;
|
||||
|
||||
module connRect() {
|
||||
linear_extrude(height=eps)
|
||||
square(size = [wSlacked, dSlacked]);
|
||||
}
|
||||
|
||||
module connTop() {
|
||||
linear_extrude(height=eps)
|
||||
circle(r=topRSlacked);
|
||||
}
|
||||
|
||||
hull() {
|
||||
connRect();
|
||||
|
||||
translate(v=[0,0,connectorTaperStartHeight])
|
||||
connRect();
|
||||
}
|
||||
|
||||
hull() {
|
||||
translate(v = [0, 0, connectorTaperStartHeight])
|
||||
connRect();
|
||||
|
||||
translate(v=[wSlacked/2, dSlacked/2, connectorTotalHeight+topSlack])
|
||||
connTop();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module onYBarStackConnectorNegative() {
|
||||
|
||||
wSlacked = connectorRectWidth + connectorRectSocketSlack;
|
||||
dSlacked = connectorRectDepth + connectorRectSocketSlack;
|
||||
|
||||
bevelSlack = 0.6;
|
||||
bevelR = wSlacked + bevelSlack;
|
||||
bevelW = dSlacked + bevelSlack;
|
||||
bevelH = 0.6;
|
||||
|
||||
screwExtension = 4;
|
||||
|
||||
|
||||
union() {
|
||||
stackConnectorBase(connectorRectSocketSlack, topSlack=0.4);
|
||||
|
||||
translate(v = [-screwExtension, connectorRectDepth/2, connectorBottomToScrew])
|
||||
rotate(a = [0, -90, 0])
|
||||
counterSunkHead_N(rackFrameScrewType, screwExtension = 5, headExtension = 10);
|
||||
|
||||
// bevel at the lip of the socket to guide the plug, as well as mitigate elephant foot during 3d printing
|
||||
hull() {
|
||||
translate(v = [0, 0, bevelH])
|
||||
linear_extrude(height = eps)
|
||||
square(size = [wSlacked, dSlacked]);
|
||||
|
||||
translate(v = [-bevelSlack/2, -bevelSlack/2, 0])
|
||||
linear_extrude(height = eps)
|
||||
square(size = [bevelR, bevelW]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module stackConnectorPlug() {
|
||||
|
||||
difference() {
|
||||
stackConnectorBase(connectorRectPlugSlack);
|
||||
|
||||
translate(v=[connectorRectWidth/2,connectorRectDepth/2,connectorBottomToScrew])
|
||||
rotate(a=[0,0,90])
|
||||
rotate(a=[90,0,0])
|
||||
hexNutPocket_N(rackFrameScrewType, openSide=false);
|
||||
}
|
||||
}
|
||||
|
||||
module stackConnectorDual() {
|
||||
|
||||
space = 0.5; // extra space inbetween
|
||||
|
||||
translate(v=[0,0,space])
|
||||
stackConnectorPlug();
|
||||
|
||||
mirror(v=[0,0,1])
|
||||
stackConnectorPlug();
|
||||
|
||||
cube(size=[connectorRectWidth+connectorRectPlugSlack, connectorRectDepth+connectorRectPlugSlack, space]);
|
||||
}
|
||||
|
||||
|
||||
module stackConnectorBottom() {
|
||||
|
||||
height = 2; // space between bottom and floor
|
||||
|
||||
stackConnectorPlug();
|
||||
translate(v=[0,0,-height])
|
||||
cube(size=[connectorRectWidth+connectorRectPlugSlack, connectorRectDepth+connectorRectPlugSlack, height]);
|
||||
}
|
||||
Reference in New Issue
Block a user