2
$\begingroup$

I want to make a cable with an outer sheathing and inside four wires. (Like a simplified version of a KNX-cable, see eg. this example
(source: domofox.it) ).

I want to be able to dynamically modify the curvature of the cable afterwards.

So I started with a curve, then made a bezier circle and used that as bevel object for the curve, and finally added a solidify modifier for sheathing thickness, works marvelously.

I thought I could just make a linked duplicate of the curve and use a second, new bevel object (smaller) for my linked duplicate path and thus make a smaller conductor which would follow the same path. But when I change the bevel object of the duplicate, it also changes on the original?

How do I get this to work, so I can afterwards change 1 curve and all the others follow the change, each with its own bevel object?

$\endgroup$
  • $\begingroup$ The linked duplicate will indeed link to the original curve. You'd need to duplicate of the curve (Shfit+D) to have a fully independent object. $\endgroup$ – cegaton Jan 14 '16 at 16:06
  • $\begingroup$ I don't want it to be fully independent. I want the curves to follow each other (if I change the nodes of one curve, this change is reflected on the duplicate), but each with another bevel object. $\endgroup$ – Abel Jan 14 '16 at 16:32
  • $\begingroup$ I think it's impossible to do in this way as Blender can't differentiate which object data you'd like to be shared and which - don't. The workaround could be to make these curves independent and add Curve modifier to both curves-cables. Then add one more curve which will be added into modifier. Note that you won't be able to apply that modifier as usual; only by converting to mesh. $\endgroup$ – Mr Zak Jan 14 '16 at 16:57
0
$\begingroup$

Thanks to Mr.Zak's kind comment, I more or less solved it. I even threw in the twisting of the wires :) The final solution does not use Bevel objects, but screw and curve modifiers.

In short:

  • for the wires, I made an object "KNX-wires" that consists of 4 circles
  • for the sheathing, I made another object "KNX-sheathing", that consists of a single circle
  • I added a curve "KNX-Path", to define the path of the cable enter image description here
  • I then added the following modifiers to "KNX-wires" and "KNX-sheathing": screw, curve (with "KNX-Path" as curve object), solidify (to give some thickness), and a subsurf to finish.

Result looks like this. By changing "KNX-Path" in edit mode, the cable's path changes. By sliding the "KNX-Sheathing" and "KNX-Wires" along the Z-axis, they slide along "KNX-Path" following its curve. By changing the "screw" parameter of the screw modifier, I can change the length of the sheathing and wires (making the wires stick out a bit for instance). enter image description here

$\endgroup$
0
$\begingroup$

To answer my own question again with a totally different approach, this time using Bevel Objects.

Solution 1, using Hooks

The basic strategy is the following:

  1. in object mode: add a curve (bezier), add a bezier circle enter image description here
  2. select the curve, and set the bezier circle as the bevel object of the curve. This will be the first of our four wires. enter image description here
  3. duplicate this curve three times, spacing the objects (wires) a little apart. Now we have four wires in total. enter image description here
  4. duplicate the curve a fifth time, but now use a new, bigger bezier circle as the bevel object. This can be the sheathing. enter image description here
  5. finally, add hooks. To add a hook, in object mode create an empty (this will be our "handle" or hook). Select it, shift-select one of the curves (wires), and tab into edit mode. There you select one node of the bezier curve, press Ctrl+H and select "hook to selected object".(In the image below, I have hidden the sheathing, and am creating a hook relation between the empty and the furthest node of a wire). enter image description here Tab back into object mode. To see what you just did, select only the hook (the empty), and move it around: you'll see that the curve (wire) changes shape as its node is moved around. Press Esc to cancel the hook movement.
  6. to make all curves follow the same hook, repeat the step above for the other curves, all hooking them to the same empty. The final result is that when you move the hook (the empty), the hooked node of the four curves are following, bending the sheathing and the wires together. enter image description here

Thanks also to SciFiAnimator who published this short tutorial on hooks.

Solution 2, using a curve modifier

A variation on this is the following (with a curve modifier).

Steps 1-4 same as above, to make four wires and a sheathing using Bevel objects. Then:

  1. In object mode, add a new curve (which will define the path or form of the wires), which we will call "Path"
  2. select a wire, add a Curve modifier, and choose as Object of the modifier: "Path" (the curve you just made)
  3. Now do the same for the other wires and sheathing

The end result is that you can "slide" the cable along the path (in my case, by moving them along the X axis). Changing the form of the path will also change that of the wires and sheathing, of course. enter image description here

$\endgroup$

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.