Source code for pyNastran.bdf.mesh_utils.remove_cards

from pyNastran.bdf.bdf import BDF


[docs] def remap_cards(model: BDF, cross_reference: bool=True, remap_nodes: bool=True, remap_elements: bool=True, remap_properties: bool=True, remap_materials: bool=True): """ Remap cards after a cross-reference; works on an uncross-referenced model Parameters ---------- model : BDF() the BDF object cross_reference : bool; default=True cross_reference once the remapping is done remap_nodes : bool; default=True 'x' may be nodes, elements, properties, materials """ model.uncross_reference() if remap_nodes: nodes = {} for node in model.nodes.values(): nid = node.nid nodes[nid] = node model.nodes = nodes if remap_elements: elements = {} for element in model.elements.values(): eid = element.eid elements[eid] = element model.elements = elements if remap_properties: properties = {} for prop in model.properties.values(): pid = prop.pid properties[pid] = prop model.properties = properties if remap_materials: materials = {} for material in model.materials.values(): mid = material.mid materials[mid] = material model.materials = materials if cross_reference: model.cross_reference()
[docs] def delete_properties(bdf_model: BDF, property_types_to_save=None): """early version of way to delete specific property cards""" pids_to_delete = set() if property_types_to_save: for pid, prop in bdf_model.properties.items(): ptype = prop.type if ptype not in property_types_to_save: pids_to_delete.add(pid) bdf_model._type_to_id_map[ptype].remove(pid) for pid in pids_to_delete: del bdf_model.properties[pid]
[docs] def delete_elements(bdf_model: BDF, element_types_to_save=None): """early version of way to delete specific element cards""" eids_to_delete = set() if element_types_to_save: for eid, element in bdf_model.elements.items(): etype = element.type if etype not in element_types_to_save: eids_to_delete.add(eid) bdf_model._type_to_id_map[etype].remove(eid) for eid in eids_to_delete: del bdf_model.elements[eid]
#def delete_forces(bdf_model, eids_to_delete=None): #"""early version of way to delete specific force cards""" #eids_to_delete = set() #loads = {} #for load_id, load_set in bdf_model.loads.items(): #load_set = [] #for load in load_set: #print(load) #if element_types_to_save: #for eid, element in bdf_model.elements.items(): #if element.type not in element_types_to_save: #eids_to_delete.add(eid) #for eid in eids_to_delete: #del bdf_model.elements[eid]