from . import bec_module, lighting_control_board, logic_board, placements, relay_board, tray, vesc, vesc_fan from .dimensions import tray_thickness def assembly(): return sp.union()( sp.color('red')(tray.volume()), spu.up(tray_thickness)( sp.color('purple')(placements.vesc_fan(vesc_fan.assembly())), # Boards are raised by spacers spu.up(3.)( sp.color('green')(placements.vesc(vesc.volume())), sp.color('blue')( placements.lighting_control_board( lighting_control_board.volume() ) ), sp.color('cyan')(placements.relay_board(relay_board.volume())), sp.color('magenta')(placements.bec_module(bec_module.volume())), sp.color('orange')( placements.logic_board(logic_board.volume()) ), ), ), ) if __name__ == '__main__': entrypoint.main(assembly())
from .dimensions import tray_dimensions, tray_thickness from .vesc_fan import shroud mounting_hole_centres = (inner * 2., tray_dimensions[1] - 20.) mounting_hole_diameter = 3.5 def projection(): panel = sp.square(tray_dimensions, center=True) frame_mounting_holes = place_at_centres( mounting_hole_centres, sp.circle(d=mounting_hole_diameter, segments=32)) return panel - frame_mounting_holes - placements.vesc( vesc.holes()) - placements.lighting_control_board( lighting_control_board.holes()) - placements.relay_board( relay_board.holes()) - placements.bec_module( bec_module.holes()) - placements.logic_board( logic_board.holes()) - placements.vesc_fan( shroud.mounting_holes(32)) @bom.part('Electronics Tray') def volume(): return sp.linear_extrude(tray_thickness)(projection()) if __name__ == '__main__': entrypoint.main(projection())
def projection_fan(): return projection_outer() - fan.main_vent() - fan.mounting_holes() def volume(): extrusion = sp.rotate((0, 0, 0))(sp.union()( spu.down(length)(sp.linear_extrude(length)(projection_main())), spu.down(10.)(sp.linear_extrude(10.)(projection_fan())), )) rotated_extrusion = sp.rotate( (90, 0, 0))(spu.forward(fan.size[1] / 2.)(extrusion)) tray_mounting_holes = sp.linear_extrude(10.)(mounting_holes(6)) def cable_cutout(position, diameter): return sp.translate(position)(sp.rotate( (0, 90, 0))(sp.cylinder(d=diameter, h=outer_wall_thickness + 1., center=True))) cable_cutouts = sp.union()( cable_cutout((-33, 20, 15), 15.), cable_cutout((-33, 60, 10), 12.), ) return rotated_extrusion - tray_mounting_holes - cable_cutouts if __name__ == '__main__': entrypoint.main(volume())
(-inner + (box_section.default_size[0] / 2.) + 1., magic_1, 0) )(brake_pedal.assembly()) ), sp.color('orange')( sp.translate((0, 1100., 0))( sp.rotate((50., 0, 0))(steering.assembly()) ) ), sp.color('brown')( sp.translate((0, 75, box_section.default_size[0] / 2.))( electronics_tray.assembly() ) ), ) def size_check(): return sp.union()( assembly(), sp.translate((0., 600., 100.))( sp.color((1., 1., 1., 0.4))( sp.cube(max_outer_dimensions, center=True) ) ), ) if __name__ == '__main__': # entrypoint.main(assembly()) entrypoint.main(size_check())