How Would I Create Procedural Offset Cables?

   946   7   1
User Avatar
Member
1 posts
Joined: May 2019
Offline
Hi,
Noob here, any help is much appreciated.

I am trying to make procedural cables based of a curve and copy to points line. The curve defines the shape of the cable and the Copy To Points line defines the distance between each cable and the number of cables (using a resample). Then sweep a circle (or polywire) to get the end geo.

I have have posted to reddit (https://www.reddit.com/r/Houdini/comments/fmawik/how_can_i_make_an_organised_procedural_cable/)

and they suggest Parallel Transport. I looked at Entagma tutorial on Parallel Transport but I haven't been able to implement it effectively. I looked through documentation and searched for tutorials but haven't found anything to help the process.

What I think I need to do is, using the newly created normals from the Parallel Transport tutorial and use a for each point loop to offset each point in the direction of the normals by X value (being driven by either the line length or by a created float parameter). I was also suggested to look at SideFX Cable Gen but I really want to try learn the process from scratch.

Here is an image (also attached) of what I want to create (minus the intersecting and the end position offsets) https://imgur.com/gallery/oWoiKHl. [imgur.com]

This is just a copy to point node, i have tried for each loop but can't wrap my head around it. I also tried peak sop but to no avail.

Please help! Thank you

Attachments:
Capture1.PNG (214.4 KB)

User Avatar
Member
706 posts
Joined: Jan. 2018
Offline
jbobbin
I was also suggested to look at SideFX Cable Gen but I really want to try learn the process from scratch.

You can open the LABS Cable HDA and take a look at the various nodes that they're using. That will likely give you a good understanding of what's involved that you can then use to create your own process from scratch.
>>Kays
User Avatar
Member
321 posts
Joined: July 2005
Offline
Hi,

here is an example using a parallel transport frame. The result is close to polyframe but in general more stable (no inbetween flipping) but it is also slower than polyframe.

Some basic ideas:

Create a curve. Resample the curve (with enough points). Create a parallel transport frame from the curve, which gives you tangent/up and N ~ (normal) attributes. Use the normal attribute to create offset curves, by just adding a constant amount of the normal on the points itself. (using for each to get multiple curves).

Attachments:
cable.hipnc (188.5 KB)

User Avatar
Staff
58 posts
Joined: Jan. 2012
Offline
I'm not sure from your description exactly what you are attempting to do, but you could start quite simply by using a sweep SOP?

If you want to build something from scratch, you could also begin with an Orientation Along Curve SOP and Copy To Points, or even a Copy To Curve SOP.

Hope this helps,
Scott

Attachments:
Cables.hip (80.4 KB)

Senior Product Designer
Side Effects Software
User Avatar
Member
519 posts
Joined: Feb. 2017
Offline
what about this then ?

(there's nothing to stop you from doing some fancy circle packing for the profile to get a bundle of cables of all sorts of sizes)
Edited by vusta - March 23, 2020 17:53:18

Attachments:
cable.jpg (86.1 KB)
vu_cables.hiplc (83.8 KB)

User Avatar
Member
321 posts
Joined: July 2005
Offline
Really nice that we have an inbuild function now “orientation along curve”. Was this part of version 18 or even earlier? Looks like a powerful node to create stable frames and it is also fast.
User Avatar
Member
483 posts
Joined: Dec. 2006
Offline
Maybe this is helpy:
https://www.sidefx.com/tutorials/procedural-hanging-cables/ [www.sidefx.com]
English is not my native language, sorry in advance for any misunderstanding :-)
User Avatar
Member
483 posts
Joined: Dec. 2006
Offline
If you need it for something like this,
maybe this can give you a starting point.

(New file added with random hang amount)
Edited by matthias_k - March 24, 2020 16:58:55

Attachments:
Cables.hip (223.3 KB)
Cables.jpg (719.4 KB)

English is not my native language, sorry in advance for any misunderstanding :-)
  • Quick Links