Last change of this documentation page: 2023-10-02 of SolidGeometry 5.3
SGofGeoTIFF(I)- creates a solid geometry from a depth image

SGofGeoTIFF(I)% SGofGeoTIFF(I) - creates a solid geometry from a depth image
% (by Tim Lueth, VLFL-Lib, 2023-AUG-14 as class: SURFACES)
%
% Es ist seit dem 1.1.2023 möglich, Geodaten , also Digitale Geo Maps
% (DGM) in der Auflösung 1x1m = DGM1
% % von der Webseite https://geodaten.bayern.de/opengeodata/ zu holen
%
% (Status of: 2023-09-11)
%
% Introduced first in SolidGeometry 5.3
%
% See also: GeoTIFFBayern, SGshrinktofit, SGdemoulding
%
% SGN=SGofGeoTIFF(I)
% === INPUT PARAMETERS ===
% I: Depth Image
% === OUTPUT RESULTS ======
% SGN: Solid Geometry
%
% Additional Hyperlinks:
% Bayernwolke Niederaudorf
%
% EXAMPLE:
% I=GeoTIFFBayern(737,5284,1); SGofGeoTIFF(I);
% I=GeoTIFFBayern(736:737,5283:5284,1); SGofGeoTIFF(I); SGN=ans;
% SGshrinktofit(SGN,200); SGS=ans;
% SGdemoulding(SGS); SGD=ans;
%
% See also: GeoTIFFBayern, SGshrinktofit, SGdemoulding
%
%
% Copyright 2023 Tim C. Lueth

GeoTIFFBayern(L,B,Res)- load GeoTIFF Data from the Bayern cloud

GeoTIFFBayern(L,B,Res)% GeoTIFFBayern(L,B,Res) - load GeoTIFF Data from the Bayern cloud
% (by Tim Lueth, VLFL-Lib, 2023-AUG-14 as class: SURFACES)
%
% Unclear how long this data is available (for free) (Status of:
% 2023-08-14)
%
% Introduced first in SolidGeometry 5.3
%
% See also: VLwarpgrid, FLofVLmeshgrid, SGofGeoTIFF, SGshrinktofit,
% SGdemoulding
%
% I=GeoTIFFBayern([L,B,Res])
% === INPUT PARAMETERS ===
% L: Longitude; default is 737 (Niederaudorf)
% B: Latitude; default is 5284 (Niederaudorf)
% Res: Resolution default is 1
% === OUTPUT RESULTS ======
% I: Image of the selected
%
% Additional Hyperlinks:
% OpenGeodata of Bayern
%
% EXAMPLE:
% GeoTIFFBayern(737,5284,1);I=ans; % Geotiff of "Niederaudorf"
% GeoTIFFBayern(734:737,5283:5285);I=ans % Geotiff of "Wildbarren"
% VLwarpgrid(I,'','','',true); VL=ans;
%
%
% See also: VLwarpgrid, FLofVLmeshgrid, SGofGeoTIFF, SGshrinktofit,
% SGdemoulding
%
%
% Copyright 2023 Tim C. Lueth

FLofVLmeshgrid(VL,dim1,dim2)- crestes a fact list for a vertex list that was created from a depth image

FLofVLmeshgrid(VL,dim1,dim2)% FLofVLmeshgrid(VL,dim1,dim2) - crestes a fact list for a vertex list that was created from a depth image
% (by Tim Lueth, VLFL-Lib, 2023-AUG-13 as class: SURFACES)
%
% Introduced first in SolidGeometry 5.3
%
% See also: VLwarpgrid, GeoTIFFBayern, SGofGeoTIFF
%
% FL=FLofVLmeshgrid(VL,[dim1,dim2])
% === INPUT PARAMETERS ===
% VL: Vertex list of a surface that was created from a depth image
% dim1: Optional dimension 1 of the image
% dim2: Optional dimension 2 of the image
% === OUTPUT RESULTS ======
% FL: Facet list created by connecting 4 neighbar points
%
% Additional Hyperlinks:
% Geodata of Bayern - Bayernwolke
%
% EXAMPLE:
% I=GeoTIFFBayern(737,5284,1);
% SG.VL=VLwarpgrid(I,'','','',true);
% SG.FL=FLofVLmeshgrid(SG.VL,size(I,2));
% SGfigure(30,30); SGplotalpha(SG,'w');
%
%
% See also: VLwarpgrid, GeoTIFFBayern, SGofGeoTIFF
%
%
% Copyright 2023 Tim C. Lueth

SGcableclip (BDW)- returns cableclip that can be fixed in 90 degree by a nail

SGcableclip (BDW)% SGcableclip (BDW) - returns cableclip that can be fixed in 90 degree by a nail
% (by Tim Lueth, VLFL-Lib, 2023-AUG-08 as class: PARAMETRIC DESIGN)
%
% Tutorial fnctn (Status of: 2023-08-09)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGbookwedge, SGhandrailclamp, SGmultisocketclamp
%
% SGcableclip([BDW])
% === INPUT PARAMETERS ===
% BDW: Nail length, Diameter of cable, wall thickness; default is [3 5 2]
%
% EXAMPLE:
% SGcableclip([03 5 3])
% SGcableclip([05 5 3])
% SGcableclip([10 5 3])
%
% See also: SGbookwedge, SGhandrailclamp, SGmultisocketclamp
%
%
% Copyright 2023 Tim C. Lueth

SGmultisocketclamp(xywFd)- returns a clamp to fix a multisocket under a desktop table plate

