Deleting Internal Faces in a Mesh

I have a mesh which is composed of contiguous cubes, like this example (top right image):
I need to remove all the shared faces of the cubes, so the structure becomes one continuous solid.
Is there a way to select all the shared faces of adjacent cubes and remove them?

3 commentaires

John D'Errico
John D'Errico le 6 Sep 2014
It IS easy to remove shared faces. (Despite what Star said.) At least relatively easy. It would take only a few lines of code. However, until I know how your mesh is defined, I can't really answer that easily.
Do you have a list of cubes? For example, a cubic mesh would be defined in terms of a list of vertices, and a set of 8 indexes into that list which define the 8 corners of each cube. If so, then the removal of interior faces is trivial.
So if you can be more specific, then I can help you.
Star Strider
Star Strider le 6 Sep 2014
Star said: ‘It’s difficult to be specific without your code ...’
John or Star: can you tell me how you would remove the internal faces from the geometry created with this:
pdem = createpde;
g = multicuboid(40,40,0.1*ones(10,1),'Zoffset',[0:0.1:0.9]);
pdem.Geometry = g;
generateMesh(pdem, 'Hmax',4,'Hmin',4);
Thanks!

Connectez-vous pour commenter.

Réponses (1)

Star Strider
Star Strider le 6 Sep 2014
It’s difficult to be specific without your code, but if you’re using the surf function, see if:
surf( ... , 'FaceColor','interp', ... )
improves things.

Community Treasure Hunt

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

Start Hunting!

Translated by