示例#1
0
def read_sesam_fem(bulk_str, part_name):
    """
    Reads the content string of a Sesam input file and converts it to FEM objects

    :param bulk_str:
    :param part_name: Name of part
    :rtype: ada.Part
    """
    from ada import Part

    part = Part(part_name)
    fem = part.fem

    fem._nodes = get_nodes(bulk_str, fem)
    fem._elements = get_elements(bulk_str, fem)
    fem.elements.build_sets()
    part._materials = get_materials(bulk_str, part)
    fem._sets = part.fem.sets + get_sets(bulk_str, fem)
    fem._sections = get_sections(bulk_str, fem)
    # part.fem._masses = get_mass(bulk_str, part.fem)
    fem._constraints += get_constraints(bulk_str, fem)
    fem._springs = get_springs(bulk_str, fem)
    fem._bcs += get_bcs(bulk_str, fem)

    print(8 * "-" + f'Imported "{fem.instance_name}"')
    return part
示例#2
0
def get_part_from_cache(name, part_cache):
    meta_str = part_cache.attrs.get("METADATA")
    metadata = None
    if meta_str is not None:
        metadata = json.loads(meta_str)

    p = Part(name, metadata=metadata)
    fem = part_cache.get("FEM")
    if fem is not None:
        p._fem = get_fem_from_cache(fem)

    node_group = part_cache.get("NODES")
    if node_group is not None:
        p._nodes = get_nodes_from_cache(node_group, p)

    sections = get_sections_from_cache(part_cache, p)
    if sections is not None:
        p._sections = sections

    materials = get_materials_from_cache(part_cache, p)
    if materials is not None:
        p._materials = materials

    beams = get_beams_from_cache(part_cache, p)
    if beams is not None:
        p._beams = beams

    return p