SGmultisocketclamp(xywFd)% SGmultisocketclamp(xywFd) - returns a clamp to fix a multisocket under a desktop table plate
% (by Tim Lueth, VLFL-Lib, 2023-AUG-07 as class: PARAMETRIC DESIGN)
%
% Tutorial fnctn, show the use of forces for cloip clamps (Status of:
% 2023-08-09)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGbookwedge, SGhandrailclamp, SGcableclip
%
% SG=SGmultisocketclamp([xywFd])
% === INPUT PARAMETERS ===
% xywFd: [x y wall Force opening of the clamp; default is [57 42 2 20 10]
% === OUTPUT RESULTS ======
% SG: Solid Geometry
%
% EXAMPLE:
% SGmultisocketclamp([57 42 2 20 10 5]) % M5 screws
% SGmultisocketclamp([57 42 2 20 10 0],[81 42 2 20 10 0]) % Double Clamp
% SGmultisocketclamp([57 42 2 20 10 90],[81 42 2 20 10 0]) % Doube clamp rotatete 90 degree
%
% See also: SGbookwedge, SGhandrailclamp, SGcableclip
%
%
% Copyright 2023 Tim C. Lueth

pofSG(SG,rel)- returns a position based on spatial relations of SGtransrelSG

pofSG(SG,rel)% pofSG(SG,rel) - returns a position based on spatial relations of SGtransrelSG
% (by Tim Lueth, VLFL-Lib, 2023-AUG-07 as class: KINEMATICS AND FRAMES)
%
% based on moving a infinity small solid (Status of: 2023-08-10)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGtransrelSG
%
% p=pofSG(SG,[rel])
% === INPUT PARAMETERS ===
% SG: Solid
% rel: spatial relations valid in SGtransrelSG
% === OUTPUT RESULTS ======
% p: [x y z], coordinate
%
% EXAMPLE:
% pofSG(SGsample(4),'ontop','right')
%
% See also: SGtransrelSG
%
%
% Copyright 2023 Tim C. Lueth

SGbookwedge(z,r)- returns a wedge for a book or a tablet

SGbookwedge(z,r)% SGbookwedge(z,r) - returns a wedge for a book or a tablet
% (by Tim Lueth, VLFL-Lib, 2023-AUG-07 as class: PARAMETRIC DESIGN)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGmultisocketclamp, SGhandrailclamp, SGcableclip
%
% SG=SGbookwedge([z,r])
% === INPUT PARAMETERS ===
% z: [height-front distance height-back thickness]; default is [20 200 35
% 2]
% r: radius; default is 0
% === OUTPUT RESULTS ======
% SG: Solid Geometry
%
% EXAMPLE:
% SGbookwedge([20 200 35])
%
% See also: SGmultisocketclamp, SGhandrailclamp, SGcableclip
%
%
% Copyright 2023 Tim C. Lueth

SGhandrailclamp(xywF,"count")- An example for a snap-in solution of a handrail-adapter for a specified force

SGhandrailclamp(xywF,% SGhandrailclamp(xywF,"count") - An example for a snap-in solution of a handrail-adapter for a specified force
% (by Tim Lueth, VLFL-Lib, 2023-AUG-06 as class: PARAMETRIC DESIGN)
%
% The calculation of the snap force is related to a 100% filling. (Status
% of: 2023-08-07)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGmultisocketclamp, SGbookwedge, SGcableclip
%
% SG=SGhandrailclamp([xywF,"count"])
% === INPUT PARAMETERS ===
% xywF: [x y w F]; default is [52mm 32mm 2m 20N]
% "count": if used a countersunk head screw is used instead of a
% cylindric head screw
% === OUTPUT RESULTS ======
% SG: Solid Geometry
%
% EXAMPLE:
% SGhandrailclamp([52 32 2 20]); % DIN 985 cylindric head
% SGhandrailclamp([52 32 2 20],'count'); % DIN 7991 countersunk head
%
% See also: SGmultisocketclamp, SGbookwedge, SGcableclip
%
%
% Copyright 2023 Tim C. Lueth

FLofCVLneigborpoints(CVL)- cresting faces between threee suceeding points of a contour

FLofCVLneigborpoints(CVL)% FLofCVLneigborpoints(CVL) - cresting faces between threee suceeding points of a contour
% (by Tim Lueth, VLFL-Lib, 2023-AUG-04 as class: SURFACES)
%
% extracted from VLedgeNormal
% FLofn
% FLofVL => Obsolete Simple delaunay
% FLofCVL => Closing a 3D Contour
% FLofCVLneigborpoints (Status of: 2023-08-04)
%
% Introduced first in SolidGeometry 5.3
%
% See also: FLofVL, FLofCVL
%
% FL=FLofCVLneigborpoints(CVL)
% === INPUT PARAMETERS ===
% CVL: 3D Point list
% === OUTPUT RESULTS ======
% FL: Facet list combining three neigborpoint [i-1 i i+1]
%
% EXAMPLE:
% FLofCVL(PLcircle(1))
% FLofCVLneigborpoints(PLcircle(1))
%
% See also: FLofVL, FLofCVL
%
%
% Copyright 2023 Tim C. Lueth

Poseflip(PS,nn)- flips the direction of pose vectors in a Pose struct

Poseflip(PS,nn)% Poseflip(PS,nn) - flips the direction of pose vectors in a Pose struct
% (by Tim Lueth, VLFL-Lib, 2023-JUL-24 as class: KINEMATICS AND FRAMES)
%
% This fnctn just flips the direction of a pose: Start and end points A
% and B (Status of: 2023-07-27)
%
% Introduced first in SolidGeometry 5.3
%
% See also: PosetransT, PosetransrelCPLE
%
% PS=Poseflip(PS,[nn])
% === INPUT PARAMETERS ===
% PS: Pose struct with A and B fields to describe Poses
% nn: list of poses to flip; default is all
% === OUTPUT RESULTS ======
% PS: Pose with fliped direction
%
% EXAMPLE:
% Posesample(17);PS=ans;
% Poseflip(PS,3) % Be aware what happend with the Contour of the Eeffector CPLE
%
% See also: PosetransT, PosetransrelCPLE
%
%
% Copyright 2023 Tim C. Lueth

ELhistogram(EL,)- returns a list o nodes in an edge list and how often it was used

ELhistogram(EL,)% ELhistogram(EL,) - returns a list o nodes in an edge list and how often it was used
% (by Tim Lueth, VLFL-Lib, 2023-JUL-17 as class: EDGE LISTS)
%
% Introduced first in SolidGeometry 5.3
%
% See also: ELgraphleafs, ELplot
%
% [nh]=ELhistogram(EL,[])
% === INPUT PARAMETERS ===
% EL: Edge list
% === OUTPUT RESULTS ======
% [nh]: list of [nodenumber usage]
%
% EXAMPLE:
% A=SGbox; ELofFL(A.FL); EL=ans, view(-30,30); ELhistogram(EL)
%
% See also: ELgraphleafs, ELplot
%
%
% Copyright 2023 Tim C. Lueth

ELgraphleafs(EL,rekurs)- separates open branches in a edge list tree

ELgraphleafs(EL,rekurs)% ELgraphleafs(EL,rekurs) - separates open branches in a edge list tree
% (by Tim Lueth, VLFL-Lib, 2023-JUL-16 as class: KINEMATICS AND FRAMES)
%
% used for kinematics analysis (Status of: 2023-07-16)
%
% Introduced first in SolidGeometry 5.3
%
% See also: ELreconnect, ELofELmesh, ELleafs
%
% [ELlf,ELtr,SIL,knod,leaf]=ELgraphleafs(EL,[rekurs])
% === INPUT PARAMETERS ===
% EL: Edge List
% rekurs: if true; the remaining tree contains just closed loops
% === OUTPUT RESULTS ======
% ELlf: AL Branches of the leaves sorted outwards
% ELtr: remaining tree of the tree unchanged sorted by loops if
% rekursively
% SIL: Select index list; undependent
% knod: list of node
% leaf: list of leafs (ELlf(:,2))
%
% EXAMPLE:
% ELgraphleafs(ELofn(10),true)
%
% See also: ELreconnect, ELofELmesh, ELleafs
%
%
% Copyright 2023 Tim C. Lueth

SGanalyzecrosscenter(SG,isexact)- approximates the center points of intruding surfaces

SGanalyzecrosscenter(SG,isexact)% SGanalyzecrosscenter(SG,isexact) - approximates the center points of intruding surfaces
% (by Tim Lueth, VLFL-Lib, 2023-JUL-10 as class: KINEMATICS AND FRAMES)
%
% time consuming fnctn (Status of: 2023-07-11)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGsurfaces, SGintersectFacetPoints
%
% [CLL,SGB,BB]=SGanalyzecrosscenter(SG,[isexact])
% === INPUT PARAMETERS ===
% SG: Solid Geometry consisting of overlapping separated surfaces
% isexact: if true; the real surface instead of BB is used; default is
% false
% === OUTPUT RESULTS ======
% CLL: collison list [ind-A ind-B [x y z] vol-A vol-B]
% SGB: cell list of surfaces of SG
% BB: cell list of bounding boxes of SG
%
% EXAMPLE:
% SG=SGreadSTL('/Volumes/LUETH-WIN/STL Wenckstern Hotrod/human-model-of-a-soldier-or-guard-1/Soldierwgun.STL');
%
% SGanalyzecrosscenter(SG,false);
%
%
% See also: SGsurfaces, SGintersectFacetPoints
%
%
% Copyright 2023 Tim C. Lueth

FSsample(Nr,T,rF)- create open surfaces (no solids) with the parameter to create missing faces etc.

FSsample(Nr,T,rF)% FSsample(Nr,T,rF) - create open surfaces (no solids) with the parameter to create missing faces etc.
% (by Tim Lueth, VLFL-Lib, 2023-JUN-20 as class: SURFACES)
%
% Fnctn to create surfaces no solid with the parameter to create errors
% (Status of: 2023-06-29)
%
% Introduced first in SolidGeometry 5.3
%
% See also: CPLsample, CSGsample, CVLsample, CVLzsample, PLsample,
% PLsampletriangles, SGCLsample, SGcmdsample, SGcolorsample,
% SGerrorsample, SSGjacosample, SGsample, Tsample, VLFLsample,
% VLFLsamplecircles, VLsample, VLsampletriangles
%
% [VL,FL,SG,CVL]=FSsample([Nr,T,rF])
% === INPUT PARAMETERS ===
% Nr: Sample number
% T: optional position in space
% rF: number of missing triangles
% === OUTPUT RESULTS ======
% VL: Vertex list; or solid if nargout<2
% FL: Facet list
% SG: Solid Geometry struct
% CVL: Opben boundary als CVL
%
% EXAMPLE:
% FSsample(6,'',10); SG=ans; SGrepairFLsimple(SG)
%
% See also: CPLsample, CSGsample, CVLsample, CVLzsample, PLsample,
% PLsampletriangles, SGCLsample, SGcmdsample, SGcolorsample,
% SGerrorsample, SSGjacosample, SGsample, Tsample, VLFLsample,
% VLFLsamplecircles, VLsample, VLsampletriangles
%
%
% Copyright 2023 Tim C. Lueth

SGremedgepoints(SG,alpha,minf,"repair")- returns a surface model without edge points on straigt lines, but with surface points that are inside

SGremedgepoints(SG,alpha,minf,% SGremedgepoints(SG,alpha,minf,"repair") - returns a surface model without edge points on straigt lines, but with surface points that are inside
% (by Tim Lueth, VLFL-Lib, 2023-JUN-10 as class: SURFACES)
%
% This fnctn is useful, if STEP files are converted into STL files, and
% some boundary edges cannot be fused since, there are unnecessary
% auxilariy points along straigth lines (Status of: 2023-06-10)
%
% Introduced first in SolidGeometry 5.3
%
% See also: VLFLremsurfpoints, SGremsurfpoints, SGofpdemodel,
% SGremsurfedgepoints
%
% [SGN,FLN,FSi]=SGremedgepoints(SG,[alpha,minf,"repair"])
% === INPUT PARAMETERS ===
% SG: Solid Geometry surface model
% alpha: alpha angle for feature surface; default is 0.01
% minf: minimum facets per face; default is 5; smalles value
% "repair": if used, the fnctn SGrepairFLsimple is called in the end
% === OUTPUT RESULTS ======
% SGN: New surface model with reduced vertices and faces
% FLN: Reduced Facet list based on the original vertex list
% FSi: Feature surface index list
%
% EXAMPLE: Remove surfpoints on the line:
% A=SGlinkage(5,30,5)
% model=pdemodelofSG(A,1)
% SGofpdemodel(model); B=ans
% SGremedgepoints(B)
% SGmakedoublevertex(SGbox('noframe'),1,.76,0.01,'auxc',1,'auxg',2.3); SG=ans
% SGremedgepoints(SG);
%
% See also: VLFLremsurfpoints, SGremsurfpoints, SGofpdemodel,
% SGremsurfedgepoints
%
%
% Copyright 2023 Tim C. Lueth

SGmakedoublefaces(SG,fi,alpha,d,"flip","auxc","auxg")- move a number faces with slightly different position (creating errors)

SGmakedoublefaces(SG,fi,alpha,d,% SGmakedoublefaces(SG,fi,alpha,d,"flip","auxc","auxg") - move a number faces with slightly different position (creating errors)
% (by Tim Lueth, VLFL-Lib, 2023-JUN-09 as class: SURFACES)
%
% Family of error creating fnctns for testing
% SGmakemissingvertex
% SGmakemissingfacet
% SGmakedoublevertex
% SGmakedoublefacets
%
% (Status of: 2023-06-09)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGshortopti, SGmakemissingvertex, SGmakemissingfacet,
% SGmakedoublevertex, SGmakedoublefacets
%
% [SG,SGB,SGA]=SGmakedoublefaces([SG,fi,alpha,d,"flip","auxc","auxg"])
% === INPUT PARAMETERS ===
% SG: Solid geometry; default is sphere (25);
% fi: indices of faces to remove; default is 1
% alpha: alpha for separating the feature surfaces; default is .76
% d: displacement in direction of normal vector;
% "flip": if used; the orientation of the faces is turned to backwards
% "auxc": create auxiliary points along the boundary edge
% "auxg": create auxiliary grid points within the feature surface
% === OUTPUT RESULTS ======
% SG: SG with removed vertices and removed facets
% SGB: Surfaces with displacement
% SGA: Surfaces without displacement
%
% EXAMPLE:
% SGmakedoublefaces(SGsphere(5),[1:30],.76,0,'auxg',.2)
%
% See also: SGshortopti, SGmakemissingvertex, SGmakemissingfacet,
% SGmakedoublevertex, SGmakedoublefacets
%
%
% Copyright 2023 Tim C. Lueth

SGmakedoublevertex(SG,Vi,alpha,d,"flip","auxc","auxg")- copies a number of vertices as doubles with slightly different position

SGmakedoublevertex(SG,Vi,alpha,d,% SGmakedoublevertex(SG,Vi,alpha,d,"flip","auxc","auxg") - copies a number of vertices as doubles with slightly different position
% (by Tim Lueth, VLFL-Lib, 2023-JUN-09 as class: SURFACES)
%
% Family of error creating fnctns for testing
% SGmakemissingvertex
% SGmakemissingfacet
% SGmakedoublevertex
% SGmakedoublefacets
%
% (Status of: 2023-06-09)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGshortopti, SGmakemissingvertex, SGmakemissingfacet,
% SGmakedoublefacets
%
% [SG,SGB,SGA]=SGmakedoublevertex([SG,Vi,alpha,d,"flip","auxc","auxg"])
% === INPUT PARAMETERS ===
% SG: Solid geometry; default is sphere (25);
% Vi: indices of faces to remove; default is 1
% alpha: alpha for separating the feature surfaces; default is .76
% d: displacement in direction of normal vector;
% "flip": if used; the orientation of the faces is turned to backwards
% "auxc": create auxiliary points along the boundary edge
% "auxg": create auxiliary grid points within the feature surface
% === OUTPUT RESULTS ======
% SG: SG with removed vertices and removed facets
% SGB: Surfaces with displacement
% SGA: Surfaces without displacement
%
% EXAMPLE:
% SGmakedoublevertex(SGbox('noframe'),1,.76)
% SGmakedoublevertex(SGsphere(5),290,.76,1)
% SGmakedoublevertex(SGsphere(5),290,.76,1e-4); SG=ans; SGshortopti(SG)
% SGmakedoublevertex(SGsphere(5),[290 400 3000],.76,1e-4);
% SGmakedoublevertex(SGsphere(5),[290 400 3000],'flip'); showrf
% SGmakedoublevertex(SGbox('noframe'),1,.76,1,'auxc',1,'auxg',2)
%
% See also: SGshortopti, SGmakemissingvertex, SGmakemissingfacet,
% SGmakedoublefacets
%
%
% Copyright 2023 Tim C. Lueth

SGmakemissingfacet(SG,fi)- removes a number of vertices which creates missing facets

SGmakemissingfacet(SG,fi)% SGmakemissingfacet(SG,fi) - removes a number of vertices which creates missing facets
% (by Tim Lueth, VLFL-Lib, 2023-JUN-08 as class: SURFACES)
%
% Family of error creating fnctns for testing
% SGmakemissingvertex
% SGmakemissingfacet
% SGmakedoublevertex
% SGmakedoublefacets
%
% (Status of: 2023-06-09)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGmakemissingvertex, SGmakedoublevertex, SGmakedoublefacets
%
% SG=SGmakemissingfacet([SG,fi])
% === INPUT PARAMETERS ===
% SG: Solid geometry; default is sphere (25);
% fi: indices of faces to remove; default is 1
% === OUTPUT RESULTS ======
% SG: SG with removed vertices and removed facets
%
% EXAMPLE:
% SGmakemissingfacet(SGsphere(25),[1000,400,4000]);
%
% See also: SGmakemissingvertex, SGmakedoublevertex, SGmakedoublefacets
%
%
% Copyright 2023 Tim C. Lueth

SGmakemissingvertex(SG,Vi)- removes a number of vertices which creates missing facets

SGmakemissingvertex(SG,Vi)% SGmakemissingvertex(SG,Vi) - removes a number of vertices which creates missing facets
% (by Tim Lueth, VLFL-Lib, 2023-JUN-08 as class: SURFACES)
%
% Family of error creating fnctns for testing
% SGmakemissingvertex
% SGmakemissingfacet
% SGmakedoublevertex
% SGmakedoublefacets
%
% (Status of: 2023-06-09)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGmakemissingfacet, SGmakedoublevertex, SGmakedoublefacets
%
% SG=SGmakemissingvertex([SG,Vi])
% === INPUT PARAMETERS ===
% SG: Solid geometry; default is sphere (25);
% Vi: indices of vertices to remove; default is 1
% === OUTPUT RESULTS ======
% SG: SG with removed vertices and removed facets
%
% EXAMPLE:
% SGmakemissingvertex(SGsphere(25),[100 200 300])
%
% See also: SGmakemissingfacet, SGmakedoublevertex, SGmakedoublefacets
%
%
% Copyright 2023 Tim C. Lueth

SGbarcelonaspacer- Solid protector for Barcelona lounger by Mies van der Rohe

SGbarcelonaspacer% SGbarcelonaspacer - Solid protector for Barcelona lounger by Mies van der Rohe
% (by Tim Lueth, VLFL-Lib, 2023-MAI-15 as class: PARAMETRIC DESIGN)
%
% protect the touch of the barcelona bed to a wall
% (Status of: 2023-07-08)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGfurniturespacer
%
% SGbarcelonaspacer
%
% EXAMPLE:
% SGbarcelonaspacer([32 3 120 15],'min') % van der Rohoe Barcelona bed
% SGbarcelonaspacer([32 3 60 25],'bar') % Le Corbusier Sofa
% SGbarcelonaspacer([32 3 60 25],'spoke') % Le Corbusier Sofa
% SGbarcelonaspacer([32 3 60 25],'circ') % Le Corbusier Sofa
% SGbarcelonaspacer([32 3 60 25],'box') % Le Corbusier Sofa
%
% See also: SGfurniturespacer
%
%
% Copyright 2023 Tim C. Lueth

corner2rad(d)- returns the radius based on the distance to the two tangets

corner2rad(d)% corner2rad(d) - returns the radius based on the distance to the two tangets
% (by Tim Lueth, VLFL-Lib, 2023-MAI-10 as class: ANALYTICAL GEOMETRY)
%
% Introduced first in SolidGeometry 5.3
%
% See also: sofrd, dofRintrusion, rofRintrusion
%
% r=corner2rad(d)
% === INPUT PARAMETERS ===
% d: distance
% === OUTPUT RESULTS ======
% r: radius
%
% EXAMPLE:
% corner2rad(21) % Radius of Babuulab housing
%
%
% See also: sofrd, dofRintrusion, rofRintrusion
%
%
% Copyright 2023 Tim C. Lueth

CPLsocketscrewed(diam)- Contour for an anti-rotation bushing

CPLsocketscrewed(diam)% CPLsocketscrewed(diam) - Contour for an anti-rotation bushing
% (by Tim Lueth, VLFL-Lib, 2023-APR-30 as class: CLOSED POLYGON LISTS)
%
% If #==1 ==> CPLmotorshaft
% (Status of: 2023-05-23)
%
% Introduced first in SolidGeometry 5.3
%
% See also: CPLmotorshaft
%
% CPL=CPLsocketscrewed([diam])
% === INPUT PARAMETERS ===
% diam: [max min #] ; default is [10 8.5 2]
% === OUTPUT RESULTS ======
% CPL: Kontour
%
% See also: CPLmotorshaft
%
%
% Copyright 2023 Tim C. Lueth

SGfurniturespacer(ddd,ope)- Solid protector to protect the touch of the furniture to a wall

SGfurniturespacer(ddd,ope)% SGfurniturespacer(ddd,ope) - Solid protector to protect the touch of the furniture to a wall
% (by Tim Lueth, VLFL-Lib, 2023-APR-30 as class: PARAMETRIC DESIGN)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGbarcelonaspacer
%
% SG=SGfurniturespacer([ddd,ope])
% === INPUT PARAMETERS ===
% ddd: [x y wall distance height]; default is [25 25 3 65 25]
% ope: if true; the parts are open in [x y]; default is [false false]
% === OUTPUT RESULTS ======
% SG: Solid Geometry
%
% EXAMPLE:
% SGfurniturespacer([25 25 3 65 25]); % Rolf Benz Ego Sofa
% SGfurniturespacer([40 80 3 30],true); % Bestloft Krupp Table Slides
%
% See also: SGbarcelonaspacer
%
%
% Copyright 2023 Tim C. Lueth

SGEurtraccap- Solid Geometry Cap for an EUTRAC 3Phase electric rail

SGEurtraccap% SGEurtraccap - Solid Geometry Cap for an EUTRAC 3Phase electric rail
% (by Tim Lueth, VLFL-Lib, 2023-APR-18 as class: PARAMETRIC DESIGN)
%
% A student of Josef Albers (Square) was Otl Aicher (13.5.1922) who
% designed or used, among other things, light strips. In general, they
% are extruded aluminum strips with which several power lines and data
% buses can be transported. A concept that can also be used very well in
% robotics. The company ERCO has cooperated with him. Other suppliers of
% the same technology besides ERCO are Eutrac, Staff, Global, Powergear,
% Ivelva, Unipro, Stucci and others. (Status of: 2023-04-19)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGofCPLz
%
% SG=SGEurtraccap
% === OUTPUT RESULTS ======
% SG: Solid Geometry of a 36mm x 32 mm x 40mm cap
%
% See also: SGofCPLz
%
%
% Copyright 2023 Tim C. Lueth

SGhotrodCarbody(name,nF)- returns different SG of the Hotrot projects

SGhotrodCarbody(name,nF)% SGhotrodCarbody(name,nF) - returns different SG of the Hotrot projects
% (by Tim Lueth, VLFL-Lib, 2023-APR-13 as class: SURFACES)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGreadSTL, SGreduceVLFL, SGseparateui
%
% [SG,mtab]=SGhotrodCarbody([name,nF])
% === INPUT PARAMETERS ===
% name: Abbreviation of SG such as Ehot+, EHot
% nF: number of faces; default is 60000
% === OUTPUT RESULTS ======
% SG: Solid Geometry
% mtab: vector of axis dimension
%
% EXAMPLE:
% SGhotrodCarbody
% SGhotrodCarbody('Ehot')
% SGhotrodCarbody('Ehot+')
% SGseparateui(SGhotrodCarbody('VW'))
%
% See also: SGreadSTL, SGreduceVLFL, SGseparateui
%
%
% Copyright 2023 Tim C. Lueth

SGstrechez(SG,ez,zz,ss,"mode","debug")- streches Objects along an axis to fit intervals or positions

SGstrechez(SG,ez,zz,ss,% SGstrechez(SG,ez,zz,ss,"mode","debug") - streches Objects along an axis to fit intervals or positions
% (by Tim Lueth, VLFL-Lib, 2023-APR-11 as class: SURFACES)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGstretching, SGscale2dim, SGshrinktofit
%
% [SG0,TL,TK]=SGstrechez([SG,ez,zz,ss,"mode","debug"])
% === INPUT PARAMETERS ===
% SG: Solid Geometry
% ez: strching axis; default is 'x'
% zz: intervalls ('dist') or positions ('pos')
% ss: scaling factor ('dist') or new positions ('pos')
% "mode": default is 'dist', use also 'pos'
% "debug": if used, steps are shown
% === OUTPUT RESULTS ======
% SG0: Streched Geometry
% TL: List of Frames in the Original
% TK: List of Frames in the Streched Object
%
% EXAMPLE:
% SGtetramesh(SGbox,1.5); SGB=ans;
% SGstrechez(SGB,'x',[5 5 5],[1 0.5 2])
% SGstrechez(SGB,'x',[0 10 20 28],[0 5 10 25],'mode','pos')
%
% See also: SGstretching, SGscale2dim, SGshrinktofit
%
%
% Copyright 2023 Tim C. Lueth

SGinsertTslice(SG,T,ct)- fnct that inserts required slice points into a surface before a stretch

SGinsertTslice(SG,T,ct)% SGinsertTslice(SG,T,ct) - fnct that inserts required slice points into a surface before a stretch
% (by Tim Lueth, VLFL-Lib, 2023-APR-11 as class: SURFACES)
%
% Similar to SGcutT but without the closing surface at the cutting plane.
% (Status of: 2023-04-11)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGcutT, SGshort
%
% [SG,SGU,SGO]=SGinsertTslice([SG,T,ct])
% === INPUT PARAMETERS ===
% SG: Solid Geometry
% T: Frame to cut by xy-plane
% ct: cutting mode if T is empty; see TofPcam
% === OUTPUT RESULTS ======
% SG: Solid consisting of SGU and SGO (unified vertices by SGshort)
% SGU: SGU lower part of wrt to frame T (Magenta)
% SGO: SGO upper part of wrt to frame T (Gray)
%
% EXAMPLE:
% SGinsertTslice(SGbox,eye(4))
%
%
% See also: SGcutT, SGshort
%
%
% Copyright 2023 Tim C. Lueth

mdfind()- spotlight using matlab on mac

mdfind()% mdfind() - spotlight using matlab on mac
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-29 as class: AUXILIARY PROCEDURES)
%
% Introduced first in SolidGeometry 5.3
%
% See also: system
%
% b=mdfind([])
% === OUTPUT RESULTS ======
% b: result of spotlight as cell list
%
% EXAMPLE:
% mdfind aston martin coloured .stl
%
% See also: system
%
%
% Copyright 2023 Tim C. Lueth

colorannotate(sgcolord,varnames)- returns an annotation string from plotannotation

colorannotate(sgcolord,varnames)% colorannotate(sgcolord,varnames) - returns an annotation string from plotannotation
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-29 as class: USER INTERFACE)
%
% Introduced first in SolidGeometry 5.3
%
% See also: plotannotation, colofn, nofcolmap
%
% ptxt=colorannotate([sgcolord,varnames])
% === INPUT PARAMETERS ===
% sgcolord: colors for colofn
% varnames: list of variables or strings to be used to create an
% annotation
% === OUTPUT RESULTS ======
% ptxt: annotation string
%
% EXAMPLE: C=1, B=C, A=B
% colorannotate('rgb',A,B,C,'TEST')
% SGfigure; plotannotation(colorannotate('rgb',A,B,C,12,'TEST'),'FW');
%
% See also: plotannotation, colofn, nofcolmap
%
%
% Copyright 2023 Tim C. Lueth

mofzd(z,d)- returns the module if diameter and number of teeth are known

mofzd(z,d)% mofzd(z,d) - returns the module if diameter and number of teeth are known
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-25 as class: KINEMATICS AND FRAMES)
%
% Introduced first in SolidGeometry 5.3
%
% See also: PLgearDIN
%
% m=mofzd(z,d)
% === INPUT PARAMETERS ===
% z: number of teeth
% d: diameter of gear
% === OUTPUT RESULTS ======
% m: module
%
% EXAMPLE:
% mofzd (17,9)
%
% See also: PLgearDIN
%
%
% Copyright 2023 Tim C. Lueth

CPLcirclesofShaft(CPL,slt)- 2D fnct returning a circular contour that encloses a rotating contour

CPLcirclesofShaft(CPL,slt)% CPLcirclesofShaft(CPL,slt) - 2D fnct returning a circular contour that encloses a rotating contour
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-25 as class: CLOSED POLYGON LISTS)
%
% Many motors use shaft geometries (CPLmotorshaft) to drive a gear. In
% the case of a double-bearing gear, there is a desire to have at least
% one hole in the rack that allows the use of a long motor shaft, and for
% this the rack need a hole into which the motor shaft is inserted.
% (Status of: 2023-03-27)
%
% Introduced first in SolidGeometry 5.3
%
% See also: CPLsweep, CPLmotorshaft, CVLdimclassifier
%
% [CPLC,r,cp]=CPLcirclesofShaft([CPL,slt])
% === INPUT PARAMETERS ===
% CPL: Contour of a rotating shaft
% slt: optional slot size; default is 0;
% === OUTPUT RESULTS ======
% CPLC: CPL of enclsoing circl
% r: radius
% cp: centerpoint
%
% EXAMPLE:
% CPLcirclesofShaft(CPLmotorshaft(4,3),'t')
% CPLcirclesofShaft(PLsquare(6,2),'c');
%
% See also: CPLsweep, CPLmotorshaft, CVLdimclassifier
%
%
% Copyright 2023 Tim C. Lueth

osx- simplified version that shows osx version matlab version and sg lib version

osx% osx - simplified version that shows osx version matlab version and sg lib version
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-23 as class: AUXILIARY PROCEDURES)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGversion, verSG
%
% osx=osx
% === OUTPUT RESULTS ======
% osx: OSX Release | Matlab Release | SG-Lib Release
%
% EXAMPLE:
% osx
%
% See also: SGversion, verSG
%
%
% Copyright 2023 Tim C. Lueth

SGturn4AM(SG)- simply turns an object if the upper printing surface is larger than the lower floor printing area

SGturn4AM(SG)% SGturn4AM(SG) - simply turns an object if the upper printing surface is larger than the lower floor printing area
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-22 as class: AUXILIARY PROCEDURES)
%
% This fnctns is part of Slicers but it is easier not to think about
% during development and fast printing (Status of: 2023-03-22)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGwriteSTL, SGrotate
%
% SGN=SGturn4AM(SG)
% === INPUT PARAMETERS ===
% SG: Solid Geometry
% === OUTPUT RESULTS ======
% SGN: Turned or unchanged Solid
%
% EXAMPLE:
% SGturn4AM(SGrotate(SGsample(19),'y',pi))
%
% See also: SGwriteSTL, SGrotate
%
%
% Copyright 2023 Tim C. Lueth

SGgearratio(f,nn)- calculates automatically the required gear sequence for a gear box

SGgearratio(f,nn)% SGgearratio(f,nn) - calculates automatically the required gear sequence for a gear box
% (by Tim Lueth & Marie Lueth, VLFL-Lib, 2023-MÄR-21 as class: AUTOMATIC
% DESIGN)
%
% Introduced first in SolidGeometry 5.3
%
% See also: indexvariant, SGgearchain
%
% [zzl,rat,ee]=SGgearratio([f,nn])
% === INPUT PARAMETERS ===
% f: desired ration
% nn: optional number of gear pair layers
% === OUTPUT RESULTS ======
% zzl: teeth sequence
% rat: ratio
% ee: relative error
%
% EXAMPLE:
% SGgearratio(10)
% SGgearratio(1/10)
% SGgearratio(pi)
% SGgearratio(355/113)
% SGgearratio(exp(1))
% [a,b,c]=SGgearratio(pi,4)
% [a,b,c]=SGgearratio(60,4)
% [a,b,c]=SGgearratio(60,3)
%
%
% See also: indexvariant, SGgearchain
%
%
% Copyright 2023 Tim C. Lueth

indexvariant(vec,dim)- creates multidimensional index sequences for testing or other purposes

indexvariant(vec,dim)% indexvariant(vec,dim) - creates multidimensional index sequences for testing or other purposes
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-21 as class: AUXILIARY PROCEDURES)
%
% much faster than permutevector (Status of: 2023-03-21)
%
% Introduced first in SolidGeometry 5.3
%
% See also: permutevector
%
% zz=indexvariant([vec,dim])
% === INPUT PARAMETERS ===
% vec: row or col vector; default is [1 2 3]
% dim: integer as dimension; default is 2
% === OUTPUT RESULTS ======
% zz: index field [numel(vec)^dim x dim]
%
% EXAMPLE:
% zz=indexvariant([1:3],1); zz, whos zz
% zz=indexvariant([1:3],2); zz, whos zz
% zz=indexvariant([1:3],3); zz, whos zz
% zz=indexvariant([1:3],4); zz, whos zz
%
% See also: permutevector
%
%
% Copyright 2023 Tim C. Lueth

