File tree 3 files changed +35
-5
lines changed
3 files changed +35
-5
lines changed Original file line number Diff line number Diff line change @@ -3,7 +3,7 @@ name: Tests
3
3
on : [push, pull_request]
4
4
5
5
jobs :
6
- tests :
6
+ tests-with-conda-install :
7
7
runs-on : ubuntu-latest
8
8
steps :
9
9
- uses : actions/checkout@v3
@@ -18,12 +18,27 @@ jobs:
18
18
- shell : bash -el {0}
19
19
run : |
20
20
mamba info
21
- mamba install -y -c conda-forge -c cadquery cadquery=master
22
- mamba install -y -c conda-forge gmsh
23
- mamba install -y pytest
24
21
python -m pytest -v
25
22
- name : Upload output meshes as artifacts for inspection
26
23
uses : actions/upload-artifact@v3
27
24
with :
28
25
name : exported-meshes
29
26
path : " *.msh"
27
+
28
+ tests-with-pip-install :
29
+ runs-on : ubuntu-latest
30
+ steps :
31
+ - uses : actions/checkout@v3
32
+ - name : Set up Python
33
+ uses : actions/setup-python@v4
34
+ with :
35
+ python-version : 3.11
36
+ - name : Install system dependencies
37
+ run : |
38
+ sudo apt-get update
39
+ sudo apt-get install -y libglu1-mesa
40
+ - name : Install dependencies
41
+ run : |
42
+ python -m pip install .[dev]
43
+ - name : Run tests
44
+ run : python -m pytest -v
Original file line number Diff line number Diff line change
1
+ import tempfile
2
+
1
3
from OCP .TopoDS import TopoDS_Shape
2
4
import cadquery as cq
3
5
import gmsh
@@ -44,7 +46,19 @@ def assembly_to_gmsh(self, mesh_path="tagged_mesh.msh"):
44
46
# All the solids in the current part should be added to the mesh
45
47
for s in obj .moved (loc ).Solids ():
46
48
# Add the current solid to the mesh
47
- gmsh .model .occ .importShapesNativePointer (s .wrapped ._address ())
49
+
50
+ with tempfile .NamedTemporaryFile (suffix = ".brep" ) as temp_file :
51
+ s .exportBrep (temp_file .name )
52
+ gmsh .model .occ .importShapes (temp_file .name )
53
+
54
+ # TODO find a way to check if the OCC in gmsh is compatible with the
55
+ # OCC in CadQuery. When pip installed they tend to be incompatible
56
+ # and this importShapesNativePointer will seg fault. When both
57
+ # packages are conda installed the importShapesNativePointer works.
58
+ # Work around that works in both cases is to write a brep and import
59
+ # it into gmsh. This is slower but works in all cases.
60
+ # gmsh.model.occ.importShapesNativePointer(s.wrapped._address())
61
+
48
62
gmsh .model .occ .synchronize ()
49
63
50
64
# All the faces in the current part should be added to the mesh
Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ name = "assembly_mesh_plugin"
7
7
version = " 0.1.0"
8
8
dependencies = [
9
9
" cadquery" ,
10
+ " gmsh" ,
10
11
]
11
12
requires-python = " >=3.9"
12
13
authors = [
You can’t perform that action at this time.
0 commit comments