could anybody explain what did i wrong drawing my curve? I have a single surface, i try unrollsrf and the result is a polysrf.
i found this post multiple knots and @Helvetosaur showed a solution but i’d like to know how to avoid this to happen.
the problem appears if you try to unrollsrf or use dividealongcreases (@Helvetosaur trick).
Never had this situation before, not sure if it’s related to the curve tool (handlecurve),
Any idea @Gijs ? Just to avoid this while tracing curves
The curve has a multiknot. If you ConvertToBeziers, you’ll see that the curve becomes two curves.
You can also see this if you look at the control point structure and the curve: the control polygon is touching the curve:
ConvertToBeziers is not useful for determining if multiknots are present. ConvertToBeziers splits a curve at every knot, not only at multiknots, into single span curves.
ConvertToSingleSpan is the equivalent command for surfaces.
Yes I know that one, but it won’t show you the locations. Also there is no way to tell if there was one or multiple multiknots.
ah, I didn’t know of its existence.
I see there is access to Multiplicity in RhinoCommon, but I found it rather confusing.
For example, if I run this code on the curve from this thread
#! python 2
import Rhino
import rhinoscriptsyntax as rs
crv = rs.GetObject("select curve to test")
if crv:
c=rs.coercecurve(crv)
if c:
for i in range(c.Knots.Count):
print c.Knots.KnotMultiplicity(i)
List is semi-secret and the second line of it’s reports is:
DEVELOPER DEBUGGING INFORMATION ONLY
Use the Rhino “What” command.
However List provides much more informaton about objects than What and can be very useful in understanding what is going on with objects, provided the user has some knowledge of NURBS.
For the curve from this thread List reportst:
Rhino object: curve
DEVELOPER DEBUGGING INFORMATION ONLY
Use the Rhino “What” command.
Runtime serial number: 41
name: “”
id: 4D05921E-3A14-4323-A424-C84D162EB1F7
layer index: 1
render material index: -1 (from layer)
ON_NurbsCurve dim = 3 is_rat = 0
order = 4 cv_count = 6
Knot Vector ( 8 knots )
index value mult delta
0 0 3
3 0.5 2 0.5
5 0.99890824908440301 3 0.4989
Control Points 6 non-rational points
index value
CV[ 0] (-272.74892919008335, 546.86844278331387, 0)
CV[ 1] (-298.98500892067398, 503.03259999879083, 0)
CV[ 2] (-312.74892919008312, 481.53352942784829, 0)
CV[ 3] (-312.74892919008312, 372.3227174555708, 0)
CV[ 4] (-271.50894807410805, 271.18307107812331, 0)
CV[ 5] (-151.55399111764982, 241.52556370531792, 0)
The difference between the List and RhinoCommon results for knot multiplicity is the List results show one line per group of repeated knots (multiknot) while the RhinoCommon results show one line for each individual knot, whether repeated or knot. So 3 lines compared to 3 + 2 + 3 = 8 lines of results.