FEM: vtk result file reading, activate import in python vtk import module
This commit is contained in:
parent
1c18867d1e
commit
ea1829c9fa
|
@ -32,7 +32,7 @@ FreeCAD.addImportType("FEM formats (*.unv *.med *.dat *.bdf)", "Fem")
|
|||
if("BUILD_FEM_VTK" in FreeCAD.__cmake__):
|
||||
FreeCAD.addImportType("FEM CFD Unstructure Mesh (*.vtk *.vtu)", "Fem")
|
||||
FreeCAD.addExportType("FEM CFD Unstructure Mesh (*.vtk *.vtu)", "Fem")
|
||||
# FreeCAD.addImportType("FEM results (*.vtk *.vtp *.vts *.vtr *.vtu *.vti)", "importVTKResults") # not implemented yet
|
||||
FreeCAD.addImportType("FEM results (*.vtk *.vtu)", "importVTKResults")
|
||||
FreeCAD.addExportType("FEM CFD Result in VTK format (*.vtk *.vtu)", "importVTKResults")
|
||||
|
||||
FreeCAD.addExportType("FEM formats (*.unv *.med *.dat *.inp)", "Fem")
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
# ***************************************************************************/
|
||||
|
||||
__title__ = "FreeCAD Result import and export VTK file library"
|
||||
__author__ = "Qingfeng Xia"
|
||||
__author__ = "Qingfeng Xia, Bernd Hahnebach"
|
||||
__url__ = "http://www.freecadweb.org"
|
||||
|
||||
## @package importVTKResults
|
||||
|
@ -31,6 +31,7 @@ __url__ = "http://www.freecadweb.org"
|
|||
|
||||
import os
|
||||
import FreeCAD
|
||||
import Fem
|
||||
|
||||
|
||||
if open.__module__ == '__builtin__':
|
||||
|
@ -44,7 +45,7 @@ def insert(filename, docname):
|
|||
except NameError:
|
||||
doc = FreeCAD.newDocument(docname)
|
||||
FreeCAD.ActiveDocument = doc
|
||||
importFemResult(filename)
|
||||
importVTK(filename)
|
||||
|
||||
|
||||
def open(filename):
|
||||
|
@ -53,8 +54,31 @@ def open(filename):
|
|||
insert(filename, docname)
|
||||
|
||||
|
||||
def importFemResult(filename):
|
||||
FreeCAD.Console.PrintError("FemResult import is not implemented, actually not necessary\n")
|
||||
def importVTK(filename, analysis=None, result_name_prefix=None):
|
||||
if result_name_prefix is None:
|
||||
result_name_prefix = ''
|
||||
if analysis is None:
|
||||
analysis_name = os.path.splitext(os.path.basename(filename))[0]
|
||||
import FemAnalysis
|
||||
analysis_object = FemAnalysis.makeFemAnalysis('Analysis')
|
||||
analysis_object.Label = analysis_name
|
||||
else:
|
||||
analysis_object = analysis
|
||||
|
||||
# if properties can be added in FemVTKTools importCfdResult(), this file can be used for CFD workbench
|
||||
results_name = result_name_prefix + 'results'
|
||||
result_obj = FreeCAD.ActiveDocument.addObject('Fem::FemResultObject', results_name)
|
||||
Fem.readResult(filename, result_obj.Name) # readResult always creates a new femmesh named ResultMesh
|
||||
analysis_object.Member = analysis_object.Member + [result_obj]
|
||||
# FIXME move the ResultMesh in the analysis
|
||||
|
||||
filenamebase = '.'.join(filename.split('.')[:-1]) # pattern: filebase_timestamp.vtk
|
||||
ts = filenamebase.split('_')[-1]
|
||||
try:
|
||||
time_step = float(ts)
|
||||
except:
|
||||
time_step = 0.0
|
||||
# Stats has been setup in C++ function FemVTKTools importCfdResult()
|
||||
|
||||
|
||||
def export(objectslist, filename):
|
||||
|
@ -66,5 +90,4 @@ def export(objectslist, filename):
|
|||
if not obj.isDerivedFrom("Fem::FemResultObject"):
|
||||
FreeCAD.Console.PrintError("object selcted is not FemResultObject.\n")
|
||||
return
|
||||
import Fem
|
||||
Fem.writeResult(filename, obj)
|
||||
|
|
Loading…
Reference in New Issue
Block a user