I am trying to generate a 3D path which will be then object-bevelled with a circle. The aim is to make some sort of spaguetti. The problem I face is that once I extrude my circle along the path, (as expected) the 3dimensional knot crosses itself.

Is there a way to automatically repell the control points in such a way that once the extruded shape goes along the path, there won't be crossing-over?

current overlapping cable

  • 2
    $\begingroup$ I don't think this is possible, at least not right out of the box, I don't know if there's a script already made to to that. $\endgroup$ – Georges Jun 4 '16 at 10:26
  • 1
    $\begingroup$ If all the control points are the radius of the bevel circle apart, then an iterative script that moves any non neighbouring control points that are within r of each other... yes as I see you have written in a comment on @DFR answer. $\endgroup$ – batFINGER Jun 4 '16 at 16:21
  • $\begingroup$ Yes, it looks like a relatively trivial issue but on a second thought it grows up a bit. Given your suggested method or mine, at some point some more sophisticated algorithm must be implemented. Of course, it would all depend on the size of the curve. $\endgroup$ – pedrosaurio Jun 5 '16 at 5:03

There is no built in tool to do this automatically, nor any specific tool to do what you want. I don't think blender as any sort of curve intersection tool, let alone one that takes bevel objects into account.

That being said you could use a few other workarounds.

Either select all your intersecting vertex and scale them out relative to the selection center. That should move them apart eventually enough to avoid all intersections, or

You could use Proportional Editing for more localized control, to move only vertex within intersection radius. Select one vertex with close-by intersections, press O key to turn Proportional Editing on then scale it up. Control the influence radius with the Mousewheel to affect only neighbouring vertex in the desired influence area.

|improve this answer|||||
  • 1
    $\begingroup$ Ok, thanks for your reply. I can then focus on working a script where I draw a curve taking care that the coordintate-generation function positions them far enough (based on the bevel object radius) on the x,y,z. Or something on that line $\endgroup$ – pedrosaurio Jun 4 '16 at 15:59

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.