def importVtkFCResult(filename, resultname, analysis=None, result_name_prefix=None): # only fields from vtk are imported if they exactly named as the FreeCAD result properties # See _getFreeCADMechResultProperties() in FemVTKTools.cpp for the supported names import ObjectsFem from . import importToolsFem if result_name_prefix is None: result_name_prefix = '' if analysis: analysis_object = analysis results_name = result_name_prefix + 'results' result_obj = ObjectsFem.makeResultMechanical(FreeCAD.ActiveDocument, results_name) Fem.readResult(filename, result_obj.Name) # readResult always creates a new femmesh named ResultMesh result_obj = importToolsFem.fill_femresult_stats(result_obj) # workaround for the DisplacementLengths (They should have been calculated by Fem.readResult) if not result_obj.DisplacementLengths: result_obj.DisplacementLengths = importToolsFem.calculate_disp_abs(result_obj.DisplacementVectors) FreeCAD.Console.PrintMessage('Recalculated DisplacementLengths.\n') ''' seems unused at the moment filenamebase = '.'.join(filename.split('.')[:-1]) # pattern: filebase_timestamp.vtk ts = filenamebase.split('_')[-1] try: time_step = float(ts) except: time_step = 0.0 ''' if analysis: analysis_object.addObject(result_obj) result_obj.touch() FreeCAD.ActiveDocument.recompute()
def importVtkFCResult(filename, resultname, analysis=None, result_name_prefix=None): # only fields from vtk are imported if they exactly named as the FreeCAD result properties # See _getFreeCADMechResultProperties() in FemVTKTools.cpp for the supported names import ObjectsFem from . import importToolsFem if result_name_prefix is None: result_name_prefix = '' if analysis: analysis_object = analysis results_name = result_name_prefix + 'results' result_obj = ObjectsFem.makeResultMechanical(FreeCAD.ActiveDocument, results_name) Fem.readResult(filename, result_obj.Name) # readResult always creates a new femmesh named ResultMesh # workaround for the DisplacementLengths (They should have been calculated by Fem.readResult) if not result_obj.DisplacementLengths: result_obj.DisplacementLengths = importToolsFem.calculate_disp_abs(result_obj.DisplacementVectors) FreeCAD.Console.PrintMessage('Recalculated DisplacementLengths.\n') ''' seems unused at the moment filenamebase = '.'.join(filename.split('.')[:-1]) # pattern: filebase_timestamp.vtk ts = filenamebase.split('_')[-1] try: time_step = float(ts) except: time_step = 0.0 ''' if analysis: analysis_object.addObject(result_obj) result_obj.touch() FreeCAD.ActiveDocument.recompute()
def importVTK(filename, analysis=None, result_name_prefix=None): import ObjectsFem if result_name_prefix is None: result_name_prefix = '' if analysis is None: analysis_name = os.path.splitext(os.path.basename(filename))[0] analysis_object = ObjectsFem.makeAnalysis('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 = ObjectsFem.makeResultMechanical(results_name) # result_obj = FreeCAD.ActiveDocument.addObject('Fem::FemResultObject', results_name) Fem.readResult(filename, result_obj.Name) # readResult always creates a new femmesh named ResultMesh # workaround for the DisplacementLengths (They should have been calculated by Fem.readResult) if not result_obj.DisplacementLengths: import importToolsFem result_obj.DisplacementLengths = importToolsFem.calculate_disp_abs(result_obj.DisplacementVectors) analysis_object.Member = analysis_object.Member + [result_obj] # FIXME move the ResultMesh in the analysis ''' seams not used at the moment
def importVTK(filename, analysis=None, result_name_prefix=None): import ObjectsFem if result_name_prefix is None: result_name_prefix = '' if analysis is None: analysis_name = os.path.splitext(os.path.basename(filename))[0] analysis_object = ObjectsFem.makeAnalysis('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 = ObjectsFem.makeResultMechanical(results_name) # result_obj = FreeCAD.ActiveDocument.addObject('Fem::FemResultObject', results_name) Fem.readResult( filename, result_obj.Name ) # readResult always creates a new femmesh named ResultMesh # workaround for the DisplacementLengths (They should have been calculated by Fem.readResult) if not result_obj.DisplacementLengths: result_obj.DisplacementLengths = calculate_disp_abs( result_obj.DisplacementVectors) analysis_object.Member = analysis_object.Member + [result_obj] # FIXME move the ResultMesh in the analysis ''' seams not used at the moment
def importVtkFCResult(filename, resultname, analysis=None, result_name_prefix=None): # only fields from vtk are imported if they exactly named as the FreeCAD result properties # See _getFreeCADMechResultProperties() in FemVTKTools.cpp for the supported names import ObjectsFem if result_name_prefix is None: result_name_prefix = '' if analysis: analysis_object = analysis results_name = result_name_prefix + 'results' result_obj = ObjectsFem.makeResultMechanical(FreeCAD.ActiveDocument, results_name) Fem.readResult(filename, result_obj.Name) # readResult always creates a new femmesh named ResultMesh # add missing DisplacementLengths (They should have been added by Fem.readResult) if not result_obj.DisplacementLengths: import femresult.resulttools as restools result_obj = restools.add_disp_apps(result_obj) # DisplacementLengths ''' seems unused at the moment filenamebase = '.'.join(filename.split('.')[:-1]) # pattern: filebase_timestamp.vtk ts = filenamebase.split('_')[-1] try: time_step = float(ts) except: time_step = 0.0 ''' if analysis: analysis_object.addObject(result_obj) result_obj.touch() FreeCAD.ActiveDocument.recompute()
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' from FemMechanicalResult import makeFemMechanicalResult result_obj = makeFemMechanicalResult(results_name) # result_obj = FreeCAD.ActiveDocument.addObject('Fem::FemResultObject', results_name) Fem.readResult( filename, result_obj.Name ) # readResult always creates a new femmesh named ResultMesh # workaround for the DisplacementLengths (They should have been calculated by Fem.readResult) if not result_obj.DisplacementLengths: result_obj.DisplacementLengths = calculate_disp_abs( result_obj.DisplacementVectors) 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
def importCfdResult(filename, analysis=None, result_name_prefix=None): from CfdObjects import makeCfdResult import Fem result_obj = makeCfdResult(result_name_prefix) if result_name_prefix is None: result_name_prefix = "CfdResult" if analysis is None: analysis_name = os.path.splitext(os.path.basename(filename))[0] analysis_object = ObjectsFem.makeAnalysis('Analysis') analysis_object.Label = analysis_name else: analysis_object = analysis analysis_object.Member = analysis_object.Member + [result_obj] # FIXME move the ResultMesh in the analysis -> call the readReslt after setActiveAnalysis #Stats has been setup in C++ function Fem.readCfdResult if (FreeCAD.GuiUp) and analysis: import FemGui FemGui.setActiveAnalysis(analysis) Fem.readResult(filename, result_obj.Name) #always create a new femmesh
def importVtkFCResult(filename, resultname, analysis=None, result_name_prefix=None): # for import restrictions see https://forum.freecadweb.org/viewtopic.php?f=18&t=22576&start=20#p179862 import ObjectsFem if result_name_prefix is None: result_name_prefix = '' if analysis: 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 = ObjectsFem.makeResultMechanical(FreeCAD.ActiveDocument, results_name) Fem.readResult( filename, result_obj.Name ) # readResult always creates a new femmesh named ResultMesh # workaround for the DisplacementLengths (They should have been calculated by Fem.readResult) if not result_obj.DisplacementLengths: from . import importToolsFem result_obj.DisplacementLengths = importToolsFem.calculate_disp_abs( result_obj.DisplacementVectors) # workaround for wrong stats calculation fix in App/VTKtools.cpp while len(result_obj.Stats) < 39: tmpstats = result_obj.Stats tmpstats.append(0.0) result_obj.Stats = tmpstats ''' seems unused at the moment 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() ''' if analysis: analysis_object.addObject(result_obj) result_obj.touch() FreeCAD.ActiveDocument.recompute()
def importVTK(filename, analysis=None, result_name_prefix=None): import ObjectsFem if result_name_prefix is None: result_name_prefix = '' if analysis: 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 = ObjectsFem.makeResultMechanical(results_name) Fem.readResult(filename, result_obj.Name) # readResult always creates a new femmesh named ResultMesh # workaround for the DisplacementLengths (They should have been calculated by Fem.readResult) if not result_obj.DisplacementLengths: import importToolsFem result_obj.DisplacementLengths = importToolsFem.calculate_disp_abs(result_obj.DisplacementVectors) if analysis: analysis_object.Member = analysis_object.Member + [result_obj] ''' seams not used at the moment
def importVTK(filename, analysis=None, result_name_prefix=None): import ObjectsFem if result_name_prefix is None: result_name_prefix = '' if analysis: 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 = ObjectsFem.makeResultMechanical(FreeCAD.ActiveDocument, results_name) Fem.readResult(filename, result_obj.Name) # readResult always creates a new femmesh named ResultMesh # workaround for the DisplacementLengths (They should have been calculated by Fem.readResult) if not result_obj.DisplacementLengths: from . import importToolsFem result_obj.DisplacementLengths = importToolsFem.calculate_disp_abs(result_obj.DisplacementVectors) if analysis: analysis_object.addObject(result_obj) ''' seems unused at the moment
def importVtkFCResult( filename, resultname, analysis=None, result_name_prefix=None ): # only fields from vtk are imported if they exactly named as the FreeCAD result properties # See _getFreeCADMechResultProperties() in FemVTKTools.cpp for the supported names import ObjectsFem if result_name_prefix is None: result_name_prefix = '' if analysis: analysis_object = analysis results_name = result_name_prefix + 'results' result_obj = ObjectsFem.makeResultMechanical(FreeCAD.ActiveDocument, results_name) # readResult always creates a new femmesh named ResultMesh Fem.readResult(filename, result_obj.Name) # add missing DisplacementLengths (They should have been added by Fem.readResult) if not result_obj.DisplacementLengths: import femresult.resulttools as restools result_obj = restools.add_disp_apps(result_obj) # DisplacementLengths ''' seems unused at the moment filenamebase = '.'.join(filename.split('.')[:-1]) # pattern: filebase_timestamp.vtk ts = filenamebase.split('_')[-1] try: time_step = float(ts) except: time_step = 0.0 ''' if analysis: analysis_object.addObject(result_obj) result_obj.touch() FreeCAD.ActiveDocument.recompute() return result_obj