diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/Make/options b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/Make/options index 322709bfff..a5976d53f8 100644 --- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/Make/options +++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/Make/options @@ -1,11 +1,7 @@ EXE_INC = \ -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/meshTools/lnInclude \ - -I$(LIB_SRC)/edgeMesh/lnInclude \ - -I$(LIB_SRC)/triSurface/lnInclude \ - -I$(LIB_SRC)/surfMesh/lnInclude + -I$(LIB_SRC)/surfMesh/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude LIB_LIBS = \ - -lmeshTools \ - -ledgeMesh \ - -ltriSurface + -lmeshTools diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.C b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.C index d9fb9b1dde..7b2b0c8ad0 100644 --- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.C +++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.C @@ -53,7 +53,8 @@ Foam::surfaceFeaturesExtraction::extractFromFile::extractFromFile : method() { - const dictionary& coeffDict = dict.subDict("extractFromFileCoeffs"); + const dictionary& coeffDict = + dict.optionalSubDict("extractFromFileCoeffs"); coeffDict.lookup("featureEdgeFile") >> featureEdgeFile_; coeffDict.readIfPresent("geometricTestOnly", geometricTestOnly_); diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.H b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.H index bca148439f..83853fab2d 100644 --- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.H +++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromFile.H @@ -27,8 +27,11 @@ Class Description Run-time selectable surface feature extraction. + Mandatory dictionary entries: "featureEdgeFile". + Optional dictionary entries: "geometricTestOnly". + SourceFiles - extractionMethod.C + extractFromFile.C \*---------------------------------------------------------------------------*/ @@ -36,8 +39,6 @@ SourceFiles #define surfaceFeaturesExtraction_extractFromFile_H #include "surfaceFeaturesExtraction.H" -#include "dictionary.H" -#include "Switch.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.C b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.C index 887e9a4d65..c49db760a9 100644 --- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.C +++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.C @@ -52,7 +52,7 @@ Foam::surfaceFeaturesExtraction::extractFromNone::extractFromNone : method() { - const dictionary& coeffDict = dict.subOrEmptyDict("extractFromNoneCoeffs"); + const dictionary& coeffDict = dict.optionalSubDict("noneCoeffs"); coeffDict.readIfPresent("includedAngle", includedAngle_); coeffDict.readIfPresent("geometricTestOnly", geometricTestOnly_); diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.H b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.H index da80a3c624..9f9b94410f 100644 --- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.H +++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromNone.H @@ -25,10 +25,13 @@ Class Foam::surfaceFeaturesExtraction::extractFromNone Description - Run-time selectable surface feature extraction. + Run-time selectable surface feature extraction - no extraction. + Primarily useful with self-intersection methods. + + Optional dictionary entries: "includedAngle", "geometricTestOnly". SourceFiles - extractionMethod.C + extractFromNone.C \*---------------------------------------------------------------------------*/ @@ -36,10 +39,6 @@ SourceFiles #define surfaceFeaturesExtraction_extractFromNone_H #include "surfaceFeaturesExtraction.H" -#include "dictionary.H" -#include "Switch.H" -#include "triSurface.H" -#include "edgeIntersections.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.C b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.C index 6621d6c931..35b5dc0e3f 100644 --- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.C +++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.C @@ -52,7 +52,8 @@ Foam::surfaceFeaturesExtraction::extractFromSurface::extractFromSurface : method() { - const dictionary& coeffDict = dict.subDict("extractFromSurfaceCoeffs"); + const dictionary& coeffDict = + dict.optionalSubDict("extractFromSurfaceCoeffs"); coeffDict.lookup("includedAngle") >> includedAngle_; coeffDict.readIfPresent("geometricTestOnly", geometricTestOnly_); diff --git a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.H b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.H index e007a8d3b9..3ad3412819 100644 --- a/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.H +++ b/applications/utilities/surface/surfaceFeatureExtract/extractionMethod/extractFromSurface.H @@ -25,10 +25,13 @@ Class Foam::surfaceFeaturesExtraction::extractFromSurface Description - Run-time selectable surface feature extraction. + Run-time selectable surface feature extraction - extract from surface. + + Mandatory dictionary entries: "includedAngle". + Optional dictionary entries: "geometricTestOnly". SourceFiles - extractionMethod.C + extractFromSurface.C \*---------------------------------------------------------------------------*/ @@ -36,10 +39,6 @@ SourceFiles #define surfaceFeaturesExtraction_extractFromSurface_H #include "surfaceFeaturesExtraction.H" -#include "dictionary.H" -#include "Switch.H" -#include "triSurface.H" -#include "edgeIntersections.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict index 362e7f99ee..6532215298 100644 --- a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict +++ b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtractDict @@ -19,17 +19,22 @@ surface1.stl // How to obtain raw features (extractFromFile | extractFromSurface | none) extractionMethod extractFromSurface; + // Mark edges whose adjacent surface normals are at an angle less + // than includedAngle as features + // - 0 : selects no edges + // - 180: selects all edges + includedAngle 120; + + // Do not mark region edges + geometricTestOnly yes; + + /* alternative specification as coeff dictionary extractFromSurfaceCoeffs { - // Mark edges whose adjacent surface normals are at an angle less - // than includedAngle as features - // - 0 : selects no edges - // - 180: selects all edges includedAngle 120; - // Do not mark region edges geometricTestOnly yes; - } + } */ // Generate additional features from self-intersect selfIntersection false; @@ -69,27 +74,27 @@ surface2.nas // Use a plane to select feature edges // (normal)(basePoint) // Keep only edges that intersect the plane will be included - plane (1 0 0)(0 0 0); + plane (1 0 0)(0 0 0); // Select feature edges using a box // (minPt)(maxPt) // Keep edges inside the box: - insideBox (0 0 0)(1 1 1); + insideBox (0 0 0)(1 1 1); // Keep edges outside the box: - outsideBox (0 0 0)(1 1 1); + outsideBox (0 0 0)(1 1 1); // Keep nonManifold edges (edges with >2 connected faces where // the faces form more than two different normal planes) - nonManifoldEdges yes; + nonManifoldEdges yes; // Keep open edges (edges with 1 connected face) - openEdges yes; + openEdges yes; } addFeatures { // Add (without merging) another extendedFeatureEdgeMesh - name axZ.extendedFeatureEdgeMesh; + name axZ.extendedFeatureEdgeMesh; // Optionally flip features (invert all normals, making // convex<->concave etc) @@ -149,19 +154,10 @@ dummyName // Tolerance for surface intersections tolerance 1e-3; - extractFromSurfaceCoeffs - { - includedAngle 120; + includedAngle 120; - // Do not mark region edges - geometricTestOnly yes; - } - - extractFromNoneCoeffs - { - includedAngle 120; - - } + // Do not mark region edges + geometricTestOnly yes; // Write options @@ -180,7 +176,7 @@ dummyName // surfaces { - extractionMethod extractFromNone; + extractionMethod none; surfaces (surface1.stl surface2.nas); @@ -193,10 +189,12 @@ surfaces // Tolerance for surface intersections tolerance 1e-3; - extractFromNoneCoeffs + /* alternative specification as coeff dictionary + noneCoeffs { includedAngle 0; } + */ // Write options