from cadquery import exporters from cq_warehouse.extensions import Workplane from cq_warehouse.fastener import * from cq_warehouse.thread import * from cqmore.curve import archimedeanSpiral, circle from cqmore.polygon import regularPolygon, star from cqmore.polyhedron import polarZonohedra, Polyhedron, superellipsoid from svg_path import addSvgPath from svgpathtools import svg2paths import cadquery as cq import cqmore from math import ceil, floor amp_bottom_height = 16 # how tall the pcb is battery_width = 26 battery_height = 17 amp_width = 62 amp_length = 60 amp_height = battery_height + amp_bottom_height + 10 side_width = 3 middle_width = 2 result = Workplane().box(amp_length, amp_width, side_width) result = ( result.workplane(offset=(floor(amp_height / 2) - 1)) .center(0, -(amp_width / 2)) .line(0, amp_width, forConstruction=True) .vertices() .box(amp_length, side_width, amp_height) ) result = ( result.workplane(offset=ceil((amp_height / 2) + side_width * 2) + 1) .center(0, amp_width / 2) .box(amp_length, amp_width + side_width, side_width) ) result = result.workplane(offset=0).box(amp_length, amp_width + side_width, middle_width) cq.exporters.export(result, "/home/deck/model_files/amp_case.step") try: show_object(result) except NameError: pass