bambudownloadvideoIP(aname,address)- downloads in parallel to printing processes the timelapse videos from the bamboo printer

bambudownloadvideoIP(aname,address)% bambudownloadvideoIP(aname,address) - downloads in parallel to printing processes the timelapse videos from the bamboo printer
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-20 as class: FILE HANDLING)
%
%
% 10.03.2023 Christoph Rehekampff - TUM Lehrstuhl MiMed - Prof. Tim Lüth
% Der Zugangscode ("password") ist auf dem Drucker unter Network Settings
% einsehbar.
% (Status of: 2023-03-20)
%
% Introduced first in SolidGeometry 5.3
%
% See also: bambuuploadIP
%
% bambudownloadvideoIP([aname,address])
% === INPUT PARAMETERS ===
% aname: local folder name to save the bambu's timelapse folder
% address: default is '129.187.200.238'
%
% See also: bambuuploadIP
%
%
% Copyright 2023 Tim C. Lueth

SGBAUHAUScupholdinsert(h)- returns a SG as insert for cup holder in a car

SGBAUHAUScupholdinsert(h)% SGBAUHAUScupholdinsert(h) - returns a SG as insert for cup holder in a car
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-19 as class: PARAMETRIC DESIGN)
%
% Many user interfaces in modern cars such as Audi are much worse using
% the touchscreen than the button based version before or a simple
% smartphone. This fnctn creates a cup holder insert as smartphone holder
% for cars (Status of: 2023-03-20)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGtube, SGcupholderinsert
%
% SGBAUHAUScupholdinsert([h])
% === INPUT PARAMETERS ===
% h: [height angle width and length; default is [60 17 50 75]
%
% EXAMPLE:
% SGcupholderinsert([105 17 70 110])
%
% See also: SGtube, SGcupholderinsert
%
%
% Copyright 2023 Tim C. Lueth

SGBB(SG,d)- Creates the Bounding Box Solid in the solids frame

SGBB(SG,d)% SGBB(SG,d) - Creates the Bounding Box Solid in the solids frame
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-19 as class: SURFACES)
%
% SGofBB(SG) Creates the Bounding Box Solid in the world frame
% SGBB Creates the Bounding Box Solid in the solids frame
% SGconvexHull(SG) Create the Convex Hull in in the solids frame
% SGconvexHullXYZ(SG) Create the projected Convex Hull in the world frame
%
% different to BBofSG (Status of: 2023-03-27)
%
% Introduced first in SolidGeometry 5.3
%
% See also: BBofSG, SGofBB, SGconvexhull, SGconvexHullXYZ
%
% BB=SGBB(SG,[d])
% === INPUT PARAMETERS ===
% SG: Solid Geometry
% d: extension of bounding box; default is 0
% === OUTPUT RESULTS ======
% BB: Solid Geometry of an Bound Box in the same frame as the solid
%
% EXAMPLE:
% SG=SGrotate(SGBAUHAUSbox([160 85 25],55,[pi/3 pi -pi/3]),'y',-pi/2+17/180*pi); SGfigure(SG);
% SGBB(SG) % This fnction
% SGofBB(SG) % Standard BB
% SGconvexHull(SG) % Convex Hull
% SGconvexHullXYZ(SG)% Convex hull of world frame projections
%
% See also: BBofSG, SGofBB, SGconvexhull, SGconvexHullXYZ
%
%
% Copyright 2023 Tim C. Lueth

