_About my lab

_About me

Problem Set 2

Exploring Grashopper Python a bit more

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

img
  """
  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

  img




Generating a double curvature surface but keeping modularity

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.

img img

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.

img img img back to menu