Cable clamp for multiple cables fastened with m3x8 screws
This commit is contained in:
parent
ed989fa000
commit
8dc599ba23
35646
cluster_cable_clamp/bottom_clamp.stl
Normal file
35646
cluster_cable_clamp/bottom_clamp.stl
Normal file
File diff suppressed because it is too large
Load Diff
46230
cluster_cable_clamp/full_clamp.stl
Normal file
46230
cluster_cable_clamp/full_clamp.stl
Normal file
File diff suppressed because it is too large
Load Diff
67
cluster_cable_clamp/modelo.py
Normal file
67
cluster_cable_clamp/modelo.py
Normal file
@ -0,0 +1,67 @@
|
||||
import cadquery2 as cq
|
||||
from cadquery2 import exporters
|
||||
|
||||
thickness = 12
|
||||
width = 60
|
||||
depth = 10
|
||||
holes = 6
|
||||
screws = 2
|
||||
|
||||
cable_radius = 1.5
|
||||
|
||||
# Threaded insert hole dimensions
|
||||
ti_radius = 2.35
|
||||
ti_depth = 6.5
|
||||
|
||||
# M3x8 screw
|
||||
screw_l = 10
|
||||
screw_shaft = 8
|
||||
screw_head_h = 2.5
|
||||
screw_head_radius = 3.25
|
||||
screw_radius = 1.5
|
||||
|
||||
# Constants here are fudge factors to make things look nice
|
||||
screw_hole_positions = [(6 - width / 2, 0), (width / 2 - 6, 0)]
|
||||
cable_hole_positions = [((i + 1.5) * width / 8 - width / 2, 0) for i in range(holes)]
|
||||
|
||||
|
||||
def clamp():
|
||||
return (
|
||||
cq.Workplane("XY")
|
||||
.box(width, depth, thickness)
|
||||
.edges("|Z")
|
||||
.fillet(2)
|
||||
# Screw holes
|
||||
.faces("<Z")
|
||||
.workplane()
|
||||
.pushPoints(screw_hole_positions)
|
||||
.circle(ti_radius)
|
||||
.cutBlind(-ti_depth)
|
||||
.faces(">Z")
|
||||
.workplane()
|
||||
.pushPoints(screw_hole_positions)
|
||||
.circle(screw_radius)
|
||||
.cutBlind(-thickness)
|
||||
.faces(">Z")
|
||||
.workplane()
|
||||
.pushPoints(screw_hole_positions)
|
||||
.circle(screw_head_radius)
|
||||
.cutBlind(-screw_head_h)
|
||||
# Cable holes
|
||||
.faces(">Y")
|
||||
.workplane(centerOption="CenterOfBoundBox")
|
||||
.pushPoints(cable_hole_positions)
|
||||
.circle(cable_radius)
|
||||
.cutBlind(-depth)
|
||||
)
|
||||
|
||||
|
||||
exporters.export(clamp(), "full_clamp.stl")
|
||||
|
||||
top_clamp = clamp().faces("<Z").workplane(offset=-thickness / 2).split(keepTop=True)
|
||||
exporters.export(top_clamp, "top_clamp.stl")
|
||||
|
||||
bottom_clamp = (
|
||||
clamp().faces("<Z").workplane(offset=-thickness / 2).split(keepBottom=True)
|
||||
)
|
||||
exporters.export(bottom_clamp, "bottom_clamp.stl")
|
21534
cluster_cable_clamp/top_clamp.stl
Normal file
21534
cluster_cable_clamp/top_clamp.stl
Normal file
File diff suppressed because it is too large
Load Diff
@ -10,7 +10,7 @@ inner_monitor_hinge = 3.2 / 2
|
||||
outer_monitor_hinge = hinge_w / 2
|
||||
|
||||
# tripod hinge dimensions
|
||||
inner_tripod_hinge = 7.5 / 2
|
||||
inner_tripod_hinge = 7 / 2
|
||||
outer_tripod_hinge = 17.5 / 2
|
||||
tripod_hinge_width = 5.5
|
||||
|
||||
@ -24,7 +24,7 @@ tripod_hinge_shape = (
|
||||
)
|
||||
|
||||
arm_width = min(tripod_hinge_width, hinge_gap)
|
||||
arm_length = 150
|
||||
arm_length = 130
|
||||
|
||||
lower_arm = (
|
||||
cq.Workplane("XY")
|
||||
@ -46,4 +46,4 @@ lower_arm = (
|
||||
.extrude(-tripod_hinge_width)
|
||||
)
|
||||
|
||||
exporters.export(lower_arm, "lower_arm.stl")
|
||||
exporters.export(lower_arm, "lower_arm.svg")
|
||||
|
@ -18,7 +18,7 @@ elbow_hinge_shape = (
|
||||
cq.Sketch().circle(outer_monitor_hinge).circle(inner_monitor_hinge, mode="s")
|
||||
)
|
||||
|
||||
arm_length = 150
|
||||
arm_length = 130
|
||||
arm_width = hinge_gap
|
||||
|
||||
upper_arm = (
|
||||
|
Loading…
Reference in New Issue
Block a user