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()
Example #2
0
 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()
Example #3
0
    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