mzs(m,z,s)- returns a modified module for a giben number of teeth and slot

mzs(m,z,s)% mzs(m,z,s) - returns a modified module for a giben number of teeth and slot
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-15 as class: KINEMATICS AND FRAMES)
%
% It is still unclear to TL which modification is better. (Status of:
% 2023-03-15)
%
% Introduced first in SolidGeometry 5.3
%
% See also: PLgearDIN, SGgearDIN, SGgearDINrot, SGgearchain
%
% mr=mzs([m,z,s])
% === INPUT PARAMETERS ===
% m: module
% z: number of teeth
% s: slot; default is slfit ('t') % transition fit
% === OUTPUT RESULTS ======
% mr: reduced module to guaranteee the slot size
%
% EXAMPLE:
% mzs(1,9,0.1)
%
% See also: PLgearDIN, SGgearDIN, SGgearDINrot, SGgearchain
%
%
% Copyright 2023 Tim C. Lueth

SGattachMotorN40(SGR,SGA,PL,LW,"debug")- adds motor rack to another rack and subtracts the bore for an motor axis

SGattachMotorN40(SGR,SGA,PL,LW,% SGattachMotorN40(SGR,SGA,PL,LW,"debug") - adds motor rack to another rack and subtracts the bore for an motor axis
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-15 as class: AUTOMATIC DESIGN)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGdesignMotorN40, SGsubtractnaddTL
%
% [SGR,SGA,SGS,Parts]=SGattachMotorN40([SGR,SGA,PL,LW,"debug"])
% === INPUT PARAMETERS ===
% SGR: Solid the motor should be screwed with
% SGA: Solid that will be driven by motor axis
% PL: List of Point
% LW: Dimension of housing length and screw size; see SGdesignMotorN40
% "debug": if individual designsteps should be shown
% === OUTPUT RESULTS ======
% SGR: Modified SGRack
% SGA: Modified SGAxis
% SGS: Motor Solid
% Parts: list of parts for assembly
%
% EXAMPLE:
% A=SGtransP(SGbox('noframe'),[0 0 -2])
% B=SGtransP(SGbox('noframe'),[0 0 11])
% SGattachMotorN40 (A,B)
%
%
% See also: SGdesignMotorN40, SGsubtractnaddTL
%
%
% Copyright 2023 Tim C. Lueth

