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()