Distortion of a surface

Hello, I had a problem with use of Weight and InsertControlPoint… :frowning_face:
If I create a curve without use of Weight, then a total surface - super (especially if in addition to use RebuildUV)! If I use in the curve Weight tool, then the total surface is distorted + consists of pieces (surfaces). Why InsertControlPoint isn’t on friendly terms with Weight?



After application of InsertControlPoint

2018-01-07_163011
At the Weight tool in the used curve…
2018-01-07_162950
Untitled.3dm (974.5 KB)

After use of InsertControlPoint - to smooth result it is possible to use RebuildUV in the Loose mode:
1
Became:
2018-01-07_164748

Try InsertKnot instead of InsertControlPoint. InsertKnot inserts a control point and rearranges the other control points, and adjust weights if necessary, so that the shape of the curve is not changed. Same for surfaces - InsertKnot inserts a row/column of control points without changing the shape of the surface. After using InsertKnot you can move the control points and change weights to modify the curve or surface as desired.

In contrast InsertControlPoint will modify the shape of a curve or surface. In general it is not possible to insert a control point and retain the shape of the curve or surface without moving other control points. Weights on other control points may also need to be adjusted if the curve or surface is rational (not all weights equal to 1).

I agree with RichardZ’s comments about weights. Modifying weights works well if a surface will be used in isolation. However complications can arise when trying to join, match or merge rational surfaces. (Rational surfaces are surfaces with some or all weights not equal to zero.)

The primary use of weights is for quadratic curves and surfaces such as circles, ellipses, hyperbolas, spheres, ellipsoids, etc. When creating those types of curves and surfaces Rhino automatically sets weights as needed so that the shapes are exactly represented by the NURBS.

@RichardZ, I am aware what it is possible not to use Weight and to achieve desirable result, but why I shouldn’t use this powerful tool?

By the way, it is enough to make Rebuild for a curve and all super:


2018-01-08_174056

@davidcockey, perhaps you haven’t understood me…
On a curve I use Weight, I apply InsertControlPoint to a surface to make an object more square.
InsertKnot carries out other role - doesn’t change geometry - I understand.
Why at Weight on a curve - the total surface has problems?

For curves weighting can be beneficial, for surfaces it is not.
Weighting is useful for fitting operations seen at intersections and when it comes to circle approximation. However weights have the drawback that solving other operations such as surface matching or sweeing/railing becomes way more difficult. Most operations involving rational(=weighted) surfaces are likely to produce much more controlpoints again, except for curves and some rare surface operations where it actually reduces cp count. However its likely to decrease overall curvature smoothness due to more freedom on controllability, which makes it rather useless in my opinion.

InsertControlPoint and InsertKnot both increase the number of control points and the number of knots. The number of knots of a curve equals the curve degree plus the number of control points minus one. Either can be used to increase the number of control points of a curve or surface.

InsertControlPoint does not change the weight of any control points. Control points added using InsertControlPoint have a weight of 1 even if other control points have different weights.

@Modeler3D How are you creating the surface from your curve? Where are you using InsertControlPoint?

I create a curve, I edit it by means of Weight, I carry out Revolute, I apply InsertControlPoint to a surface (closer to a square) and all.

All control points created by InsertControlPoint have a weight of 1.

The surface created by Revolve uses the weights of the input curve For the surface created using the rational (weighted) curve the weights of that curve are used by Revolve. However when you use InsertControlPoint the new control points all have weights of 1 which distorts the surface.

As an alternative to obtain the “squared” shape without the distortion using the rational profile curve use RailRevolve. You will need to create a rail curve, which could be created by starting with a circle and adding control points.

1 Like

Another possibility to eliminate the distortions is to use Weight to change the weights of the added control points.

@davidcockey, Huge thanks to you! :grinning:
Ways to achieve desirable result enough… I know.
I wanted to find a problem source, now everything is clear!