Toolbar  Menu 


Surface > Surface Flattening > Squish DoubleCurved Surface 
The Squish command flattens a nondevelopable (curved in two directions) 3D mesh or NURBS surface into a flat 2‑D pattern.
The Squish command marks areas of compression with a red point cloud and areas of stretching with a green point cloud and displays statistics about the amount of compression or stretch. Up to ten text dots mark the locations with the most dramatic deformation. The number in the text dot is the percentage of change in length.
Change in area from original.
The material will be compressed when the 2D pattern is deformed into the 3D shape. The percentages are an estimate of how much of the pattern will be compressed.
The material will be stretched when the 2D pattern is deformed into the 3D shape. The percentages are an estimate of how much of the pattern will be stretched.
Commandline options  

SplitSeams 
Allows a mesh to be split at a seam so it can be flattened. This is good for closed surfaces like cylindrical shapes. 
PreserveBoundary 
Avoids distorting boundary lengths. 
Deformation 
Choose an option depending on your bias for stretching or compressing, and the ability to specify custom deformation settings. FreeNo preference for compression or stretching. StretchMostlyStrong bias for expansion when the pattern is deformed into the 3D shape. StretchOnlyAbsolutely no compression when the pattern is deformed into the 3D shape. CompressMostlyStrong bias for compression when the pattern is deformed into the 3D shape. CompressOnlyAbsolutely no expansion when the pattern is deformed into the 3D shape. CustomA/CustomB/CustomCCustom deformations. Lets you set the parameters used by the custom deformations. There are four parameters you can set. BndStretchBndCompressInteriorStretchInteriorCompressThe default value for these parameters is 1 and they can be set to any positive number. A larger value reduces the amount of the specified deformation compared to what happens when all four parameters are equal. For example, if you want to severely limit interior expansion, you could do something like: BndStretch=1 BndCompress=1 InteriorStretch=1 InteriorCompress=100 If you want to preserve boundary lengths you could use the settings: BndStretch=10 BndCompress=10 InteriorStretch=1 InteriorCompress=1 CustomSetupSpecifies settings used by the CustomA/CustomB/CustomC options. 
Material 
Describes the type of material that will be used for manufacture. RigidMinimizes stresses when forming the 3D surface from the 2D pattern when a rigid material will be used for manufacture. FloppyLimits geometric distortion as much as possible when a pliable material will be used for manufacture. 
Outside 
UpThe outside of the 3D surface is up in the 2D pattern. DownThe outside of the 3D surface is down in the 2D pattern. 
Decorate 
Adds the red and green point clouds and text dots to the model. 
Squish is an algorithm that works on meshes. Squish flattens the mesh by "minimizing the changes in facet area and changes in facet edge lengths" between the 3‑D mesh and the 2‑D mesh, subject to some constraints.
For example, if A,B,C are the corners of a 3‑D triangle and a,b,c are the corresponding corners of the 2‑D triangle, the changes in edge length are
d1 = Distance(A,B)  Distance(a,b)
d2 = Distance(B,C)  Distance(b,c)
d3 = DIstance(C,A)  Distance(c,a)
da = Area(A,B,C)  area(a,b,c)
DL = d1+d2+d3
DL2 = d1^{2} + d2^{2} + d3^{2}
DA = da
DA2 = da^{2}
D = some combination of DL, DL2, DA and DA2
The "minimizing the changes in area and or edge lengths" above means create the 2‑D mesh so that "D" is as small as possible.
In practice, there are thousands of facets and many ways to minimize D, most of which don't make practical sense. So Squish constrains the answer to prevent the 2‑D mesh from folding back onto itself and forcing certain 3‑D points end up in specified 2‑D locations.
A trimmed NURBS surface is squished by squishing a dense mesh of the surface.
The squish options determine how DA, DA2, D1 and D2 are combined and allow for more complicated ways to calculate of DA, DA2, D1, and D2 and to allow for a bias towards stretching or compression.
However, the Squish algorithm is much too simple to even begin to model the true physical properties of most materials that come in sheets, particularly those that where material thickness plays a role and those that can compress or stretch any appreciable amount,
In short, if a sheet of material is expensive, cutting it is expensive, or bending it is expensive, or related issues in the manufacturing process are time critical or money critical, then consider using Squish to give you an initial hint about the shape of a pattern, but real material and manufacturing expertise will have to be used to create a pattern that will work on the shop floor.
Toolbar  Menu 



The SquishBack command returns curves and points on the 2D pattern to the original squished 3‑D shape.
Suppose we wanted to put a “Rhino” brand name in the black circle on this 3D NURBS model of a shoe last.
First use the Squish command to generate a 2D pattern of the last.
Then use the TextObject command to create the white “Rhino” text as curves on the 2D pattern.
Finally, use the SquishBack command to “unsquish” the white Rhino text onto the 3D last.
Toolbar  Menu 



The SquishInfo command provides information about the settings used to squish the object.
Flatten a surface without restriction to singledirectional curvature.
Flatten (develop) a surface or polysurface with curvature in one direction to a planar surface.
Rhinoceros 6 © 20102020 Robert McNeel & Associates. 13Oct2020