FEM: replace fem utils method with FreeCADs obj method
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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*.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user