mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: surfaceSubset: add select-by-plane
This commit is contained in:
@ -42,6 +42,7 @@ Description
|
|||||||
#include "treeDataTriSurface.H"
|
#include "treeDataTriSurface.H"
|
||||||
#include "Random.H"
|
#include "Random.H"
|
||||||
#include "volumeType.H"
|
#include "volumeType.H"
|
||||||
|
#include "plane.H"
|
||||||
|
|
||||||
using namespace Foam;
|
using namespace Foam;
|
||||||
|
|
||||||
@ -277,6 +278,31 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (meshSubsetDict.found("plane"))
|
||||||
|
{
|
||||||
|
const dictionary& planeDict = meshSubsetDict.subDict("plane");
|
||||||
|
|
||||||
|
const plane pl(planeDict);
|
||||||
|
const scalar distance(readScalar(planeDict.lookup("distance")));
|
||||||
|
const scalar cosAngle(readScalar(planeDict.lookup("cosAngle")));
|
||||||
|
|
||||||
|
// Select all triangles that are close to the plane and
|
||||||
|
// whose normal aligns with the plane as well.
|
||||||
|
|
||||||
|
forAll(surf1.faceCentres(), faceI)
|
||||||
|
{
|
||||||
|
const point& fc = surf1.faceCentres()[faceI];
|
||||||
|
const point& nf = surf1.faceNormals()[faceI];
|
||||||
|
|
||||||
|
if (pl.distance(fc) < distance && mag(pl.normal() & nf) > cosAngle)
|
||||||
|
{
|
||||||
|
facesToSubset[faceI] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// pick up specified "faces"
|
// pick up specified "faces"
|
||||||
//
|
//
|
||||||
|
|||||||
@ -38,6 +38,27 @@ surface
|
|||||||
outside yes;
|
outside yes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Select triangles on plane
|
||||||
|
plane
|
||||||
|
{
|
||||||
|
planeType embeddedPoints;
|
||||||
|
embeddedPointsDict
|
||||||
|
{
|
||||||
|
//point1 (-937.259845440205 160.865349115986 240.738791238078);
|
||||||
|
//point2 (-934.767379895778 9.63875523747379 14.412359671298);
|
||||||
|
//point3 (44.4744688899417 121.852927962709 182.352485273106);
|
||||||
|
point1 (-957.895294591874 242.865936478961 162.286611511875);
|
||||||
|
point2 (-961.43140327772 4.53895551562943 3.04159982093444);
|
||||||
|
point3 (91.2414146173805 72.1504381996692 48.2181961945329);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Distance from plane
|
||||||
|
distance 0.1;
|
||||||
|
// Normal difference to plane
|
||||||
|
cosAngle 0.99;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Extend selection with edge neighbours
|
// Extend selection with edge neighbours
|
||||||
addFaceNeighbours no;
|
addFaceNeighbours no;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user