more blub
This commit is contained in:
141
hvst.py
141
hvst.py
@@ -1,5 +1,8 @@
|
||||
from cadquery import *
|
||||
import math
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger()
|
||||
|
||||
tabletop_depth = 800 # currently, almost all parameters are derived from the table depth
|
||||
#tabletop_depth = 600
|
||||
@@ -8,11 +11,13 @@ alpha_max = 70
|
||||
|
||||
tabletop_adjuster_assembly_spacing = 100 # symmetric distancing assumed
|
||||
|
||||
# cube in adjuster assembly
|
||||
feet_adjuster_width = 60 # feet_adjuster is moving part inside adjuster assembly
|
||||
feet_adjuster_lenght = 60
|
||||
feet_adjuster_height = 60
|
||||
|
||||
adjuster_assembly_wall_thickness = 20 # might be different for front and back...
|
||||
adjuster_assembly_slider_width = 10
|
||||
adjuster_assembly_length = tabletop_depth - 2*tabletop_adjuster_assembly_spacing
|
||||
adjuster_assembly_width = feet_adjuster_width + 2*adjuster_assembly_wall_thickness
|
||||
adjuster_assembly_height = feet_adjuster_height + 2*adjuster_assembly_wall_thickness
|
||||
@@ -26,9 +31,11 @@ lower_h = ld * math.sqrt(2)*math.sin(math.radians(alpha_max))
|
||||
lower_feet_assambly_pivot_point_from_fixed_leg = ld * math.sqrt(2)*math.cos(math.radians(alpha_max))
|
||||
lower_feet_assambly_pivot_point_from_moving_end = ld - lower_feet_assambly_pivot_point_from_fixed_leg
|
||||
|
||||
logger.info(f"Lower h is: {lower_h} (between joins of leg only)")
|
||||
|
||||
lower_foot_width = 80
|
||||
lower_foot_height = 50
|
||||
lower_foot_length = lower_feet_bore_holes_distance + lower_foot_height
|
||||
lower_foot_length = 2*ld/math.sqrt(2)
|
||||
lower_feet_assembly_base_plate_height = 20
|
||||
lower_feet_assembly_side_wall_thickness = 25
|
||||
lower_feet_assembly_width = 100
|
||||
@@ -46,58 +53,102 @@ lower_feet_assembly_pin_diameter = 10
|
||||
|
||||
## parameter end!
|
||||
|
||||
def get_adjuster_assembly_old():
|
||||
left = Workplane("XZ").vLine(adjuster_assembly_height/2).hLine(adjuster_assembly_wall_thickness+adjuster_assembly_slider_width).vLine(-(adjuster_assembly_height-feet_adjuster_height)/2).hLine(-adjuster_assembly_slider_width).vLineTo(0).mirrorX().extrude(adjuster_assembly_length-2*adjuster_assembly_wall_thickness)
|
||||
right = left.mirror("YZ", basePointVector = (adjuster_assembly_width/2,0,0))
|
||||
left = left.union(right)
|
||||
return left
|
||||
|
||||
#return Workplane("XY").box(adjuster_assembly_wall_thickness,adjuster_assembly_length,adjuster_assembly_height).center(10,0).box(10,10,10)
|
||||
|
||||
|
||||
def get_adjuster_assembly_left():
|
||||
return Workplane("XZ").vLine(adjuster_assembly_height/2).hLine(adjuster_assembly_wall_thickness+adjuster_assembly_slider_width).vLine(-(adjuster_assembly_height-feet_adjuster_height)/2).hLine(-adjuster_assembly_slider_width).vLineTo(0).mirrorX().extrude(adjuster_assembly_length-2*adjuster_assembly_wall_thickness)
|
||||
|
||||
def get_adjuster_assembly_right():
|
||||
#left.mirror("YZ", basePointVector = (adjuster_assembly_width/2,0,0))
|
||||
return get_adjuster_assembly_left().mirror("YZ")
|
||||
|
||||
def get_adjuster_assembly_front_back_plate():
|
||||
return Workplane("XY").box(adjuster_assembly_width,adjuster_assembly_wall_thickness,adjuster_assembly_height).faces(">Y").workplane().hole(22)
|
||||
|
||||
def get_adjuster_assembly():
|
||||
a = Assembly(None)
|
||||
a.add(get_adjuster_assembly_left(), name="l")
|
||||
a.add(get_adjuster_assembly_right(), name="r", color=Color("red"))
|
||||
a.add(get_adjuster_assembly_front_back_plate(), name="f", color=Color("orange"))
|
||||
a.add(get_adjuster_assembly_front_back_plate(), name="b")
|
||||
a.constrain("l@faces@<Y", "b@faces@>Y", "Plane")
|
||||
a.constrain("l@faces@>Y", "f@faces@<Y", "Plane")
|
||||
a.constrain("r@faces@<Y", "b@faces@>Y", "Plane")
|
||||
a.constrain("r@faces@>Y", "f@faces@<Y", "Plane")
|
||||
|
||||
a.constrain("r@faces@>X", "f@faces@>X", "Axis")
|
||||
a.constrain("l@faces@<X", "f@faces@<X", "Axis")
|
||||
a.constrain("r@faces@>X", "b@faces@>X", "Axis")
|
||||
a.constrain("l@faces@<X", "b@faces@<X", "Axis")
|
||||
a.solve()
|
||||
|
||||
return a
|
||||
|
||||
show_object(get_adjuster_assembly())
|
||||
|
||||
|
||||
# actual parts:
|
||||
lower_foot_base_plate = Workplane("XY").box(lower_feet_assembly_width,lower_foot_length,lower_feet_assembly_base_plate_height)\
|
||||
.edges("|Z").fillet(lower_feet_assembly_side_wall_thickness/2)
|
||||
lower_foot_side_wall_left = Workplane("YZ").box(lower_foot_length,lower_feet_assembly_side_wall_height,lower_feet_assembly_side_wall_thickness)\
|
||||
.faces("|Y").edges(">Z").fillet(lower_feet_assembly_side_wall_radius)\
|
||||
.faces("-X").edges(">Z").fillet(lower_feet_assembly_side_wall_thickness/2)\
|
||||
.faces("+X").workplane()\
|
||||
.center(lower_foot_length/2-lower_feet_assembly_side_wall_bearing_hole_distance_from_outer,0).hole(2*lower_feet_assembly_bearing_hole_radius,lower_feet_assembly_bearing_hole_depth)\
|
||||
def get_lower_foot_base_plate():
|
||||
return Workplane("XY").box(lower_feet_assembly_width,lower_feet_assembly_length,lower_feet_assembly_base_plate_height)\
|
||||
.edges("|Z").fillet(lower_feet_assembly_side_wall_thickness/2)
|
||||
|
||||
lower_foot_bearing_pin_slide = Workplane("YZ",origin=((lower_feet_assembly_side_wall_thickness-lower_feet_assembly_bearing_hole_depth)/2,\
|
||||
-(lower_feet_bore_holes_distance-lower_feet_assambly_pivot_point_from_moving_end)/2,\
|
||||
0))\
|
||||
.box(lower_feet_assambly_pivot_point_from_moving_end,lower_feet_assembly_pin_diameter,lower_feet_assembly_bearing_hole_depth)
|
||||
def get_lower_foot_side_wall_left():
|
||||
lower_foot_side_wall_left = Workplane("YZ").box(lower_feet_assembly_length,lower_feet_assembly_side_wall_height,lower_feet_assembly_side_wall_thickness)\
|
||||
.faces("|Y").edges(">Z").fillet(lower_feet_assembly_side_wall_radius)\
|
||||
.faces("-X").edges(">Z").fillet(lower_feet_assembly_side_wall_thickness/2)\
|
||||
.faces("+X").workplane()\
|
||||
.center(lower_feet_assembly_length/2-lower_feet_assembly_side_wall_bearing_hole_distance_from_outer,0).hole(2*lower_feet_assembly_bearing_hole_radius,lower_feet_assembly_bearing_hole_depth)\
|
||||
|
||||
lower_foot_bearing_pin_slide = lower_foot_bearing_pin_slide\
|
||||
.union(Workplane("YZ",origin=(lower_feet_assembly_side_wall_thickness/2-lower_feet_assembly_bearing_hole_depth,
|
||||
-(lower_feet_bore_holes_distance/2-lower_feet_assambly_pivot_point_from_moving_end),0.00001))\
|
||||
.circle(lower_feet_assembly_pin_diameter/2).extrude(lower_feet_assembly_bearing_hole_depth))\
|
||||
.union(Workplane("YZ",origin=(lower_feet_assembly_side_wall_thickness/2-lower_feet_assembly_bearing_hole_depth,
|
||||
-(lower_feet_bore_holes_distance/2),0))\
|
||||
.circle(lower_feet_assembly_pin_diameter/2).extrude(lower_feet_assembly_bearing_hole_depth))
|
||||
lower_foot_bearing_pin_slide = Workplane("YZ",origin=((lower_feet_assembly_side_wall_thickness-lower_feet_assembly_bearing_hole_depth)/2,\
|
||||
-(lower_feet_bore_holes_distance-lower_feet_assambly_pivot_point_from_moving_end)/2,\
|
||||
0))\
|
||||
.box(lower_feet_assambly_pivot_point_from_moving_end,lower_feet_assembly_pin_diameter,lower_feet_assembly_bearing_hole_depth)
|
||||
|
||||
lower_foot_bearing_pin_slide = lower_foot_bearing_pin_slide\
|
||||
.union(Workplane("YZ",origin=(lower_feet_assembly_side_wall_thickness/2-lower_feet_assembly_bearing_hole_depth,
|
||||
-(lower_feet_bore_holes_distance/2-lower_feet_assambly_pivot_point_from_moving_end),0.00001))\
|
||||
.circle(lower_feet_assembly_pin_diameter/2).extrude(lower_feet_assembly_bearing_hole_depth))\
|
||||
.union(Workplane("YZ",origin=(lower_feet_assembly_side_wall_thickness/2-lower_feet_assembly_bearing_hole_depth,
|
||||
-(lower_feet_bore_holes_distance/2),0))\
|
||||
.circle(lower_feet_assembly_pin_diameter/2).extrude(lower_feet_assembly_bearing_hole_depth))
|
||||
|
||||
lower_foot_side_wall_left = lower_foot_side_wall_left.cut(lower_foot_bearing_pin_slide)
|
||||
return lower_foot_side_wall_left
|
||||
|
||||
|
||||
def get_lower_foot_side_wall_right():
|
||||
return get_lower_foot_side_wall_left().mirror(mirrorPlane="YZ")
|
||||
|
||||
def get_lower_foot_front_wall():
|
||||
return Workplane("XY").box(lower_feet_assembly_width-2*lower_feet_assembly_side_wall_thickness,lower_feet_assembly_side_wall_radius,lower_feet_assembly_side_wall_radius)\
|
||||
.faces(">X").vertices(">YZ").workplane(centerOption="CenterOfMass")\
|
||||
.circle(lower_feet_assembly_side_wall_radius).cutThruAll()
|
||||
|
||||
lower_foot_side_wall_left = lower_foot_side_wall_left.cut(lower_foot_bearing_pin_slide)
|
||||
#show_object(lower_foot_side_wall_left)
|
||||
#show_object(lower_foot_bearing_pin_slide)
|
||||
#bearing_pin_slot = Workplane("YZ").center(200,0).box(lower_feet_assambly_pivot_point_from_moving_end,lower_feet_assembly_pin_diameter,lower_feet_assembly_bearing_hole_depth)\
|
||||
# .workplane(offset=-lower_feet_assembly_bearing_hole_depth/2)\
|
||||
# .center(-lower_feet_assambly_pivot_point_from_moving_end/2,0).circle(lower_feet_assembly_pin_diameter/2,0).extrude(lower_feet_assembly_bearing_hole_depth)\
|
||||
# .center(lower_feet_assambly_pivot_point_from_moving_end-0.00001,0).circle(lower_feet_assembly_pin_diameter/2,0).extrude(lower_feet_assembly_bearing_hole_depth)
|
||||
def get_lower_foot_end_wall():
|
||||
return get_lower_foot_front_wall().mirror(mirrorPlane="XZ")
|
||||
|
||||
#show_object(bearing_pin_slot)
|
||||
def get_lower_foot_assembly():
|
||||
return Assembly(get_lower_foot_base_plate(), name='base_plate')\
|
||||
.add(get_lower_foot_side_wall_left(), name='wall_left',color=Color(1,0,1,0.5), loc=Location(Vector(-(lower_feet_assembly_width-lower_feet_assembly_side_wall_thickness)/2,0,lower_feet_assembly_base_plate_height/2+lower_feet_assembly_side_wall_radius)))\
|
||||
.add(get_lower_foot_side_wall_right(), name='wall_right',color=Color(0.5,0,1,0.5), loc=Location(Vector((lower_feet_assembly_width-lower_feet_assembly_side_wall_thickness)/2,0,lower_feet_assembly_base_plate_height/2+lower_feet_assembly_side_wall_radius)))\
|
||||
.add(get_lower_foot_front_wall(), name='wall_front',color=Color(1,0,1,0.5), loc=Location(Vector(0,-(lower_feet_assembly_length-lower_feet_assembly_side_wall_radius)/2,lower_feet_assembly_base_plate_height)))\
|
||||
.add(get_lower_foot_end_wall(), name='wall_end',color=Color(1,0,1,0.5), loc=Location(Vector(0,(lower_feet_assembly_length-lower_feet_assembly_side_wall_radius)/2,lower_feet_assembly_base_plate_height)))
|
||||
#show_object(get_lower_foot_assembly())
|
||||
|
||||
#lower_foot_side_wall_left = lower_foot_side_wall_left.cut(bearing_pin_slot)
|
||||
#show_object(Workplane("YZ").box(lower_feet_assambly_pivot_point_from_moving_end,lower_feet_assembly_pin_diameter,lower_feet_assembly_bearing_hole_depth)\
|
||||
# .faces("|Y").edges("|X").fillet(4.8))
|
||||
test_a = Assembly()\
|
||||
.add(get_lower_foot_assembly(), name="left_foot_assembly", color=Color("red"), loc=Location(Vector(0,0,0)))\
|
||||
.add(get_lower_foot_assembly(), name="right_foot_assembly", color=Color("white"), loc=Location(Vector(500,0,0)))
|
||||
|
||||
|
||||
lower_foot_side_wall_right = lower_foot_side_wall_left.mirror(mirrorPlane="YZ")
|
||||
|
||||
#show_object(lower_foot_base_plate)
|
||||
#show_object(lower_foot_side_wall_left)
|
||||
#show_object(lower_foot_side_wall_right)
|
||||
#show_object(get_lower_foot_front_wall())
|
||||
#show_object(get_lower_foot_end_wall())
|
||||
#show_object(assy)
|
||||
|
||||
|
||||
lower_foot_assy_left = (
|
||||
Assembly(lower_foot_base_plate, name='base_plate',loc=Location(Vector(0,0,0)))
|
||||
.add(lower_foot_side_wall_left, name='wall_left',color=Color(1,0,1,0.5), loc=Location(Vector(-(lower_feet_assembly_width-lower_feet_assembly_side_wall_thickness)/2,0,lower_feet_assembly_base_plate_height/2+lower_feet_assembly_side_wall_radius)))
|
||||
.add(lower_foot_side_wall_right, name='wall_right',color=Color(0.5,0,1,0.5), loc=Location(Vector((lower_feet_assembly_width-lower_feet_assembly_side_wall_thickness)/2,0,lower_feet_assembly_base_plate_height/2+lower_feet_assembly_side_wall_radius)))
|
||||
|
||||
)
|
||||
|
||||
show_object(lower_foot_assy_left)
|
||||
|
||||
#show_object(assy)
|
||||
Reference in New Issue
Block a user