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.
I tried to animate the sphere but fusion broke all the times, even in the big CBA computer. That is why I want to transfer to GH asap.
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.
back to menu