Last change of this documentation page: 2022-06-02 of SolidGeometry 2.5.1
SGof2CPLz(CPA,CPB,z,stype,ctype)- returns a solid defined by 2 contours and height

SGof2CPLz(CPA,CPB,z,stype,ctype)% SGof2CPLz(CPA,CPB,z,stype,ctype) - returns a solid defined by 2 contours and height
% (by Tim Lueth, VLFL-Lib, 2015-SEP-16 as class: SURFACES)
%
% The optimal result depends on the expectations of the user. Consider
% different options for stype carefully:
% "number" of points, i.e. 1:nmax
% "length" of contour, i.e. 0:sum(edge length)
% "angle" of contour, i.e. 0:sum(abs(edge angle))
% "center" of contour, i.e. 0:360 degree
% also the starting point ctype ('rot' or 'min');
%
% Quite optimal procedure to find the walls between two planar contours
% without adding new points. The number of faces is na+nb.
% The resulting vertex list SG:
% SG.VL=[VLaddz(CPA,0);VLaddz(CPB,z)];
% SG.FL=[FLA;FLB;FLW];
% (Status of: 2018-08-20)
%
% Introduced first in SolidGeometry 2.5.1
%
% See also: SGof2SGT, SGof2T, SGof2CVL, SGof2CPLsz, SGof2CPLzheurist,
% SGof2CPLzbranch, PLtransform, PLcorrelate, CPLcorrelate
%
% [SG,FLW,FLA,FLB]=SGof2CPLz([CPA,CPB,z,stype,ctype])
% === INPUT PARAMETERS ===
% CPA: ONE bottom Contour
% CPB: ONE top Contour
% z: height of the solid
% stype: 'number', 'length', 'angle', 'center'; default is 'length'
% ctype: 'rot' or 'miny'; default is 'rot'
% === OUTPUT RESULTS ======
% SG: Solid Geoemtry; VL=[CPA;CPB]
% FLW: Face list of Wall
% FLA: Face list of CPA
% FLB: Face list of CPB
%
% EXAMPLE: SGof2CPLz(PLcircle(10,8),PLstar(10,12),30)
% SGof2CPLz(PLkidney(10,15,pi/4),PLtrans(PLkidney(10,15,pi/3),rotdeg(30)),10)
%
% See also: SGof2SGT, SGof2T, SGof2CVL, SGof2CPLsz, SGof2CPLzheurist,
% SGof2CPLzbranch, PLtransform, PLcorrelate, CPLcorrelate
%
%
% Copyright 2015-2021 Tim C. Lueth

exp_2015_09_16c(CPA,CPB,z)- EXPERIMENT that solves the problem of conntourwall of 2 independent contours

exp_2015_09_16c(CPA,CPB,z)% exp_2015_09_16c(CPA,CPB,z) - EXPERIMENT that solves the problem of
% conntourwall of 2 independent contours
% (by Tim Lueth, VLFL-Lib, 2015-SEP-16 as class: EXPERIMENTS)
%
% SG=exp_2015_09_16c(CPA,CPB,z)
% === INPUT PARAMETERS ===
% CPA: Contour Bottom
% CPB: Contour Top
% z:
% === OUTPUT RESULTS ======
% SG: Solid Geometry
%

mod1(n,k)- returns mod fnct for elements 1:k

mod1(n,k)% mod1(n,k) - returns mod fnct for elements 1:k
% (by Tim Lueth, VLFL-Lib, 2015-SEP-16 as class: AUXILIARY PROCEDURES)
%
% auxiliary fnctn for array manipulation. Instead of return values
% between [0..k-1], this fnctn returns [1..k] by a=mod(n-1,k)+1 (Status
% of: 2018-08-20)
%
% Introduced first in SolidGeometry 2.5.1
%
% See also: modN, mod, mod1circsequ
%
% a=mod1(n,k)
% === INPUT PARAMETERS ===
% n: number
% k: divider
% === OUTPUT RESULTS ======
% a: rest
%
% EXAMPLE:
% mod1(1:6,3)
%
% See also: modN, mod, mod1circsequ
%
%
% Copyright 2015-2021 Tim C. Lueth

CPLsortC(CPL,ctype,CA)- returns a contour that start with angle -pi

