|
|
@ -14,14 +14,22 @@ from math import ceil, floor |
|
|
|
side_width = 5 |
|
|
|
bottom_width = 5 |
|
|
|
middle_width = 2 |
|
|
|
panel_width = 1.2 |
|
|
|
|
|
|
|
amp_bottom_height = 19 + bottom_width + middle_width # how tall the pcb is |
|
|
|
amp_bottom_height = 19 + bottom_width + middle_width # how tall the pcb is |
|
|
|
battery_width = 26 |
|
|
|
battery_height = 17 |
|
|
|
amp_width = 62 |
|
|
|
amp_length = 60 |
|
|
|
amp_height = battery_height + amp_bottom_height |
|
|
|
|
|
|
|
panel_component_diameter = 7.8 |
|
|
|
panel_distance = 10.5 + ( |
|
|
|
panel_component_diameter / 2 |
|
|
|
) # distance between each panel component |
|
|
|
panel_dist_from_side = 2 |
|
|
|
panel_dist_from_bottom = 0 # how far the panel components are from the bottom |
|
|
|
|
|
|
|
result = Workplane().box(amp_length, amp_width, middle_width) |
|
|
|
|
|
|
|
result = ( |
|
|
@ -33,12 +41,37 @@ result = ( |
|
|
|
) |
|
|
|
|
|
|
|
result = ( |
|
|
|
result.workplane(offset=amp_height/2) |
|
|
|
result.workplane(offset=amp_height / 2) |
|
|
|
.center(0, amp_width / 2) |
|
|
|
.box(amp_length, amp_width + bottom_width, bottom_width) |
|
|
|
) |
|
|
|
|
|
|
|
result = result.workplane(offset=-(side_width*2) + middle_width).center((amp_width/2)-(side_width/2)-1, 0).box(side_width, amp_width, amp_height-0.45) |
|
|
|
result = ( |
|
|
|
result.workplane(offset=-7.8) |
|
|
|
.center((amp_width / 2) - (panel_width / 2) - 1, 0) |
|
|
|
.box(panel_width, amp_width, amp_height) |
|
|
|
) |
|
|
|
|
|
|
|
panel_holes = ( |
|
|
|
Workplane("ZY") |
|
|
|
.workplane(offset=-(amp_length / 2)) |
|
|
|
.center(panel_component_diameter + panel_dist_from_bottom, 0) |
|
|
|
.line(0, panel_distance, forConstruction=True) |
|
|
|
.vertices() |
|
|
|
.cylinder(side_width, panel_component_diameter / 2) |
|
|
|
) |
|
|
|
|
|
|
|
panel_holes_2 = ( |
|
|
|
Workplane("ZY") |
|
|
|
.workplane(offset=-(amp_length / 2)) |
|
|
|
.center(panel_component_diameter + panel_dist_from_bottom, 0) |
|
|
|
.line(0, -(panel_distance), forConstruction=True) |
|
|
|
.vertices() |
|
|
|
.cylinder(side_width, panel_component_diameter / 2) |
|
|
|
) |
|
|
|
|
|
|
|
result = result.cut(panel_holes) |
|
|
|
result = result.cut(panel_holes_2) |
|
|
|
|
|
|
|
cq.exporters.export(result, "/home/deck/model_files/amp_case.step") |
|
|
|
|
|
|
|