ansys / ansys/pyprimemesh

Mesh file reader `else` branch shouldn't take `cad` files.

Open
#482 1 comment 0 reactions 1 assignee Claimed by @AlejandroFernandezLuces View on GitHub
bug
Dominant language
Python
Stars
35
Forks
14
Avg merge
3d 5h
Merged PRs (30d)
11

Description

### 🔍 Before submitting the issue

- [X] I have searched among the existing issues
- [X] I am using a Python virtual environment

### 🐞 Description of the bug

In file `ansys/meshing/prime/lucid/mesh_util.py`, in function `read`, the `else` branch is dedicated to process `cad` files. In case the input string is not a valid extension, the branch will go through this else instead of managing this error.

### 📝 Steps to reproduce

Current code:

```
filename, fileext = os.path.splitext(file_name)
if fileext == ".msh" or file_name[-7:] == ".msh.gz":
prime.FileIO(self._model).import_fluent_meshing_meshes(
[file_name], prime.ImportFluentMeshingMeshParams(self._model, append=append)
)
elif fileext == ".cas":
prime.FileIO(self._model).import_fluent_case(
file_name, prime.ImportFluentCaseParams(self._model, append=append)
)
elif fileext == ".cdb":
prime.FileIO(self._model).import_mapdl_cdb(
file_name, prime.ImportMapdlCdbParams(self._model, append=append)
)
elif fileext == ".pmdat":
prime.FileIO(self._model).read_pmdat(
file_name, prime.FileReadParams(self._model, append=append)
)
else:
prime.FileIO(self._model).import_cad(
file_name,
prime.ImportCadParams(
self._model, append=append, cad_reader_route=cad_reader_route
),
)
```

Possible solution:

```
cad_extensions ["ext1", "ext2"... "extn"]
filename, fileext = os.path.splitext(file_name)
if fileext == ".msh" or file_name[-7:] == ".msh.gz":
prime.FileIO(self._model).import_fluent_meshing_meshes(
[file_name], prime.ImportFluentMeshingMeshParams(self._model, append=append)
)
elif fileext == ".cas":
prime.FileIO(self._model).import_fluent_case(
file_name, prime.ImportFluentCaseParams(self._model, append=append)
)
elif fileext == ".cdb":
prime.FileIO(self._model).import_mapdl_cdb(
file_name, prime.ImportMapdlCdbParams(self._model, append=append)
)
elif fileext == ".pmdat":
prime.FileIO(self._model).read_pmdat(
file_name, prime.FileReadParams(self._model, append=append)
)
elif fileext in cad_extensions:
prime.FileIO(self._model).import_cad(
file_name,
prime.ImportCadParams(
self._model, append=append, cad_reader_route=cad_reader_route
),
)
else:
raise Exception("File is not supported")
```

### 💻 Which operating system are you using?

Windows

### 📀 Which ANSYS version are you using?

_No response_

### 🐍 Which Python version are you using?

3.7

### 📦 Installed packages

```shell
n/a
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.