exp_2023_03_14_gears(f,a,"debug")- EXPERIMENT TO SHOW HOW TO AUTMATIC DESIGN A MOTOR GEAR

exp_2023_03_14_gears(f,a,% exp_2023_03_14_gears(f,a,"debug") - EXPERIMENT TO SHOW HOW TO AUTMATIC DESIGN A MOTOR GEAR
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-14 as class: EXPERIMENTS)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGgearratio, SGgearchain, SGseedcube, SGdesignMotorN40,
% SGsubtractnaddTL
%
% SG=exp_2023_03_14_gears([f,a,"debug"])
% === INPUT PARAMETERS ===
% f: ratio; default is 1/17
% a: orientation
% "debug":
% === OUTPUT RESULTS ======
% SG: Just the gears
%
% EXAMPLE:
% exp_2023_03_14_gears % Writes the structure on disc
%
% See also: SGgearratio, SGgearchain, SGseedcube, SGdesignMotorN40,
% SGsubtractnaddTL
%
%
% Copyright 2023 Tim C. Lueth

pofT(T)- returns the translation part of frames or frame lists

pofT(T)% pofT(T) - returns the translation part of frames or frame lists
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-11 as class: KINEMATICS AND FRAMES)
%
% Introduced first in SolidGeometry 5.3
%
% See also: CPLrack4PL
%
% p=pofT(T)
% === INPUT PARAMETERS ===
% T: T or TL
% === OUTPUT RESULTS ======
% p: p or PL
%
% EXAMPLE:
% TofRd([0 0 pi/10],30); pofT(ans)
%
% See also: CPLrack4PL
%
%
% Copyright 2023 Tim C. Lueth

