. The rules to dispatch the lines are the next:
I start with a list that alternate true/false; like that: true, false, true, false.
If the angles between those lines are greater than 89° I want to inverse the next part of the list:
True, False, True, False, True, False,...
become
True, False, [>89°] False, True, False, True, [>89°] True, False,...
I managed to create a true false list, to check for the greater than 89° angle, to separate the lines relatively to the angles, but I don't know how to inverse part of the list at certain index.
(In the picture, I have written 90° but it should be 89°, I check for greater than 89° and not equal to 90° because in the real rhino model, the lines won't be exactly orthogonal)
If you have another idea to to reach the same result, it's also okay, I tried to find rules to solve the problems, but I may have overlooked other solutions !
And if there is some part of the patch that are correct but there is easier solution, I would love to learn as I am still new to grasshopper.
Thanks for taking the time to read. :)
…
ng long in the x axis and three in the y and they don't all intersect each other... I wrote a script to Boolean difference them but its not working like i want it to . I included a rhino result that id like to achieve in the file. THX -ethan
heres the script:
import rhinoscriptsyntax as rs
b1 = []for i in range(b1L): b1.append (x)print b1bb= len(b1)print bbb2 = []for j in range(b2L): b2.append (y)print b2bc = len(b2)print bc
def bool ():....for i in range (bb):........for j in range(bc):............a = rs.BooleanDifference( b1,b2, False).....return (a) a = bool ()…
nt B2[i] so B1[i]<=0 means no new connections allowed for point i ,so point i is deleted from B1, B2 updated accordingly.
Initialization:
B1: max number of connections x number of points
B2: all the points
B3: nothing (well null or something, need to create the branch)
Algo:
Get first point in B2, get his allowed number of connections N in B1, find N closest points in B2, create lines in B3, update B2 accordingly. Erase points with max connections (including the first point)
Next
Stop when no points available
At end of loop, B3 stores the created lines.
…
me in 19 different pipeline components. Marginally better, but I'll still need to do this operation approx. 80 times...gulp.
Here's a wishlist request for David: expose string inputs in the Geometry Pipeline for Layer and Name. If I had that, I could change one string to swap my whole geometry set! (My layers have names like "B1 red rail", "B1 blue rail" etc., then the next time I'll want "B2 red rail", "B2 blue rail" etc.)
BTW, I'm happy to script something in C# if it will help: maybe I could write something like the Geometry Pipeline that takes a string input for layer name? Hmmm...
…