Question about making a reeving tool


Hi Guys,

I am planning on making a tool that will help me to make cables running along a certain rigging setup. The setup would be fairly simple:

a cable starts at a helper point, will run along several wheels/sheaves and will end up at another helper point. See the following image for a quick idea.

Now I know this can be tricky, and I’m not asking anyone to do this for me :wink: I’m just wondering what you guys think would be a best way to make this cable ‘live’. If one of the wheels would change position, I want the cable to update.

I already have some code that helps me to find the tangents on the circles, where the cables will naturally start curving around the circles. Also made a start with a custom attribute that can manually update the cable, but I’m just not sure how best to put this all in one tool that automates automatically.

I can think of a couple of ways:

  • build a cable that is rigged using a skin system. This would be hard though, because the tangent touch points of the cable to the wheels will differ per wheel position.
  • use a scripted controller that will update the cable when needed. disadvantage there is that I’m not a big fan of putting large scripts in a scripted controller.
  • create a plugin? or a modifier plugin? what plugin type would be best suited and how do I force it to update when the wheels are moving in the scene?

any thoughts, ideas would be very welcome!


This video may show you some ways


Sorry about the bump guys, but II decided to come back to this and have created a scripted plugin version for the reeving. So far everything works pretty swell. There are some minor issues to fix with regards to rotations of the wheels, but I’ll work on that later.

What I am currently running into is that when you add a lot of wheels to the plugin, it slows down significantly. Even when I pre-cache as many properties as I can.

I was wondering; would a plugin created in C# give a significant speedboost? If so I would like to give that a try, but before digging into how to do this I wanted to verify it’s usefulness.

Can someone confirm this for me? And perhaps point me in the right direction while you are at it?