From 8a24e313e5107601d36a331f32312a3e9bf383c0 Mon Sep 17 00:00:00 2001 From: Christian Colglazier Date: Sat, 21 May 2022 20:37:12 -0400 Subject: [PATCH] Improved formatting --- follow_focus.py | 109 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 77 insertions(+), 32 deletions(-) diff --git a/follow_focus.py b/follow_focus.py index 0bf4c23..ca41e68 100644 --- a/follow_focus.py +++ b/follow_focus.py @@ -23,35 +23,36 @@ stepper_hole_width=31.0 # Case part_thinkness=20 - +outer_fillets=2.5 slant_degree=15.0 -rod_thickness=15.2 -loop_thickness=1.6 -angle=40 wall_width=1.6 -lid_thicknesss = 5 +loop_width=wall_width +rod_thickness=15.2 +angle=40 offset=9 + +# Gears +mod=0.8 gear_gap=0.2 - - +gear_offset=0.5 large_gear_diameter=8.5 gear_thinkness=10 -gap = stepper_motor_size * math.sin(math.radians(slant_degree)) / math.sin(math.radians(90-slant_degree)) -width = math.sqrt(gap**2 + stepper_motor_size**2 - 2*gap*stepper_motor_size*math.cos(math.radians(90))) - +# Other d=25 t=7 mount_gap=2 +# Calculated values +lid_thicknesss = (part_thinkness-gear_thinkness)/2 +gap = stepper_motor_size * math.sin(math.radians(slant_degree)) / math.sin(math.radians(90-slant_degree)) +width = math.sqrt(gap**2 + stepper_motor_size**2 - 2*gap*stepper_motor_size*math.cos(math.radians(90))) end_x=gap+stepper_motor_size-5 end_y=-4.3 - -outer_ring_diameter=rod_thickness+2*loop_thickness +outer_ring_diameter=rod_thickness+2*loop_width center_x=end_x-math.cos(math.radians(angle))*outer_ring_diameter/2 center_y=end_y-math.sin(math.radians(angle))*outer_ring_diameter/2 - def findRodInter(n_x, n_y): p = Point(center_x, center_y) c = p.buffer(rod_thickness/2).boundary @@ -84,7 +85,6 @@ def createOutline(ex_amount): base = base.polarLine(d, 180-slant_degree).close().extrude(ex_amount) # Fillets - outer_fillets=2.5 base = base.edges('|Z and >Y').fillet(outer_fillets) base = base.edges('|Z and >Z[0]').workplane().center(0, -offset-loop_thickness).polarLine(stepper_motor_size, slant_degree).polarLine(-2*stepper_motor_size, 90+slant_degree).hLine(-2*stepper_motor_size).close().cutThruAll() -copy = copy.faces('+Z').workplane().center(0, -offset-loop_thickness).polarLine(2*stepper_motor_size,-slant_degree).vLine(stepper_motor_size).hLine(-2*stepper_motor_size).close().cutBlind(-lid_thicknesss) +copy = base.faces('>>Z[0]').workplane().center(0, -offset-loop_width)\ + .polarLine(stepper_motor_size, slant_degree)\ + .polarLine(-2*stepper_motor_size, 90+slant_degree)\ + .hLine(-2*stepper_motor_size).close().cutThruAll() +copy = copy.faces('+Z').workplane().center(0, -offset-loop_width)\ + .polarLine(2*stepper_motor_size,-slant_degree)\ + .vLine(stepper_motor_size)\ + .hLine(-2*stepper_motor_size)\ + .close().cutBlind(-lid_thicknesss) base = base.faces('+Z').shell(-wall_width) base = base.add(copy) -base = base.faces('<>Z[0]').workplane().center(stepper_center[0], -stepper_center[1]).circle(22.5/2).pushPoints([(stepper_hole_radius*math.cos(math.radians(45+slant_degree)),stepper_hole_radius*math.sin(math.radians(45+slant_degree))), (stepper_hole_radius*math.cos(math.radians(135+slant_degree)),stepper_hole_radius*math.sin(math.radians(135+slant_degree))),(stepper_hole_radius*math.cos(math.radians(225+slant_degree)),stepper_hole_radius*math.sin(math.radians(225+slant_degree))),(stepper_hole_radius*math.cos(math.radians(315+slant_degree)),stepper_hole_radius*math.sin(math.radians(315+slant_degree)))]).circle(3/2).cutBlind(-wall_width) +stepper_center = cq.Workplane('XY').center(0, -offset-loop_width)\ + .lineTo(0, offset)\ + .polarLine(stepper_motor_size/2, 90-slant_degree)\ + .polarLine(stepper_motor_size/2, -slant_degree)\ + .val().endPoint().toTuple() +base = base.faces('>>Z[0]').workplane().center(stepper_center[0], -stepper_center[1])\ + .circle(22.5/2)\ + .pushPoints([(stepper_hole_radius*math.cos(math.radians(45+slant_degree)),\ + stepper_hole_radius*math.sin(math.radians(45+slant_degree))),\ + (stepper_hole_radius*math.cos(math.radians(135+slant_degree)),\ + stepper_hole_radius*math.sin(math.radians(135+slant_degree))),\ + (stepper_hole_radius*math.cos(math.radians(225+slant_degree)),\ + stepper_hole_radius*math.sin(math.radians(225+slant_degree))),\ + (stepper_hole_radius*math.cos(math.radians(315+slant_degree)),\ + stepper_hole_radius*math.sin(math.radians(315+slant_degree)))])\ + .circle(3/2).cutBlind(-wall_width) lid = lid.cut(base) -copy = lid.faces('>>Z[0]').workplane().center(0, -offset-loop_thickness).polarLine(stepper_motor_size*2, slant_degree).polarLine(-2*stepper_motor_size, 90+slant_degree).hLine(-3*stepper_motor_size).close().cutThruAll() +copy = lid.faces('>>Z[0]').workplane().center(0, -offset-loop_width)\ + .polarLine(stepper_motor_size*2, slant_degree)\ + .polarLine(-2*stepper_motor_size, 90+slant_degree)\ + .hLine(-3*stepper_motor_size).close().cutThruAll() lid = lid.faces('>Z[0]').shell(.000001-wall_width) lid = lid.add(copy) -lid = lid.faces('>Z[1]').workplane().center(stepper_center[0], -stepper_center[1]-offset-loop_thickness).circle(5).extrude(lid_thicknesss-wall_width) +lid = lid.faces('>Z[1]').workplane().center(stepper_center[0], -stepper_center[1]-offset-loop_width)\ + .circle(5).extrude(lid_thicknesss-wall_width) lid = lid.faces('>Z[0]').workplane().circle(5/2).cutThruAll() base = base.faces('Z[0]').workplane().center(21,-20.15).hLine(t, forConstruction=True).threePointArc((-t,t/2),(0,-t)).polarLine(t, slant_degree).close().extrude(-lid_thicknesss+wall_width) +lid = lid.faces('>Z[0]').workplane().center(21,-20.15)\ + .hLine(t, forConstruction=True)\ + .threePointArc((-t,t/2),(0,-t))\ + .polarLine(t, slant_degree)\ + .close().extrude(-lid_thicknesss+wall_width) lid = lid.faces('>Z[0]').workplane().circle(large_gear_diameter/2-gear_offset).extrude(gear_thinkness/2) lid = lid.faces('>Z[0]').workplane().circle(2).cutThruAll() lid = lid.faces('