TofRd(w,d,e)- creates a frame after rotation in distance d along new ex

TofRd(w,d,e)% TofRd(w,d,e) - creates a frame after rotation in distance d along new ex
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-11 as class: KINEMATICS AND FRAMES)
%
% In contrast to TofR, this fnctn has the point in distance d along ex
% (Status of: 2023-03-11)
%
% Introduced first in SolidGeometry 5.3
%
% See also: TofR
%
% TR=TofRd([w,d,e])
% === INPUT PARAMETERS ===
% w: rotation angle or rotation vector
% d: distant along dx
% e: direction; default is 'x'; not used yet
% === OUTPUT RESULTS ======
% TR: HT matrix
%
% EXAMPLE:
% TofRd([pi/3],10)
% TofRd([0 0 pi/3],10)
% TofRd([0 pi/4 pi/3],10)
%
% See also: TofR
%
%
% Copyright 2023 Tim C. Lueth

SGgearchain(m,z,a,w,"stack","rack","crank")- returns a gear chain als simple sequence or stacks

SGgearchain(m,z,a,w,% SGgearchain(m,z,a,w,"stack","rack","crank") - returns a gear chain als simple sequence or stacks
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-08 as class: PARAMETRIC DESIGN)
%
% module
% height of gear
% radius of axle
% height of rack
% (Status of: 2023-03-14)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGgearratio, CPLrack4PL, SGgearDINrot
%
% [SGfin,TL,f,SGR]=SGgearchain([m,z,a,w,"stack","rack","crank"])
% === INPUT PARAMETERS ===
% m: [m h r hr] of gear; default is [1 5 1.25 0]
% z: array of number of teeth
% a: [relative angle change for next gear]
% w: optional overall angle of chain; default is not defined;
% "stack": if used the gears are vertically stacked to a gear box
% "rack": rack type; default is 'bar'; see CPLrack4PL
% "crank":
% === OUTPUT RESULTS ======
% SGfin: cell list of gears
% TL: cell list of Base frame
% f: cell list of ratio
% SGR: SG of Rack
%
% EXAMPLE:
% SGgearchain ([1 2 1.25],[9 10 11 12 13 14 15],'',0)
% [SG,TL]=SGgearchain ([1 2 1.25],[9 10 11 12 13 14 15],'',0);
% CPLrack4PL(pofT(TL),2);
% SGgearchain ([1 2 1.25 2],[9 48 9],'',0); % not in line
% SGgearchain ([1 2 1.25 2],[9 13 9],'',0); % fully in line
% SGgearchain ([1 2 1.25 2],[9 27 9 45],'',0,'stack'); % stack
% SGgearchain ([1 2 1.25 2],[9 27 9 45],'',0,'stack','rack','box'); % squared rack
%
%
% See also: SGgearratio, CPLrack4PL, SGgearDINrot
%
%
% Copyright 2023 Tim C. Lueth

SGegg(r,a)- returns the Surface Geometry of an egg based on an evolvente

SGegg(r,a)% SGegg(r,a) - returns the Surface Geometry of an egg based on an evolvente
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-07 as class: SURFACES)
%
% Introduced first in SolidGeometry 5.3
%
% See also: PLegg
%
% SG=SGegg([r,a])
% === INPUT PARAMETERS ===
% r: radius; default is 10
% a: alpha of evolvente; default is pi
% === OUTPUT RESULTS ======
% SG: Solid
%
% See also: PLegg
%
%
% Copyright 2023 Tim C. Lueth

PLegg(r,a)- returns the contour of an egg

PLegg(r,a)% PLegg(r,a) - returns the contour of an egg
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-07 as class: CLOSED POLYGON LISTS)
%
% Introduced first in SolidGeometry 5.3
%
% See also: PLevolvente, SGegg
%
% PL=PLegg([r,a])
% === INPUT PARAMETERS ===
% r: radius of evolvente
% a: angle of evolvente
% === OUTPUT RESULTS ======
% PL: Point list
%
% EXAMPLE:
% PLegg(10)
% PLegg(10,1.1*pi)
%
% See also: PLevolvente, SGegg
%
%
% Copyright 2023 Tim C. Lueth

commandwindowTL- same as original fnct but deployable

commandwindowTL% commandwindowTL - same as original fnct but deployable
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-07 as class: AUXILIARY PROCEDURES)
%
% Introduced first in SolidGeometry 5.3
%
% See also: editTL, opentolineTL, docTL, webTL
%
% commandwindowTL
%
% See also: editTL, opentolineTL, docTL, webTL
%
%
% Copyright 2023 Tim C. Lueth

webTL(params)- same as original fnct but deployable

webTL(params)% webTL(params) - same as original fnct but deployable
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-07 as class: AUXILIARY PROCEDURES)
%
% Introduced first in SolidGeometry 5.3
%
% See also: commandwindowTL, opentolineTL, docTL, editTL
%
% webTL([params])
% === INPUT PARAMETERS ===
% params: same as original fnctn
%
% See also: commandwindowTL, opentolineTL, docTL, editTL
%
%
% Copyright 2023 Tim C. Lueth

docTL(params)- same as original fnct but deployable

