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
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