I’m trying to create a freeform gridshell structure with grasshopper and coding and for the data handling I’ve created two classes in ghpython object:
Risteyspiste: In this class i’ll save all the lines connected to a grid point.
Sauva: In this class i’ll save all the points (Risteyspiste) connected to a grid line and also all the geometry i’ll derive from the line (brep)
I have done all the data management coding and all the data seems to be nice and tidy in their own class instances. The next step I’m doing is cutting the ends of the beams with the crossing beams. I’m doing this with rhinocommon.surface.booleandifference method. Everything works nicely if i pick one beam and the crossing beams. (btw I’ve done some scaling for the crossing beams (picture below) so that I can create a clean cut).
In below is my code for this:
So what the code does it goes through all the instances in Sauva class. first it saves the extrusion related to that line to a variable extrusionList1 after that it checks that does the beam have two cutting objects (jatkuvaSauva1 and jatkuvaSauva2) if it does it gets the cutting extrusions from those instances and saves them to the extrusionList2 after that the code does the booleandifference and saves the new brep to a designated variable in Sauva instance.
So the problem is that the booleandifference fails after three loops and it fails for perfectly fine geometry (in below: the cutting objects are in green and the object to be cut in red). I’ve tried to add these objects to another component and do the boolean difference and it still fails. I can do the boolean difference with grasshopper component and if i bake these objects and the bring them back to grasshopper as reference I can do the boolean difference to them with the rhinocommon method. Any ideas whats wrong?
ps. I’ve posted this post in grasshopper forums already, so If you see this twice sorry for the double post.