wip - add matrix transformations
This commit is contained in:
68
rack/connector/basePlateYBarConnectors.scad
Normal file
68
rack/connector/basePlateYBarConnectors.scad
Normal file
@ -0,0 +1,68 @@
|
||||
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>
|
||||
|
||||
_mountX = 12;
|
||||
_mountY = 14;
|
||||
_mountZ = 10;
|
||||
|
||||
// Needed for yBar to align this connector to its inner Y edge
|
||||
yBarBasePlateConnectorWidth = _mountX;
|
||||
|
||||
// x and y faces of the yBarBasePlateMount_P block
|
||||
_innerXFaceToScrew = 6;
|
||||
_innerYFaceToScrew = 8;
|
||||
|
||||
_baseConnRecession = 3;
|
||||
_baseConnY = 8;
|
||||
_baseConnOuterXFaceToScrew = 2;
|
||||
|
||||
_heatSetX = _mountX - _innerXFaceToScrew;
|
||||
_heatSetY = _mountY - _innerYFaceToScrew;
|
||||
|
||||
// TODO refactor this entire file
|
||||
basePlateScrewMountToYBarXZFace = _heatSetY + joinCornerDepth; // Distance to the nearest YBar XZ face
|
||||
basePlateScrewMountToYBarYZFace = (yBarWidth+_heatSetX) - yBarBasePlateConnectorWidth;
|
||||
|
||||
module onYBarBasePlateConnectorPositive() {
|
||||
translate(v=[0,0,yBarWallThickness])
|
||||
intersection() {
|
||||
cube(size = [_mountX, _mountY, _mountZ]);
|
||||
halfspace(vpos=[0, -1, -1], p=[0, _mountY-1, _mountZ-1]);
|
||||
}
|
||||
}
|
||||
|
||||
module onYBarBasePlateConnectorNegative() {
|
||||
|
||||
translate(v=[_heatSetX, _heatSetY, m3HeatSetInsertSlotHeightSlacked + _baseConnRecession])
|
||||
mirror(v=[0,0,1])
|
||||
heatSetInsertSlot_N(rackFrameScrewType, topExtension=inf10);
|
||||
|
||||
hull() {
|
||||
translate(v = [_heatSetX, _heatSetY, _baseConnRecession+overhangSlack])
|
||||
roundCutSlice(radius = heatSetInsertSlotRadiusSlacked(rackFrameScrewType)+radiusXYSlack);
|
||||
|
||||
translate(v = [_heatSetX, _heatSetY, 0])
|
||||
roundCutSlice(radius = _baseConnY/2 + radiusXYSlack);
|
||||
}
|
||||
|
||||
|
||||
|
||||
module roundCutSlice(radius, length=inf50) {
|
||||
|
||||
hull() {
|
||||
cylinder(r = radius, h = eps);
|
||||
|
||||
translate(v = [length, -radius, 0])
|
||||
cube(size = [eps, radius*2, eps]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user