def __make_holes(self): hole_r = self.parameters['hole_r'] hole_l = self.parameters['hole_l'] # Pillowblock mount holes hole_x = self.pillowblock_parameters['hole_z'] hole_y = self.pillowblock_parameters['hole_x'] base_hole = fso.Cylinder(r=hole_r, l=hole_l) holes = po.LinearArray(base_hole, hole_x, hole_y, [0]) self.add_obj(holes) # T-slotted bracket mount holes hole_x = [-3.5, -2.5, 2.5, 3.5] hole_y = [-1.5, -0.5, 0.5, 1.5] holes = po.LinearArray(base_hole, hole_x, hole_y, [0]) self.add_obj(holes) # Motorized sled mount holes hole_x = [-2.125, 2.125] hole_y = [-2.3125, 2.3125] holes = po.LinearArray(base_hole, hole_x, hole_y, [0]) self.add_obj(holes) # Slots for motorized sled mount holes hole = fso.Cylinder(r=0.125, l=self.parameters['z'] * 2) holes = po.LinearArray(hole, [0], [-0.5, 0.5], [0]) slot = fso.Box(x=0.25, y=1, z=self.parameters['z'] * 2) slot = holes | slot slots = po.LinearArray(slot, [-2.125, 2.125], [0], [0]) self.add_obj(slots)
def __make_pillowblocks_and_plates(self): pb = pillowblock.PillowBlock() self.pb_parameters = pb.get_parameters() pmp = pillowblock_mount_plate.PillowblockMountPlate() self.pmp_parameters = pillowblock_mount_plate.get_parameters() self.pb_tx = self.parameters['x']/2 - self.pmp_parameters['y']/2 pb_ax = [-self.pb_tx,self.pb_tx] self.wc_parameters = water_channel.get_parameters() pb_ty = self.wc_parameters['rail_rail_distance']/2 pb_ay = [-pb_ty,pb_ty] pb_az = [0] self.pmp_tz = self.pb_parameters['y']/2 + self.pmp_parameters['z']/2 pmp.translate([0,0,self.pmp_tz]) pb_and_pmp = pb | pmp pbs_and_pmps = po.LinearArray(pb_and_pmp,x=pb_ax,y=pb_ay,z=pb_az) self.add_obj(pbs_and_pmps) # Add sled-sled connection brackets and beams bracket = t_slotted.LBracket(x=1,y=2,z=1,extrusion_axis=[0,1,0]) bracket2 = po.LinearArray(bracket,x=0,y=[-1,1],z=0) beam = t_slotted.Extrusion(x=1,y=5,z=1) beam.translate([-0.5,0,0.5]) b2b = bracket2 | beam b2bs_ax = [-self.pb_tx - 4] b2bs_ay = [-pb_ty, pb_ty] b2bs_az = [self.pmp_tz + self.pmp_parameters['z']/2] b2bs = po.LinearArray(b2b,b2bs_ax,b2bs_ay,b2bs_az) b2bs.set_color(self.parameters['color'],recursive=True) self.add_obj(b2bs)
def __make_y_beams(self): x = self.parameters['beam_width'] y = self.parameters['y'] z = self.parameters['z'] y_beam = t_slotted.Extrusion(x=x, y=y, z=z) y_beam_tx = self.parameters['x'] / 2 - self.parameters['beam_width'] / 2 y_beam_ty = 0 y_beam_tz = self.x_beam_tz bn = t_slotted.LBracket(x=-2, y=2, z=2, extrusion_axis=[0, 1, 0]) bn_tx = -self.parameters['beam_width'] / 2 b_ty = self.wc_parameters['rail_rail_distance'] / 2 - 1 b_tz = -self.parameters['z'] / 2 bsn = po.LinearArray(bn, x=bn_tx, y=[-b_ty, b_ty], z=b_tz) bp = t_slotted.LBracket(x=2, y=2, z=2, extrusion_axis=[0, 1, 0]) bp_tx = self.parameters['beam_width'] / 2 bsp = po.LinearArray(bp, x=bp_tx, y=[-b_ty, b_ty], z=b_tz) y_beam |= [bsn, bsp] y_beams = po.LinearArray(y_beam, x=[-y_beam_tx, y_beam_tx], y=y_beam_ty, z=y_beam_tz) y_beams.set_color(self.parameters['color'], recursive=True) self.add_obj(y_beams)
def __make_holes(self): hole_r = self.parameters['hole_r'] hole_l = self.parameters['hole_l'] base_hole = fso.Cylinder(r=hole_r,l=hole_l) # Laser_sensor_long_range mount holes hole_x = self.lssr_parameters['hole_x'] hole_y = self.lssr_parameters['hole_y'] holes = po.LinearArray(base_hole,[-hole_x,hole_x],[-hole_y,hole_y],0) self.add_obj(holes) # T-slotted bracket mount holes hole_x = self.parameters['hole_x_t-slotted'] hole_y = self.parameters['hole_y_t-slotted'] holes = po.LinearArray(base_hole,[-hole_x,hole_x],[-hole_y,hole_y],0) self.add_obj(holes)
def __make_brackets(self): b = t_slotted.LBracket(x=-1, y=2, z=1, extrusion_axis=[0, 1, 0]) b_x = self.parameters['x'] / 2 + 2 b_y = self.wc_parameters['rail_rail_distance'] / 2 + 1 b_z = self.x_beam_tz - self.parameters['z'] / 2 bs = po.LinearArray(b, x=b_x, y=[-b_y, b_y], z=b_z) bs.set_color(self.parameters['color'], recursive=True) self.add_obj(bs)
def __make_holes(self): # Add airbearing mount holes hole_diameter = self.parameters['hole_diameter'] hole = fso.Cylinder(r=hole_diameter / 2, l=self.parameters['z'] * 2) h_x = self.ab_parameters['carriage_screw_dL'] / 2 h_y = self.ab_parameters['carriage_screw_dW'] / 2 holes = po.LinearArray(hole, x=[-h_x, h_x], y=[-h_y, h_y], z=0) self.add_obj(holes) # Add y_beam mount counterbore holes cb_diameter = 7 / 16 cb_depth = 0.25 cb = fso.Cylinder(r=cb_diameter / 2, l=self.parameters['z']) cb.translate([0, 0, (-self.parameters['z'] + cb_depth)]) cbh = cb | hole cbhs = po.LinearArray(cbh, x=[-2.5, 0, 2.5], y=[-1.5, 1.5], z=0) self.add_obj(cbhs)
def __make_holes(self): hole_r = self.parameters['hole_r'] hole_l = self.parameters['hole_l'] hole = fso.Cylinder(r=hole_r, l=hole_l) hole_x = self.parameters['x'] / 2 - 0.5 hole_ay = [-1, 0, 1] hole_z = 0 holes = po.LinearArray(hole, x=[-hole_x, hole_x], y=hole_ay, z=hole_z) self.add_obj(holes)
def __make_slider_mount_plates(self): smp = slider_mount_plate.SliderMountPlate() self.smp_parameters = smp.get_parameters() smp_tx = self.slider_holes_tx smp_ty = 0 smp_tz = -(self.ab_parameters['slide_height'] + self.smp_parameters['z'])/2 smps = po.LinearArray(smp,x=[-smp_tx,smp_tx],y=smp_ty,z=smp_tz) smps.set_color(self.parameters['color'],recursive=True) self.add_obj(smps)
def __make_holes(self): hole_l = self.parameters['hole_l'] # Loadcell mount holes hole_r_loadcell = self.parameters['hole_r_loadcell'] base_hole = fso.Cylinder(r=hole_r_loadcell, l=hole_l) hole_x = self.loadcell_parameters['hole_z'] holes = po.LinearArray(base_hole, hole_x, 0, 0) self.add_obj(holes) # T-slotted bracket mount holes hole_r_big = self.parameters['hole_r_big'] base_hole = fso.Cylinder(r=hole_r_big, l=hole_l) hole_x = self.parameters['hole_x_big'] holes = po.LinearArray(base_hole, [-hole_x, hole_x], 0, 0) self.add_obj(holes)
def __make_mounting_holes(self): mounting_hole_size = self.fly_bowl_parameters['mounting_hole_size'] hole_depth = self.parameters['z']*2 mounting_hole = screw_holes.ClearanceHole(size=mounting_hole_size,depth=hole_depth,fit='free') z_offset = self.parameters['z']/2 mounting_hole.translate([0,0,z_offset]) mounting_hole_x = self.fly_bowl_parameters['mounting_hole_x'] mounting_hole_y = self.fly_bowl_parameters['mounting_hole_y'] mounting_holes = po.LinearArray(mounting_hole,x=mounting_hole_x,y=mounting_hole_y) self.add_obj(mounting_holes)
def __make_holes(self): hole_r = self.parameters['hole_r'] hole_l = self.parameters['hole_l'] hole = fso.Cylinder(r=hole_r, l=hole_l) hole_x = self.parameters['hole_x'] hole_y = self.parameters['hole_y'] hole_z = 0 holes = po.LinearArray(hole, x=[-hole_x, hole_x], y=[-hole_y, hole_y], z=hole_z) self.add_obj(holes)
def __make_x_beams(self): x = self.slider_holes_tx*2 - 1 y = 1 z = 1 x_beam = t_slotted.Extrusion(x=x,y=y,z=z) x_beam.set_color(self.parameters['color']) x_beam_tx = 0 x_beam_ty = self.ab_parameters['slide_width']/2 - 0.5 self.x_beam_tz = self.y_beams_tz - self.parameters['y_beam_separation'] x_beams = po.LinearArray(x_beam,x=x_beam_tx,y=[-x_beam_ty,x_beam_ty],z=[self.x_beam_tz,(self.x_beam_tz + self.parameters['x_beam_separation'])]) self.add_obj(x_beams)
def __make_z_beams(self): x = 1 y = 1 z = self.parameters['y_beam_separation'] - 1 z_beam = t_slotted.Extrusion(x=x,y=y,z=z) z_beam.set_color(self.parameters['color']) z_beam_tx = self.slider_holes_tx z_beam_ty = self.ab_parameters['slide_width']/2 - 0.5 self.z_beam_tz = self.y_beams_tz - z/2 - 0.5 z_beams = po.LinearArray(z_beam,x=[-z_beam_tx,z_beam_tx],y=[-z_beam_ty,z_beam_ty],z=self.z_beam_tz) self.add_obj(z_beams)
def __make_holes(self): hole_r = self.parameters['hole_r'] hole_l = self.parameters['hole_l'] hole = fso.Cylinder(r=hole_r, l=hole_l * 2) hole_x = self.parameters['hole_x'] hole_y = self.parameters['hole_y'] hole_z = 0 holes = po.LinearArray(hole, x=[-hole_x, hole_x], y=[-hole_y, hole_y], z=hole_z) holes.translate([0, 0, -self.parameters['z'] / 2]) holes.set_color(self.parameters['color'], recursive=True) self.add_obj(holes)
def __make_vertical_y_plates(self): x = self.parameters['plate_thickness'] y = self.parameters['y'] z = self.parameters['z'] - self.parameters['plate_thickness'] vyp = fso.Box(x=x,y=y,z=z) self.vyp_tx = self.parameters['x']/2 - self.parameters['plate_thickness']/2 vyp_ty = 0 self.vyp_tz = self.ph_tz + self.parameters['plate_thickness']/2 + z/2 vyps = po.LinearArray(vyp,x=[-self.vyp_tx,self.vyp_tx],y=vyp_ty,z=self.vyp_tz) vyps.translate([0,self.ph_ty,0]) vyps.set_color(self.parameters['color'],recursive=True) self.add_obj(vyps)
def __make_holes(self): hole_r = self.profile_data['lbracket'][self.bracket_type]['hole_r'] hole_l = self.profile_data['lbracket'][self.bracket_type]['hole_l'] hole_x = self.profile_data['lbracket'][self.bracket_type]['hole_x'] hole_y = self.profile_data['lbracket'][self.bracket_type]['hole_y'] hole_z = self.profile_data['lbracket'][self.bracket_type]['hole_z'] # hole_list = [] base_hole = fso.Cylinder(r=hole_r, l=hole_l) base_x_hole = base_hole.copy() base_x_hole.rotate(angle=math.pi / 2, axis=[1, 0, 0]) x_holes = po.LinearArray(base_x_hole, x=hole_x, y=[0], z=hole_z) self.add_obj(x_holes) # for z in hole_z: # for x in hole_x: # hole = base_x_hole.copy() # hole.translate([x,0,z]) # hole_list.append(hole) base_y_hole = base_hole.copy() base_y_hole.rotate(angle=math.pi / 2, axis=[0, 1, 0]) y_holes = po.LinearArray(base_y_hole, x=[0], y=hole_y, z=hole_z) self.add_obj(y_holes)
def __make_vertical_x_plates(self): x = self.parameters['x'] y = self.parameters['plate_thickness'] z = self.parameters['z'] - self.parameters['plate_thickness'] vxp = fso.Box(x=x,y=y,z=z) vxp_tx = 0 vxp_ty = self.parameters['y']/2 - self.parameters['plate_thickness']/2 vxp_tz = self.ph_tz + self.parameters['plate_thickness']/2 + z/2 vxps = po.LinearArray(vxp,x=vxp_tx,y=[-vxp_ty,vxp_ty],z=vxp_tz) vxps.translate([0,self.ph_ty,0]) vxps.set_color(self.parameters['color'],recursive=True) self.add_obj(vxps)
def __make_y_beams(self): x = 1 y = self.ab_parameters['slide_width'] z = 1 y_beam = t_slotted.Extrusion(x=x,y=y,z=z) y_beam_tx = self.slider_holes_tx y_beam_ty = 0 y_beam_separation = -self.parameters['y_beam_separation'] y_beams = po.LinearArray(y_beam,x=[-y_beam_tx,y_beam_tx],y=y_beam_ty,z=[0,y_beam_separation]) self.y_beams_tz = -(self.ab_parameters['slide_height'] + z)/2 - self.smp_parameters['z'] y_beams.translate([0,0,self.y_beams_tz]) y_beams.set_color(self.parameters['color'],recursive=True) self.add_obj(y_beams)
def __make_holes(self): hole_l = self.parameters['hole_l'] # Laser_sensor_short_range mount holes hole_r_lssr = self.parameters['hole_r_lssr'] base_hole = fso.Cylinder(r=hole_r_lssr, l=hole_l) hole_x = self.lssr_parameters['hole_ty'] hole_y = self.lssr_parameters['hole_tx'] holes = po.LinearArray(base_hole, [-hole_x, hole_x], [-hole_y, hole_y], 0) holes.translate( [self.parameters['lssr_tx'], self.parameters['lssr_ty'], 0]) self.add_obj(holes) # T-slotted bracket mount holes hole_r_big = self.parameters['hole_r_big'] base_hole = fso.Cylinder(r=hole_r_big, l=hole_l) hole_ax = [-0.5, 0.5] hole_ay = [-1.5, 0, 1.5] holes = po.LinearArray(base_hole, hole_ax, hole_ay, 0) holes.translate([self.parameters['mount_hole_tx'], 0, 0]) self.add_obj(holes)
def __make_rails(self): rail_radius = self.parameters['rail_diameter'] / 2 rail_rail_distance = self.parameters['rail_rail_distance'] rail_length = self.parameters['rail_length'] rail_color = self.parameters['rail_color'] rail = fso.Cylinder(r=rail_radius, l=rail_length) rail.rotate(angle=math.pi / 2, axis=[0, 1, 0]) rails = po.LinearArray( rail, x=[0], y=[-rail_rail_distance / 2, rail_rail_distance / 2], z=[0]) rails.set_color(rail_color, recursive=True) self.add_obj(rails)
def __make_cushions(self): c = cushion.Cushion() # x = 1 + self.parameters['cushion_thickness']*2 # y = self.ab_parameters['slide_width'] + self.parameters['cushion_thickness']*2 # z = 0.25 # cushion = fso.Box(x=x,y=y,z=z) # cutout_x = 3/8 # cutout_y = self.ab_parameters['slide_width'] + 0.01 # cutout_z = 0.5 # cutout = fso.Box(x=cutout_x,y=cutout_y,z=cutout_z) # cushion -= cutout cushion_tx = self.slider_holes_tx cushion_ty = 0 cushion_tz = -(self.ab_parameters['slide_height'] + 1)/2 - self.smp_parameters['z'] cushions = po.LinearArray(c,x=[-cushion_tx,cushion_tx],y=cushion_ty,z=cushion_tz) self.add_obj(cushions)
def __make_pillowblocks_and_plates(self): pb = pillowblock.PillowBlock() self.pb_parameters = pb.get_parameters() pmp = pillowblock_mount_plate.PillowblockMountPlate() self.pmp_parameters = pillowblock_mount_plate.get_parameters() self.pb_tx = self.parameters['x'] / 2 - self.parameters[ 'beam_width'] / 2 pb_ax = [-self.pb_tx, self.pb_tx] self.wc_parameters = water_channel.get_parameters() pb_ty = self.wc_parameters['rail_rail_distance'] / 2 pb_ay = [-pb_ty, pb_ty] pb_az = [0] self.pmp_tz = self.pb_parameters['y'] / 2 + self.pmp_parameters['z'] / 2 pmp.translate([0, 0, self.pmp_tz]) pb_and_pmp = pb | pmp pbs_and_pmps = po.LinearArray(pb_and_pmp, x=pb_ax, y=pb_ay, z=pb_az) self.add_obj(pbs_and_pmps)
def __make_brackets(self): # Front and back sets bracket_tx = 0 bracket_ty = self.ab_parameters['slide_width']/2 - 1 bracket_tz = (self.parameters['y_beam_separation'] - 1)/2 bracket1 = t_slotted.LBracket(x=1,y=1,z=1,extrusion_axis=[1,0,0]) bracket1.translate([bracket_tx,-bracket_ty,-bracket_tz]) bracket2 = t_slotted.LBracket(x=1,y=-1,z=1,extrusion_axis=[1,0,0]) bracket2.translate([bracket_tx,bracket_ty,-bracket_tz]) bracket3 = t_slotted.LBracket(x=1,y=-1,z=-1,extrusion_axis=[1,0,0]) bracket3.translate([bracket_tx,bracket_ty,bracket_tz]) bracket4 = t_slotted.LBracket(x=1,y=1,z=-1,extrusion_axis=[1,0,0]) bracket4.translate([bracket_tx,-bracket_ty,bracket_tz]) brackets = bracket1 | [bracket2,bracket3,bracket4] brackets_tx = self.slider_holes_tx brackets_ty = 0 brackets_tz = self.z_beam_tz brackets = po.LinearArray(brackets,x=[-brackets_tx,brackets_tx],y=brackets_ty,z=brackets_tz) brackets.set_color(self.parameters['color'],recursive=True) self.add_obj(brackets) # Left and right sets bracket_tx = (self.slider_holes_tx*2 - 1)/2 bracket_ty = 0 bracket_tz = (self.parameters['y_beam_separation'] - 2)/2 bracket1 = t_slotted.LBracket(x=1,y=1,z=1,extrusion_axis=[0,1,0]) bracket1.translate([-bracket_tx,bracket_ty,-bracket_tz]) bracket2 = t_slotted.LBracket(x=1,y=1,z=-1,extrusion_axis=[0,1,0]) bracket2.translate([-bracket_tx,bracket_ty,bracket_tz]) bracket3 = t_slotted.LBracket(x=-1,y=1,z=-1,extrusion_axis=[0,1,0]) bracket3.translate([bracket_tx,bracket_ty,bracket_tz]) bracket4 = t_slotted.LBracket(x=-1,y=1,z=1,extrusion_axis=[0,1,0]) bracket4.translate([bracket_tx,bracket_ty,-bracket_tz]) brackets = bracket1 | [bracket2,bracket3,bracket4] brackets_tx = 0 brackets_ty = self.ab_parameters['slide_width']/2 - 0.5 brackets_tz = self.z_beam_tz - 0.5 brackets = po.LinearArray(brackets,x=brackets_tx,y=[-brackets_ty,brackets_ty],z=brackets_tz) brackets.set_color(self.parameters['color'],recursive=True) self.add_obj(brackets) # Bottom set bracket_tx = (self.slider_holes_tx*2 - 1)/2 bracket_ty = self.ab_parameters['slide_width']/2 - 1 bracket_tz = 0 bracket1 = t_slotted.LBracket(x=1,y=1,z=1,extrusion_axis=[0,0,1]) bracket1.translate([-bracket_tx,-bracket_ty,bracket_tz]) bracket2 = t_slotted.LBracket(x=1,y=-1,z=1,extrusion_axis=[0,0,1]) bracket2.translate([-bracket_tx,bracket_ty,bracket_tz]) bracket3 = t_slotted.LBracket(x=-1,y=-1,z=1,extrusion_axis=[0,0,1]) bracket3.translate([bracket_tx,bracket_ty,bracket_tz]) bracket4 = t_slotted.LBracket(x=-1,y=1,z=1,extrusion_axis=[0,0,1]) bracket4.translate([bracket_tx,-bracket_ty,bracket_tz]) brackets = bracket1 | [bracket2,bracket3,bracket4] brackets_tx = 0 brackets_ty = 0 brackets_tz = self.x_beam_tz brackets.translate([brackets_tx,brackets_ty,brackets_tz]) brackets.set_color(self.parameters['color'],recursive=True) self.add_obj(brackets) # Submersible mount beam brackets bracket_tx = 0.5 bracket_ty = 0 bracket_tz = (self.parameters['y_beam_separation'] - 2)/2 bracket1 = t_slotted.LBracket(x=1,y=1,z=1,extrusion_axis=[0,1,0]) bracket1.translate([bracket_tx,bracket_ty,-bracket_tz]) bracket2 = t_slotted.LBracket(x=1,y=1,z=-1,extrusion_axis=[0,1,0]) bracket2.translate([bracket_tx,bracket_ty,bracket_tz]) bracket3 = t_slotted.LBracket(x=-1,y=1,z=-1,extrusion_axis=[0,1,0]) bracket3.translate([-bracket_tx,bracket_ty,bracket_tz]) bracket4 = t_slotted.LBracket(x=-1,y=1,z=1,extrusion_axis=[0,1,0]) bracket4.translate([-bracket_tx,bracket_ty,-bracket_tz]) brackets = bracket1 | [bracket2,bracket3,bracket4] brackets_tx = 0 brackets_ty = self.ab_parameters['slide_width']/2 - 0.5 brackets_tz = self.z_beam_tz - 0.5 brackets = po.LinearArray(brackets,x=brackets_tx,y=[-brackets_ty,brackets_ty],z=brackets_tz) brackets.translate([self.smb_tx,0,0]) brackets.set_color(self.parameters['color'],recursive=True) self.add_obj(brackets)
def __make_force_sensor_mount_beams(self): self.lcmp_parameters = loadcell_mount_plate.get_parameters() fsmb_x = 2 fsmb_y = 1 fsmb_z = self.parameters['sensor_mount_beam_length'] fsmb = t_slotted.Extrusion(x=fsmb_x, y=fsmb_y, z=fsmb_z) fsmb_tx = self.aba.lcmpu_tx - self.lcmp_parameters[ 'z'] / 2 - fsmb_x / 2 - 1 fsmb_ty = self.parameters['beam_width'] / 2 + fsmb_y / 2 fsmb_tz = self.x_beam_tz - fsmb_z / 2 + self.parameters['z'] / 2 fsmbs = po.LinearArray(fsmb, x=fsmb_tx, y=[-fsmb_ty, fsmb_ty], z=fsmb_tz) fsmbs.set_color(self.parameters['color'], recursive=True) self.add_obj(fsmbs) # Add brackets b_x = 1 b_y = 1 b_z = 2 b_tx = fsmb_x / 2 b_ty = self.parameters['beam_width'] / 2 b_tz = 0 b1 = t_slotted.LBracket(x=b_x, y=b_y, z=b_z, extrusion_axis=[0, 0, 1]) b1.translate([b_tx, b_ty, b_tz]) b2 = t_slotted.LBracket(x=b_x, y=-b_y, z=b_z, extrusion_axis=[0, 0, 1]) b2.translate([b_tx, -b_ty, b_tz]) b3 = t_slotted.LBracket(x=-b_x, y=-b_y, z=b_z, extrusion_axis=[0, 0, 1]) b3.translate([-b_tx, -b_ty, b_tz]) b4 = t_slotted.LBracket(x=-b_x, y=b_y, z=b_z, extrusion_axis=[0, 0, 1]) b4.translate([-b_tx, b_ty, b_tz]) bs = b1 | [b2, b3, b4] bs.translate([fsmb_tx, 0, self.x_beam_tz]) bs.set_color(self.parameters['color'], recursive=True) self.add_obj(bs) # Add cross beam cb_x = 1 cb_y = fsmb_ty * 2 + fsmb_y cb_z = 1 cb = t_slotted.Extrusion(x=cb_x, y=cb_y, z=cb_z) cb_tx = fsmb_tx + fsmb_x / 2 + cb_x / 2 cb_ty = 0 # cb_tz = fsmb_tz - fsmb_z/2 + cb_z/2 cb_tz = self.aba.lcmpu_tz - 0.125 cb.translate([cb_tx, cb_ty, cb_tz]) cb.set_color(self.parameters['color']) self.add_obj(cb) # Add first set of cross beam brackets b = t_slotted.LBracket(x=1, y=1, z=1, extrusion_axis=[0, 1, 0]) b_tx = 0 b_ty = cb_y / 2 - 0.5 b_tz = 0 bs = po.LinearArray(b, x=b_tx, y=[-b_ty, b_ty], z=b_tz) bs_tx = cb_tx - 0.5 bs_ty = cb_ty bs_tz = cb_tz + 0.5 bs.translate([bs_tx, bs_ty, bs_tz]) bs.set_color(self.parameters['color'], recursive=True) self.add_obj(bs) # Add second set of cross beam brackets b_tx = bs_tx b_ty = b_ty - 0.5 b_tz = bs_tz - 0.5 b1 = t_slotted.LBracket(x=-1, y=-1, z=1, extrusion_axis=[0, 0, 1]) b1.translate([b_tx, b_ty, b_tz]) b1.set_color(self.parameters['color'], recursive=True) b2 = t_slotted.LBracket(x=-1, y=1, z=1, extrusion_axis=[0, 0, 1]) b2.translate([b_tx, -b_ty, b_tz]) b2.set_color(self.parameters['color'], recursive=True) self.add_obj([b1, b2])
def __make_holes(self): hole = fso.Cylinder(r=self.parameters['hole_diameter'] / 2, l=self.parameters['z'] * 2) hole_ty = self.ab_parameters['slide_screw_dW'] / 2 holes = po.LinearArray(hole, x=0, y=[-hole_ty, hole_ty], z=0) self.add_obj(holes)