CPLsortC(CPL,ctype,CA)% CPLsortC(CPL,ctype,CA) - returns a contour that start with angle -pi
% (by Tim Lueth, VLFL-Lib, 2015-SEP-15 as class: CLOSED POLYGON LISTS)
%
% The contour is resorted around its center. It starts afterwards with
% the minimal (ctype='min') angle, the angle nearest to zero
% (ctype='zero'), or the maximum angle (ctype='max'). Often is is
% important to take only points of the convex hull (for example in case
% of spirals). Therefore, then only points are selected from the convex
% hull for the nearest angle to zero (ctype='czero') on the convex hull
% or the minimal angle value of the convex hull (type='cmin').
%
% To resort the points backwards, use: circshift(CPS,[s 0])
% To compare results use: [A circshift(B,[s 0])]
%
% (Status of: 2015-10-02)
%
% [CPS,WA,CA,s]=CPLsortC(CPL,[ctype,CA])
% === INPUT PARAMETERS ===
% CPL: Original CPL
% ctype: 'zero','min','max', 'czero', 'cmin'; default is 'czero'
% CA: Optional Center Point; do not use it
% === OUTPUT RESULTS ======
% CPS: Resorted CPL
% WA: corresponding angle
% CA: Center of CPL
% s: circshift value to return
%
% EXAMPLE:
% CPLsortC(PLstar(10,10))
% CPLsortC(CPLspiral(10,20,4*pi+pi/3))
%

exp_2015_09_16(CPA,CPB)- EXPERIMENT TO SHOW THE PROBLEM WITH TETRAHEDRONS in 3D

exp_2015_09_16(CPA,CPB)% exp_2015_09_16(CPA,CPB) - EXPERIMENT TO SHOW THE PROBLEM WITH
% TETRAHEDRONS in 3D
% (by Tim Lueth, VLFL-Lib, 2015-SEP-15 as class: EXPERIMENTS)
%
% SG=exp_2015_09_16(CPA,CPB)
% === INPUT PARAMETERS ===
% CPA: Contour A
% CPB: Contour B
% === OUTPUT RESULTS ======
% SG: Resulting Solid
%

SGconvexHull(SG,sep)- returns the convex hulls of a solid geometry

SGconvexHull(SG,sep)% SGconvexHull(SG,sep) - returns the convex hulls of a solid geometry
% (by Tim Lueth, VLFL-Lib, 2015-SEP-15 as class: SURFACES)
%
% Introduced first in SolidGeometry 2.5.1
%
% See also: SGnegativeform
%
% [SGC,TR3]=SGconvexHull(SG,[sep])
% === INPUT PARAMETERS ===
% SG: Solid Geometry
% sep: false=one; true=separated solids
% === OUTPUT RESULTS ======
% SGC: Convex hull(s) of the Solid
% TR3: Delaunay Triangulation
%
% EXAMPLE:
% SGconvexHull(SGsample(7))
% SGconvexHull(SGsample(9))
% SGconvexHull(SGplatesofSGML(SGbox([60,40,20])),true)
% SGconvexHull(SGplatesofSGML(SGbox([60,40,20])),false)
%
% See also: SGnegativeform
%

SGarrangeSG(SGc,dist,adim)- arranges a cell list of solids in a single row

SGarrangeSG(SGc,dist,adim)% SGarrangeSG(SGc,dist,adim) - arranges a cell list of solids in a single row
% (by Tim Lueth, VLFL-Lib, 2015-SEP-15 as class: SURFACES)
%
% 'SGarrangeSG' handles the cell list elements as individual solids!
% Compare SGsample(17), SGSample(20)
% It moves all solids of the cell list into the first quadrant and then
% arranges them in line with a constant distance in x, y, or z direction.
% It is a simple fnctn without any space optimization or size ordering.
% For an optimal arrangement in a volume use 'SGpacking'.
% In contrast to this fnctn, the fnctn 'SGarrangeSGC' uses a special
% container format that allow to store different printing positions for
% single solids of a set (Status of: 2017-01-21)
%
% Introduced first in SolidGeometry 2.5.1
%
% See also: SGarrangeSG, SGpacking, SGpatternXYZ, SGcopyrotZ, SGCaddSGn,
% SGCaddSG
%
% SG=SGarrangeSG(SGc,[dist,adim])
% === INPUT PARAMETERS ===
% SGc: Cell list of Solid Geometries
% dist: fixed distance vector
% adim: 'x' or 'y' or 'z' for arrangement
% === OUTPUT RESULTS ======
% SG: One single solid without any cell structure
%
% EXAMPLE:
% SGarrangeSG ({SGbox(rand(1,3)),SGbox(rand(1,3)),SGbox(rand(1,3))},0.5)
% SGarrangeSG (SGsample(17))
% SGarrangeSG (SGsample(20))
%
% See also: SGarrangeSG, SGpacking, SGpatternXYZ, SGcopyrotZ, SGCaddSGn,
% SGCaddSG
%
%
% Copyright 2015-2017 Tim C. Lueth

