File tree Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Expand file tree Collapse file tree 1 file changed +15
-1
lines changed 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
You can’t perform that action at this time.
0 commit comments