Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
 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)
Example #6
0
    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)
Example #7
0
 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)
Example #8
0
 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)
Example #9
0
    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)
Example #10
0
    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)
Example #11
0
 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)
Example #12
0
    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)
Example #13
0
    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)
Example #14
0
 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)
Example #15
0
    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)
Example #16
0
    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)
Example #17
0
    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)
Example #18
0
    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)
Example #19
0
    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)
Example #20
0
    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)
Example #21
0
    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)
Example #22
0
    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)
Example #23
0
    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)
Example #24
0
    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])
Example #25
0
 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)