1
$\begingroup$

I wish to switch from C4D to Blender and I'm trying to replicate the same workflow I'm already used to before making the step.

In this specific case, I need to extrude a number of different Shapes (be it shape-0, shape-1, shape-2, shape-3) along the same Curve (be it curve-0), but I noticed that would require me to have many hard copies of curve-0, since the extrusion is generated from that object. Making Instances of curve-0 wouldn't work because that makes it impossible to change the extrusion Shape.

For reference, in C4D I would create a Loft object and put any Shape and curve-0 in it to generate the extrusion. In that case, multiple copies of curve-0 are still required for multiple Lofts, but then I can use Instances since they don't need to be modified. I can then just edit the original curve-0 to modify all the extruded objects at once.

I couldn't find anything that fits my issue around. Am I missing something maybe?

$\endgroup$
  • $\begingroup$ maybe I've missed something in your explanation but you could make a linked duplication of the curve (alt D), if you need to modify the curve's shape select one of the duplication and the modification will be replicated on the other ones $\endgroup$ – moonboots Nov 6 '19 at 9:29
  • $\begingroup$ @moonboots That might work, but in that case I need all the Curves to be linked to the original one except for their bevel object. I'm trying but I can't seem to achieve that. $\endgroup$ – Danjel Ricci Nov 6 '19 at 10:55
  • $\begingroup$ @Leander I can do that later when I'm back home, but it will be just a bunch of shapes extruded along a single spline. $\endgroup$ – Danjel Ricci Nov 6 '19 at 10:55
  • $\begingroup$ Yeah have also been longing for that functionality, but at the moment it isn't supported as far as I know, since both curve shape and curve bevel are part of object data. Maybe when overrides feature arrives this will be one of te overridable properties eventually. Until then I'll try to think of a clever workaround $\endgroup$ – Duarte Farrajota Ramos Nov 6 '19 at 12:58
1
$\begingroup$

As far as I know this is currently unsupported, since curve geometry itself and Bevel Object are both part of Object Data.

Maybe this will eventually be supported when Library Overrides project is merged, until then here are two workarounds.

Workaround 1 - Curve deform modifier

Use bevel objects on independent "dummy curves" with a simple straight geometry, but set handles to Free or Automatic so there are enough geometry subdivisions.

Now to each of these dummy curves add a Curve Modifier and set it to an independent instance of the same "deforming curve" sharing object data. There must be one instance of "deforming curve" for each "dummy", both at the same world space coordinates, so deformations are undistorted.

Easiest way to set this up is probably to complete a single "curve bundle" and then clone both around and just change the bevel object.

enter image description here

Cons: The dummy curves wont keep up with severe length changes from the deformations, only shape changes.

Workaround 2 - Array + Curve deform modifier

Slightly extrude your "section defining curves" so they have a small but non zero height, then add an Array Modifier set to Fit Curve on Z axis.

Pick a "path defining curve" as curve to fit. Now add a Curve Modifier set to the same curve object on Z axis.

Clone this modifier setup around to different "section curves", but always set the "path defining curve" to an instance of the original one so they always copy the same path shape. Once again make sure objects using Curve Modifiers are always coincident with their deforming curves.

Cons: Since this relies on an Array Modifier there will always be a slight difference (as little as the extruded height of the section) in length between deforming curve and the actual profile. Decreasing height will improve precision at the expense of performance.

enter image description here

|improve this answer|||||
$\endgroup$
  • $\begingroup$ Thanks for the reply (and sorry for being so late), this might do I guess! I will try this as soon as I can. $\endgroup$ – Danjel Ricci Dec 17 '19 at 7:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.