diff --git a/libtest.png b/libtest.png index b505464..38c473b 100644 Binary files a/libtest.png and b/libtest.png differ diff --git a/libtest.scad b/libtest.scad index 03a05f3..775a833 100644 --- a/libtest.scad +++ b/libtest.scad @@ -473,7 +473,7 @@ translate([x3 + 10, hot_ends_y]) translate([x2, panel_meters_y]) panel_meters(); -translate([x2, extrusions_y]) +translate([x2 - 15, extrusions_y]) extrusions(); translate([x2, box_sections_y]) diff --git a/readme.md b/readme.md index d6203be..49636e0 100644 --- a/readme.md +++ b/readme.md @@ -1210,24 +1210,26 @@ Aluminium extrusion. ### Modules | Module | Description | |:--- |:--- | -| `extrusion(type, length, center = true, cornerHole = false)` | Draw the specified extrusion | +| `extrusion(type, length, center = true, cornerHole = true)` | Draw the specified extrusion | ![extrusions](tests/png/extrusions.png) ### Vitamins | Qty | Module call | BOM entry | | ---:|:--- |:---| -| 1 | `extrusion(E1515, 80)` | Extrusion E1515 x 80mm | -| 1 | `extrusion(E2020, 80)` | Extrusion E2020 x 80mm | -| 1 | `extrusion(E2020t, 80)` | Extrusion E2020t x 80mm | -| 1 | `extrusion(E2040, 80)` | Extrusion E2040 x 80mm | -| 1 | `extrusion(E2060, 80)` | Extrusion E2060 x 80mm | -| 1 | `extrusion(E2080, 80)` | Extrusion E2080 x 80mm | +| 1 | `extrusion(E1515, 80, cornerHole = true)` | Extrusion E1515 x 80mm | +| 1 | `extrusion(E2020, 80, cornerHole = true)` | Extrusion E2020 x 80mm | +| 1 | `extrusion(E2020t, 80, cornerHole = true)` | Extrusion E2020t x 80mm | +| 1 | `extrusion(E2040, 80, cornerHole = true)` | Extrusion E2040 x 80mm | +| 1 | `extrusion(E2060, 80, cornerHole = true)` | Extrusion E2060 x 80mm | +| 1 | `extrusion(E2080, 80, cornerHole = true)` | Extrusion E2080 x 80mm | | 1 | `extrusion(E3030, 80, cornerHole = true)` | Extrusion E3030 x 80mm | | 1 | `extrusion(E3060, 80, cornerHole = true)` | Extrusion E3060 x 80mm | | 1 | `extrusion(E4040, 80, cornerHole = true)` | Extrusion E4040 x 80mm | | 1 | `extrusion(E4040t, 80, cornerHole = true)` | Extrusion E4040t x 80mm | | 1 | `extrusion(E4080, 80, cornerHole = true)` | Extrusion E4080 x 80mm | +| 1 | `extrusion(Makerbeam, 80, cornerHole = true)` | Extrusion Makerbeam x 80mm | +| 1 | `extrusion(MakerbeamXL, 80, cornerHole = true)` | Extrusion MakerbeamXL x 80mm | Top @@ -4303,8 +4305,8 @@ SK shaft support brackets ### Vitamins | Qty | Module call | BOM entry | | ---:|:--- |:---| -| 2 | `extrusion(E2020, 20)` | Extrusion E2020 x 20mm | -| 2 | `extrusion(E3030, 20)` | Extrusion E3030 x 20mm | +| 2 | `extrusion(E2020, 20, cornerHole = true)` | Extrusion E2020 x 20mm | +| 2 | `extrusion(E3030, 20, cornerHole = true)` | Extrusion E3030 x 20mm | | 2 | `sliding_t_nut(M4_hammer_nut)` | Nut M4 hammer | | 2 | `sliding_t_nut(M4_sliding_t_nut)` | Nut M4 sliding T | | 2 | `sliding_t_nut(M5_sliding_t_nut)` | Nut M5 sliding T | diff --git a/tests/extrusions.scad b/tests/extrusions.scad index 70f9d95..bb7bbaf 100644 --- a/tests/extrusions.scad +++ b/tests/extrusions.scad @@ -35,10 +35,10 @@ module extrusions() rotate(90) layout(heights, gap) rotate(-90) - extrusion(list[$i], 80, cornerHole = extrusion_width(list[$i]) > 20); + extrusion(list[$i], 80); } else - extrusion(e, 80, cornerHole = extrusion_width(e) > 20); + extrusion(e, 80); if ($preview) extrusions(); diff --git a/tests/png/extrusions.png b/tests/png/extrusions.png index f371287..2976e0f 100644 Binary files a/tests/png/extrusions.png and b/tests/png/extrusions.png differ diff --git a/tests/png/sk_brackets.png b/tests/png/sk_brackets.png index f9d5ed2..d4da6ae 100644 Binary files a/tests/png/sk_brackets.png and b/tests/png/sk_brackets.png differ diff --git a/vitamins/extrusion.scad b/vitamins/extrusion.scad index 60571cf..5aa7c8e 100644 --- a/vitamins/extrusion.scad +++ b/vitamins/extrusion.scad @@ -37,7 +37,7 @@ function extrusion_center_hole(type) = abs(extrusion_center_hole_wd(t function extrusion_corner_hole(type) = abs(extrusion_corner_hole_wd(type)); //! Diameter of corner hole or side if square function extrusion_center_square(type) = abs(extrusion_center_square_wd(type)); //! Size of center square or tube -module extrusion_cross_section(type, cornerHole) { +module extrusion_cross_section(type, cornerHole=true) { width = extrusion_width(type); height = extrusion_height(type); centerSquare = extrusion_center_square(type); @@ -54,7 +54,7 @@ module extrusion_cross_section(type, cornerHole) { if(d < 0) circle(d = -d); - module extrusion_corner(type, cornerHole) { + module extrusion_corner(type) { fillet = extrusion_fillet(type); cornerSize = (width - channelWidth) / 2; cornerHoleDiameter = abs(extrusion_corner_hole(type)); @@ -74,7 +74,7 @@ module extrusion_cross_section(type, cornerHole) { translate([fillet, fillet]) square([cornerSquare - fillet, cornerSquare - fillet]); } - if(cornerHole) + if(cornerHole && cornerHoleDiameter) translate([cornerSquare / 2, cornerSquare / 2]) squircle(extrusion_corner_hole_wd(type)); } @@ -117,7 +117,7 @@ module extrusion_cross_section(type, cornerHole) { translate([0, side * (width - height) / 2]) for(angle = [0, 90]) rotate(angle + (side < 0 ? 180 : 0)) - extrusion_corner(type, cornerHole); + extrusion_corner(type); if(count >= 1) for(i = [1 : count]) @@ -133,7 +133,7 @@ module extrusion_cross_section(type, cornerHole) { } } -module extrusion(type, length, center = true, cornerHole = false) { //! Draw the specified extrusion +module extrusion(type, length, center = true, cornerHole = true) { //! Draw the specified extrusion vitamin(str("extrusion(", type[0], ", ", length, arg(cornerHole, false, "cornerHole"), "): Extrusion ", type[0], " x ", length, "mm")); diff --git a/vitamins/extrusions.scad b/vitamins/extrusions.scad index bcc421e..b3e7e26 100644 --- a/vitamins/extrusions.scad +++ b/vitamins/extrusions.scad @@ -19,19 +19,21 @@ // // Extrusion // -// W H d1 d2 sq cw cwi t st f recess -E1515 = [ "E1515", 15, 15, -3.3, 0, 5.5, 6.2, 9.5, 1.0, 0.9, 0.5, false ]; -E2020 = [ "E2020", 20, 20, -4.2, -3, 8, 6, 12.0, 2, 2, 1, false ]; -E2020t = [ "E2020t",20, 20, -5.0, -3, 7.8, 6.2, 11.0, 1.8, 1.5, 1.5, [7.2, 0.5] ]; -E2040 = [ "E2040", 20, 40, -4.2, -3, 8, 6, 12.0, 2, 2, 1, false ]; -E2060 = [ "E2060", 20, 60, -4.2, -3, 8, 6, 12.0, 2, 2, 1, false ]; -E2080 = [ "E2080", 20, 80, -4.2, -3, 8, 6, 12.0, 2, 2, 1, false ]; -E3030 = [ "E3030", 30, 30, -6.8, -4.2, 12, 8, 16.5, 2, 2, 1, false ]; -E3060 = [ "E3060", 30, 60, -6.8, -4.2, 12, 8, 16.5, 2, 2, 1, false ]; -E4040 = [ "E4040", 40, 40, -10.5, -6.0, 15, 10, 20.0, 5.5, 3, 1, false ]; -E4040t = [ "E4040t",40, 40, -10, 6.8, -16, 10, 20.0, 4.0, 2.4, 1.5, [12, 1] ]; -E4080 = [ "E4080", 40, 80, -10.5, -6.0, 15, 10, 20.0, 5.5, 3, 1, false ]; +// W H d1 d2 sq cw cwi t st f recess +Makerbeam = [ "Makerbeam", 10, 10, -2.5, 0, 4, 3, 6.5, 1, 1, 0.25, false ]; +MakerbeamXL = [ "MakerbeamXL", 15, 15, -2.55, -2.55, 5, 3, 5.7, 1.1, 2, 0.25, false ]; +E1515 = [ "E1515", 15, 15, -3.3, 0, 5.5, 6.2, 9.5, 1.0, 0.9, 0.5, false ]; +E2020 = [ "E2020", 20, 20, -4.2, 0, 8, 6, 12.0, 2, 2, 1, false ]; +E2020t = [ "E2020t", 20, 20, -5.0, 0, 7.8, 6.2, 11.0, 1.8, 1.5, 1.5, [7.2, 0.5] ]; +E2040 = [ "E2040", 20, 40, -4.2, 0, 8, 6, 12.0, 2, 2, 1, false ]; +E2060 = [ "E2060", 20, 60, -4.2, 0, 8, 6, 12.0, 2, 2, 1, false ]; +E2080 = [ "E2080", 20, 80, -4.2, 0, 8, 6, 12.0, 2, 2, 1, false ]; +E3030 = [ "E3030", 30, 30, -6.8, -4.2, 12, 8, 16.5, 2, 2, 1, false ]; +E3060 = [ "E3060", 30, 60, -6.8, -4.2, 12, 8, 16.5, 2, 2, 1, false ]; +E4040 = [ "E4040", 40, 40, -10.5, -6.0, 15, 10, 20.0, 5.5, 3, 1, false ]; +E4040t = [ "E4040t", 40, 40, -10, 6.8, -16, 10, 20.0, 4.0, 2.4, 1.5, [12, 1] ]; +E4080 = [ "E4080", 40, 80, -10.5, -6.0, 15, 10, 20.0, 5.5, 3, 1, false ]; -extrusions = [E1515, [E2020t, E2020], E2040, E2060, E2080, E3030, E3060, [E4040t, E4040], E4080]; +extrusions = [Makerbeam, [E1515, MakerbeamXL], [E2020t, E2020], E2040, E2060, E2080, E3030, E3060, [E4040t, E4040], E4080]; use