Rhinoceros Squish/Unroll terrible result.. Please help

Can anyone suggest any way I can get this surface unrolled accurately (within 2mm)
I tried everything cant get this to work.
Looking for a Rhinoceros workflow…deliveries…
Selected.3dm (60.0 KB)

A surface must be developable to be unrolled without distortion. Your surface is not close to developable.That is how the math works.

I understand that Gaussian Curvature must tend to 0
However with Catia software we are able to unroll it
We transitioned to Rhino due to a complete plugin developed in Rhinocommon for our job (making CNC cutting from 3d models)

So the question is this :
Why is Catia able to unroll it with 2mm accuracy while Rhinoceros fails with over 20mm difference?

Cause It’s weird that Catia can do unrolls like this with incredible accuracy… What do they do different than Rhino?
Maybe I can change the workflow somehow? Or change the surface somehow?

Please explain a better workflow to get it out Unrolled

Thank you @davidcockey

Someone who is familiar with surface modelling maybe can help… @emilio maybe a gh definition can do better than Rhino OG commands?

Hi @Carlo_Lungiani

Maybe they simply scale the unrolled part to match the area? :wink: Which of course is not useful, because if you want to build a compound curvature surface from sheet material it has to be stretched and/or compressed to achieve that.

With the _Squish command you have some options to control that. So it depends how you will fabricate it. I assume the material will be stretched mostly to get into this shape.

You’ll have to be careful with the _Squish command! It has some “bugs” so always check the output and decoration (deviations)!

Jess

1 Like

Yeah I am really good with Rhinoceros and all it’s settings and sadly the three commands won’t cut it for us (squi/smash/unro9ll in any way we tried)
If anyone has a better workflow that would result in any of these 3 commands work that would be great.
The same surface in Catia is unfolded with 0 issues in half a second
@stevebaer @dale

Hi @Carlo_Lungiani
what do you think is wrong with my proposal?
Can you post the unrolled surface from Catia?
Jess

Your surface isn’t developable, what is Catia actually doing? 'Cause the fact is once you start forming the material all bets are off, you could start with anything, there is no right or wrong answer, so please educate us on what Catia’s magic feature is actually doing.

Fwiw here’s that surface flattened in creo:
flatten creo.3dm (116.4 KB)

1 Like

Can you save it in Rhinoceros 7 please @ftzuk
So I can compare with Rhino and Catia

V7:
rh7 flatten creo.3dm (144.4 KB)

1 Like

Catia may be unrolling that surface so that the area of the unrolled surface matches the original surface.
However.
There will still be shear distortion of the shape. It is not possible to unroll such a shape without distortion.

That is my guess.

To make the area of the unrolled surface match the original surface use Scale on the unrolled surface with a scale factor = square root (area orginal / area unrolled)

Guassian curvature is a very common metric suggested for assessing if a surface is developable, but it has a significant drawbacks for assessing if a surface is close enough to exactly developable.

An exactly developable surface has exactly zero Guassian curvature. But what is the surface is not “exactly developable” as sometimes happens in design.

How small is small enough for Guassian curvature? That is a non-trivial question, and one that I have rarely seen an answer to.

Is 0.1 small enough? How about 0.001 - that seems like a small number? Or should it be even smaller, perhaps 0.000001?

Gaussain curvature has units of 1/length^2. If millimeters are the length unit then Gaussian curvature has units of 1/mm^2. If meters are used then Gaussian curvature has units of 1/m^2. So the numeric value for the Gaussian curvature of a surface will be 1,000,000 larger if meters are used rather than millimeters. A Guassian curvature of 0.1 if meters are the length units use is the same as 0.009 if feet are used, the same as 0.00065 if inches are used, and the same as and 0.000001 if millimeters are used.

A second drawback to using Guassian curvature to assess if surface is close enough to exactly developable is it is difficult to relate Guassian curvature to other measures such as the amount of twist.

Hi @ftzuk
hard to say which version will work better. In this case it may depend where you’ll start to weld that plate to the frames :wink: Also I think it is unlikely that this part will be made from a single sheet - almost 12m long.

So what are we talking about here? Squish is not perfect and has some bugs, but from my experience it may work in that case. Of course you cannot experiment here. So I’d probably try something which is specialized for such stuff: ExactFlat for Rhino 3D — 2D & 3D Digital Pattern Making Software - ExactFlat

Jess

I know very little about GH, sorry.

Again, I’m no expert about unrolling, but generally speaking IMHO Catia and Rhino are very different things, from several points of view.

First price.
Then software structure.
Company structure and culture.
The program philosophy, so to speak.

Asking McNeel to turn Rhino into Catia makes little sense.
Someone has been doing that for 20 years …
It simply is not in Rhino’s nature.

So no solution.
Other software can expand this more accurately than Rhino and there’s no reply from Mcneel?
Not even an attempt at improving…??
@carlosperez

Did you try ExactFlat | Food4Rhino?

How are you judging accuracy? By the expanded area matching the original area?

I’m interested in seeing the output from Catia for comparison.

I don’t use Squish, but I’m very familiar with its cousin, Smash. I can understand the frustration.

My primary concern is the domain, not the physical space. I judge accuracy based on if a 1D curve flows as a 2D curve. The flow output is nowhere near planar for anything beyond a trivial example.


(non uniform stretching using a Smash base)

You are better off creating a cplane manually and using Project to get a trivial target surface.


(projecting curves to create a target surface with a uniform domain space)

@Carlo_Lungiani can you please send the flattened Catia model as a Rhino file? It’s extremely difficult to tell the difference between working and not working based on just the input data and an assertion.

Try UnrollSrfUV It may do a better job of preserving the surface parameterization than UnrolSrf.

UnrollSrfUV needs to be added to the flatten group in help. I didn’t know it existed.

However, it seems to optimize the domain in only one direction.

Here’s that surface: HardToSmash.3dm (36.0 KB)