Compare commits

...

10 commits

Author SHA1 Message Date
Kaan Barmore-Genç 265ce0600c
make the teardrop fn customizable 2023-12-30 10:57:38 -06:00
Chow Loong Jin bd0a7ba3f0
Merge pull request #95 from whi-tw/fix_profiles
Fix issues in profiles.scad
2021-10-25 17:49:37 +08:00
Tom Whitwell 2e11114708 Fix issues in profiles.scad
* profile_tslot_generic was missing parameter 'core'
* `circle` does not have a parameter 'center'
2021-10-23 23:50:47 +01:00
Chow Loong Jin 9d88138aed
Merge pull request #91 from skeptonomicon/master
fixed rack, fixed test_gears, and added spoked gears
2021-07-24 12:41:01 +08:00
skeptonomicon 6f0ca2a57e enabled circles and spokes on same gear, added option for entered hub and centered gear body, fixed additional test cases, improved test_gears to check more features 2021-07-20 22:48:37 -04:00
skeptonomicon 28fbdac168 fixed rack, fixed test_gears, and added spoked gears 2021-07-19 08:48:24 -04:00
Hans Loeblich 4b4caeb5da
Merge pull request #88 from sm108x/fix-list-issues
Fix issues with len() giving errors
2021-06-13 15:24:15 -05:00
Chow Loong Jin 7a9942cf85
Merge pull request #89 from kshepherd2013/add-extra-bearings
Added extra bearing definitions
2021-06-05 22:32:32 +08:00
kshepherd2013 c32a63c914 Added extra bearing definitions 2021-06-05 13:07:57 +01:00
Steve Martina b88fc567ba Fix issues with len() giving errors 2021-06-04 15:15:07 +02:00
6 changed files with 743 additions and 576 deletions

View file

