From 6cb5f45d1b1c06bceea3cf2456eb2b7baced854e Mon Sep 17 00:00:00 2001 From: Basile Marchand Date: Wed, 7 Jan 2026 09:25:52 +0100 Subject: [PATCH 1/2] fix: mesh connectivity keep only linear part of elements for visualization. --- python/med2obj.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/python/med2obj.py b/python/med2obj.py index f61c8ca..e9df35c 100644 --- a/python/med2obj.py +++ b/python/med2obj.py @@ -16,6 +16,16 @@ def parse_args(): parser.add_argument("-o", "--output", type=str, required=True, help="Output .obj file path.") return parser.parse_args() +END_CONNECTIVITY = { + 9: 4, ## Quadrangle 9 nodes -> Quadrangle 4 nodes + 8: 4, ## Quadrangle 8 nodes -> Quadrangle 4 nodes + 6: 3, ## Triangle 6 nodes -> Triangle 3 nodes + 3: 3, ## Triangle 3 nodes + 4: 4, ## Quadrangle 4 nodes + 2: 2, ## Line 2 nodes + 1: 1 ## Point 1 node +} + def write_obj(med_file, skin_mesh, skin_groups, node_groups, output_path, skin_level=-1, node_level=1): with open(output_path, 'w') as f: coords = skin_mesh.getCoords().toNumPyArray() @@ -23,15 +33,17 @@ def write_obj(med_file, skin_mesh, skin_groups, node_groups, output_path, skin_l f.write(f"v {coord[0]} {coord[1]} {coord[2]}\n") for elem in skin_mesh: - conn = elem.getAllConn() # OBJ is 1-indexed - f.write(f'f {" ".join([str(x+1) for x in conn[1:]])}\n') + conn = elem.getAllConn()# OBJ is 1-indexed + end_connectivity = END_CONNECTIVITY[len(conn)-1]+1 + f.write(f'f {" ".join([str(x+1) for x in conn[1:end_connectivity]])}\n') for group_name in skin_groups: submesh = med_file.getGroup(skin_level, group_name) f.write(f"g {group_name}\n") for elem in submesh: conn = elem.getAllConn() - f.write(f'f {" ".join([str(x+1) for x in conn[1:]])}\n') + end_connectivity = END_CONNECTIVITY[len(conn)-1]+1 + f.write(f'f {" ".join([str(x+1) for x in conn[1:end_connectivity]])}\n') for group_name in node_groups: node_ids = med_file.getGroupArr(node_level, group_name).toNumPyArray() @@ -49,6 +61,7 @@ def main(): raise FileNotFoundError(f"Input file {input_path} does not exist.") med_file = mc.MEDFileUMesh.New(str(input_path)) + #med_file = med_file.quadraticToLinear() mesh = med_file.getMeshAtLevel(0) node_level = 1 From f559377f3012bece67b9879f1e25a951ad164374 Mon Sep 17 00:00:00 2001 From: Basile Marchand Date: Wed, 7 Jan 2026 15:12:28 +0100 Subject: [PATCH 2/2] chore: bump version to 1.1.0 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 4c8a5eb..8390069 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "vs-code-aster", "displayName": "VS Code Aster", - "version": "1.0.2", + "version": "1.1.0", "description": "VS Code extension for code_aster", "publisher": "simvia", "license": "GPL-3.0", @@ -148,4 +148,4 @@ "tailwindcss": "^4.1.17", "uuid": "^13.0.0" } -} \ No newline at end of file +}