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

33 Ansichten (letzte 30 Tage)
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 ?

Akzeptierte Antwort

Gaetano Formato
Gaetano Formato am 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

Weitere Antworten (2)

Alan Weiss
Alan Weiss am 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 Kommentare
Sleh Eddine Brika
Sleh Eddine Brika am 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
Alan Weiss
Alan Weiss am 3 Nov. 2016
Sorry, I have no idea.
Alan Weiss
MATLAB mathematical toolbox documentation

Melden Sie sich an, um zu kommentieren.


Gaetano Formato
Gaetano Formato am 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 Kommentar
Sleh Eddine Brika
Sleh Eddine Brika am 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.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by