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
|
from dataclasses import dataclass, field
|
||||||
import cadquery as Cq
|
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(
|
BOLT_COMMON = FlatHeadBolt(
|
||||||
# FIXME: weigh
|
# FIXME: weigh
|
||||||
mass=0.0,
|
mass=0.0,
|
||||||
|
@ -35,7 +43,7 @@ class Shimenawa(Model):
|
||||||
pipe_fitting_angle_span: float = 6.0
|
pipe_fitting_angle_span: float = 6.0
|
||||||
|
|
||||||
pipe_joint_length: float = 120.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_thickness: float = 4.0
|
||||||
|
|
||||||
pipe_joint_inner_angle_span: float = 120.0
|
pipe_joint_inner_angle_span: float = 120.0
|
||||||
|
@ -44,7 +52,7 @@ class Shimenawa(Model):
|
||||||
|
|
||||||
ear_dr: float = 6.0
|
ear_dr: float = 6.0
|
||||||
ear_hole_diam: float = 10.0
|
ear_hole_diam: float = 10.0
|
||||||
ear_radius: float = 12.0
|
ear_radius: float = 15.0
|
||||||
ear_thickness: float = 10.0
|
ear_thickness: float = 10.0
|
||||||
|
|
||||||
main_circumference: float = 3600.0
|
main_circumference: float = 3600.0
|
||||||
|
@ -81,12 +89,16 @@ class Shimenawa(Model):
|
||||||
ear_outer = Cq.Solid.makeCylinder(
|
ear_outer = Cq.Solid.makeCylinder(
|
||||||
radius=self.ear_radius,
|
radius=self.ear_radius,
|
||||||
height=self.ear_thickness,
|
height=self.ear_thickness,
|
||||||
|
pnt=(0,-self.ear_thickness/2,0),
|
||||||
|
dir=(0,1,0),
|
||||||
)
|
)
|
||||||
ear_hole = Cq.Solid.makeCylinder(
|
ear_hole = Cq.Solid.makeCylinder(
|
||||||
radius=self.ear_hole_diam/2,
|
radius=self.ear_hole_diam/2,
|
||||||
height=self.ear_thickness,
|
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
|
result += ear - inner
|
||||||
return result
|
return result
|
||||||
@target(name="pipe-joint-outer")
|
@target(name="pipe-joint-outer")
|
||||||
|
@ -130,7 +142,18 @@ class Shimenawa(Model):
|
||||||
- cut_hole.moved(0, 0, z)
|
- cut_hole.moved(0, 0, z)
|
||||||
- cut_interior
|
- 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")
|
@target(name="pipe-joint-inner")
|
||||||
def pipe_joint_inner(self) -> Cq.Workplane:
|
def pipe_joint_inner(self) -> Cq.Workplane:
|
||||||
|
@ -184,12 +207,17 @@ class Shimenawa(Model):
|
||||||
dir=(r1, 0, 0),
|
dir=(r1, 0, 0),
|
||||||
)
|
)
|
||||||
z = self.hole_z
|
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 = (
|
||||||
result
|
result
|
||||||
+ add_hole.moved(0, 0, z)
|
+ add_hole.moved(0, 0, z)
|
||||||
+ add_hole.moved(0, 0, -z)
|
+ add_hole.moved(0, 0, -z)
|
||||||
- cut_hole.moved(0, 0, z)
|
- cut_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
|
return result
|
||||||
@assembly()
|
@assembly()
|
||||||
|
|
Loading…
Reference in New Issue