FEM: replace fem utils method with FreeCADs obj method

This commit is contained in:
Bernd Hahnebach
2020-02-17 12:26:58 +01:00
parent 7aad85e9c8
commit b7d8e98bf4
7 changed files with 8 additions and 37 deletions

View File

@@ -68,7 +68,7 @@ class _TaskPanel(object):
FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/ElectrostaticPotential.ui")
self._initParamWidget()
self.form = [self._refWidget, self._paramWidget]
analysis = femutils.findAnalysisOfMember(obj)
analysis = obj.getParentGroup()
self._mesh = femutils.get_single_member(analysis, "Fem::FemMeshObject")
self._part = None
if self._mesh is not None:

View File

@@ -69,7 +69,7 @@ class _TaskPanel(object):
)
self._initParamWidget()
self.form = [self._refWidget, self._paramWidget]
analysis = femutils.findAnalysisOfMember(obj)
analysis = obj.getParentGroup()
self._mesh = femutils.get_single_member(analysis, "Fem::FemMeshObject")
self._part = None
if self._mesh is not None:

View File

@@ -65,7 +65,7 @@ class _TaskPanel(object):
FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/InitialFlowVelocity.ui")
self._initParamWidget()
self.form = [self._paramWidget]
analysis = femutils.findAnalysisOfMember(obj)
analysis = obj.getParentGroup()
self._mesh = femutils.get_single_member(analysis, "Fem::FemMeshObject")
self._part = None
if self._mesh is not None:

View File

@@ -75,7 +75,7 @@ class _TaskPanel(object):
self.form = self._refWidget
else:
self.form = [self.refWidget, propWidget]
analysis = femutils.findAnalysisOfMember(obj)
analysis = obj.getParentGroup()
self._mesh = femutils.get_single_member(analysis, "Fem::FemMeshObject")
self._part = self._mesh.Part if self._mesh is not None else None
self._partVisible = None

View File

@@ -93,7 +93,7 @@ def getConstant(name, dimension):
class Writer(object):
def __init__(self, solver, directory, testmode=False):
self.analysis = femutils.findAnalysisOfMember(solver)
self.analysis = solver.getParentGroup()
self.solver = solver
self.directory = directory
self.testmode = testmode

View File

@@ -299,7 +299,7 @@ class BaseTask(task.Thread):
@property
def analysis(self):
return femutils.findAnalysisOfMember(self.solver)
return self.solver.getParentGroup()
class Machine(BaseTask):
@@ -528,7 +528,7 @@ class _DocObserver(object):
_machines[o].reset()
def _checkSolver(self, obj):
analysis = femutils.findAnalysisOfMember(obj)
analysis = obj.getParentGroup()
for m in iter(_machines.values()):
if analysis == m.analysis and obj == m.solver:
m.reset()
@@ -546,7 +546,7 @@ class _DocObserver(object):
def _checkModel(self, obj):
if self._partOfModel(obj):
analysis = femutils.findAnalysisOfMember(obj)
analysis = obj.getParentGroup()
if analysis is not None:
self._resetAll(analysis)

View File

@@ -66,35 +66,6 @@ def createObject(doc, name, proxy, viewProxy=None):
return obj
def findAnalysisOfMember(member):
""" Find Analysis the *member* belongs to.
:param member: a document object
:returns:
If a analysis that contains *member* can be found a reference is returned.
If no such object exists in the document of *member*, ``None`` is returned.
"""
if member is None:
raise ValueError("Member must not be None")
for obj in member.Document.Objects:
if obj.isDerivedFrom("Fem::FemAnalysis"):
if member in obj.Group:
return obj
if _searchGroups(member, obj.Group):
return obj
return None
def _searchGroups(member, objs):
for o in objs:
if o == member:
return True
if hasattr(o, "Group"):
return _searchGroups(member, o.Group)
return False
def get_member(analysis, t):
""" Return list of all members of *analysis* of type *t*.