def Activated(self): is_present = False members = CfdTools.getMesh(CfdTools.getActiveAnalysis()).Group for i in members: if hasattr(i, 'Proxy') and isinstance(i.Proxy, CfdDynamicMeshRefinement): FreeCADGui.activeDocument().setEdit(i.Name) is_present = True # Allow to re-create if deleted if not is_present: sel = FreeCADGui.Selection.getSelection() if len(sel) == 1: sobj = sel[0] if len(sel) == 1 and hasattr(sobj, "Proxy") and isinstance( sobj.Proxy, CfdMesh): FreeCAD.ActiveDocument.openTransaction( "Create DynamicMesh") FreeCADGui.doCommand("") FreeCADGui.doCommand( "from CfdOF.Mesh import CfdDynamicMeshRefinement") FreeCADGui.doCommand("from CfdOF import CfdTools") FreeCADGui.doCommand( "CfdDynamicMeshRefinement.makeCfdDynamicMeshRefinement(App.ActiveDocument.{})" .format(sobj.Name)) FreeCADGui.ActiveDocument.setEdit( FreeCAD.ActiveDocument.ActiveObject.Name) FreeCADGui.Selection.clearSelection()
def Activated(self): FreeCAD.ActiveDocument.openTransaction("Create CFD mesh") analysis_obj = CfdTools.getActiveAnalysis() if analysis_obj: mesh_obj = CfdTools.getMesh(analysis_obj) if not mesh_obj: sel = FreeCADGui.Selection.getSelection() if len(sel) == 1: if sel[0].isDerivedFrom("Part::Feature"): mesh_obj_name = sel[0].Name + "_Mesh" FreeCADGui.doCommand("from CfdOF.Mesh import CfdMesh") FreeCADGui.doCommand("CfdMesh.makeCfdMesh('" + mesh_obj_name + "')") FreeCADGui.doCommand( "App.ActiveDocument.ActiveObject.Part = App.ActiveDocument." + sel[0].Name) if CfdTools.getActiveAnalysis(): FreeCADGui.doCommand("from CfdOF import CfdTools") FreeCADGui.doCommand( "CfdTools.getActiveAnalysis().addObject(App.ActiveDocument.ActiveObject)" ) FreeCADGui.ActiveDocument.setEdit( FreeCAD.ActiveDocument.ActiveObject.Name) else: print("ERROR: You cannot have more than one mesh object") FreeCADGui.Selection.clearSelection()
def __init__(self, analysis_obj): self.case_folder = None self.mesh_file_name = None self.template_path = None self.analysis_obj = analysis_obj self.solver_obj = CfdTools.getSolver(analysis_obj) self.physics_model = CfdTools.getPhysicsModel(analysis_obj) self.mesh_obj = CfdTools.getMesh(analysis_obj) self.material_objs = CfdTools.getMaterials(analysis_obj) self.bc_group = CfdTools.getCfdBoundaryGroup(analysis_obj) self.initial_conditions = CfdTools.getInitialConditions(analysis_obj) self.reporting_functions = CfdTools.getReportingFunctionsGroup( analysis_obj) self.scalar_transport_objs = CfdTools.getScalarTransportFunctionsGroup( analysis_obj) self.porous_zone_objs = CfdTools.getPorousZoneObjects(analysis_obj) self.initialisation_zone_objs = CfdTools.getInitialisationZoneObjects( analysis_obj) self.zone_objs = CfdTools.getZoneObjects(analysis_obj) self.dynamic_mesh_refinement_obj = CfdTools.getDynamicMeshAdaptation( analysis_obj) self.mesh_generated = False self.working_dir = CfdTools.getOutputPath(self.analysis_obj) self.progressCallback = None self.settings = None