# Conversion of .msh to .inp

**URL:** <https://calculix.discourse.group/t/conversion-of-msh-to-inp/1969>\
**Category:** Uncategorized\
**Created:** [December 12, 2023, 2:37pm UTC](https://calculix.discourse.group/t/conversion-of-msh-to-inp/1969 "2023-12-12T14:37:40Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Supriya](https://avatars.discourse-cdn.com/v4/letter/s/5f8ce5/32.png) [@Supriya](https://calculix.discourse.group/u/Supriya)\
**Post date:** [December 12, 2023, 2:37pm UTC](https://calculix.discourse.group/t/conversion-of-msh-to-inp/1969/1 "2023-12-12T14:37:40Z")

</div>

Hello  
I want to convert .msh file to .inp file.How can i do that?

---

<div class="post-metadata">

**Author:** ![JuanP74](https://avatars.discourse-cdn.com/v4/letter/j/b5a626/32.png) [@JuanP74](https://calculix.discourse.group/u/JuanP74)\
**Post date:** [December 12, 2023, 3:10pm UTC](https://calculix.discourse.group/t/conversion-of-msh-to-inp/1969/2 "2023-12-12T15:10:39Z")

</div>

Use gmsh to do that. File\>Export

---

<div class="post-metadata">

**Author:** ![rafal.brzegowy](https://avatars.discourse-cdn.com/v4/letter/r/a9adbd/32.png) [@rafal.brzegowy](https://calculix.discourse.group/u/rafal.brzegowy)\
**Post date:** [December 12, 2023, 5:31pm UTC](https://calculix.discourse.group/t/conversion-of-msh-to-inp/1969/3 "2023-12-12T17:31:04Z")

</div>

Mabey:  
meshio: [GitHub - nschloe/meshio: 🕸 input/output for many mesh formats](https://github.com/nschloe/meshio)  
FEconv: [GitHub - victorsndvg/FEconv: Program feconv is an utility to convert between several mesh and FE field formats, like ANSYS mesh files (.msh), MD Nastran input files (.bdf), I-Deas Universal (.unv), VTK files (.vtk), etc. If you use a Modulef format to store an intermediate mesh (.mfm). It can transform the FE type of a mesh composed of trangles or tetrahedra, to Lagrange P1 or P2, Raviart-Thomas (face) or Whitney (edge) finite elements. It also uses third-party code to perform bandwidth optimization (CutlHill-McKee optimization).](https://github.com/victorsndvg/FEconv)

---

<div class="post-metadata">

**Author:** ![Calc\_em](https://avatars.discourse-cdn.com/v4/letter/c/43a26b/32.png) [@Calc\_em](https://calculix.discourse.group/u/Calc_em)\
**Post date:** [December 12, 2023, 7:26pm UTC](https://calculix.discourse.group/t/conversion-of-msh-to-inp/1969/4 "2023-12-12T19:26:32Z")

</div>

It’s the native format of Gmsh so just open it and export from there. But be careful not to include additional wire and surface elements since Gmsh exports all 1D, 2D and 3D elements by default and physical groups have to be used to limit this to 3D elements only.

---

<div class="post-metadata">

**Author:** ![Supriya](https://avatars.discourse-cdn.com/v4/letter/s/5f8ce5/32.png) [@Supriya](https://calculix.discourse.group/u/Supriya)\
**Post date:** [December 13, 2023, 4:49am UTC](https://calculix.discourse.group/t/conversion-of-msh-to-inp/1969/5 "2023-12-13T04:49:14Z")

</div>

I have written this script to convert .msh file to .inp file which has two physical groups.  
import gmsh

def convert\_msh\_to\_inp(msh\_file, inp\_file):  
# Initialize Gmsh  
gmsh.initialize()

```
try:
    # Load the Gmsh mesh
    gmsh.open(msh_file)

    # Write the Abaqus .inp file
    gmsh.write(inp_file)

finally:
    # Finalize Gmsh
    gmsh.finalize()

print(f'Conversion completed. Output written to {inp_file}')

```

# Example usage:

msh\_file = r"D:\Mesh Files\PhyCheck.msh"  
inp\_file = r"D:\Mesh Files\PhyCheck.inp"  
convert\_msh\_to\_inp(msh\_file, inp\_file)

But here i am getting only physical group data like  
\*Heading  
D:\Mesh Files\test.inp  
\*NODE  
1, -55, 60, 20  
2, -35, 40, 20  
3, -55, 40, 20  
4, -35, 40, 0  
5, -55, 40, 0  
6, -55, 60, 0  
7, -55, 56.666666664585, 20  
8, -55, 53.33333332385, 20  
9, -55, 49.999999976408, 20  
10, -55, 46.666666649088, 20  
11, -55, 43.333333323272, 20  
12, -38.333333348686, 40, 0  
13, -41.66666669263, 40, 0  
14, -45.00000000477, 40, 0  
15, -48.33333333368, 40, 0  
16, -51.66666666606, 40, 0  
17, -37.222222231281, 40, 17.777777768719  
18, -39.444444456895, 40, 15.555555543105  
19, -41.666666687367, 40, 13.333333312633  
20, -43.888888906023, 40, 11.111111093977  
21, -46.111111132215, 40, 8.8888888677846  
22, -48.333333346111, 40, 6.6666666538893  
23, -50.555555560652, 40, 4.4444444393484  
24, -52.777777778888, 40, 2.2222222211115  
25, -35, 40, 16.666666659084  
26, -35, 40, 13.333333319325  
27, -35, 40, 9.9999999692737  
28, -35, 40, 6.6666666458789  
29, -35, 40, 3.3333333233225  
30, -55, 60, 16.666666659084  
31, -55, 60, 13.333333319325  
32, -55, 60, 9.9999999692737  
33, -55, 60, 6.6666666458789  
34, -55, 60, 3.3333333233225  
35, -55, 42.222222232443, 17.777777767557  
36, -55, 44.444444456965, 15.555555543035  
37, -55, 46.666666681804, 13.333333318196  
38, -55, 48.888888911221, 11.111111088779  
39, -55, 51.111111136369, 8.8888888636312  
40, -55, 53.333333356018, 6.6666666439815  
41, -55, 55.55555557256, 4.4444444274399  
42, -55, 57.777777785136, 2.2222222148641  
43, -43.191925618735, 40, 8.0510431843771  
44, -37.762570802238, 40, 5.024856538245  
45, -43.3333333487, 40, 2.8867513275948  
46, -38.110847195172, 40, 12.318473603549  
47, -48.082064451706, 40, 3.545588790629  
48, -37.868879173065, 40, 8.3642888306287  
49, -40.852473937865, 40, 9.9789545654168  
50, -45.337304844744, 40, 5.399445368228  
51, -40.233000409004, 40, 3.2189036556144  
52, -40.387636046825, 40, 6.695477367336  
53, -36.95550277667, 40, 15.130361378756  
54, -50.283079558197, 40, 2.0424510902178  
55, -42.496640053602, 40, 5.2503241806301  
56, -37.440169353442, 40, 2.4401693466456  
57, -45.813876036809, 40, 2.3201941486626  
58, -55, 51.950807352704, 11.801986973345  
59, -55, 54.98703902141, 17.200420437639  
60, -55, 57.113248655573, 11.6666666443  
61, -55, 47.688529288318, 16.888089602738  
62, -55, 56.454411214962, 6.9179355382962  
63, -55, 51.684731490109, 17.123678385939  
64, -55, 50.035674931882, 14.142139820912  
65, -55, 54.598133274425, 9.659139799256  
66, -55, 56.784381876706, 14.756494847528  
67, -55, 53.334425867134, 14.594639556476  
68, -55, 44.871039190017, 18.044284582666  
69, -55, 57.957548914532, 4.7169204299603  
70, -55, 54.756199405308, 12.495785564181  
71, -55, 57.559830639126, 17.559830637652  
72, -55, 57.679558770704, 9.1857611644379  
\*\*\*\*\*\*\* E L E M E N T S \*\*\*\*\*\*\*\*\*\*\*\*\*  
\*ELEMENT, type=CPS3, ELSET=Surface6  
1, 25, 2, 17  
2, 12, 4, 56  
3, 4, 29, 56  
4, 16, 24, 5  
5, 13, 12, 51  
6, 51, 12, 56  
7, 14, 13, 45  
8, 45, 13, 51  
9, 15, 14, 57  
10, 14, 45, 57  
11, 16, 15, 54  
12, 15, 47, 54  
13, 47, 15, 57  
14, 24, 16, 54  
15, 17, 18, 53  
16, 25, 17, 53  
17, 18, 19, 46  
18, 18, 46, 53  
19, 19, 20, 49  
20, 46, 19, 49  
21, 20, 21, 43  
22, 20, 43, 49  
23, 21, 22, 50  
24, 43, 21, 50  
25, 22, 23, 47  
26, 22, 47, 50  
27, 23, 24, 54  
28, 47, 23, 54  
29, 26, 25, 53  
30, 27, 26, 46  
31, 46, 26, 53  
32, 28, 27, 48  
33, 27, 46, 48  
34, 29, 28, 44  
35, 44, 28, 48  
36, 29, 44, 56  
37, 49, 43, 52  
38, 43, 50, 55  
39, 52, 43, 55  
40, 44, 48, 52  
41, 51, 44, 52  
42, 44, 51, 56  
43, 50, 45, 55  
44, 45, 50, 57  
45, 45, 51, 55  
46, 48, 46, 49  
47, 50, 47, 57  
48, 48, 49, 52  
49, 51, 52, 55  
\*ELEMENT, type=CPS3, ELSET=Surface7  
50, 7, 1, 71  
51, 1, 30, 71  
52, 3, 11, 35  
53, 6, 42, 34  
54, 8, 7, 59  
55, 59, 7, 71  
56, 9, 8, 63  
57, 8, 59, 63  
58, 10, 9, 61  
59, 61, 9, 63  
60, 11, 10, 68  
61, 10, 61, 68  
62, 35, 11, 68  
63, 30, 31, 66  
64, 30, 66, 71  
65, 31, 32, 60  
66, 31, 60, 66  
67, 32, 33, 72  
68, 60, 32, 72  
69, 33, 34, 69  
70, 62, 33, 69  
71, 33, 62, 72  
72, 34, 42, 69  
73, 36, 35, 68  
74, 37, 36, 61  
75, 61, 36, 68  
76, 38, 37, 64  
77, 37, 61, 64  
78, 39, 38, 58  
79, 58, 38, 64  
80, 40, 39, 65  
81, 39, 58, 65  
82, 41, 40, 62  
83, 62, 40, 65  
84, 42, 41, 69  
85, 41, 62, 69  
86, 58, 64, 67  
87, 65, 58, 70  
88, 58, 67, 70  
89, 63, 59, 67  
90, 59, 66, 67  
91, 66, 59, 71  
92, 60, 65, 70  
93, 65, 60, 72  
94, 66, 60, 70  
95, 61, 63, 64  
96, 62, 65, 72  
97, 64, 63, 67  
98, 67, 66, 70  
\*ELSET,ELSET=Load  
50, 51, 52, 53, 54, 55, 56, 57, 58, 59,  
60, 61, 62, 63, 64, 65, 66, 67, 68, 69,  
70, 71, 72, 73, 74, 75, 76, 77, 78, 79,  
80, 81, 82, 83, 84, 85, 86, 87, 88, 89,  
90, 91, 92, 93, 94, 95, 96, 97, 98,  
\*ELSET,ELSET=Support  
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,  
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,  
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,  
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,  
41, 42, 43, 44, 45, 46, 47, 48, 49,

But i want whole inp data including surface ,volumes,etc.How can i get that through script.

---

<div class="post-metadata">

**Author:** ![jbr](https://avatars.discourse-cdn.com/v4/letter/j/ecccb3/32.png) [@jbr](https://calculix.discourse.group/u/jbr)\
**Post date:** [December 13, 2023, 11:57pm UTC](https://calculix.discourse.group/t/conversion-of-msh-to-inp/1969/6 "2023-12-13T23:57:48Z")

</div>

You need to define the physical data. gmsh works on physical groups for the export.