exp_2015_09_15- EXPERIMENT to understand the use of gear development

exp_2015_09_15%% PUBLISHABLE EXP_2015_09_15 EXPERIMENT TO UNDERSTAND THE USE OF GEAR DEVELOPMENT
% (by Tim Lueth, VLFL-Lib, 2015-SEP-15 as class: EXPERIMENTS)

%%

% exp_2015_09_15 - EXPERIMENT to understand the use of gear development
% (by Tim Lueth, VLFL-Lib, 2015-SEP-15 as class: EXPERIMENTS)
%
% exp_2015_09_15
%

- EXPERIMENT to reimplement the function polybool

% - EXPERIMENT to reimplement the procedure polybool
% (by Tim Lueth, VLFL-Lib, 2015-SEP-14 as class: EXPERIMENTS)
%
% For reimplementation it is may be clever to check whether the source
% code is visible and resuable
% polybool
% poly2fv
% poly2ccw
% poly2cw (Status of: 2015-09-14)
%
%
%

svgpolylineofCPL (fid,CPL,stroke,width,fill)- writes CPLs as polygons or polyeder lines for a laser cutter

svgpolylineofCPL (fid,CPL,stroke,width,fill)% svgpolylineofCPL (fid,CPL,stroke,width,fill) - writes CPLs as polygons or polyeder lines for a laser cutter
% (by Tim Lueth, VLFL-Lib, 2015-SEP-13 as class: FILE HANDLING)
%
% See also: CPLsortinout, selectNaN, CPLwriteSVG
%
% svgpolylineofCPL(fid,CPL,[stroke,width,fill])
% === INPUT PARAMETERS ===
% fid: File Identifyer
% CPL: Close Contour List
% stroke: red, blue, etc.
% width: 1, 3
% fill: none, or red, blue, etc.
%
% EXAMPLE:
% CPLwriteSVG(CPLsample(10))
%

CPLwriteSVG (CPL,FNAME,ONAME,cutter,colmap,stkwd)- writes a SVG file for a laser cutter

CPLwriteSVG (CPL,FNAME,ONAME,cutter,colmap,stkwd)% CPLwriteSVG (CPL,FNAME,ONAME,cutter,colmap,stkwd) - writes a SVG file for a laser cutter
% (by Tim Lueth, VLFL-Lib, 2015-SEP-13 as class: FILE HANDLING)
%
% This fnctns writes a CPL as SVG file for plotting or laser cutting. It
% is possible to sort the CPLS from inside to outside and give them
% different colors depending on the level of embedding.
% The file also include wrt Christina Hein the "height", "width" and the
% "viewbox" commands of SVG. (Status of: 2017-03-14)
%
% Introduced first in SolidGeometry 2.5.1
%
% See also: svgpolylineofCPL, CPLsortinout, selectNaN, CPLwriteDXF
%
% CPLwriteSVG(CPL,[FNAME,ONAME,cutter,colmap,stkwd])
% === INPUT PARAMETERS ===
% CPL: Contour list
% FNAME: Filename
% ONAME: Creator Name; default is calling fnctn name
% cutter: if true; CPLs are sorted inside out in different colors;
% default is false
% colmap: stroke color or colormap; default is {}
% stkwd: stroke width
%
% EXAMPLE: Try different parameters
% CPLwriteSVG(CPLsample(10))
% CPLwriteSVG(CPLsample(14))
% CPLwriteSVG(CPLsample(14),'','Tim Lueth',false,'blue',1)
% CPLwriteSVG(CPLsample(14),'','Tim Lueth',true,{'blue','red','green'},0.2)
%
% See also: svgpolylineofCPL, CPLsortinout, selectNaN, CPLwriteDXF
%
%
% Copyright 2015-2021 Tim C. Lueth

