wip'
This commit is contained in:
@ -2,25 +2,23 @@ include <../helper/math.scad>
|
||||
include <../helper/common.scad>
|
||||
include <../misc/magnet.scad>
|
||||
|
||||
connectorTaperStartHeight = 2;
|
||||
connectorRectWidth = 10;
|
||||
connectorRectDepth = 10;
|
||||
|
||||
connectorTotalHeight = 5;
|
||||
connectorSocketMagnetExtrudeHeight = 1;
|
||||
connectorTaperStartHeight = 2;
|
||||
|
||||
connectorRectPlugSlack = -0.1;
|
||||
connectorRectSocketSlack = 0.1;
|
||||
|
||||
connectorSocketMagnetExtrudeHeight = 1;
|
||||
|
||||
module stackConnectorBase(rectSlack) {
|
||||
|
||||
_wSlacked = connectorRectWidth + rectSlack;
|
||||
_dSlacked = connectorRectDepth + rectSlack;
|
||||
wSlacked = connectorRectWidth + rectSlack;
|
||||
dSlacked = connectorRectDepth + rectSlack;
|
||||
|
||||
module connRect() {
|
||||
linear_extrude(height=eps)
|
||||
square(size = [_wSlacked, _dSlacked]);
|
||||
square(size = [wSlacked, dSlacked]);
|
||||
}
|
||||
|
||||
module connMagnetMount() {
|
||||
@ -39,7 +37,7 @@ module stackConnectorBase(rectSlack) {
|
||||
translate(v = [0, 0, connectorTaperStartHeight])
|
||||
connRect();
|
||||
|
||||
translate(v=[_wSlacked/2, _dSlacked/2, connectorTotalHeight])
|
||||
translate(v=[wSlacked/2, dSlacked/2, connectorTotalHeight])
|
||||
connMagnetMount();
|
||||
}
|
||||
}
|
||||
@ -47,8 +45,8 @@ module stackConnectorBase(rectSlack) {
|
||||
module stackConnectorPlug() {
|
||||
assert(magnetHSlacked > connectorSocketMagnetExtrudeHeight);
|
||||
|
||||
_wSlacked = connectorRectWidth + connectorRectPlugSlack;
|
||||
_dSlacked = connectorRectDepth + connectorRectPlugSlack;
|
||||
wSlacked = connectorRectWidth + connectorRectPlugSlack;
|
||||
dSlacked = connectorRectDepth + connectorRectPlugSlack;
|
||||
|
||||
magnetLevelHeight = connectorTotalHeight - (magnetHSlacked - connectorSocketMagnetExtrudeHeight);
|
||||
|
||||
@ -56,10 +54,10 @@ module stackConnectorPlug() {
|
||||
|
||||
intersection() {
|
||||
stackConnectorBase(connectorRectPlugSlack);
|
||||
cube(size=[_dSlacked, _wSlacked, magnetLevelHeight]);
|
||||
cube(size=[dSlacked, wSlacked, magnetLevelHeight]);
|
||||
}
|
||||
|
||||
translate(v = [_wSlacked/2, _dSlacked/2, magnetLevelHeight - magnetHSlacked])
|
||||
translate(v = [wSlacked/2, dSlacked/2, magnetLevelHeight - magnetHSlacked])
|
||||
cylinder(r = magnetRSlacked, h = magnetHSlacked);
|
||||
|
||||
}
|
||||
@ -67,45 +65,27 @@ module stackConnectorPlug() {
|
||||
|
||||
module stackConnectorSocket_N() {
|
||||
|
||||
_wSlacked = connectorRectWidth + connectorRectSocketSlack;
|
||||
_dSlacked = connectorRectDepth + connectorRectSocketSlack;
|
||||
|
||||
_bevelSlack = 0.5;
|
||||
_bevelR = _wSlacked + _bevelSlack;
|
||||
_bevelW = _dSlacked + _bevelSlack;
|
||||
_bevelH = 0.5;
|
||||
wSlacked = connectorRectWidth + connectorRectSocketSlack;
|
||||
dSlacked = connectorRectDepth + connectorRectSocketSlack;
|
||||
|
||||
bevelSlack = 0.5;
|
||||
bevelR = wSlacked + bevelSlack;
|
||||
bevelW = dSlacked + bevelSlack;
|
||||
bevelH = 0.5;
|
||||
|
||||
stackConnectorBase(connectorRectSocketSlack);
|
||||
|
||||
translate(v=[_wSlacked/2, _wSlacked/2, connectorTotalHeight - connectorSocketMagnetExtrudeHeight])
|
||||
translate(v=[wSlacked/2, wSlacked/2, connectorTotalHeight - connectorSocketMagnetExtrudeHeight])
|
||||
cylinder(r=magnetRSlacked, h=magnetHSlacked);
|
||||
|
||||
// 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])
|
||||
translate(v=[0,0,bevelH])
|
||||
linear_extrude(height=eps)
|
||||
square(size = [_wSlacked, _dSlacked]);
|
||||
square(size = [wSlacked, dSlacked]);
|
||||
|
||||
translate(v=[-_bevelSlack/2, -_bevelSlack/2, 0])
|
||||
translate(v=[-bevelSlack/2, -bevelSlack/2, 0])
|
||||
linear_extrude(height=eps)
|
||||
square(size = [_bevelR, _bevelW]);
|
||||
square(size = [bevelR, bevelW]);
|
||||
}
|
||||
}
|
||||
|
||||
module test() {
|
||||
difference() {
|
||||
union() {
|
||||
translate(v = [-2.5, -2.5, 0])
|
||||
cube(size = [15, 15, 10]);
|
||||
|
||||
translate(v = [0, 0, 10])
|
||||
stackConnectorPlug();
|
||||
}
|
||||
|
||||
stackConnectorSocket_N();
|
||||
}
|
||||
}
|
||||
|
||||
*test();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user