diff options
Diffstat (limited to 'cad/assembly.py')
-rw-r--r-- | cad/assembly.py | 69 |
1 files changed, 68 insertions, 1 deletions
diff --git a/cad/assembly.py b/cad/assembly.py index c850532..10e65fe 100644 --- a/cad/assembly.py +++ b/cad/assembly.py @@ -4,6 +4,9 @@ from solid.utils import * from . import parameters +gap = 0.5 # dissociate parts (do not add it in other calculations) + + def motherboard_holes(datum=parameters.motherboard_datum): return [ datum, @@ -51,8 +54,72 @@ def motherboard_support(): return color(parameters.colors.metal)(render()(support)) +def wood_rear_plate(): + thick = parameters.wood_thickness + size = parameters.external_size + rear_plate = cube([size[0] - 2*thick, thick, size[2]]) + tpsu = [thick + gap, -gap, thick + gap + parameters.powersupply_offset_up] + psu_hole = translate(tpsu)( + cube([parameters.powersupply_size[2], + thick + 2*gap, + parameters.powersupply_size[0]]) + ) + return rear_plate - psu_hole + + +def powersupply(): + size = parameters.powersupply_size + psu = cube(size) + psu -= translate([size[0]/2, size[1]/2, -gap])( + cylinder(r=60, h=20) + ) + return color(parameters.colors.psu)(render()(psu)) + + +def wood_case(): + thick = parameters.wood_thickness + size = parameters.external_size + bottom_plate = translate([thick + gap, thick + gap, 0])( + cube([size[0] - 2*thick, size[1] - 2*thick, thick]) + ) + right_left_plate = cube([thick, size[1] - thick, size[2]]) + right_plate = translate([size[0] - thick + 2*gap, thick + gap, 0])( + right_left_plate + ) + left_plate = translate([0, thick + gap, 0])(right_left_plate) + rear_plate = translate([thick + gap, size[1] - thick + 2*gap, 0])( + wood_rear_plate() + ) + front_plate = cube([size[0], thick, size[2]]) + all_plates = ( + bottom_plate + right_plate + left_plate + rear_plate + front_plate + ) + return color(parameters.colors.wood)(render()(all_plates)) + + def main(): #d = motherboard() - d = motherboard_support() + thick = parameters.wood_thickness + hup = parameters.motherboard_support_mount_height \ + + parameters.motherboard_support_size[2]/2 \ + + parameters.motherboard_size[2]/2 + motherboard_assembly = motherboard_support() + up(hup)(motherboard()) + d = wood_case() + d += translate([thick + gap + parameters.powersupply_size[2], + thick + gap, + thick + gap])( + translate([parameters.motherboard_support_size[0]/2, + parameters.motherboard_support_size[1]/2, + parameters.motherboard_support_size[2]/2])( + motherboard_assembly + ) + ) + #d = wood_rear_plate() + psu = translate([parameters.powersupply_size[2] + 2*thick + gap, + parameters.external_size[1] - thick - gap - parameters.powersupply_size[1], + thick + gap + parameters.powersupply_offset_up])( + rotate([0, -90, 0])(powersupply()) + ) + d += psu scad_render_to_file(d, 'assembly.scad', include_orig_code=False) |