Browse Source

add rivets

master
wes 10 months ago
parent
commit
5fe1ae9995
  1. 62
      belt_rivets.py

62
belt_rivets.py

@ -1,31 +1,57 @@
import cadquery as cq from cadquery import exporters
from cqmore import Workplane from cq_warehouse.extensions import Workplane
from cq_warehouse.fastener import *
from cq_warehouse.thread import *
from cqmore.curve import archimedeanSpiral, circle from cqmore.curve import archimedeanSpiral, circle
from cqmore.polygon import regularPolygon, star from cqmore.polygon import regularPolygon, star
from random import randint, choice from cqmore.polyhedron import polarZonohedra, Polyhedron, superellipsoid
import functools as fnc from svg_path import addSvgPath
import itertools as it 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 inner_diameter = 5
outer_diameter = 7 outer_diameter = 7
thickness = 3 thickness = 3
result = Workplane().circle(outer_diameter).extrude(thickness) rivet_inner_diameter = 5
result = result.faces(">Z[0]").circle(inner_diameter+0.9).extrude(thickness, combine="cut") rivet_outer_diameter = 7
result = result.faces(">Z[0]").circle(inner_diameter).extrude(thickness) rivet_thickness = 2
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) logo = Workplane().circle(outer_diameter).extrude(thickness)
#result = result.faces(">Z[0]").circle(inner_diameter-1).extrude(thickness+1, combine="cut") 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) rivet_outer = Workplane().circle(rivet_inner_diameter+1).extrude(rivet_thickness)
result_outer = result_outer.faces(">Z[0]").circle(inner_diameter).extrude(thickness, combine="cut") rivet_outer = rivet_outer.faces(">Z[0]").circle(rivet_inner_diameter).extrude(rivet_thickness, combine="cut")
result_outer = result_outer.workplane(offset=1.0).circle(outer_diameter+2).extrude(1) rivet_outer = rivet_outer.workplane(offset=1.0).circle(rivet_outer_diameter+4).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")
try: try:
show_object(result) show_object(rivet)
except NameError: except NameError:
pass pass

Loading…
Cancel
Save