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 Workplane = cqmore.extend(Workplane) Workplane.addSvgPath = addSvgPath #wk_paths, wk_attributes = svg2paths( #"/home/deck/cad_files/svgs/wk_edited.svg" #) inner_diameter = 5 outer_diameter = 7 thickness = 3 rivet_inner_diameter = 1.5 rivet_outer_diameter = 2.5 rivet_thickness = 3 logo = Workplane().circle(outer_diameter).extrude(thickness) logo = logo.faces(">Z[0]").circle(inner_diameter+0.9).extrude(thickness, combine="cut") logo = logo.faces(">Z[0]").circle(inner_diameter).extrude(thickness) logo = logo.faces(">Z[1]").center(0,0).cylinder(thickness+2, inner_diameter-1, combine="cut") logo = logo.workplane(offset=1.0).circle(outer_diameter+4).extrude(1).workplane(offset=0.5).text("WK", 10, 0.8, combine="cut") #wk = Workplane("XY").center(0, 0).addSvgPath(wk_paths[0]).extrude(-2.0) #logo = logo.union(wk, clean=False) logo_outer = Workplane().circle(inner_diameter+1).extrude(thickness) logo_outer = logo_outer.faces(">Z[0]").circle(inner_diameter).extrude(thickness, combine="cut") logo_outer = logo_outer.workplane(offset=1.0).circle(outer_diameter+4).extrude(1) cq.exporters.export(logo, "/home/deck/model_files/belt_hole_inner.step") cq.exporters.export(logo_outer, "/home/deck/model_files/belt_hole_outer.step") rivet = Workplane().circle(rivet_outer_diameter).extrude(rivet_thickness) rivet = rivet.faces(">Z[0]").circle(rivet_inner_diameter+0.9).extrude(rivet_thickness, combine="cut") rivet = rivet.faces(">Z[0]").circle(rivet_inner_diameter).extrude(rivet_thickness) rivet = rivet.faces(">Z[1]").center(0,0).cylinder(rivet_thickness+2, rivet_inner_diameter-1, combine="cut") rivet = rivet.workplane(offset=1.0).circle(rivet_outer_diameter+1).extrude(1) rivet_outer = Workplane().circle(rivet_inner_diameter+1).extrude(rivet_thickness) rivet_outer = rivet_outer.faces(">Z[0]").circle(rivet_inner_diameter).extrude(rivet_thickness, combine="cut") rivet_outer = rivet_outer.workplane(offset=1.0).circle(rivet_outer_diameter+1).extrude(1) cq.exporters.export(rivet, "/home/deck/model_files/rivet_inner.step") cq.exporters.export(rivet_outer, "/home/deck/model_files/rivet_outer.step") try: show_object(rivet) except NameError: pass