CPLofVLFL(VL,FL,fi)- creates a CPL and T of a planar VL,FL

CPLofVLFL(VL,FL,fi)% CPLofVLFL(VL,FL,fi) - creates a CPL and T of a planar VL,FL
% (by Tim Lueth, VLFL-Lib, 2015-SEP-12 as class: CLOSED POLYGON LISTS)
%
% Corresponding to fnctn PLofVLFL.
% if norm(ez)<1 we have a spherical surface.
% Written on SY Bontekoning at Marina Panacea Palma de Mallorca
% (Status of: 2022-04-25)
%
% Introduced first in SolidGeometry 2.5.1
%
% See also: CVLofSGfi
%
% [CPL,T,ez]=CPLofVLFL(VL,FL,[fi])
% === INPUT PARAMETERS ===
% VL: Vertex list
% FL: Facet List
% fi: index of facets; default is 1:end
% === OUTPUT RESULTS ======
% CPL: Closed Contour List
% T: Transformation Matrix
% ez: ez vector
%
% EXAMPLE:
% SG=SGsteepspindle([6 60 0 2],'',[0 8]); [s,ss,~,bb]=sofBB(SG);
% [SGU,SGO,~,fsi]=SGcutT(SG,TofPez([0 0 0.499*(bb(5)+bb(6))],[0 0 1]));
% CPLofVLFL(SGU.VL,SGU.FL(fsi,:)); CPLi=ans;
%
% See also: CVLofSGfi
%
%
% Copyright 2015-2022 Tim C. Lueth

CPLgrow(CPL,w,edge,unid)- grows a contour line in a distance

CPLgrow(CPL,w,edge,unid)% CPLgrow(CPL,w,edge,unid) - grows a contour line in a distance
% (by Tim Lueth, VLFL-Lib, 2015-SEP-11 as class: CLOSED POLYGON LISTS)
%
% Written on SY Bontekoning at Marina Panacea Palma de Mallorca.
% 2018-04-12 Modified in Dakhlar, Marocco, add parameter "unid" for
% handling of enclosed contours.
% Supports fittings since SG-Lib 5.0.
% "norm" - Outer contours grow, inner contours shrink
% "outw" - Outer contours grow, inner contours grow also
% "hole" - Outer contours grow, inner contours stay unchanged
% "fitt" - Outer contours unchanged, inner contours grow
% (Status of: 2020-09-21)
%
% Introduced first in SolidGeometry 2.5.1
%
% See also: PLoutercontour, CPLoutercontour, PLgrow, CPLbuffer,
% CPLbufferEdges, CPLofPLgrow, CPLofPLgrowline, CPLbuffer
%
% [RPL,ENL,PNL,PDL]=CPLgrow(CPL,w,[edge,unid])
% === INPUT PARAMETERS ===
% CPL: Closed Polygon line
% w: distance for growing
% edge: true call CPLgrowEdge; default is false;
% unid: "norm", "outw", "hole" , "fitt", for handling growing
% === OUTPUT RESULTS ======
% RPL: Recalculated CPL
% ENL: Edge normal vector list
% PNL: Point normal vector lit
% PDL: Point direction vector list
%
% EXAMPLE:
% CPLgrow(PLcircle(4),-1);
% CPLgrow(PLstar(4,20),-1);
% CPLgrow(PLstar(10,12),-3,true);
% CPLgrow(CPLsample(12),1,false,'norm');
% CPLgrow(CPLsample(12),1,false,'outw');
% CPLgrow(CPLsample(12),1,false,'hole');
% CPLgrow(CPLsample(12),1,false,'fitt');
%
% See also: PLoutercontour, CPLoutercontour, PLgrow, CPLbuffer,
% CPLbufferEdges, CPLofPLgrow, CPLofPLgrowline, CPLbuffer
%
%
% Copyright 2015-2020 Tim C. Lueth

CPLinsideCPL(CPL,CPLs)- returns the contours of a CPL that inside another CPL

CPLinsideCPL(CPL,CPLs)% CPLinsideCPL(CPL,CPLs) - returns the contours of a CPL that inside another CPL
% (by Tim Lueth, VLFL-Lib, 2015-SEP-11 as class: CLOSED POLYGON LISTS)
%
% Written on SY Bontekoning at Marina Panacea Palma de Mallorca (Status
% of: 2019-03-04)
%
% Introduced first in SolidGeometry 2.5.1
%
% See also: insidePLEL, insideCPS, selectNaN
%
% [ind,CPLN]=CPLinsideCPL(CPL,CPLs)
% === INPUT PARAMETERS ===
% CPL: One outer CPL that defines the border line
% CPLs: CPL with several contours separated by NAN
% === OUTPUT RESULTS ======
% ind: index which contour is inside of CPLO
% CPLN: CPL of all internal CPLs
%
% EXAMPLE:
% CPLinsideCPL(PLcircle(9),CPLcopypattern(PLcircle(2),[5 5],[2 2]))
%
% See also: insidePLEL, insideCPS, selectNaN
%
%
% Copyright 2015-2019 Tim C. Lueth

CPLfillPattern(CPL,CPLA,w,d,cut,pc)- fills a contour with copies of a pattern

CPLfillPattern(CPL,CPLA,w,d,cut,pc)% CPLfillPattern(CPL,CPLA,w,d,cut,pc) - fills a contour with copies of a pattern
% (by Tim Lueth, VLFL-Lib, 2015-SEP-11 as class: CLOSED POLYGON LISTS)
%
% Written on SY Bontekoning at Marina Panacea Palma de Mallorca.
% The filling algorithm is expecting that the pattern are centered around
% [0 0]; otherwise by using parameter pc, the fnctn filling contour is
% moved into its bounding box center
% (Status of: 2018-08-27)
%
% Introduced first in SolidGeometry 2.5.1
%
% See also: CPLfillHoneycomb
%
% [CPLN,XPL]=CPLfillPattern(CPL,CPLA,[w,d,cut,pc])
% === INPUT PARAMETERS ===
% CPL: Contour to be filled
% CPLA: Filling pattern to be copied
% w: border thickness of CPL; default is 1
% d: distance between the pattern; default is w
% cut: cut instead of removal of overlapping pattern; default is false
% pc: 'c' moves the contour into the center; is 'c' on by default
% === OUTPUT RESULTS ======
% CPLN: CPL of resulting contour with punched patterns
% XPL: CPL of punching patterns
%
% EXAMPLE: Fill a circle with stars:
% CPLfillPattern(PLcircle(30),PLstar(5,20),0,0); % Both contours are centered
% CPLfillPattern(PLcircle(30),PLstar(5,20)+3,0,0); % Pattern shifting is ignored
% CPLfillPattern(PLcircle(30)+10,PLstar(5,20),0,0); % Contour shifting is compensated
% CPLfillPattern(PLcircle(30)+10,PLstar(5,20)+3,0,0,true,'x');
%
% See also: CPLfillHoneycomb
%
%
% Copyright 2015-2018 Tim C. Lueth

CPLofplateSG(SG)- returns for a flat plate solid its contour

CPLofplateSG(SG)% CPLofplateSG(SG) - returns for a flat plate solid its contour
% (by Tim Lueth, VLFL-Lib, 2015-SEP-10 as class: SURFACES)
%
% This procedure is may be of limited use.
% Written on SY Bontekoning in the bay Cala Portals (Mallorca)
% (Status of: 2015-09-10)
%
% [CPL,z,zmin]=CPLofplateSG(SG)
% === INPUT PARAMETERS ===
% SG: Solid, i.e. a flat plate
% === OUTPUT RESULTS ======
% CPL: Contour of the plate
% z: height of the plate
% zmin: zmin used for SG
%
% EXAMPLE:
% CPLofplateSG(SGbox([30,20,10]))
%

exp_2015_09_10- EXPERIMENT to cut flat plates by an additional contour

exp_2015_09_10%% PUBLISHABLE EXP_2015_09_10 EXPERIMENT TO CUT FLAT PLATES BY AN ADDITIONAL CONTOUR
% (by Tim Lueth, VLFL-Lib, 2015-SEP-10 as class: EXPERIMENTS)

%%

% exp_2015_09_10 - EXPERIMENT to cut flat plates by an additional contour
% (by Tim Lueth, VLFL-Lib, 2015-SEP-10 as class: EXPERIMENTS)
%
%
% Written on SY Bontekoning in the bay Cala Portals (Mallorca)
% (Status of: 2015-09-10)
%
% exp_2015_09_10
%

CPLinvert(CPL,add)- Change the direction of all contours in a CPL

CPLinvert(CPL,add)% CPLinvert(CPL,add) - Change the direction of all contours in a CPL
% (by Tim Lueth, VLFL-Lib, 2015-SEP-09 as class: CLOSED POLYGON LISTS)
%
% Written on SY Bontekoning in the bay Cala Portals (Mallorca)
% (Status of: 2015-09-09)
%
% NCPL=CPLinvert(CPL,[add])
% === INPUT PARAMETERS ===
% CPL: Closed Polygon List separated by NaN
% add: frame around with distance add; default=0; no frame
% === OUTPUT RESULTS ======
% NCPL: Closed Polygon List reversed direction
%
% EXAMPLE:
% CPLinvert(PLcircle(10),4)
%

CPLedgeNormal(CPL)- returns edge normals and point normals for a CPL

CPLedgeNormal(CPL)% CPLedgeNormal(CPL) - returns edge normals and point normals for a CPL
% (by Tim Lueth, VLFL-Lib, 2015-SEP-09 as class: CLOSED POLYGON LISTS)
%
% Slow but correct fnctn for CPL and PL. In case of PL, the last edges
% are not plotted.
% Written on SY Bontekoning in the bay Cala Portals (Mallorca)
% (Status of: 2020-09-14)
%
% Introduced first in SolidGeometry 2.5.1
%
% See also: CVLedgeNormal, VLedgeNormal, edgeNormal, PLnorm, PLELnorm,
% PLFLfaceNormal, VLnorm, VLFLnormf, VLFLfaceNormal
%
% [ENL,PNL,PDL]=CPLedgeNormal(CPL)
% === INPUT PARAMETERS ===
% CPL: Closed Polygon List separated by NaN
% === OUTPUT RESULTS ======
% ENL: edge normal list
% PNL: Point normal list
% PDL: Point distance list (vector to next point)
%
% EXAMPLE:
% CPLedgeNormal(PLcircle(10,4))
% w=1; [~,PNL]=CPLedgeNormal(CPL); RPL=CPL-w*PNL;
%
% See also: CVLedgeNormal, VLedgeNormal, edgeNormal, PLnorm, PLELnorm,
% PLFLfaceNormal, VLnorm, VLFLnormf, VLFLfaceNormal
%
%
% Copyright 2015-2020 Tim C. Lueth

exp_2015_09_09- Experiment to convert solid blocks into plate structures

exp_2015_09_09%% PUBLISHABLE EXP_2015_09_09 EXPERIMENT TO CONVERT SOLID BLOCKS INTO PLATE STRUCTURES
% (by Tim Lueth, VLFL-Lib, 2015-SEP-09 as class: EXPERIMENTS)

%%

% exp_2015_09_09 - Experiment to convert solid blocks into plate
% structures
% (by Tim Lueth, VLFL-Lib, 2015-SEP-09 as class: EXPERIMENTS)
%
% This experiments separates a solid geometry into all mounting faces.
% Afterwards all mounting faces are converted into solid plates by using
% SGofSurface. Therefor, a solid block is converted into a shell of six
% plates with the same outer and inner geometry.
% Written on SY Bontekoning in the bay Cala Portals (Mallorca)
% (Status of: 2015-09-09)
%
% C=exp_2015_09_09
% === OUTPUT RESULTS ======
% C: resulting solid consisting of plates
%

exp_2015_09_08- Experiment to convert solid blocks into plate structures

exp_2015_09_08%% PUBLISHABLE EXP_2015_09_08 EXPERIMENT TO CONVERT SOLID BLOCKS INTO PLATE STRUCTURES
% (by Tim Lueth, VLFL-Lib, 2015-SEP-08 as class: EXPERIMENTS)

%%

% exp_2015_09_08 - Experiment to convert solid blocks into plate
% structures
% (by Tim Lueth, VLFL-Lib, 2015-SEP-08 as class: EXPERIMENTS)
%
% This experiments separates a solid geometry into all mounting faces.
% Afterwards all mounting faces are converted into solid plates by using
% SGofSurface. Therefor, a solid block is converted into a shell of six
% plates with the same outer and inner geometry.
% Written on SY Bontekoning in the bay Cala Egos (Mallorca)
% (Status of: 2015-09-08)
%
% C=exp_2015_09_08
% === OUTPUT RESULTS ======
% C: resulting solid consisting of plates
%

SGplatesofSGML(SG,th,pat,w,UVF)- converts a solid into a plated solid

SGplatesofSGML(SG,th,pat,w,UVF)% SGplatesofSGML(SG,th,pat,w,UVF) - converts a solid into a plated solid
% (by Tim Lueth, VLFL-Lib, 2015-SEP-07 as class: SURFACES)
%
% This fnctn separates a solid geometry into all mounting faces.
% Afterwards all mounting faces are converted into solid plates by using
% SGofSurface. Thus, a solid block is converted into a shell of several
% plates with about the same outer and inner geometry. Each mounting face
% will result in one separate solid. The plates do not share any vertex.
% Written on SY Bontekoning in the bay Cala Egos (Mallorca)
% (Status of: 2017-01-29)
%
% See also: TofSGMLez, TofSGML, TofVLUL, TofVLULez, TofSGMLez, MLofSG,
% MLplot
%
% NSG=SGplatesofSGML(SG,[th,pat,w,UVF])
% === INPUT PARAMETERS ===
% SG: Original solid
% th: Thickness of the plates; default is 0.5
% pat: CPL of a pattern to fill
% w: border size and pattern distance; default th
% UVF: list of unit vectors for filling;default=all ([])
% === OUTPUT RESULTS ======
% NSG: resulting solid consisting of plates
%
% EXAMPLE: Convert a box into six plates
% SGplatesofSGML(SGbox([30,20,10]))
% SGplatesofSGML(SGbox([60,40,20]),2,PLcircle(3,4));
% SGplatesofSGML(SGbox([60,40,20]),2,PLcircle(3,4),1,[0 -1 0;0 +1 0]);
%

randsupp- returns a sign of minimum 1e-3 plus a random number of 1e-4

randsupp% randsupp - returns a sign of minimum 1e-3 plus a random number of 1e-4
% (by Tim Lueth, VLFL-Lib, 2015-SEP-07 as class: AUXILIARY PROCEDURES)
%
% =======================================================================
% OBSOLETE (2020-07-31) - USE 'randol' INSTEAD
% =======================================================================
%
% s=±[1e-3..2e-3]
% Written on SY Bontekoning in the bay Cala Egos (Mallorca)
% (Status of: 2020-07-31)
%
% Introduced first in SolidGeometry 2.5.1
%
% See also: [ randol ] ; randminv, randol
%
% s=randsupp
% === OUTPUT RESULTS ======
% s: random supplement
%
% See also: [ randol ] ; randminv, randol
%
%
% Copyright 2015-2020 Tim C. Lueth

exp_2015_09_07- Experiment to convert solid blocks into plate structures

exp_2015_09_07%% PUBLISHABLE EXP_2015_09_07 EXPERIMENT TO CONVERT SOLID BLOCKS INTO PLATE STRUCTURES
% (by Tim Lueth, VLFL-Lib, 2015-SEP-07 as class: EXPERIMENTS)

%%

% exp_2015_09_07 - Experiment to convert solid blocks into plate
% structures
% (by Tim Lueth, VLFL-Lib, 2015-SEP-07 as class: EXPERIMENTS)
%
% this experiments separates a solid geometry into all mounting faces.
% Afterwards all mounting faces are converted into solid plates by using
% SGofSurface. Therefor, a solid block is converted into a shell of six
% plates with the same outer and inner geometry.
% Written on SY Bontekoning in the bay Cala Egos (Mallorca)
% (Status of: 2015-09-07)
%
% C=exp_2015_09_07
% === OUTPUT RESULTS ======
% C: resulting solid consisting of plates
%
RapidWeaver Icon

Last Change Oct 2023 for SG-Lib 5.3