Esempio n. 1
0
def bracket_installed(face_length, hole_radius, mount_radius, mount_offset,
                      mass):
    face_moment = _plate_with_hole(face_length, hole_radius, mass / 2.0)
    r1 = (mount_radius**2 + (mount_offset + face_length / 2.0)**2)**0.5
    r2 = ((mount_radius + face_length / 2.0)**2 + mount_offset**2)**0.5
    m1 = mp.parallel_axis(face_moment, r1, mass / 2.0)
    m2 = mp.parallel_axis(face_moment, r2, mass / 2.0)
    return m1 + m2
Esempio n. 2
0
def m4_nut_orthogonal_axis_end(radius, offset):
    moment = ma.hex_nut_orthogonal_axis_end(mc.M4_NUT_OD / 2.0,
                                            mc.M4_NUT_OD / 2.0,
                                            mc.M4_NUT_ID / 2.0,
                                            mc.M4_NUT_LENGTH, mc.M4_NUT_MASS)
    return mp.parallel_axis(moment, (radius**2 + offset**2)**0.5,
                            mc.M4_NUT_MASS)
Esempio n. 3
0
def bearing_orthogonal_axis_center(radius):
    moment = mp.cylinder_hollow_orthogonal_axis_center(mc.BEARING_ID,
                                                       mc.BEARING_OD,
                                                       mc.BEARING_LENGTH,
                                                       mc.BEARING_MASS)
    return mp.parallel_axis(moment, radius + mc.BEARING_LENGTH / 2.0,
                            mc.BEARING_MASS)
Esempio n. 4
0
def bolt_installed_on_axis(min_radius, max_radius, head_radius, head_height,
                           plate_height, shaft_radius, shaft_length,
                           mount_radius, mount_offset, mass):
    density = bolt_density(min_radius, max_radius, head_radius, head_height,
                           plate_height, shaft_radius, shaft_length, mass)

    head_volume = bolt_head_volume(min_radius, max_radius, head_radius,
                                   head_height)
    head_mass = head_volume * density
    head_moment = bolt_head_on_axis(min_radius, max_radius, head_radius,
                                    head_mass)

    plate_volume = math.pi * head_radius**2 * plate_height
    plate_mass = plate_volume * density
    plate_moment = mp.cylinder_solid_on_axis(head_radius, plate_mass)

    shaft_volume = math.pi * shaft_radius**2 * shaft_length
    shaft_mass = shaft_volume * density
    shaft_moment = mp.cylinder_solid_on_axis(shaft_radius, shaft_mass)

    total_moment = head_moment + plate_moment + shaft_moment

    distance = (mount_radius**2 + mount_offset**2)**0.5

    return mp.parallel_axis(total_moment, distance, mass)
Esempio n. 5
0
def square_tube_on_axis(side, thickness, mass):
    radius = (side - thickness) / 2.0

    side_1 = side
    side_2 = side - 2.0 * thickness

    mass_1 = (mass / 2.0) * (side_1 / side_2)
    mass_2 = (mass / 2.0) * (side_2 / side_1)

    moment_1 = mp.cuboid_solid_face_centered(side_1, thickness, mass_1)
    moment_2 = mp.cuboid_solid_face_centered(side_2, thickness, mass_2)

    moment_1 = mp.parallel_axis(moment_1, radius, mass_1)
    moment_2 = mp.parallel_axis(moment_2, radius, mass_2)

    return 2.0 * (moment_1 + moment_2)
Esempio n. 6
0
def bolt_installed_orthogonal_axis_center(min_radius, max_radius, head_radius,
                                          head_height, plate_height,
                                          shaft_radius, shaft_length,
                                          mount_radius, mount_offset, mass,
                                          head_out):
    density = bolt_density(min_radius, max_radius, head_radius, head_height,
                           plate_height, shaft_radius, shaft_length, mass)

    head_volume = bolt_head_volume(min_radius, max_radius, head_radius,
                                   head_height)
    head_mass = head_volume * density
    head_moment = bolt_head_orthogonal_axis_center(min_radius, max_radius,
                                                   head_radius, head_height,
                                                   head_mass)
    head_distance = ((mount_radius + plate_height + head_height / 2.0)**2 +
                     mount_offset**2)**0.5
    if not head_out:
        head_distance = ((mount_radius - plate_height - head_height / 2.0)**2 +
                         mount_offset**2)**0.5
    head_moment = mp.parallel_axis(head_moment, head_distance, head_mass)

    plate_volume = math.pi * head_radius**2 * plate_height
    plate_mass = plate_volume * density
    plate_moment = mp.cylinder_solid_orthogonal_axis_center(
        head_radius, plate_height, plate_mass)
    plate_distance = ((mount_radius + plate_height / 2.0)**2 +
                      mount_offset**2)**0.5
    if not head_out:
        plate_distance = ((mount_radius - plate_height / 2.0)**2 +
                          mount_offset**2)**0.5
    plate_moment = mp.parallel_axis(plate_moment, plate_distance, plate_mass)

    shaft_volume = math.pi * shaft_radius**2 * shaft_length
    shaft_mass = shaft_volume * density
    shaft_moment = mp.cylinder_solid_orthogonal_axis_center(
        shaft_radius, shaft_length, shaft_mass)
    shaft_distance = ((mount_radius - shaft_length / 2.0)**2 +
                      mount_offset**2)**0.5
    if not head_out:
        shaft_distance = ((mount_radius + shaft_length / 2.0)**2 +
                          mount_offset**2)**0.5
    shaft_moment = mp.parallel_axis(shaft_moment, shaft_distance, shaft_mass)

    return head_moment + plate_moment + shaft_moment
Esempio n. 7
0
def square_tube_orthogonal_axis_end(side, thickness, length, mass):
    radius = (side - thickness) / 2.0

    side_1 = side
    side_2 = side - 2.0 * thickness

    mass_1 = (mass / 2.0) * (side_1 / side_2)
    mass_2 = (mass / 2.0) * (side_2 / side_1)

    moment_1 = mp.cuboid_solid_face_major(length, side_1, mass_1)
    moment_2 = mp.cuboid_solid_face_major(length, thickness, mass_2)

    moment_2 = mp.parallel_axis(moment_2, radius, mass_2)

    return 2.0 * (moment_1 + moment_2)
Esempio n. 8
0
def m4_nut_on_axis(radius):
    moment = ma.hex_nut_on_axis(mc.M4_NUT_OD / 2.0, mc.M4_NUT_OD / 2.0,
                                mc.M4_NUT_ID, mc.M4_NUT_MASS)
    return mp.parallel_axis(moment, radius, mc.M4_NUT_MASS)
Esempio n. 9
0
def hall(radius):
    moment = mp.cuboid_solid_face_centered(mc.HALL_L, mc.HALL_D, mc.HALL_MASS)
    distance = ((radius + mc.HALL_D / 2.0)**2 +
                (mc.HALL_L / 2.0 - mc.HALL_AXIS_CENTER)**2)**0.5
    return mp.parallel_axis(moment, distance, mc.HALL_MASS)