summaryrefslogtreecommitdiffstats
path: root/cad/assembly.py
diff options
context:
space:
mode:
Diffstat (limited to 'cad/assembly.py')
-rw-r--r--cad/assembly.py59
1 files changed, 34 insertions, 25 deletions
diff --git a/cad/assembly.py b/cad/assembly.py
index f6da273..c850532 100644
--- a/cad/assembly.py
+++ b/cad/assembly.py
@@ -4,16 +4,8 @@ from solid.utils import *
from . import parameters
-def motherboard_support():
- support = cube(parameters.motherboard_support_size, center=True)
- return color(parameters.colors.metal)(render()(support))
-
-
-def motherboard():
- mb_size = parameters.motherboard_size
- board = cube(mb_size, center=True)
- datum = [mb_size[0]/2 - 243.84 + 34.29, mb_size[1]/2 - 10.16]
- holes = [
+def motherboard_holes(datum=parameters.motherboard_datum):
+ return [
datum,
[datum[0] + 45.72, datum[1]],
[datum[0] + 203.2, datum[1] - 22.86],
@@ -26,24 +18,41 @@ def motherboard():
[datum[0] + 45.72, datum[1] - 227.33],
[datum[0] + 203.2, datum[1] - 227.33],
]
- hole_cylinders = union()([
+
+
+def motherboard_hole_objects(datum=parameters.motherboard_datum):
+ return union()([
translate([h[0], h[1], 0])(cylinder(h=10, r=3.96/2, center=True))
- for h in holes
+ for h in motherboard_holes(datum)
])
- #for hole in holes:
- # board = board - translate([hole[0], hole[1], 0])(
- # cylinder(h = 10, r=3.96/2, center=True)
- # )
- return color(parameters.colors.motherboard)(render()(board
- + hole_cylinders))
-def main():
- #d = difference()(
- # cube(10, center=True),
- # cylinder(h=10, r=4, center=True)
- #)
+def motherboard():
+ hole_objects = motherboard_hole_objects()
+ mb_size = parameters.motherboard_size
+ board = cube(mb_size, center=True)
+ return color(parameters.colors.motherboard)(render()(board - hole_objects))
+
+
+def motherboard_support():
+ plan_size = parameters.motherboard_support_size
+ support = cube(plan_size, center=True)
+ hmount = parameters.motherboard_support_mount_height
+ support_mounts = union()([
+ translate([h[0], h[1], plan_size[2]/2 + hmount/2])(
+ difference()(
+ cylinder(h=hmount, r=2.5, center=True),
+ cylinder(h=hmount + 1, r=1.5, center=True),
+ )
+ )
+ for h in motherboard_holes()
+ ])
+ support = support + support_mounts
+ return color(parameters.colors.metal)(render()(support))
- #d = render()(d)
- scad_render_to_file(motherboard(), 'assembly.scad',
+
+def main():
+ #d = motherboard()
+ d = motherboard_support()
+ scad_render_to_file(d, 'assembly.scad',
include_orig_code=False)