I want to compare two Ansys Mechanical Models and summarize the differences. For some cases it is sufficient to just compare the two ds.dat files with e.g. Notepad++. But different meshes make this comparison quickly confusing.
My idea is to export the tree of the two Models from
ExtAPI.DataModel.Project.Model
to two dictionaries and than compare those. But I have difficulties keeping the structure.
When I try to iterate through all Children inspiried by this link with
#recursive function to iterate a nested dictionary
def iterate(dictionary, indent=4):
print '{'
for child in dictionary.Children:
#recurse if the value is a dictionary
if len(child.Children) != 0:
print ' '*indent + child.Name + ": " ,
iterate(child, indent+4)
else:
print ' '*indent+ child.Name
print ' '*(indent-4)+ '}'
I get the structure in a usable format:
iterate(Model)
{
Geometry: {
Part: {
Body1
}
...
}
Materials: {
Structural Steel
}
Cross Sections: {
Extracted Profile1
}
Coordinate Systems: {
Global Coordinate System
} ... }
But now I am strugling with replacing the print statement in the recursive function and keeping the structure from the model tree.