示例#1
0
 def purge_results(self):
     self.pushStatus("Purge existing results...\n")
     # TODO see calculix result tasks
     for m in membertools.get_member(self.analysis, "Fem::FemResultObject"):
         if femutils.is_of_type(m.Mesh, "Fem::MeshResult"):
             self.analysis.Document.removeObject(m.Mesh.Name)
         self.analysis.Document.removeObject(m.Name)
     self.analysis.Document.recompute()
示例#2
0
 def checkMaterial(self):
     matObjs = membertools.get_member(self.analysis,
                                      "App::MaterialObjectPython")
     if len(matObjs) == 0:
         self.report.error("No material object found. "
                           "At least one material is required.")
         self.fail()
         return False
     return True
示例#3
0
 def checkMesh(self):
     meshes = membertools.get_member(self.analysis, "Fem::FemMeshObject")
     if len(meshes) == 0:
         self.report.error("Missing a mesh object.")
         self.fail()
         return False
     elif len(meshes) > 1:
         self.report.error("Too many meshes. "
                           "More than one mesh is not supported.")
         self.fail()
         return False
     return True
示例#4
0
 def purge_results(self):
     self.pushStatus("Purge existing results...\n")
     # TODO dat file will not be removed
     # TODO implement a generic purge method
     # TODO results from other solvers will be removed too
     # the user should decide if purge should only
     # delete this solver results or results from all solvers
     for m in membertools.get_member(self.analysis, "Fem::FemResultObject"):
         if m.Mesh and femutils.is_of_type(m.Mesh, "Fem::MeshResult"):
             self.analysis.Document.removeObject(m.Mesh.Name)
         self.analysis.Document.removeObject(m.Name)
     self.analysis.Document.recompute()
示例#5
0
文件: tasks.py 项目: zyqcome/FreeCAD
 def load_results_ccxdat(self):
     dat_result_file = os.path.join(self.directory, _inputFileName + ".dat")
     if os.path.isfile(dat_result_file):
         mode_frequencies = importCcxDatResults.import_dat(
             dat_result_file, self.analysis)
     else:
         raise Exception(
             "FEM: No .dat results found at {}!".format(dat_result_file))
     if mode_frequencies:
         for m in membertools.get_member(self.analysis,
                                         "Fem::FemResultObject"):
             if m.Eigenmode > 0:
                 for mf in mode_frequencies:
                     if m.Eigenmode == mf["eigenmode"]:
                         m.EigenmodeFrequency = mf["frequency"]
示例#6
0
文件: tasks.py 项目: Russ4262/FreeCAD
 def load_ccxdat_results(self):
     dat_result_file = os.path.join(self.directory, _inputFileName + ".dat")
     if os.path.isfile(dat_result_file):
         mode_frequencies = importCcxDatResults.import_dat(
             dat_result_file, self.analysis)
     else:
         # TODO: use solver framework status message system
         FreeCAD.Console.PrintError(
             "FEM: No results found at {}!\n".format(dat_result_file))
         self.fail()
     if mode_frequencies:
         for m in membertools.get_member(self.analysis,
                                         "Fem::FemResultObject"):
             if m.Eigenmode > 0:
                 for mf in mode_frequencies:
                     if m.Eigenmode == mf["eigenmode"]:
                         m.EigenmodeFrequency = mf["frequency"]
示例#7
0
文件: writer.py 项目: gwicke/FreeCAD
 def _getMember(self, t):
     return membertools.get_member(self.analysis, t)
示例#8
0
文件: tasks.py 项目: gwicke/FreeCAD
 def checkHandled(self, w):
     handled = w.getHandledConstraints()
     allConstraints = membertools.get_member(self.analysis,
                                             "Fem::Constraint")
     for obj in set(allConstraints) - handled:
         self.report.warning("Ignored constraint %s." % obj.Label)
示例#9
0
文件: tasks.py 项目: zyqcome/FreeCAD
 def purge_results(self):
     for m in membertools.get_member(self.analysis, "Fem::FemResultObject"):
         if m.Mesh and femutils.is_of_type(m.Mesh, "Fem::MeshResult"):
             self.analysis.Document.removeObject(m.Mesh.Name)
         self.analysis.Document.removeObject(m.Name)
     self.analysis.Document.recompute()