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