From 84c702926afeac01197c3d10bc5ecc3b20b93a80 Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Mon, 17 Jul 2017 17:24:38 +0100 Subject: [PATCH] FEM: inp import, add Seg3 to python mesh import tools and inp import --- src/Mod/Fem/importInpMesh.py | 2 +- src/Mod/Fem/importToolsFem.py | 35 +++++++++++++++++++++-------------- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/Mod/Fem/importInpMesh.py b/src/Mod/Fem/importInpMesh.py index 630b3fe00e..fb93d183cf 100644 --- a/src/Mod/Fem/importInpMesh.py +++ b/src/Mod/Fem/importInpMesh.py @@ -239,4 +239,4 @@ def read_inp(file_name): 'Hexa8Elem': elements.hexa8, 'Penta6Elem': elements.penta6, 'Tetra4Elem': elements.tetra4, 'Tetra10Elem': elements.tetra10, 'Penta15Elem': elements.penta15, 'Hexa20Elem': elements.hexa20, 'Tria3Elem': elements.tria3, 'Tria6Elem': elements.tria6, 'Quad4Elem': elements.quad4, - 'Quad8Elem': elements.quad8, 'Seg2Elem': elements.seg2} # , 'Seg3Elem': elements.seg3} + 'Quad8Elem': elements.quad8, 'Seg2Elem': elements.seg2, 'Seg3Elem': elements.seg3} diff --git a/src/Mod/Fem/importToolsFem.py b/src/Mod/Fem/importToolsFem.py index 35bc61ed15..ed55ce751f 100644 --- a/src/Mod/Fem/importToolsFem.py +++ b/src/Mod/Fem/importToolsFem.py @@ -113,17 +113,20 @@ def make_femmesh(mesh_data): m = mesh_data if ('Nodes' in m) and (len(m['Nodes']) > 0): print("Found: nodes") - if (('Seg2Elem' in m) or - ('Tria3Elem' in m) or - ('Tria6Elem' in m) or - ('Quad4Elem' in m) or - ('Quad8Elem' in m) or - ('Tetra4Elem' in m) or - ('Tetra10Elem' in m) or - ('Penta6Elem' in m) or - ('Penta15Elem' in m) or - ('Hexa8Elem' in m) or - ('Hexa20Elem' in m)): + if ( + ('Seg2Elem' in m) or + ('Seg3Elem' in m) or + ('Tria3Elem' in m) or + ('Tria6Elem' in m) or + ('Quad4Elem' in m) or + ('Quad8Elem' in m) or + ('Tetra4Elem' in m) or + ('Tetra10Elem' in m) or + ('Penta6Elem' in m) or + ('Penta15Elem' in m) or + ('Hexa8Elem' in m) or + ('Hexa20Elem' in m) + ): nds = m['Nodes'] print("Found: elements") @@ -175,11 +178,15 @@ def make_femmesh(mesh_data): elms_seg2 = m['Seg2Elem'] for i in elms_seg2: e = elms_seg2[i] - mesh.addEdge(e[0], e[1]) + mesh.addEdge([e[0], e[1]], i) + elms_seg3 = m['Seg3Elem'] + for i in elms_seg3: + e = elms_seg3[i] + mesh.addEdge([e[0], e[1], e[2]], i) print("imported mesh: {} nodes, {} HEXA8, {} PENTA6, {} TETRA4, {} TETRA10, {} PENTA15".format( len(nds), len(elms_hexa8), len(elms_penta6), len(elms_tetra4), len(elms_tetra10), len(elms_penta15))) - print("imported mesh: {} HEXA20, {} TRIA3, {} TRIA6, {} QUAD4, {} QUAD8, {} SEG2".format( - len(elms_hexa20), len(elms_tria3), len(elms_tria6), len(elms_quad4), len(elms_quad8), len(elms_seg2))) + print("imported mesh: {} HEXA20, {} TRIA3, {} TRIA6, {} QUAD4, {} QUAD8, {} SEG2, {} SEG3".format( + len(elms_hexa20), len(elms_tria3), len(elms_tria6), len(elms_quad4), len(elms_quad8), len(elms_seg2), len(elms_seg3))) else: FreeCAD.Console.PrintError("No Elements found!\n") else: