Easy Feature Request: Join Input Curves For _CurveThroughPolyline Command

I want this too, cuz Eric said he would beat me up if I didnt say so…

(joking)… its a really nice idea!

Looks helpful to me.

Looks like a great idea to me let’s hope they put in for us

Just wanted to follow and see if this request is being considered?

Hi Eric - well, I’m sorting out how to formulate the request… I guess I get what you want but it seems to me there is maybe a more direct way to get there - one thing is, I am not 100% clear on why you’d need to get the curve from polylines - why not just draw the curves?

-Pascal

1 Like

There isn’t a more direct way. Try editing this single curve maintaining quad symmetry. You have to select the mirrored points and use scale to edit them:

image

image

Here’s a harder one to maintain symmetry based on a polar array:

image

image

It’d be lovely to control this repeating pattern with 3 control points, but you can’t. If you want to make the recess a little sharper, your best bet is to delete everything and start from scratch.

You will see how beneficial this option would be if you continue doing this every day, all day, for 8 years.

2 Likes

Hi Eric - OK, I see what you’re getting at, I think… the polyline part is a sort of convenience but the underlying goal is to make a control point pattern, for a single curve, that you can edit globally (for the repeats) from one element… am I on the right track?

-Pascal

1 Like

Yes, the polyline is a workaround to use history to maintain symmetry or consistency. A join option with history opens a lot of new workflows that allow you to make a large edit with a small edit to a control polyline. Right now you have to lasso a half dozen points between each tweak to a design. Patterns are more difficult because you have to start from scratch. It would save so much time to reuse patterns between projects.

Most of these curves end up being lofted with loose, natural seams. They are often first flowed into position.

1 Like

This may help writing it up. The join option would join the deg1 curves in exactly the same way as _Join. The output from this:

with 4 deg1 curves
_SelectAll
_Join
_SelectAll
_CurveThroughPolyline

Would be identical to this:

with 4 deg1 curves
_SelectAll
_CurveThroughPolyline Join=True

The only difference being that _CurveThroughPolyline Join=True does not break the history tree of the 4 deg1 input curves like _Join does in the first example. One or two of the four deg1 inputs could be parents. Moving, inserting knots, etc. can be called on the parent deg1 curves which propagate all the way down to the single crv from _CurveThroughPolyline Join=True.

1 Like

This sounds to me like Merge=Yes/No option rather than Join. Simply joining would leave the kinks in place, but as I understand this you expect the kinks to be smoothed out. It is likely doable, but requires a tool that sorts the input polylines into contiguous chains.

I’m not sure what you mean by kinks. The input is a control polygon, so it’s all degree 1. The input sorting is literally the exact same as with _Join. If G0 then join, else don’t. The only thing needed for this feature request is to use the existing _Join command to prefilter the input when the option is selected.

I’m not sure if this make history replays more complicated, but you would again send the input through the _Join prefilter and run _CurveThroughPolyline as it already exists.

1 Like

not exactly the same but by doing this with point objects instead of polylines you can at least get partly what you want, see example curvethroughpt_with_history.3dm (96.5 KB)

I use through point. It’s time consuming to put them in order, but the real drawback is losing the ability to insert control points.

Maybe the attached gh scripts can help as a workaround. It uses grasshopper geometry pipeline, so whenever you draw a curve in top view it should work automatically. The linear array assumes you draw half of the curve from left to right up to the Y-axis. After that you can rebuild or insert control points as you like. The polar array assumes you draw the curve in clockwise order.
curvethroughpt_linear_array.gh (7.1 KB)
curvethroughpt_polar_array.gh (6.0 KB)

@pascal Just reading the WIP help file…

This can be done with MergeCrv in the R7 WIP.

  1. Polyline
  2. Symmetry || Mirror || PolarArray || etc
  3. MergeCrv
  4. CurveThroughPolyline

Hello - did I get the request set down correctly?

https://mcneel.myjetbrains.com/youtrack/issue/RH-56306

-Pascal

That YT is not visible to me.

Sorry, fixed…

-Pascal

The short description is to incorporate MergeCrv into CurveThroughPolyline. The one thing missing is controlling the CrvSeam on MergeCrv like you would with Loft or Sweep1. I should have a video tutorial on the workflow posted tonight. It’s on a universal shank. Look at the Shank::Crvs::History layer to understand the quality of life improvement.

You can play with any of the curves on Shank::Crvs, just don’t break history on Shank::Crvs::History.

Shank-Loft-YMirror.3dm (128.7 KB)

Update to feature request.

1 Like