Hi there,

I can’t find answer anywhere. I looked for a long time so I am asking for your help. I have no coding background at all FYI. Basically, I want to learn how to write Grasshopper script with Python to create my own component. The component I want to create is a drafted extrusion from any planar closed curve. Drafted means it is tapered to a chosen angle. This is different from a regular extrusion.

x is the planar closed curve

y the length of extrusion

z is the draft angle

So I take the planar closed curve, move it, scale it down then loft the original curve to the scaled one.

At some point, I need to get the end point of a line(a Rhino Line SDL) but I get an error saying : ‘Line’ object is unsubscriptable.

That Rhino SDL line print as an array of 6 numbers which I assume are the starting point and end point coordinates.

I am stuck there and can’t finish my first script. Any help ?

My code is below.

import rhinoscriptsyntax as rs

from Rhino.Geometry import Vector3d

from Rhino.Geometry import Line

import math

A = rs.CopyObject(x)

B = rs.AddPlanarSrf(x)

pt2 = rs.SurfaceAreaCentroid(B)

num = pt2[0]

closestPt = rs.SurfaceClosestPoint(B,num)

normal = rs.SurfaceNormal(B,closestPt)

line = Line(num,normal,y) #I am looking to get the end point of this line but ‘Line’ object is unsubscriptable

pt3 = rs.AddPoint(rs.CurveEndPoint(line))

angle = math.radians(z)

C = 1-((y*(angle)/50))

D = math.tan(15)

translation = rs.VectorCreate(pt3, num)

rs.MoveObject(x, translation)

b=rs.ScaleObject(x, num, (C,C,1),True)

arrObjects = [A,b]

a=rs.AddLoftSrf(arrObjects)