cad_models/space_pi_se_PTFE_stopper.py

37 lines
1.2 KiB
Python
Raw Normal View History

2026-09-21 09:13:47 -04:00
# /// script
# requires-python = ">=3.14"
# dependencies = ["ocp_vscode", "build123d"]
# ///
from build123d import *
from ocp_vscode import *
### Dimensions ###
diameter_at_hole = 5.5 * MM
ptfe_length = 5 * MM
filament_length = 5 * MM
diameter_at_filament = 3 * MM
washer_thickness = 2 * MM
###################
with BuildPart() as stopper:
with BuildSketch() as sketch:
Circle(diameter_at_hole / 2.0 + 2 * MM)
Circle(diameter_at_hole / 2.0, mode=Mode.SUBTRACT)
extrude(amount=washer_thickness)
with BuildSketch(Plane.XY.offset(washer_thickness)) as sketch:
Circle(diameter_at_hole / 2.0 + 0.5 * MM)
Circle(diameter_at_hole / 2.0, mode=Mode.SUBTRACT)
extrude(amount=ptfe_length)
offset = ptfe_length + washer_thickness
with BuildSketch(Plane.XY.offset(offset)) as sketch:
Circle(diameter_at_hole / 2.0 + 0.5 * MM)
Circle(diameter_at_hole / 2.0, mode=Mode.SUBTRACT)
offset += filament_length
with BuildSketch(Plane.XY.offset(offset)) as sketch:
Circle(diameter_at_filament / 2.0 + 0.5 * MM)
Circle(diameter_at_filament / 2.0, mode=Mode.SUBTRACT)
loft()
show(stopper)
export_stl(stopper.part, "stopper.stl")