Wrap curves around faces?

Hi, Is there any nodes that allows me wrap the cross diagonal lines around the 4 faces of a rectangle column? all the lines must be continuous. Thanks

DiagonalLinesWrap.dyn (33.4 KB)

Hello, I think you are far.
I looked at the script you are freezing a lot, and a lot of geometry is there for ?
You can pick surface edges (there is a node that )
I would not use rectangle but polycurvebypoint instead.
I may come up with something.

Thanks for reply. I’m still looking forward to simply the diagonal creation nodes. most for the geometry there are just for create the cross diagonal lines. I just replace the rectangle node with poly curve nodes. and attempt to rotate the diagonals with all control points. I kinds get the result I want right now, but feel like the code can be way better. also I will be nice if the code can handle more than 4 faces. Let me know if you come up with any ideas and suggestions?

DiagonalLinesWrapFirstTry.dyn (62.4 KB)

Maybe divide the vertical lines into points and play connect the dots instead? This would allow for any number of verticals and could ensure that the lines ‘always meet’ as you may notice they fall apart at the fourth vertical in your example. This would make the lines at angles there than 45 degrees though.

Alternatively you could also look into paneling instead of making lines. I believe lunchbox has a diamond panel creation node.

@glenncai See if this helps.
A slight alteration to a definition from this old post

DivideSurfaces-20180301.dyn (8.9 KB)
Massing-Test_20180301.rvt (2.4 MB)


heres an idea…
calculate the net for this solid… thats the unfolding of the solid onto a plane.
Now apply those same transformations onto your curves.

it might be simpler if you first calculate the unfolding - you can try DynamoUnfold package for this but I have not run it in a while so not sure what version it will work with.

Then recreate your curves relative to the unfolded surfaces

Project the curves onto the surfaces

transform each surface back to it’s original location on the solid.

use the same transformation on the curve segments for that surface.

you might also be able to do this with some kind of iterative solution…
walk your curves and measure the distances to the solid.
when the distance starts to increase, create new random points in space and only keep these solutions if the distance gets lower.
then finally create lines through those points.

I do not think I can say more than previous expert.
My two cents is that can be solved geometrically.
I did not finished though I am not far from it I believe.
There is some lacing/sorting/ and list treatments to do.
The good point is that there is not redundant geometry there.
The main source is the paneling teacher. Colin McCrone.
Thus the ampersand package can help you on this approach.
At the end, when the edge are selected, divided line, should do the job of creating your list of point to be unified by diagonals.

01_06 Triangularonsurface.dyn (56.7 KB)

Have a good week-end