Files
2025-11-05 19:39:22 +01:00

88 lines
2.8 KiB
Python

from ocp_vscode import *
from build123d import *
set_port(3939)
# Set the number of clips horizontal:
number_clips_horizontal = 3
number_clips_vertical = 3
# Distance hart to hart holes pegboard 1-1/2" or about 38.1 mm
hdhh = hole_distance_hart_to_hart = 38.1
wmh = width_multiconnector_hole = 20.3
dmh = depth_multiconnector_hole = 4.15
dbr = depth_big_round = 1.2121
dsr = depth_small_round = 0.4379
db = depth_bevel = 2.5
el = extrusion_length = 10.0
pts = [
(0, 0),
((wmh+4)/2, 0),
(((wmh+4)/2), dmh+2),
(((wmh+4)/2)-db-2, dmh+2),
(((wmh+4)/2)-db-2, dmh+2-dsr),
((wmh+4)/2-2, dbr+2),
((wmh+4)/2-2, 2),
(0, 2),
(0, 0)
]
# Make one basic connector
def one_clip():
with BuildPart() as backSlot:
# Make a polyline sketch and revolve it 180 degrees
with BuildSketch(Plane.XZ) as sk_backSlot:
with BuildLine(Plane.XZ) as ln_backSlot:
Polyline(pts)
make_face()
revolve(revolution_arc=180.0, axis=Axis.Z)
# Add a straight part to it
with BuildSketch(Plane.XZ) as sk_extrusion:
with BuildLine(Plane.XZ) as ln_extrusion:
Polyline(pts)
make_face()
mirror(about=Plane.YZ)
extrude(amount = el)
return backSlot.part
def connection_clip():
with BuildPart() as connection:
with BuildSketch(Plane.XZ) as sk_connection:
Rectangle(wmh+4, 2)
extrude(amount = 30)
return connection.part
# Generate a raster of clips
with BuildPart() as raster:
# clip = one_clip()
# one_connection = connection_clip()
# for i in range(number_clips_horizontal):
# for j in range(number_clips_vertical):
# Put the clips on the right locations
# with Locations((i * hdhh, j * hdhh, 0)):
# with GridLocations(x_spacing = hdhh, y_spacing = hdhh, x_count = number_clips_horizontal, y_count = number_clips_vertical):
with GridLocations(x_spacing = hdhh, y_spacing = hdhh, x_count = number_clips_horizontal, y_count = number_clips_vertical):
# Make a polyline sketch and revolve it 180 degrees
with BuildSketch(Plane.XZ) as sk_backSlot:
with BuildLine(Plane.XZ) as ln_backSlot:
Polyline(pts)
make_face()
revolve(revolution_arc=180.0, axis=Axis.Z)
# Add a straight part to it
with BuildSketch(Plane.XZ) as sk_extrusion:
with BuildLine(Plane.XZ) as ln_extrusion:
Polyline(pts)
make_face()
mirror(about=Plane.YZ)
extrude(amount = el)
# Connect the clips together
# with Locations((i * hdhh, j * hdhh - el, 1)):
# connection_clip()
# print(clip, one_connection)
#export_stl(backSlot.part, "backSlot.stl")
#export_step(backSlot.part, "backSlot.step")
show_all()