Excessive command history reporting during scripted "UnrollSrf"

If I run the attached MultiUnroll script on Windows Rhino, and I select 5 cubes and 5 spheres, the command line reports:

Command: RunPythonScript
Select surfaces to unroll:
Select surfaces to unroll. Press Enter when done:
Select surfaces to unroll. Press Enter when done:
Select curves to unroll with surfaces:
Number/Explode ( Number=Yes  Explode=No ):
Start point for unrolls - press Enter for world 0:
Spacing between unrolls? <25>: 1
Spacing between unrolls? <25>:
Calculating starting area... Press Esc to cancel
Area difference is within tolerance.
6 surfaces unrolled.
Command:
Calculating starting area... Press Esc to cancel
Area difference is within tolerance.
6 surfaces unrolled.
Command:
Calculating starting area... Press Esc to cancel
Area difference is within tolerance.
6 surfaces unrolled.
Command:
Calculating starting area... Press Esc to cancel
Area difference is within tolerance.
6 surfaces unrolled.
Command:
Calculating starting area... Press Esc to cancel
Area difference is within tolerance.
6 surfaces unrolled.
Sucessfully unrolled 5 objects | Unable to unroll 5 objects
Creating meshes... Press Esc to cancel

If I run the same on MacRhino with the same 10 objects I get:

Command: RunPythonScript
Area difference is within tolerance.
6 surfaces unrolled.
Area difference is within tolerance.
6 surfaces unrolled.
Area difference is within tolerance.
6 surfaces unrolled.
Area difference is within tolerance.
6 surfaces unrolled.
Area difference is within tolerance.
6 surfaces unrolled.
At least one surface you are trying to unroll is not developable because it is doubly curved.
If you want to unroll it anyway, try using the Smash command or adjust the relative tolerance on the UnrollSrf commandline.
Unrolling doubly curved surfaces will produce inaccurate results.
At least one surface you are trying to unroll is not developable because it is doubly curved.
If you want to unroll it anyway, try using the Smash command or adjust the relative tolerance on the UnrollSrf commandline.
Unrolling doubly curved surfaces will produce inaccurate results.
At least one surface you are trying to unroll is not developable because it is doubly curved.
If you want to unroll it anyway, try using the Smash command or adjust the relative tolerance on the UnrollSrf commandline.
Unrolling doubly curved surfaces will produce inaccurate results.
At least one surface you are trying to unroll is not developable because it is doubly curved.
If you want to unroll it anyway, try using the Smash command or adjust the relative tolerance on the UnrollSrf commandline.
Unrolling doubly curved surfaces will produce inaccurate results.
At least one surface you are trying to unroll is not developable because it is doubly curved.
If you want to unroll it anyway, try using the Smash command or adjust the relative tolerance on the UnrollSrf commandline.
Unrolling doubly curved surfaces will produce inaccurate results.
Sucessfully unrolled 5 objects | Unable to unroll 5 objects

Can Windows Rhino be made less verbose for the upper part and MacRhino be made less verbose for the lower part in this instance?

MultiUnroll.py (3.1 KB)

thx, --Mitch

@Helvetosaur,

i agree this is a lot of command feedback and it should be considered a bug that using Rhino.Command(cmd, False) does not filter it. You might get less command feedback by not scripting the command version and using the unroller class in your script. It does not echo at all.

There is a ready made example here.

c.

Here too.

https://github.com/dalefugier/SamplePy/blob/master/SampleUnroller.py

Yeah will do, I was just being lazy fixing an old existing script…

It is interesting to note that Mac Rhino and Windows Rhino each suppress part of the command line reporting, but differently. The Mac version chooses not to output this on each iteration:

Calculating starting area... Press Esc to cancel

While the Windows version chooses not to output the verbose warning about double curved surfaces:
At least one surface you are trying to unroll is not developable because it is doubly curved. If you want to unroll it anyway, try using the Smash command or adjust the relative tolerance on the UnrollSrf commandline. Unrolling doubly curved surfaces will produce inaccurate results.
So it is possible to choose what to output and what not to output…

@dale What would be good to have in RhinoCommon would be a Brep.IsUnrollable property, that way one could pre-sort input Breps without actually having to run Unroller.PerformUnroll() and have it fail.

Thx, --Mitch

Hi Mitch, keep in mind that the unroller will unroll any surface which is linear in at least one direction, regardless of the surface’s gaussian curvature. To avoid bad surprises you’ll always have to check the Gaussian curvature and compare the area of the curved and unrolled surface.

Jess

Hi Jess,

Sure. In this case I just want to have more or less the same yes/no choice as the Rhino command has.

Cheers, --Mitch

This is Rhino for Windows 5 sr12 and Rhino for Mac 5.1?

There really isn’t a way of knowing a Brep is unrollable (or not) until you try to unroll it. This is what RhinoScript’s IsSurfaceUnrollable method does…

OK, is that what the Rhino command UnrollSrf is doing behind the scenes as well (when it prints out the abovementioned message) ?

–Mitch

Perhaps.

If a command prints a message to the command window (for RhinoCommon, this would be calling Rhino.RhinoApp.Write or Rhino.RhinoApp.Writeline), then this message will print, even if you set the command echo flag off in however you script the command.

I know this has been mentioned before…

No, what I meant is that when we get the message from UnrollSrf it is also because it has tried to unroll and failed…?

Yes, the “At least one surface you are trying to unroll is not developable…” message is due to a failed unroll…

OK, thanks Dale, no more questions then. --MItch