This is one of my favorite commands but sometimes I want the converse or an addition to the current behavior.

I would like to extrude a curve from a point.

I understand that extruding a curve to a point has a natural start (the curve) and end (the point).

An extrude from point would need some extra limit to tell Rhino where to stop extruding so there would be extra UI work to make it happen but I think the ability to extrude from a point would be just peachy.

Oh and being able to extrude both ways would be the icing on the cake.

It would be nice if this functionality already existed and someone could point me to it. I have looked.

I looked for a ProjectCrvFromPoint, anything that began with Project… or Extrude… but didn’t find what I was looking for.

(John Brock) #2

I’m unclear as to what problem this would solve for you.
Can you give an example where this would do something that curve-to-point can’t do?

(David Cockey) #3

Is the result a curve or a surface?


Extend the curve in the other direction. Make the shape bigger.

I have a starship model with windows and other openings. I made this by punching holes in a hollow shell via _BooleanDifference.

This only works with solid, closed cutters.

I made the cutters with ExtendCrvToPoint because you can see more window rim from all directions and I want that.

Now, I made this model some time ago and I rescaled the model from when it was last cut. I think I have lost the file with the cutters. I had a disk die and I didn’t backup to the cloud.

But I do have the cut model so the profile of the cutter is preserved, correctly scaled and moved in the empty hole in the cut model.

I can use Extend on straight lines in the cut profile to find the original extrusion point of the cutter.

So I can make an extrusion that starts from the outer hull to the extrusion point.

This leaves me with two problems.

  1. I’m not certain how to close (make solid) the extrusion. I picked the solid option but that failed perhaps because the curve is not planar.
  2. I might want to change the shape of the bottom of the saucer so it would be nice to extend the cutter to allow some wiggle room. <- This! so much this. I don’t want to be locked down on this.

I tried SetPt to flatten a copy of my curve. I picked the Z coordinate of the minimum point on the original curve and extruded it to point but my extrusion does not cut out the original curve. Close is a subjective opinion but, really, it isn’t close. I my extrusion is solid but I can see space around the extrusion when I look closely at the original curve.

This would all be a lot easier if I could just extrude the curve away from the point then use cutplanes to give me a flat, solid shape, that doesn’t punch out of the top of the saucer.

I have some renders here. If you scroll down you can see a bottom view of the model and you can see two “triangular” gray areas at 10 and 2 O’Clock on the bottom of the saucer section. Those are the problematic holes.


The basic command forms an extrusion so it should create a surface.

The existing command will create a solid if you pick the solid option. I suspect that the original curve needs to be planar for that to work.

My initial curve is not coplanar. The resulting surface from ExtrudeCrvToPoint does not properly split my solid hull so I can’t use it. I tried moving it down in the Z direction in case there was some problem caused by using a surface that “exactly” coincidences with the outer surface of the hull to slice the hull but that didn’t help. If memory serves… My inner hull had a “triangle” cut out of it but I didn’t have a proper, 3D cutout in the hull.

I believe that having ExtrudeCrvFromPoint or extensions to ExtrudeCrvToPoint would solve all my problems :wink:

(David Cockey) #7

Use ExtendSrf to extend the extruded surface beyond the curve. Use the Merge=No option in ExtendSrf if you want the extended surface to be separate from the initial surface.


Oh that’s just too easy.

Thank you! :slight_smile:


You know, although two steps isn’t outrageously difficult…

I think there might be some benefit in having a single command (ExtrudeCrvWithPoint?) that does it all in one go.

It’s more discoverable. The ExtrudeCrvToPoint followed by ExtendSrf means that you have to have learnt both commands and put the two together in your head before you can work out how to do it.

The very first time I encountered ExtrudeCrvToPoint I wondered if there was an extrude from option. It just seemed natural to me.

In my initial post I worried that you would need to write lots of new UI to handle the extension case but I see that you have cracked that with ExtendSrf.

In my mind, if using an extend flag with ExtrudeCrvToPoint (or ExtrudeCrvWithPoint?) then Rhino would do what ExtrudeCrvToPoint already does but delays creating a solid. It takes the new surface and applies ExtendSrf to it. When the user is happy with the result then, if the user has selected the Solid flag, Rhino can try to make a solid.

Of course you get an explosion of options; do you extrude to point AND extend or only extend? Only extend would be, create invisible surf and extend that visibly and only keep the extension.

Do we extend both sides? Both sides symmetrically? Have new UI to set both extents?

What does anybody else think?

The workaround is simple but much of the implementation already seems to exist in Rhino.

If anyone wants to try it then make a non-planar curve, a point, and then ExtrudeCrvToPoint followed by ExtentSrf. Then imagine this was in in a single command.