@ -155,7 +155,7 @@ module donutSlice(innerSize,outerSize, start_angle, end_angle) {
{
pieSlice(outerSize, start_angle, end_angle);
if(len(innerSize) > 1)
if(is_list(innerSize) && len(innerSize) > 1)
ellipse(innerSize[0]*2,innerSize[1]*2);
else
circle(innerSize);
@ -163,8 +163,8 @@ module donutSlice(innerSize,outerSize, start_angle, end_angle) {
}
module pieSlice(size, start_angle, end_angle) { //size in radius(es)
rx = len(size) > 1? size[0] : size;
ry = len(size) > 1? size[1] : size;
rx = (is_list(size) && len(size) > 1)? size[0] : size;
ry = (is_list(size) && len(size) > 1)? size[1] : size;
trx = rx* sqrt(2) + 1;
try = ry* sqrt(2) + 1;
a0 = (4 * start_angle + 0 * end_angle) / 4;
@ -175,7 +175,7 @@ module pieSlice(size, start_angle, end_angle) { //size in radius(es)
if(end_angle > start_angle)
intersection() {
if(len(size) > 1)
if(is_list(size) && len(size) > 1)
ellipse(rx*2,ry*2);
else
circle(rx);

View file

@ -81,6 +81,7 @@ function bearingDimensions(model) =
model == 688 ? [8*mm, 16*mm, 5*mm]:
model == 689 ? [9*mm, 17*mm, 5*mm]:
model == 692 ? [2*mm, 6*mm, 3*mm]:
model == 693 ? [3*mm, 8*mm, 4*mm]:
model == 694 ? [4*mm, 11*mm, 4*mm]:
model == 695 ? [5*mm, 13*mm, 4*mm]:
@ -89,15 +90,85 @@ function bearingDimensions(model) =
model == 698 ? [8*mm, 19*mm, 6*mm]:
model == 699 ? [9*mm, 20*mm, 6*mm]:
model == 6000 ? [10*mm, 26*mm, 8*mm]:
model == 6001 ? [12*mm, 28*mm, 8*mm]:
model == 6002 ? [15*mm, 32*mm, 9*mm]:
model == 6003 ? [17*mm, 35*mm, 10*mm]:
model == 6004 ? [20*mm, 42*mm, 12*mm]:
model == 6005 ? [25*mm, 47*mm, 12*mm]:
model == 6006 ? [30*mm, 55*mm, 13*mm]:
model == 6007 ? [35*mm, 62*mm, 14*mm]:
model == 6008 ? [40*mm, 68*mm, 15*mm]:
model == 6009 ? [45*mm, 75*mm, 16*mm]:
model == 6010 ? [50*mm, 80*mm, 16*mm]:
model == 6011 ? [55*mm, 90*mm, 18*mm]:
model == 6012 ? [60*mm, 95*mm, 18*mm]:
model == 6013 ? [65*mm, 100*mm, 18*mm]:
model == 6014 ? [70*mm, 110*mm, 20*mm]:
model == 6015 ? [75*mm, 115*mm, 20*mm]:
model == 6200 ? [10*mm, 30*mm, 9*mm]:
model == 6201 ? [12*mm, 32*mm, 10*mm]:
model == 6202 ? [15*mm, 35*mm, 11*mm]:
model == 6203 ? [17*mm, 40*mm, 12*mm]:
model == 6204 ? [20*mm, 47*mm, 14*mm]:
model == 6205 ? [25*mm, 52*mm, 15*mm]:
model == 6206 ? [30*mm, 62*mm, 16*mm]:
model == 6207 ? [35*mm, 72*mm, 17*mm]:
model == 6208 ? [40*mm, 80*mm, 18*mm]:
model == 6209 ? [45*mm, 85*mm, 19*mm]:
model == 6300 ? [10*mm, 35*mm, 11*mm]:
model == 6301 ? [12*mm, 37*mm, 12*mm]:
model == 6302 ? [15*mm, 42*mm, 13*mm]:
model == 6303 ? [17*mm, 47*mm, 14*mm]:
model == 6304 ? [20*mm, 52*mm, 15*mm]:
model == 6305 ? [25*mm, 62*mm, 17*mm]:
model == 6306 ? [30*mm, 72*mm, 19*mm]:
model == 6307 ? [35*mm, 80*mm, 21*mm]:
model == 6308 ? [40*mm, 90*mm, 23*mm]:
model == 6309 ? [45*mm, 100*mm, 25*mm]:
model == 6310 ? [50*mm, 110*mm, 27*mm]:
model == 6311 ? [55*mm, 120*mm, 29*mm]:
model == 6312 ? [60*mm, 130*mm, 31*mm]:
model == 6313 ? [65*mm, 140*mm, 33*mm]:
model == 6314 ? [70*mm, 150*mm, 35*mm]:
model == 6315 ? [75*mm, 160*mm, 37*mm]:
model == 6700 ? [10*mm, 15*mm, 4*mm]:
model == 6701 ? [12*mm, 18*mm, 4*mm]:
model == 6808 ? [40*mm, 52*mm, 7*mm]:
model == 6900 ? [10*mm, 22*mm, 6*mm]:
model == 6901 ? [12*mm, 24*mm, 6*mm]:
model == 6902 ? [15*mm, 28*mm, 7*mm]:
model == 6903 ? [17*mm, 30*mm, 7*mm]:
model == 6904 ? [20*mm, 37*mm, 9*mm]:
model == 6905 ? [25*mm, 42*mm, 9*mm]:
model == "LM12" ? [12*mm, 21*mm, 30*mm]:
model == "MR52" ? [2*mm, 5*mm, 2.5*mm]:
model == "MR62" ? [2*mm, 6*mm, 2.5*mm]:
model == "MR63" ? [3*mm, 6*mm, 2.5*mm]:
model == "MR72" ? [2*mm, 7*mm, 3*mm]:
model == "MR74" ? [4*mm, 7*mm, 2.5*mm]:
model == "MR83" ? [3*mm, 8*mm, 3*mm]:
model == "MR84" ? [4*mm, 8*mm, 3*mm]:
model == "MR85" ? [5*mm, 8*mm, 2.5*mm]:
model == "MR93" ? [3*mm, 9*mm, 4*mm]:
model == "MR95" ? [5*mm, 9*mm, 3*mm]:
model == "MR104" ? [4*mm, 10*mm, 4*mm]:
model == "MR105" ? [5*mm, 10*mm, 4*mm]:
model == "MR106" ? [6*mm, 10*mm, 3*mm]:
model == "MR115" ? [5*mm, 11*mm, 4*mm]:
model == "MR117" ? [7*mm, 11*mm, 3*mm]:
model == "MR126" ? [6*mm, 12*mm, 4*mm]:
model == "MR128" ? [8*mm, 12*mm, 3.5*mm]:
model == "MR137" ? [7*mm, 13*mm, 4*mm]:
model == "MR148" ? [8*mm, 14*mm, 4*mm]:
model == "MR149" ? [9*mm, 14*mm, 4.5*mm]:
[8*mm, 22*mm, 7*mm]; // this is the default

File diff suppressed because it is too large Load diff

View file

@ -145,7 +145,7 @@ METRIC_BOLT_CAP_DIAMETERS =
[
-1, //0 index is not used but reduces computation
-1,
-1,
3.8,
5.50,//m3
7.00,//m4
8.50,//m5

View file

@ -58,7 +58,7 @@ module profile_channel(base, side, wall) {
}
}
module profile_tslot_generic (pitch, slot, lip, web, hole) {
module profile_tslot_generic (pitch, slot, lip, web, core, hole) {
// pitch = side width, slot = slot width, lip = thickness of the lip, web = thickness of the web, core = side of the center square, hole = center hole diameter
difference () {
union() {
@ -72,7 +72,7 @@ module profile_tslot_generic (pitch, slot, lip, web, hole) {
rotate ([0, 0, -45]) square ([pitch*1.15, web], center=true);
square (core, center=true);
}
circle (hole/2, center = true);
circle (hole/2);
}
}

View file

@ -23,9 +23,9 @@ This script generates a teardrop shape at the appropriate angle to prevent overh
module teardrop(radius, length, angle) {
rotate([0, angle, 0]) union() {
linear_extrude(height = length, center = true, convexity = radius, twist = 0)
circle(r = radius, $fn = 30);
circle(r = radius);
linear_extrude(height = length, center = true, convexity = radius, twist = 0)
projection(cut = false) rotate([0, -angle, 0]) translate([0, 0, radius * sin(45) * 1.5]) cylinder(h = radius * sin(45), r1 = radius * sin(45), r2 = 0, center = true, $fn = 30);
projection(cut = false) rotate([0, -angle, 0]) translate([0, 0, radius * sin(45) * 1.5]) cylinder(h = radius * sin(45), r1 = radius * sin(45), r2 = 0, center = true);
}
//I worked this portion out when a bug was causing the projection above to take FOREVER to calculate. It works as a replacement, and I figured I'd leave it here just in case.