You can see the control points used to create the splines. They are the red and yellow dots.
I then use the forms function to make pdfs of the forms I use to recreate the hull in rhino by importing the resultant pdfs.
The imported pdf curves are actually a large number of straight lines. Here is what I mean. Here is the curve with the points turned on. I know they are straight lines because the curvature graph shows nothing, and the rebuild function shows them as degree 1.
Looks like your exporter tessellates the Bézier splines into polylines before exporting - unfortunate, as PDF’s do support Béziers.
Rebuild (as you show) is one way, there are a few others, but none of them will be ideal I think. CurveThroughPolyline will fit a NURBS curve through the polyline points, but it will have the same control or interpolated points as the original - that is to say lots. It will be pretty close to the original though, but not very smooth (noisy) nor easy to edit.
So it’s probably best to stick with Rebuild in this case, but you will either need more than 4 points to get close to your original - in this case I had more success with something like 6 - or rebuild with 4 points and then noodle the control points of the result to get what you want - you can get extremely close, but it’s manual work for each curve. Make a copy of the originals and then lock them leaving them visible, then edit the copies using the locked curves as a visual guide.
The degree 3 4 point curves will be single-span, smoothest and easiest to edit, but I don’t know how smooth you need in this case.
Edit - I guess the question to ask here as well is if your program supports some other export method that preserves the splines?
to try this i exported a logarithm curve from grapher with high resolution which are difficult to rebuild due to the continuos monotonous change of tangency and this gave me the best solution also in regard of the continuity.
i tried Rebuild but anything at least near close to FitCrv needs a multiple times more amount of points and still was not accurate enough due to its iteration which breaks the continuity.
at least with the settings shown below it gave me a 100% accuracy you can also try 2nd degree but the point count goes up and you may also increase the angle tolerancy to keep the point count lower
oh and exporting from rhino to pdf is not a good idea, it rebuilds the curves again, use dxf instead.
FitCrv is my first choice when converting a polyline to a spline. From the FitCrv help" When the input to the FitCrv command is a polyline, the FitCrv command treats the polyline vertices as a list of points, and it tries to compute a curve that goes near the points but has a reasonable number of control points. The FitCrv command is meant for polylines with many closely spaced points.
If you need a single span degree 3 curve (4 control points) you might try using FitCrv to convert to a degree 3 NURBS curve. Then use RebuildCrvNonuniform to rebuild maximum of 4 points.
Alternatively try RebuildCrvNonunifom directly from the polyline.
I saw this pop up again, I’ve never used _FitCrv and wondered how I would have approached this without that knowledge.
in the past where I’ve had to rebuild things for artwork I’ve used the _BlendCrv command. I guess in this instance, if you can extend the last section of the two extreme curves and use those as the points to blend from.
You can eyeball it and move both points be pressing shift at the same time.
I’ve had poor results with FitCrv and polylines in the past - it wouldn’t hold the tolerances specified - which is why I did not suggest it in the first place. It’s been a long time since I used it that way though, so perhaps it has been improved, will try again…
I wonder if there is a way to add functionality to the _BlendCrv command for WIP6 by allowing the user to snap to a couple of points along the length of the curve?
Using my example above, if I’d overlaid that on top of the existing gemotery with lots of little lines and was able to snap to a point along the length it would output a perfectly accurate alternative.
I’m thinking of it in a similar way to using circle tangent to 3 curves and as an addition/alternative to using the handles.
I’ve had the same happen with FitCrv as well as RebuildCrvNonUniform, but usually in situations where there are large angle changes between segements of the polyline. For a polyline such as shown in the first post I’d expect good results with either.
Rebuild has the advantage that with enough points it can rebuild almost any polyline or curve within a resonable tolerance. The disadvantage of Rebuild is it “equally” spaces the control points which can result in many more control points in “flatter” or “smoother” areas than needed.
RebuildCrvNonUniform and FitCrv try to concentrate control points where needed, though not always successfully.
In some situations I’ve used Rebuild and then manually removed knots in areas where they are not needed, checking the revised curve against the original to make sure it didn’t deviate too much.