From 5fe1ae999566e68b6f8d95d05aa28d36e6955113 Mon Sep 17 00:00:00 2001 From: wes Date: Tue, 11 Jun 2024 12:26:14 -0400 Subject: [PATCH] add rivets --- belt_rivets.py | 62 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 44 insertions(+), 18 deletions(-) diff --git a/belt_rivets.py b/belt_rivets.py index 313fabf..939ef13 100644 --- a/belt_rivets.py +++ b/belt_rivets.py @@ -1,31 +1,57 @@ -import cadquery as cq -from cqmore import Workplane +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 random import randint, choice -import functools as fnc -import itertools as it +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 -result = Workplane().circle(outer_diameter).extrude(thickness) -result = result.faces(">Z[0]").circle(inner_diameter+0.9).extrude(thickness, combine="cut") -result = result.faces(">Z[0]").circle(inner_diameter).extrude(thickness) -result = result.faces(">Z[1]").center(0,0).cylinder(thickness+2, inner_diameter-1, combine="cut") -result = result.workplane(offset=1.0).circle(outer_diameter+2).extrude(1) -#result = result.faces(">Z[0]").circle(inner_diameter-1).extrude(thickness+1, combine="cut") +rivet_inner_diameter = 5 +rivet_outer_diameter = 7 +rivet_thickness = 2 + +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") -result_outer = Workplane().circle(inner_diameter+1).extrude(thickness) -result_outer = result_outer.faces(">Z[0]").circle(inner_diameter).extrude(thickness, combine="cut") -result_outer = result_outer.workplane(offset=1.0).circle(outer_diameter+2).extrude(1) -#result_outer = result_outer.faces(">Z[0]").circle(inner_diameter-1).extrude(thickness+1, combine="cut") -cq.exporters.export(result, "/home/deck/model_files/belt_hole_inner.step") -cq.exporters.export(result_outer, "/home/deck/model_files/belt_hole_outer.step") +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+4).extrude(1) try: - show_object(result) + show_object(rivet) except NameError: pass