docTL(params)% docTL(params) - same as original fnct but deployable
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-07 as class: AUXILIARY PROCEDURES)
%
% Introduced first in SolidGeometry 5.3
%
% See also: commandwindowTL, opentolineTL, webTL, editTL
%
% docTL([params])
% === INPUT PARAMETERS ===
% params: same as original fnctn
%
% See also: commandwindowTL, opentolineTL, webTL, editTL
%
%
% Copyright 2023 Tim C. Lueth

editTL(params)- same as original fnct but deployable

editTL(params)% editTL(params) - same as original fnct but deployable
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-07 as class: AUXILIARY PROCEDURES)
%
% Introduced first in SolidGeometry 5.3
%
% See also: commandwindowTL, opentolineTL, docTL, webTL
%
% editTL([params])
% === INPUT PARAMETERS ===
% params: same as original fnctn
%
% See also: commandwindowTL, opentolineTL, docTL, webTL
%
%
% Copyright 2023 Tim C. Lueth

opentolineTL(params)- same as original fnct but deployable

opentolineTL(params)% opentolineTL(params) - same as original fnct but deployable
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-07 as class: AUXILIARY PROCEDURES)
%
% Introduced first in SolidGeometry 5.3
%
% See also: editTL, commandwindowTL, docTL, webTL
%
% opentolineTL([params])
% === INPUT PARAMETERS ===
% params: same as original fnctn
%
% See also: editTL, commandwindowTL, docTL, webTL
%
%
% Copyright 2023 Tim C. Lueth

SGruntimecompilation- generates help text and opens some toosl for creating stand alone apps

SGruntimecompilation% SGruntimecompilation - generates help text and opens some toosl for creating stand alone apps
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-07 as class: AUXILIARY PROCEDURES)
%
% Introduced first in SolidGeometry 5.3
%
% See also: deploytool, SGapplicationCompiler
%
% SGruntimecompilation
%
% EXAMPLE:
% SGruntimecompilation
%
% See also: deploytool, SGapplicationCompiler
%
%
% Copyright 2023 Tim C. Lueth

SGfitcalibration4Printer(w)- Create solids to measure the friction force of printed for the fitting concept

SGfitcalibration4Printer(w)% SGfitcalibration4Printer(w) - Create solids to measure the friction force of printed for the fitting concept
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-06 as class: PARAMETRIC DESIGN)
%
% The hole in the bottom of the plate und the rails under are necessary
% to annul the effect of air pressure.
% It is possible to place standard weights on the base to push it in and
% measure the forces. The depth gives information about the frictional
% forces. The wall thickness of 1.2mm allows a certain elongation.
%
% When creating fits with a 3D printer, three effects (1-3) of four will
% overlap:
% a) The deviation of the outer diameter of a bolt from the inner
% diameter of a hole
% b) The frictional forces due to the roughness of the surface finish of
% the respective printer
% c) The expansion of the material during indentation depending on
% material and infill
% d) Shrinkage due to cooling from printing temperature to room
% temperature
% Finally, a number of test samples must be printed so that a feeling for
% the fit dimensions can be obtained by manual joining. However, once
% these are determined, fits can also be printed very reliably. (Status
% of: 2023-03-07)
%
% Introduced first in SolidGeometry 5.3
%
% See also: slfit, DIN4AMfitting
%
% SGfitcalibration4Printer([w])
% === INPUT PARAMETERS ===
% w: default wall thickness is 1.2 mm
%
% EXAMPLE:
% SGfitcalibration4Printer % STL Folder on the desktop
%
% See also: slfit, DIN4AMfitting
%
%
% Copyright 2023 Tim C. Lueth

limitinterv(x,xlim)- value between [min and max]

limitinterv(x,xlim)% limitinterv(x,xlim) - value between [min and max]
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-04 as class: AUXILIARY PROCEDURES)
%
% Introduced first in SolidGeometry 5.3
%
% See also: angleinterv, distofintervall
%
% y=limitinterv(x,xlim)
% === INPUT PARAMETERS ===
% x: number
% xlim: [min max]
% === OUTPUT RESULTS ======
% y: value between [min and max]
%
% EXAMPLE:
% limitinv(10,[5 20]), limitinv(-10,[5 20]), limitinv(30,[5 20])
%
%
%
% See also: angleinterv, distofintervall
%
%
% Copyright 2023 Tim C. Lueth

exp_2023_03_04_gripper (SG0)- to show how to create fully automatic a complete 2 jaw gripper from an STL file

exp_2023_03_04_gripper (SG0)% exp_2023_03_04_gripper (SG0) - to show how to create fully automatic a complete 2 jaw gripper from an STL file
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-04 as class: EXPERIMENTS)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGdesignGripperjaw, SGdesignDriveSpindle
%
% exp_2023_03_04_gripper(SG0)
% === INPUT PARAMETERS ===
% SG0: Solid to be grasoed or readin of file
%
% EXAMPLE:
% exp_2023_03_04_gripper(SGbox('noframe'))
% exp_2023_03_04_gripper(SGsphere([30 20 10]))
%
% See also: SGdesignGripperjaw, SGdesignDriveSpindle
%
%
% Copyright 2023 Tim C. Lueth

SGrobotTCPplate(bb,sl,"5DoF")- returns a TCP flange to mount Fischertechnik® compatible grooves

