This last days ive been playing with grashopper and its python module. I tried to make some surfaces as much as parametrized as possible but I ran into a rabitthole with a tiny script to make any line a structural scissor.
So find attached the gh file here and the python code here
""" Automation of tracing the scissors components based on a line root imput. Alfonso Parra Rubio, 9 /27 / 2020 This GH enviroment script takes as an input a list of lines that will be transformed into structural elements. """ import rhinoscriptsyntax as rs #General Parameters Needed XY=rs.WorldXYPlane outerRadii = 1 # outer radii, half of the beam thickness innerRadii = 0.3 #inner pinhole diam def LineToScissor(line, innerRadii, outerRadii): #Get the line and trace its endpoints p= rs.CurveEditPoints(line) #Drawing here the inner circles c1in = rs.AddCircle(p[0], innerRadii) #Drawing here the inner circles c2in = rs.AddCircle(p[1], innerRadii) #Drawing here the inner circles #Here Im tracing offsets in both directions of the inner root line that will be the walls of our scissors #Also, im defininf the end points of each element as well as the direction vector l1 = rs.OffsetCurve(line,p[0], outerRadii) l1p = rs.CurveEditPoints(l1) l1pvector = rs.VectorCreate(l1p[0], l1p[1]) l2 = rs.OffsetCurve(line,p[0], -outerRadii) l2p = rs.CurveEditPoints(l2) #Here I trace the tangent outer curve that will connect offseted lines and will generate a slot c1 = rs.AddArcPtTanPt(l1p[0], l1pvector, l2p[0]) c2 = rs.AddArcPtTanPt(l1p[1],-l1pvector,l2p[1]) # Here Im joining all the stuff to be outputted correctly. output = [] output = rs.JoinCurves((l1,l2, c1, c2, c1in, c2in)) return output #looping for all the input list of curves a = [] for crv in x: a.append(LineToScissor(crv, innerRadii, outerRadii)) #Flattening the herarchy of the list in order to be GH printabble flat_list = [] for sublist in a: for item in sublist: flat_list.append(item) output_list = flat_list![]()
So I am still trying keeping the modularity on my psets. It might change as I transfer to Gh. This week I decided to do an icosahedron. I see this icosahedron as a triangularization of a sphere, able to expand and shrink with negative poisson.
I cad the icosahedron, extracted the repetitive pytamid cell and used its walls as sliders. Using the true magnidude of one of the face of the pyramid,I designed a scissor mechanism of constant angle movement. Then, I revoluted 3 times in the axis normal to the base that passes through the center and desined the mechanical interfaces for itselfs but also adjacents.
So I decided to make 3 static cases. Taking as a reference the animation I will change the angle that can be seen in blue. I show here spheres for values -40deg, 0deg and 40deg.