How to access to the vertices and facets of each face detected using importGeometry (PDE toolbox) ?

17 views (last 30 days)
Using importGeometry and pdegplot (PDE toolbox),
N = 3;
model = createpde(N);
importGeometry(model,'BracketWithHole.stl');
pdegplot(model,'FaceLabels','on')
the geometry is decomposed into different faces as shown in the picture. How to access to the vertices and the facets (triangles of the mesh) of each labeled face ?

Accepted Answer

Gaetano Formato
Gaetano Formato on 8 Nov 2016
Hello,
I was able to associate nodes to faces thanks to this answer:
https://it.mathworks.com/matlabcentral/answers/310479-how-to-assign-nodes-to-faces-of-a-3d-tetrahedral-mesh-pdetool?s_tid=srchtitle
Thank you for your time.
Gaetano

More Answers (2)

Alan Weiss
Alan Weiss on 2 Nov 2016
First you have to create the mesh:
generatemesh(model);
If you have the latest MATLAB version (R2016b), you can view the mesh nodes and element labels using pdeplot3D. Sorry, I know of no way of obtaining the labels programmatically.
Alan Weiss
MATLAB mathematical toolbox documentation
  2 Comments
Sleh Eddine Brika
Sleh Eddine Brika on 2 Nov 2016
Thanks for your answer, but this is not what I meant. I know the way how to get the facets and the vertices of the whole 3d object as shown here
model = createpde(1);
b=importGeometry(model,'file.stl');
g=model.Geometry;
[F, V] = g.allDisplayFaces();% V for vertices and F for the facets
[Ex, Ey, Ez] = g.allDisplayEdges();% Here we have the edges
pdegplot(model);
There is a built-in function that decompose the STL file into different faces (as shown in the picture). What I need is, for example I want to get the facets belonging to Face 4

Sign in to comment.


Gaetano Formato
Gaetano Formato on 3 Nov 2016
Hello,
I am facing the same problems. I would like to assign boundary nodes to faces in order to describe the solution over the faces. It seems impossible that there is no way to distinguish the boundary nodes from the face label. The geometry is imported as STL file. Thank you for your attention
Best Regards
Gaetano
  1 Comment
Sleh Eddine Brika
Sleh Eddine Brika on 4 Nov 2016
Hello, there is a way to get all the faces edges (boundary), but we cannot know the edges of each face.
model = createpde(1);
b=importGeometry(model,'cube.stl');
g=model.Geometry;
[F, V] = g.allDisplayFaces();% V for vertices and F for the facets
[Ex, Ey, Ez] = g.allDisplayEdges();% Here we have the edges
pdegplot(model);
And if you check the length of edges matrix you will find 12 which corresponds to the edges number of a cube.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!