From 111b6ff394355f8a1a2045b504584573acde12af Mon Sep 17 00:00:00 2001 From: VG Date: Fri, 9 Dec 2016 14:09:35 +0100 Subject: try to add support geometry --- cad/assembly.py | 59 ++++++++++++++++++++++++++++++++----------------------- cad/parameters.py | 3 +++ 2 files changed, 37 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) diff --git a/cad/parameters.py b/cad/parameters.py index fd38e57..34e4a28 100644 --- a/cad/parameters.py +++ b/cad/parameters.py @@ -12,6 +12,9 @@ external_size = [370, 270, 180] connector_panel_size = [158.75, 2, 45] motherboard_size = [243.84, 243.84, 3] motherboard_support_size = [280, 220, 1] +motherboard_datum = [motherboard_size[0]/2 - 243.84 + 34.29, + motherboard_size[1]/2 - 10.16] +motherboard_support_mount_height = 5 powersupply_size = [150, 150, 80] storage_size = [70, 80, 10] wood_thickness = 16 -- cgit v1.2.3