How to center Extrude to Point on an off-center surface?

I’m working on a pair of 3d printed shoes and I’m attempting to create a spiky, crystalline texture on the heel section. I have may base shape modeled and my curves projected on the surface. My next step is to Extrude to Point each of the shapes. I’d like each point to be centered in the hexagonal curve shape, perpendicular to the shoe, with the extrusions at various heights. I cannot for the life of me find a way to make this happen. On flat shapes I normally draw in a centered polyline to snap to, but with the shapes wrapping around on each other I can’t even snap to the centers, much less pull out perpendicular lines. Any suggestions on how to achieve this? Or is there some other method to get the same result that I’ve completely overlooked?

Hi Jessica,
Try this method. First make sure all your curves are closed. (Use SelOpenCrv to detect the open ones!). Then select curves one by one and use AreaCentroid command to mark the approximate center of each curve with a point. But points will not exactly on the heel surface. you must select (use SelPt command) and pull them on surface, and finally draw a line normal to surface start from the points. Maybe it worth to make a Grasshopper definition if you need to do this process over and over. :slight_smile:

Mohammad Nikookar

That works great, thanks for the help! As a point of interest, AreaCentroid wouldn’t work with the curves because they were non-planar, so I was able to use Patch to convert the curves to surfaces and then apply AreaCentroid to those. Futzy, but workable.

Oops! Right, AreaCentroid dose not work on non-planar curves. Patch is good idea, but i think Split is easier!

How would you use Split?

Hi Jessica - OrientOnSrf and/or FlowAlongSrf could probably be helpful here - starting from extrusions made in ortho space and mapping copies up to the target surface.

-Pascal

How would you use Split?

Split the heel surface with curves you have on it as cutting objects. Then mark each surface centroid.