0
$\begingroup$

I have a complex profile (think 'crown molding') swept around a complex, closed profile curve. How can I non-destructively (i.e. without converting the object to a mesh) fill the (planar) holes left behind?

Here's a sort of sample of what I'm dealing with:

example

I need to fill the top and bottom to get something bowl-like. I can't just fiddle with the profile curve because my real sweep curve does not have constant radius and extending the profile will create degenerate geometry.

Note: I did sort-of figure this out; the "Fill Mode" (under Shape) does what I want... but requires that the sweep curve is closed. Since my (complex) sweep curve is symmetrical, I was using a mirror modifier to generate half of it. If I do the mirror manually, I can use Fill Mode, but then I have to be very careful about maintaining the symmetry. So, is there either a way to force symmetry of a closed curve, or some other way to make this work while using a Mirror modifier?

$\endgroup$
4
  • 1
    $\begingroup$ You can Mirror a filled cyclic curve, (half of which you don't need) and bisect it in the modifier. That still works. If you follow up with Decimate (Planar) and a Weld, you can bevel and subdivide the resulting solid. If any of that is good enough for your case, can build it into an answer. It depends how much your profiles are prone to self-intersection, etc. $\endgroup$
    – Robin Betts
    Commented Sep 18, 2022 at 20:37
  • 1
    $\begingroup$ @RobinBetts, I don't think that lets me use a curve as the bevel profile, though? I originally got into this mess because the my profile was too complicated (and needs to be numerically precise) to model otherwise. OTOH, Mirror w/ bisect followed by Weld might work as long as the sweep curve crosses the mirror plane with the right tangency (easy) and has some junk on the side that gets trashed. Offends my sense of tidiness, though. 🙂 $\endgroup$
    – Matthew
    Commented Sep 18, 2022 at 21:35
  • $\begingroup$ Okydoky ... looks like it might be GN. Rims always planar, starting with a mirrored open curve? Are there any other boundary edges, apart from the ones you want to fill? $\endgroup$
    – Robin Betts
    Commented Sep 19, 2022 at 6:48
  • 1
    $\begingroup$ @RobinBetts, correct, and no. Thanks! I don't have time to review your answer now, but I'll try to take a look tonight. $\endgroup$
    – Matthew
    Commented Sep 19, 2022 at 16:19

1 Answer 1

1
$\begingroup$

Here's a first shot at a GN modifier that modifies a 2D mirrored curve-path with a provided 2D curve-profile. It returns a capped sweep of the profile around the path.

There's one sub-group:

enter image description here

..which fills a mesh-loop. Below is the whole modifier:

enter image description here

As soon as a curve is assigned a constructive modifier (including Mirror,) it secretly becomes a mesh, as far as Blender is concerned. So, although you can still edit the curve above the modifiers, it has to be converted back inside the GN group. That's why the input is a 'Mesh Loop'.

This group is quite clunky.. it just generates separate mesh-caps to fill planar boundaries top and bottom of the sweep, and glues them on.

enter image description here

It's likely this doesn't exactly meet requirements.. go ahead and break it, and call back.

$\endgroup$
2
  • $\begingroup$ Okay, I tried this with my real geometry, and... well, it seems to not work so well if the bevel curve is a bezier (try with the default bezier, rotated 90° so it's up/down rather than in/out after the sweep). It seems to be making a sort of 'zipper' alternating between the correct points and the points halfway along the bezier segment from the end. Other than that, the approach seems reasonable. Sure seems like something that ought to be built-in, though. 🙂 $\endgroup$
    – Matthew
    Commented Sep 24, 2022 at 17:55
  • $\begingroup$ Hi @Matthew ! Thanks for having a look! Your Default Bezier problem reveals that non-poly curves come into GN un-evaluated, ready to have their poly-approximation made inside the modifier, irrespective of whatever you've set their Viewport and Render U resolutions to. So the incoming curve has only 2 'points', both endpoints, and selection by endpoint doesn't work. TL,DR; I'm pretty sure a fix is to re-state the U resolution requested in the curve's Data > Shape panel, like this. I'll update the answer soon. $\endgroup$
    – Robin Betts
    Commented Sep 24, 2022 at 19:27

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .