EFLselectA
by Tim C. Lueth, SG-Lib Toolbox: SolidGeometry 5.6 - Analyzing function
Introduced first in SolidGeometry 1.0, Creation date: 2012-04-22, Last change: 2025-09-14
reduce the extended facet list to areas of a minimal size
Description
This function is used to find only those facet that could belong to areas of a minimal size. This procedure reduced the search time in ULgenerate tremendously.
See Also:
Example Illustration
Syntax
[FL,RET,m,maxA,AL]=EFLselectA(EFL,Amin)
Input Parameter
EFL: | | Extend facet list from EFLgenerate |
Amin: | | Minimum considered union area size |
Output Parameter
FL: | | Selected facet list |
RET: | | Extended facet list of the selected facets |
m: | | number of areas |
maxA: | | Maximum found area size |
AL: | | Distribution of area size |
Copyright 2012-2025 Tim C. Lueth. All rights reserved. The code is the property of Tim C. Lueth and may not be redistributed or modified without explicit written permission. This software may be used free of charge for academic research and teaching purposes only. Commercial use, redistribution, modification, or reverse engineering is strictly prohibited. Access to source code is restricted and granted only under specific agreements. For licensing inquiries or commercial use, please contact: Tim C. Lueth
Algorithm (Workflow)
This function, EFLselectA, is designed to filter an extended facet list (EFL) to retain only those facets that belong to areas of a minimum specified size, Amin. This process optimizes search time in related procedures.
Input Parameters
- EFL: The extended facet list, typically generated by a function like
EFLgenerate.
- Amin: The minimum area size to consider for selection.
Output Results
- FL: The list of selected facets.
- RET: The extended facet list of the selected facets.
- m: The number of areas that meet the criteria.
- maxA: The maximum area size found.
- AL: The distribution of area sizes.
Algorithm Steps
- Determine the number of rows,
n, in EFL.
- Sort
EFL based on columns 4, 5, 6, and 7.
- Initialize
UFL by appending two zero columns to EFL.
- Initialize variables:
v as the first row's columns 4 to 6, k as 1, and A as 0.
- Iterate over each row in
EFL:
- If the current row's columns 4 to 6 match
v, update UFL with k and accumulate area A.
- If not, update
v to the current row's columns 4 to 6, increment k, and reset A.
- Sort
UFL by columns 9 and 8 in descending order.
- Create a logical array
XFL where areas are greater than or equal to Amin.
- Determine
maxA as the maximum value in column 9 of UFL.
- Extract unique area sizes into
AL, removing zero if present.
- Extract unique area indices into
UI, removing zero if present.
- Calculate the number of areas,
m, as the size of UI.
- Create a logical matrix
ZFL to filter UFL based on UI.
- Generate
RET by applying ZFL to the first 7 columns of UFL and remove duplicates.
- Generate
FL by applying ZFL to the first 3 columns of UFL and remove duplicates.
Algorithm explaination created using ChatGPT on 2025-08-19 08:25. (Please note: No guarantee for the correctness of this explanation)
Last html export of this page out of FM database by TL: 2025-09-21