from cadquery import exporters from cq_warehouse.extensions import Workplane from cq_warehouse.fastener import * from cq_warehouse.thread import * from cqmore.polygon import regularPolygon, star import cadquery as cq import cqmore bottom_radius = 70 Workplane = cqmore.extend(Workplane) simple = False screw = ButtonHeadScrew( size="M8-1.25", fastener_type="iso7380_1", length=32 * MM, simple=simple ) nut_result = ( Workplane() .makePolygon(star(outerRadius=bottom_radius / 4.5, innerRadius=13, n=8)) .extrude(10) ) scaled_screw = screw.scale(0.84) screw_result = ( Workplane() .makePolygon(star(outerRadius=bottom_radius / 4.5, innerRadius=13, n=8)) .extrude(8) .union(scaled_screw) ) nut_result = nut_result.workplane(offset=9.3).threadedHole(screw, 13, simple=simple) box = Workplane().box(190, 100, 100) box = box.workplane(offset=0).move(10, 0).box(190, 90, 90, combine="cut") box = box.workplane(offset=0).move(50, 0).hole(7) try: # show_object(screw_result) # show_object(box) show_object(nut_result) except NameError: pass cq.exporters.export( screw_result, "/home/deck/model_files/threaded_tool_holder_screw.step" ) cq.exporters.export(nut_result, "/home/deck/model_files/threaded_tool_holder_nut.step") cq.exporters.export(box, "/home/deck/model_files/threaded_tool_holder_box.step")