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?
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.
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.
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.
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…
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.