Add Lulzbot Mini camera bracket
This commit is contained in:
parent
16aba4fb89
commit
dba62f5d86
@ -0,0 +1,60 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import cadquery as cq
|
||||||
|
from cadquery import exporters
|
||||||
|
|
||||||
|
|
||||||
|
camera_width = 43.4 + 0.5
|
||||||
|
camera_height = 6
|
||||||
|
|
||||||
|
cutout_width = 18 - 0.5
|
||||||
|
cutout_length = 21.5 - 0.5
|
||||||
|
cutout_straight_length = 16 - 0.5
|
||||||
|
|
||||||
|
bracket_width = cutout_length
|
||||||
|
bracket_thickness = 3
|
||||||
|
|
||||||
|
bolt_hole_diameter = 3.4
|
||||||
|
bolt_hole_spacing = 10
|
||||||
|
bolt_offset_y = 9.35 # derived from bolt spacing from edge
|
||||||
|
bolt_tab_width = bolt_hole_diameter * 3
|
||||||
|
|
||||||
|
|
||||||
|
corner_radius = 1
|
||||||
|
|
||||||
|
|
||||||
|
result = (
|
||||||
|
cq
|
||||||
|
.Workplane("front")
|
||||||
|
.box(camera_width + bracket_thickness * 2, bracket_width, camera_height + bracket_thickness)
|
||||||
|
.faces(">Y")
|
||||||
|
.workplane()
|
||||||
|
.move(yDist=-bracket_thickness / 2)
|
||||||
|
.rect(camera_width, camera_height, True)
|
||||||
|
.cutThruAll()
|
||||||
|
.faces("<Z[1]")
|
||||||
|
.edges("<Y")
|
||||||
|
.workplane(centerOption="CenterOfMass")
|
||||||
|
.transformed(rotate=(0, 0, 180))
|
||||||
|
.center(-cutout_width/2, 0)
|
||||||
|
.lineTo(0, cutout_straight_length)
|
||||||
|
.threePointArc((cutout_width / 2, cutout_length), (cutout_width, cutout_straight_length))
|
||||||
|
.lineTo(cutout_width, 0)
|
||||||
|
.close()
|
||||||
|
.extrude(camera_height)
|
||||||
|
.faces(">X")
|
||||||
|
.vertices("<Y and <Z")
|
||||||
|
.workplane(centerOption="CenterOfMass")
|
||||||
|
.rect(bracket_width, bracket_thickness, centered=False)
|
||||||
|
.extrude(bolt_tab_width)
|
||||||
|
.faces("<Z[1]")
|
||||||
|
.edges("<X and <Y")
|
||||||
|
.workplane(centerOption="CenterOfMass")
|
||||||
|
.center(bolt_tab_width / 2, -bolt_offset_y)
|
||||||
|
.rarray(1, bolt_hole_spacing, 1, 2)
|
||||||
|
.hole(bolt_hole_diameter)
|
||||||
|
.edges("|Z or >Z").fillet(corner_radius)
|
||||||
|
.faces(">Z[1]").edges(">X or <X or >Y").fillet(corner_radius)
|
||||||
|
)
|
||||||
|
|
||||||
|
exporters.export(result, 'camera-bracket.stl')
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user