88 lines
2.8 KiB
Python
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()
|