예제 #1
0
 def checkMeshType(self):
     mesh = FemUtils.getSingleMember(self.analysis, "Fem::FemMeshObject")
     if not FemUtils.isOfType(mesh, "FemMeshGmsh"):
         self.report.error("Unsupported type of mesh. "
                           "Mesh must be created with gmsh.")
         self.fail()
         return False
     return True
예제 #2
0
 def _getMeshDimension(self):
     obj = FemUtils.getSingleMember(self.analysis, "Fem::FemMeshObject")
     if obj.Part.Shape.Solids:
         return 3
     elif obj.Part.Shape.Faces:
         return 2
     elif obj.Part.Shape.Edges:
         return 1
     return None
예제 #3
0
 def checkMeshType(self):
     mesh = FemUtils.getSingleMember(self.analysis, "Fem::FemMeshObject")
     if not FemUtils.isOfType(mesh, "Fem::FemMeshGmsh"):
         self.report.error(
             "Unsupported type of mesh. "
             "Mesh must be created with gmsh.")
         self.fail()
         return False
     return True
 def __init__(self, obj):
     self._obj = obj
     self._paramWidget = FreeCADGui.PySideUic.loadUi(
         FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/InitialFlowVelocity.ui")
     self._initParamWidget()
     self.form = [self._paramWidget]
     analysis = FemUtils.findAnalysisOfMember(obj)
     self._mesh = FemUtils.getSingleMember(analysis, "Fem::FemMeshObject")
     self._part = self._mesh.Part if self._mesh is not None else None
     self._partVisible = None
     self._meshVisible = None
 def __init__(self, obj):
     self._obj = obj
     self._paramWidget = Gui.PySideUic.loadUi(
         App.getHomePath() + "Mod/Fem/Resources/ui/InitialFlowVelocity.ui")
     self._initParamWidget()
     self.form = [self._paramWidget]
     analysis = FemUtils.findAnalysisOfMember(obj)
     self._mesh = FemUtils.getSingleMember(analysis, "Fem::FemMeshObject")
     self._part = self._mesh.Part if self._mesh is not None else None
     self._partVisible = None
     self._meshVisible = None
 def __init__(self, obj):
     self._obj = obj
     self._refWidget = FemSelectionWidgets.BoundarySelector()
     self._refWidget.setReferences(obj.References)
     self._paramWidget = Gui.PySideUic.loadUi(
         App.getHomePath() + "Mod/Fem/Resources/ui/ElectrostaticPotential.ui")
     self._initParamWidget()
     self.form = [self._refWidget, self._paramWidget]
     analysis = FemUtils.findAnalysisOfMember(obj)
     self._mesh = FemUtils.getSingleMember(analysis, "Fem::FemMeshObject")
     self._part = self._mesh.Part if self._mesh is not None else None
     self._partVisible = None
     self._meshVisible = None
예제 #7
0
 def _getAllBodies(self):
     obj = FemUtils.getSingleMember(self.analysis, "Fem::FemMeshObject")
     bodyCount = 0
     prefix = ""
     if obj.Part.Shape.Solids:
         prefix = "Solid"
         bodyCount = len(obj.Part.Shape.Solids)
     elif obj.Part.Shape.Faces:
         prefix = "Face"
         bodyCount = len(obj.Part.Shape.Faces)
     elif obj.Part.Shape.Edges:
         prefix = "Edge"
         bodyCount = len(obj.Part.Shape.Edges)
     return [prefix + str(i + 1) for i in range(bodyCount)]
예제 #8
0
 def __init__(self, obj):
     self._obj = obj
     self._refWidget = FemSelectionWidgets.BoundarySelector()
     self._refWidget.setReferences(obj.References)
     self._paramWidget = FreeCADGui.PySideUic.loadUi(
         FreeCAD.getHomePath() +
         "Mod/Fem/Resources/ui/ElectrostaticPotential.ui")
     self._initParamWidget()
     self.form = [self._refWidget, self._paramWidget]
     analysis = FemUtils.findAnalysisOfMember(obj)
     self._mesh = FemUtils.getSingleMember(analysis, "Fem::FemMeshObject")
     self._part = self._mesh.Part if self._mesh is not None else None
     self._partVisible = None
     self._meshVisible = None
예제 #9
0
 def __init__(self, obj):
     self._obj = obj
     self._refWidget = FemSelectionWidgets.SolidSelector()
     self._refWidget.setReferences(obj.References)
     propWidget = obj.ViewObject.Proxy.getTaskWidget(obj.ViewObject)
     if propWidget is None:
         self.form = self._refWidget
     else:
         self.form = [self.refWidget, propWidget]
     analysis = FemUtils.findAnalysisOfMember(obj)
     self._mesh = FemUtils.getSingleMember(analysis, "Fem::FemMeshObject")
     self._part = self._mesh.Part if self._mesh is not None else None
     self._partVisible = None
     self._meshVisible = None
예제 #10
0
 def __init__(self, obj):
     self._obj = obj
     self._refWidget = FemSelectionWidgets.SolidSelector()
     self._refWidget.setReferences(obj.References)
     propWidget = obj.ViewObject.Proxy.getTaskWidget(
         obj.ViewObject)
     if propWidget is None:
         self.form = self._refWidget
     else:
         self.form = [self.refWidget, propWidget]
     analysis = FemUtils.findAnalysisOfMember(obj)
     self._mesh = FemUtils.getSingleMember(analysis, "Fem::FemMeshObject")
     self._part = self._mesh.Part if self._mesh is not None else None
     self._partVisible = None
     self._meshVisible = None
 def __init__(self, obj):
     self._obj = obj
     self._refWidget = FemSelectionWidgets.BoundarySelector()
     self._refWidget.setReferences(obj.References)
     self._paramWidget = Gui.PySideUic.loadUi(
         App.getHomePath() + "Mod/Fem/Resources/ui/FlowVelocity.ui")
     self._initParamWidget()
     self.form = [self._refWidget, self._paramWidget]
     analysis = FemUtils.findAnalysisOfMember(obj)
     self._mesh = FemUtils.getSingleMember(analysis, "Fem::FemMeshObject")
     self._part = None
     if hasattr(self._mesh, "Part"):  # Geometry of Gmesh mesh obj
         self._part = self._mesh.Part
     elif hasattr(self._mesh, "Shape"):  # Geometry of Netgen mesh obj
         self._part = self._mesh.Shape
     self._partVisible = None
     self._meshVisible = None
 def __init__(self, obj):
     self._obj = obj
     self._refWidget = FemSelectionWidgets.BoundarySelector()
     self._refWidget.setReferences(obj.References)
     self._paramWidget = FreeCADGui.PySideUic.loadUi(
         FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/FlowVelocity.ui")
     self._initParamWidget()
     self.form = [self._refWidget, self._paramWidget]
     analysis = FemUtils.findAnalysisOfMember(obj)
     self._mesh = FemUtils.getSingleMember(analysis, "Fem::FemMeshObject")
     self._part = None
     if hasattr(self._mesh, "Part"):  # Geometry of Gmesh mesh obj
         self._part = self._mesh.Part
     elif hasattr(self._mesh, "Shape"):  # Geometry of Netgen mesh obj
         self._part = self._mesh.Shape
     self._partVisible = None
     self._meshVisible = None
예제 #13
0
 def _writeMesh(self):
     mesh = FemUtils.getSingleMember(self.analysis, "Fem::FemMeshObject")
     unvPath = os.path.join(self.directory, "mesh.unv")
     groups = []
     groups.extend(self._builder.getBodyNames())
     groups.extend(self._builder.getBoundaryNames())
     self._exportToUnv(groups, mesh, unvPath)
     if self.testmode:
         print("We are in testmode ElmerGrid may not be installed!")
     else:
         binary = settings.getBinary("ElmerGrid")
         if binary is None:
             raise WriteError("Couldn't find ElmerGrid binary.")
         args = [
             binary, _ELMERGRID_IFORMAT, _ELMERGRID_OFORMAT, unvPath,
             "-out", self.directory
         ]
         subprocess.call(args)
예제 #14
0
 def _writeMesh(self):
     mesh = FemUtils.getSingleMember(self.analysis, "Fem::FemMeshObject")
     unvPath = os.path.join(self.directory, "mesh.unv")
     groups = []
     groups.extend(self._builder.getBodyNames())
     groups.extend(self._builder.getBoundaryNames())
     self._exportToUnv(groups, mesh, unvPath)
     if self.testmode:
         print("We are in testmode ElmerGrid may not be installed!")
     else:
         binary = settings.getBinary("ElmerGrid")
         if binary is None:
             raise WriteError("Couldn't find ElmerGrid binary.")
         args = [binary,
                 _ELMERGRID_IFORMAT,
                 _ELMERGRID_OFORMAT,
                 unvPath,
                 "-out", self.directory]
         subprocess.call(args)
예제 #15
0
 def _getSingleMember(self, t):
     return FemUtils.getSingleMember(self.analysis, t)