FSselect

by Tim C. Lueth, SG-Lib Toolbox: SolidGeometry 5.6 - FS/Feature Surfaces
Introduced first in SolidGeometry 5.1, Creation date: 2021-07-14, Last change: 2025-09-15

Selects features surfaces based on

Description

There are several functions for the selection of surfaces, features, and frames
FSofSGnormal - uses a normal vector for the selection
FSselect - should simply select surfaces out of a larger set of surfaces
FSfeature - should return properties of different data types
see also all SGTset functions
=======================================================================
The 2nd of a set of functions aimed directly at the analysis and formal specification of surfaces. This is necessary to give a clear structure to the formal addressing of surfaces. Concept similar to TofSG
There are some features that only run on one surface, but also others that combine multiple surfaces. Maybe this will become a fourth function.
Current implemented selectors 'sizedescend', 'sizeascend', 'sizemin', 'sizemax', 'front','back', 'numholes''



See Also: FSfeature , FSofSGnormal , FSofSG , FSofSGfacet , CPLofFS

Example Illustration

 missing image of FSselect(SG,FIL,rel,

Syntax

[FILN,FLHoles,SG]=FSselect(SG,[FIL,rel,"array","debug"])

Input Parameter

SG: Solid Geometry
FIL: Cell list of facet indices, or normal vector for FSofSGnormal
rel: list of descriptors, can also start with an angle of FIL is a normal vector
"array": if used, instead of a ccell list, an array of Face indices is returned
"debug": if used, the selection is shown

Output Parameter

FILN: unsorted cell list of FILs for the selected surfaces - just the
FLHoles: unsorted cell list of FILs for hiles in the selected surfaces
SG:

Examples


load JACO_robot.mat
CPLofFS(JC0,FSselect(JC0,[0 0 -1],'front',-1)) % all within a millimeter (negtive value)
FSofSGnormal(JC0,[0 0 1]); FIL=ans
FSofSGnormal(JC0,[1 0 0]); FIL=ans
FSselect(JC0,FIL,'areamax',4SGofCPLz(CPLsample(12),5); SG=ans;

CPLofFS(SG,FSselect(SG,[0 0 -1]))
00,'areadescend',1:10,'holesnum',1:10);
FSselect(JC0,[1 0 0],'areamax',400,'areadescend',1:10,'holesnum',1:10);
FSselect(JC0,[1 0 0],pi/2.2,'areamax',400,'areadescend',1:10,'holesnum',1:10);
FSselect(JC0,[1 0 0],pi/2.2,'areamax',400,'areadescend',1:10,'holesnum',1:10,'front',1:2); % 1 and 2
FSselect(JC0,[1 0 0],pi/2.2,'areamax',400,'areadescend',1:10,'holesnum',1:10,'front',-5); % 5mm distance




Copyright 2021-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

Last html export of this page out of FM database by TL: 2025-09-21