Add ears to the pipe joint
This commit is contained in:
parent
7ec2728a6c
commit
52b4e0b329
|
@ -9,6 +9,14 @@ import math
|
|||
from dataclasses import dataclass, field
|
||||
import cadquery as Cq
|
||||
|
||||
NUT_COMMON = HexNut(
|
||||
# FIXME: weigh
|
||||
mass=0.0,
|
||||
diam_thread=6.0,
|
||||
pitch=1.0,
|
||||
thickness=5.0,
|
||||
width=9.89,
|
||||
)
|
||||
BOLT_COMMON = FlatHeadBolt(
|
||||
# FIXME: weigh
|
||||
mass=0.0,
|
||||
|
@ -35,7 +43,7 @@ class Shimenawa(Model):
|
|||
pipe_fitting_angle_span: float = 6.0
|
||||
|
||||
pipe_joint_length: float = 120.0
|
||||
pipe_joint_outer_thickness: float = 8.0
|
||||
pipe_joint_outer_thickness: float = 5.0
|
||||
pipe_joint_inner_thickness: float = 4.0
|
||||
|
||||
pipe_joint_inner_angle_span: float = 120.0
|
||||
|
@ -44,7 +52,7 @@ class Shimenawa(Model):
|
|||
|
||||
ear_dr: float = 6.0
|
||||
ear_hole_diam: float = 10.0
|
||||
ear_radius: float = 12.0
|
||||
ear_radius: float = 15.0
|
||||
ear_thickness: float = 10.0
|
||||
|
||||
main_circumference: float = 3600.0
|
||||
|
@ -81,12 +89,16 @@ class Shimenawa(Model):
|
|||
ear_outer = Cq.Solid.makeCylinder(
|
||||
radius=self.ear_radius,
|
||||
height=self.ear_thickness,
|
||||
pnt=(0,-self.ear_thickness/2,0),
|
||||
dir=(0,1,0),
|
||||
)
|
||||
ear_hole = Cq.Solid.makeCylinder(
|
||||
radius=self.ear_hole_diam/2,
|
||||
height=self.ear_thickness,
|
||||
pnt=(-self.ear_dr,-self.ear_thickness/2,0),
|
||||
dir=(0,1,0),
|
||||
)
|
||||
ear = (ear_outer - ear_hole).moved(self.main_radius - r_minor - self.ear_dr, 0, 0)
|
||||
ear = (ear_outer - ear_hole).moved(self.main_radius - r_minor, 0, 0)
|
||||
result += ear - inner
|
||||
return result
|
||||
@target(name="pipe-joint-outer")
|
||||
|
@ -130,7 +142,18 @@ class Shimenawa(Model):
|
|||
- cut_hole.moved(0, 0, z)
|
||||
- cut_interior
|
||||
)
|
||||
return result
|
||||
ear_outer = Cq.Solid.makeCylinder(
|
||||
radius=self.ear_radius,
|
||||
height=self.ear_thickness,
|
||||
pnt=(0, r1, -self.ear_thickness/2),
|
||||
)
|
||||
ear_hole = Cq.Solid.makeCylinder(
|
||||
radius=self.ear_hole_diam/2,
|
||||
height=self.ear_thickness,
|
||||
pnt=(0,r1+self.ear_dr,-self.ear_thickness/2),
|
||||
)
|
||||
ear = ear_outer - ear_hole - cut_interior
|
||||
return result + ear
|
||||
|
||||
@target(name="pipe-joint-inner")
|
||||
def pipe_joint_inner(self) -> Cq.Workplane:
|
||||
|
@ -184,12 +207,17 @@ class Shimenawa(Model):
|
|||
dir=(r1, 0, 0),
|
||||
)
|
||||
z = self.hole_z
|
||||
# avoid collisions
|
||||
nut_x = r3 - self.hole_ext - NUT_COMMON.thickness
|
||||
nut = NUT_COMMON.generate().val().rotate((0,0,0),(0,1,0),90)
|
||||
result = (
|
||||
result
|
||||
+ add_hole.moved(0, 0, z)
|
||||
+ add_hole.moved(0, 0, -z)
|
||||
- cut_hole.moved(0, 0, z)
|
||||
- cut_hole.moved(0, 0, -z)
|
||||
- nut.moved(nut_x, 0, z)
|
||||
- nut.moved(nut_x, 0, -z)
|
||||
)
|
||||
return result
|
||||
@assembly()
|
||||
|
|
Loading…
Reference in New Issue