|
|
@ -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 |
|
|
|
|
|
|
|