SGrobotTCPplate(bb,sl,% SGrobotTCPplate(bb,sl,"5DoF") - returns a TCP flange to mount Fischertechnik® compatible grooves
% (by Tim Lueth, VLFL-Lib, 2023-MÄR-03 as class: PARAMETRIC DESIGN)
%
% This fnctn does use fittings
% uses load('Yannick_robot.mat');
% (Status of: 2023-03-07)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGrobotTCPdesign, SGrobotTCPchanger, SGdesignDriveSpindle
%
% [B,SG]=SGrobotTCPplate([bb,sl,"5DoF"])
% === INPUT PARAMETERS ===
% bb: size of Groove block; default is [30 30 5]; 0 is used als default
% value
% sl:
% "5DoF": if used; the plate can be used for 5DoF ERGOSURG RAMBOO robot
% === OUTPUT RESULTS ======
% B: Groove Geometry
% SG: SG of Yannik's TCP plate including Fischertechnik@ tongues
%
% EXAMPLE:
% SGrobotTCPplate; % Default size
% SGrobotTCPplate([20 30 10]) %
% SGrobotTCPplate([0 50]) %
% SGR=SGrobotTCPplate; SGwriteMultipleSTL({SGR,SGrotate(SGR,'x',pi/2),SGrotate(SGR,'y',pi/2),SGrotate(SGR,'y',pi)},'TCPplates'); % Test printing fittings
% SGrobotTCPplate('5DoF')
%
% See also: SGrobotTCPdesign, SGrobotTCPchanger, SGdesignDriveSpindle
%
%
% Copyright 2023 Tim C. Lueth

SGspringSpiral(r,w,d,h,k);- returns a spiral spring geometry

SGspringSpiral(r,w,d,h,k);% SGspringSpiral(r,w,d,h,k); - returns a spiral spring geometry
% (by Tim Lueth, VLFL-Lib, 2023-FEB-28 as class: PARAMETRIC DESIGN)
%
% For mechanical engineers, it is often easier to test a mechanism with a
% mechanical motor before a suitable electric motor is used. For this
% purpose, a spiral is winded up and tensioned via a winch or handwheel.
% The stored energy can then be transferred to the mechanism via a shaft.
% In mechatronics, this reduces the complexity for the mechanism
% designer. (Status of: 2023-02-28)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SG
%
% SG=SGspringSpiral([r,w,d,h,k]);
% === INPUT PARAMETERS ===
% r: Outer radius of the spring; default is 30
% w: number of windings as integer of pi; default is 10
% d: thickness; defualt is 1.2 mm
% h: height; default is 5 mm
% k:
% === OUTPUT RESULTS ======
% SG:
%
% EXAMPLE:
% SGspringSpiral(20,'',0.8,'',[3 10])
%
% See also: SG
%
%
% Copyright 2023 Tim C. Lueth

SGdesignDriveSpindle(d,SGR)- returns the solid geometry of a gripper spindle

SGdesignDriveSpindle(d,SGR)% SGdesignDriveSpindle(d,SGR) - returns the solid geometry of a gripper spindle
% (by Tim Lueth, VLFL-Lib, 2023-FEB-25 as class: PARAMETRIC DESIGN)
%
% This fnctn was written during the Visit of Hajime Asama (Univ. of
% Tokyo) in Munich
% returns a spindle with right and left thread, plus a knob for turning
% the spindle. All Parts have to be assembled after printing.
% The frames F1 and F2 can be used to attach fingers and jaws. The Frame
% B is used for a gear or a dail. The Frame T0 shows the center of the
% spindle (Status of: 2023-03-04)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGdesignGripperjaw, SGrobotTCPplate
%
% SG=SGdesignDriveSpindle([d,SGR])
% === INPUT PARAMETERS ===
% d:
% SGR:
% === OUTPUT RESULTS ======
% SG:
%
% EXAMPLE:
% SGdesignDriveSpindle(TofR([pi/3,pi/4,pi/5]))
%
% See also: SGdesignGripperjaw, SGrobotTCPplate
%
%
% Copyright 2023 Tim C. Lueth

SGcupholderinsert(h)- returns a SG as insert for cup holder in a car

SGcupholderinsert(h)% SGcupholderinsert(h) - returns a SG as insert for cup holder in a car
% (by Tim Lueth, VLFL-Lib, 2023-FEB-23 as class: PARAMETRIC DESIGN)
%
% Many user interfaces in modern cars such as Audi are much worse using
% the touchscreen than the button based version before or a simple
% smartphone. This fnctn creates a cup holder insert as smartphone holder
% for cars (Status of: 2023-02-24)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGtube
%
% SGcupholderinsert([h])
% === INPUT PARAMETERS ===
% h: [height angle width and length; default is [60 17 50 75]
%
% EXAMPLE:
% SGcupholderinsert([105 17 70 110])
%
% See also: SGtube
%
%
% Copyright 2023 Tim C. Lueth

Videoquickwritelastcommand- writes in a video the line of the last command

Videoquickwritelastcommand% Videoquickwritelastcommand - writes in a video the line of the last command
% (by Tim Lueth, VLFL-Lib, 2023-FEB-23 as class: VISUALIZATION)
%
% It is also automtically called by Videoquickstart
% (Status of: 2023-02-23)
%
% Introduced first in SolidGeometry 5.3
%
% See also: lastcommand, Videoquickstart, Videoquickcloseandopen,
% drawnowvid
%
% Videoquickwritelastcommand
%
% EXAMPLE:
% Videoquickstart; Videoquickcloseandopen; % Just open and close
%
% See also: lastcommand, Videoquickstart, Videoquickcloseandopen,
% drawnowvid
%
%
% Copyright 2023 Tim C. Lueth

TLconnecting2SG(SG1,SG2)- connects 2 solids by a straigt connecting solid between the center, using feature surfaces

TLconnecting2SG(SG1,SG2)% TLconnecting2SG(SG1,SG2) - connects 2 solids by a straigt connecting solid between the center, using feature surfaces
% (by Tim Lueth, VLFL-Lib, 2023-FEB-22 as class: AUTOMATIC DESIGN)
%
% NAME WILL BE CHANGED (Status of: 2023-02-23)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGof2T
%
% [SGX,SGA]=TLconnecting2SG([SG1,SG2])
% === INPUT PARAMETERS ===
% SG1: Solid A to connect
% SG2: Solid B to connect
% === OUTPUT RESULTS ======
% SGX: Connecting Solid
% SGA: SGunion(SG1,SG2,SGX)
%
% EXAMPLE:
% TLconnecting2SG(SGbox,SGtransP(SGsphere(20),[40 40 40]))
%
% See also: SGof2T
%
%
% Copyright 2023 Tim C. Lueth

SGconvexHullXYZ(SGP,"debug")- creates a convex solid by the intersection of the three projections in X Y Z

SGconvexHullXYZ(SGP,% SGconvexHullXYZ(SGP,"debug") - creates a convex solid by the intersection of the three projections in X Y Z
% (by Tim Lueth, VLFL-Lib, 2023-FEB-21 as class: SURFACES)
%
% ATTENTION: Since 2 boolean operations are used in a sequence, there is
% a significant risc of non watertight models
% Tim Lueth considers this fnctn as unreliable but helpful
% (First Version from 2019-07-17 named SGofSGhull)
% SGofBB(SG) Creates the Bounding Box Solid in the world frame
% SGBB Creates the Bounding Box Solid in the solids frame
% SGconvexHull(SG) Create the Convex Hull in in the solids frame
% SGconvexHullXYZ(SG) Create the projected Convex Hull in the world frame
% (Status of: 2023-03-27)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGconvexHull, CPLselectinout, SGofCPLextrude, SGintersect
%
% SGN=SGconvexHullXYZ([SGP,"debug"])
% === INPUT PARAMETERS ===
% SGP: Original Solid
% "debug": if used; the individual processing steps are shown
% === OUTPUT RESULTS ======
% SGN: intersection of the three projections in X Y Z
%
% EXAMPLE:
% SGconvexHullXYZ(SGsample(7))
% SGconvexHullXYZ(SGsample(7),'debug'); SG=ans;
% SGcheckmeshlab(SG)
%
% See also: SGconvexHull, CPLselectinout, SGofCPLextrude, SGintersect
%
%
% Copyright 2023 Tim C. Lueth

SGdesignGripperjaw(SG,sz,sl,fp,"sub","surf")- returns the geometry of gripper jaws, gripper finger and complete mechanisms for an object to grasp

SGdesignGripperjaw(SG,sz,sl,fp,% SGdesignGripperjaw(SG,sz,sl,fp,"sub","surf") - returns the geometry of gripper jaws, gripper finger and complete mechanisms for an object to grasp
% (by Tim Lueth, VLFL-Lib, 2023-FEB-16 as class: AUTOMATIC DESIGN)
%
% written in parallel to the explanation of the workflow for Jan Jan
% Rodewald and Dr. Yilun Sun.
% Fnctn defines and writes the geometry of gripper to disk. Major changes
% after the discussion for selceting the Frames (Status of: 2023-02-25)
%
% Introduced first in SolidGeometry 5.3
%
% See also: SGcutT, TofPcam
%
% [SGB,T0,TB]=SGdesignGripperjaw([SG,sz,sl,fp,"sub","surf"])
% === INPUT PARAMETERS ===
% SG: Object to be gripped
% sz: SG of maximum jaw or maximum dimensions of a cuboid
% sl: slot size; default is
% fp: Finger end solid; or position of a cuboid
% "sub": if used, the gripper jaw is cut by the SG
% "surf": if used, the gripper jaw is attached optimally to the surface
% orthognal vector
% === OUTPUT RESULTS ======
% SGB: {SG1, SG2} Finger geometry with Frames 'B' to attach actuators
% T0: Center fram of movement in ez
% TB: Attachment Frames at object SG
%
% EXAMPLE:
% Videoquickstart; SGdesignGripperjaw(SGsphere([30,20,10])); Videoquickcloseandopen
%
%
% See also: SGcutT, TofPcam
%
%
% Copyright 2023 Tim C. Lueth

dbprintflog (argslist)- fnct that logs similar to former frintf(2,) a text tino a log file

dbprintflog (argslist)% dbprintflog (argslist) - fnct that logs similar to former frintf(2,) a text tino a log file
% (by Tim Lueth, VLFL-Lib, 2023-JAN-29 as class: AUXILIARY PROCEDURES)
%
% The more batch programs rund the more difiult it is to debug those
% files that have no output anymore, since the batch files run in the
% background without an terminal output. Therefor, this fnctn allows to
% log into a logfile; Fnctn name and date time stamp are added
% automatically.
% It is used in spindumpkill (Status of: 2023-01-29)
%
% Introduced first in SolidGeometry 5.3
%
% See also: dbreturn, dbexit, dbsave, dbprintmode, debugTL, fprintf,
% printf, fprintfvec, fprintfvec2, str2codelines, sprintfvec
%
% dbprintflog([argslist])
% === INPUT PARAMETERS ===
% argslist: liat of arguments equal to to sprintf
%
% EXAMPLE:
% dbprintflog('This is a test log file line')
% openbydoubleclick(desktopdir('Matlablog.txt'))
%
% See also: dbreturn, dbexit, dbsave, dbprintmode, debugTL, fprintf,
% printf, fprintfvec, fprintfvec2, str2codelines, sprintfvec
%
%
% Copyright 2023 Tim C. Lueth

getjobs- returns the jobs running on the local cluster

getjobs% getjobs - returns the jobs running on the local cluster
% (by Tim Lueth, VLFL-Lib, 2023-JAN-09 as class: AUXILIARY PROCEDURES)
%
% Can be used to test a Toolbox wirhout user interaction
% VLFL_Toolbox_test(38:100) (Status of: 2023-01-09)
%
% Introduced first in SolidGeometry 5.3
%
% See also: batch, spindumpkill, VLFL_Toolbox_test
%
% [jobs,names]=getjobs
% === OUTPUT RESULTS ======
% jobs: array of jobs
% names: cell list of job names
%
% EXAMPLE:
% batch spindumpkill
% getjobs; jobs=ans;
% delete(jobs(end))
% getjobs
%
%
% See also: batch, spindumpkill, VLFL_Toolbox_test
%
%
% Copyright 2023 Tim C. Lueth
RapidWeaver Icon

Last Change Oct 2023 for SG-Lib 5.3