Skip to content

Instantly share code, notes, and snippets.

@AnIrishDuck
Created February 19, 2019 17:49
Show Gist options
  • Save AnIrishDuck/e1c728e8db4bda62f4c67e111d424fda to your computer and use it in GitHub Desktop.
Save AnIrishDuck/e1c728e8db4bda62f4c67e111d424fda to your computer and use it in GitHub Desktop.
from petrify.solid import Vector, Box, Cylinder, Node, Union
from petrify.edge import Chamfer
port = 2.65
outer = 2.28
inner = 2.22
wall = 0.125
mm_p_in = 25.4
to_mm = Vector(mm_p_in, mm_p_in, mm_p_in)
fidelity = 50
class Tube(Node):
def __init__(self, inner_diameter, outer_diameter, height):
self.outer = Cylinder(
Vector(0, 0, 0),
Vector(0, 0, height),
outer_diameter / 2,
segments = fidelity
)
self.inner = Cylinder(
Vector(0, 0, 0),
Vector(0, 0, height),
inner_diameter / 2,
segments = fidelity
)
super().__init__((self.outer - self.inner).polygons)
smaller = Tube(inner - wall * 2, inner, 1.5)
bigger = Tube(inner - wall * 2, outer, 1.5)
holster_top = Tube(inner - wall, port + wall * 2, 0.75)
outside = holster_top.outer
chamfer = Chamfer(outside, outside.top.segments(), port - outer)
holster_top = holster_top - chamfer
holster = Tube(port, port + wall * 2, 1.25) + holster_top.translate(Vector(0, 0, 1.0))
adaptor = smaller + holster + bigger.translate(Vector(0, 0, 1.5 - wall))
adaptor.scale(to_mm).to_stl('output/adaptor.stl')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment