Diagnostics

Sometimes a model can become damaged. These damaged areas can cause problems.

It is possible to build bad models using Rhino tools. For instance, Rhino will let you create a planar surface from a self-intersecting curve, but the result will be a poorly defined object that will cause problems later.

Another potential problem is a tiny trimming edge joining to a larger trim curve on an adjacent surface. If Rhino matches the large edges, sometimes the tiny trim curve edge compresses even further so that it is really just a point. That compressed edge no longer has meaningful orientation and causes problems.

There are modeling techniques you can use to increase the overall robustness of your models.

Drawing tiny little lines to connect pieces of a trim curve instead of moving the two endpoints of the curves together generally interferes with other objects joining together and tends to cause problems.

Sometimes the microscopic edges can be generated through other means, such as Boolean operations, where the objects are just off from each other by just a little bit.

Trimming edges that are very small or curved back on themselves are the biggest cause of problems in models.

There are Rhino tools you can use to examine your model for these defects.

The first one to try is the Check command. If your model doesn't pass Check, then it will list some specific problems. You can just use the list to indicate that you might need to tune up the model. If a model passes Check, it doesn't automatically mean that it is 100 percent properly structured, though. Some bad model parts, like having surfaces that fold back on themselves or self-intersect, are very time consuming and difficult to automatically detect, and Check does not check for those things. But it can check the general overall structure of the object.

The work-around is to Explode, Untrim, Trim again, and Join. If there are lots of tiny edges, then you may have to use the SplitEdge command to split all edges so they have a compatible structure, and then use JoinEdge to manually mate the proper pairs.

When there are long things and tiny things adjacent to each other, the Join command can get confused - when that happens, the low level manual JoinEdge can work as a replacement.

These tools are on the Analyze menu under Edge Tools. You may need to use several of these tools to fix difficult broken models as well.

Avoiding Modeling Errors

Tools for analysis include …

List data structure of an object

Check objects

Select all objects that do not pass Check

Check

Detects and reports errors in the selected object's data structure.

Steps:

Check.png

Analyze > Check Objects

Geometry Fix > Check Objects

Diagnostics > Check Objects

Menu2.png

Analyze > Diagnostics > Check

Gray_Book_Open.gif Related topics…

CheckNewObjects

Detects and reports errors in objects as they are created or imported.

Steps:

This command finds bugs that create invalid geometry in the model. This feature makes it possible to find and fix the cause of bad geometry entering the model. If you are comfortable helping us debug Rhino, please enable this feature.

Every time an object is created or imported from a file, Rhino runs the Check command. If Check determines that the object is bad, Rhino displays a dialog box informing you of the problem. This message will appear once for each bad object that is created.

Check is a time-consuming process. It can make importing files and working with complex solids somewhat slower. If you find that it slows Rhino down too much, you can disable it by typing CheckNewObjects at the command prompt.

If Rhino creates a bad object while modeling:

  1. If you are working normally and the Check New Objects dialog box appears, then you have found a bug in Rhino. We would greatly appreciate it if you would report this bug. Here's how:

  2. Click OK to close the dialog box.

  3. Undo once.

    This puts you in the state just before the bad object was created.

  4. Select all of the objects you used in the previous modeling operation.

  5. Use the Export command to create a new model with only the selected objects.

  6. Save the file as "CheckNewObjects Bug.3dm"

  7. Email the file "CheckNewObjects Bug.3dm" to tech@mcneel.com.

    Be sure to tell us what command you were using, as well as any options that were enabled when you used it.

If Rhino creates a bad object while opening a Rhino 3DM file:

If Rhino creates a bad object while opening any file not 3DM:

CheckNewObjects.png

Analyze > Check all new Objects (Right click)

Diagnostics > Check all new Objects (Right click)

Menu2.png

None

Gray_Book_Open.gif Related topics…

ExtractBadSrf

Separates surfaces with errors from a polysurface.

Steps:

_ABlankButton.png

None

Menu2.png

None

Gray_Book_Open.gif Related topics…

RemoveFlippedNormals

Reverses inconsistently oriented NURBS surface normals.

Steps:

Note: Use the Dir command to see the normals graphically.

_ABlankButton.png

None

Menu2.png

None

Gray_Book_Open.gif Related topics…

RemoveMultiKnotSrf

Removes multiple but not fully-multiple knots from surfaces.

Note: Multiple knots means more than one knot at a location. Fully-multiple knots means as many as possible at a location, which is equal to the degree. There may be a kink at that point that is desired.

Surfaces created with the Sweep2, BlendSrf, and OffSetSrf commands can be built with multiple knots. The RemoveMultiKnotSrf command removes these stacked knots if they are not fully multiple.

Removing the multiple knots can cause some loss in the surface precision, but in practice, this is usually not a problem. The advantage to removing these knots is that the surface point count is greatly reduced.

The Simple Sweep option in the Sweep2 dialog box makes surfaces that do not have multiple knots, but this option is only available in restricted cases where all the curves are perfectly matched and correctly placed. The usual behavior of the Sweep2 command allows accurate sweeps to be made from diverse input.

RemoveMultiKnotSrf.png

Surface Tools > Remove MultiKnots from Surface

Menu2.png

None

Gray_Book_Open.gif Related topics…

DivideAlongCreases

Divides a surface into separate parts at kinks.

Creased ( kinked) surfaces are divided into smooth pieces joined in a polysurface. Creased surfaces within a polysurface are divided and joined within that polysurface.

DivideAlongCreases.png

Surface Tools > Divide Along Creases (Right click)

Menu2.png

Surface > Surface Edit Tools > Divide Surface on Creases

Gray_Book_Open.gif Related topics…

GCon

Analyzes and reports the geometric continuity between two curves.

Steps:

  1. Select the first curve near the end that coincides with the end of another curve.

  2. Select the second curve near the coinciding end.

    Tangency and curvature continuity information display on the command line.

GCon.png

Analyze > Geometric Continuity of 2 Curves

Menu2.png

Analyze > Curve > Geometric Continuity

Gray_Book_Open.gif Related topics…