PointDeviation request - add curves as input

Request - Add curves as input to PointDeviation. PointDeviation would automatically extract points from the curves to use as input for the comparison. This would be similar to how PointDeviation can use surfaces as input (added in V6).

I frequently need to check how well a surface fits a set of curves. My current proceedure is to use Divide on the curves to create a set of points, and then use those points as input. It would be simpler to use the curves directly as input.

1 Like

Added to Wish list:

One of the issues is NURBS curves do not have these points. They are cooked up at the time you turn on display of “Edit Points” (on the curve), “Control Points” (on cvs), or Knots.
This will take time and some mechanism will be need to guess which kind of points you think you need.

An “on the fly” version of Divide using a preset number of divisions, say 20, incorporated into the command would be sufficient.

I divided the domain of the curve by 20 so you get 21 points per curve. Do you want the same behavior for polylines or just the points of the polyline?

For polylines the vertices/points of the polylines would be sufficient, equivalent to what is used for meshes.


Do you have a simple example file you can post so I can test the new revision?

Not immediately but I will find one and provide.

@John_Brock Example file for testing curves as input. PtDevCrvTest01.3dm (275.2 KB) The file also contains a set of points from the curves for comparison purposes.

Here’s a screenshot using the new CurveDivisions=20 option:

And another using your supplied points:

1 Like

Looks good. Is the 20 divisions hard coded or user set?

Command line control:

Tested PointDeviation in Work In Progress (7.0.20182.13135, 6/30/2020).

Works as desired. Thanks!

Help still needs updating.

Hi David -

This feature was introduced in Rhino 7 and it looks like the Rhino 7 help page has been updated to include the added feature:

Hello John,

Please also add Edges as input to PointDeviation. This is very important for clean and even surfacing and analysis.

Visible MIN And MAX values are also required as these cases show a DESIRED deviation that needs to be within a given range!

Car model by @Alejo LINK

1 Like

All you need to do is turn on the control points for the surface you want to test against.

Or are you needing something different?

I need to measure a surface edge againt a (or several) second surface, showing me the MIN and MAX distances, so I can manipulate the first surface until I meet my requirements, for example the gap opens up evenly from 1.2mm to 2.5mm. Maybe it only opens up from 1.252mm to 2.478mm. This would be fine as it would be within the desired range and the rate of change would be even and constant, without getting smaller somewhere in between for example.

Use CrvDeviation to check distance between surface edges.

I’m not trying to measure the distance between two edges, I want to measure the distance between a surface edge and a second surface just like you measure a curve against a surface.

@Cadworx This is probably not quite as simple as you want:
Start PointDeviation (new version in WIP 7.0.20182.13135, 6/30/2020 or later).
For object to extract points from:
Type SubCrv and enter, click on the surface edge, then click on the ends of the edge to select the entire length of the edge. Enter
For object to test against select the other surface. Enter
View results

Correct, and that is why I proposed to add “Edge” as input to PointDeviation

Besides Continuity, Distance-Analysis between Curves and Surfaces, and Edges and Surfaces are valuable tools for topolgy control and precise analysis of your geometry.

Distance-Analysis is used for all geometry that has a relation to each other but that do not necessarily touch.

Just a few examples.

  • Positioning sensors and framework underneath visible surfaces
  • Safety analysis
  • Thickness analysis
  • Surface overcrowning
  • Flange length analysis
  • Offset analysis
  • Building and measuring gaps,
  • controling flushness of parts,
  • measuring the chord of a fillet,
  • controlling even surface lead in ,
  • patch layout
  • controling surface extrapolation,
  • controlling blend-curves across surfaces.
  • building linear Corner-Fillets

…the list goes on. So please consider this. Maybe @JohnBrock or @PascalGolay have an idea how to implement this into an existing tool. Edge distance to surface, and edge distance to curve could also be part of EdgeContinuity.

1 Like