Skip to content

Commit 4222054

Browse files
Add files via upload
1 parent ffb62cc commit 4222054

File tree

2 files changed

+42
-11
lines changed

2 files changed

+42
-11
lines changed

GrasshopperSyntax/Grasshopper02.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -163,14 +163,12 @@ class Curve:
163163
Adds new curve object
164164
"""
165165
def __init__(self, *args):
166-
if args[0] == '<Curve>' and args[-1] == '</Curve>':
166+
if len(args)>1 and args[0] == '<Curve>' and args[-1] == '</Curve>':
167167
if args[1] == 'AddArc': self.repr = ['<Curve>', 'AddArc', args[2], args[3], args[4], args[5]]
168168
elif args[1] == 'AddArc3Pt': self.repr = ['<Curve>', 'AddArc3Pt', args[2], args[3], args[4], args[5]]
169-
elif args[1] == 'AddArcPtTanPt':self.repr = ['<Curve>', 'AddArc3Pt', args[2], args[3], args[4], args[5]]
170-
elif args[1] == 'AddBlendCurve':
171-
pass
172-
elif args[1] == 'AddCircle':
173-
pass
169+
elif args[1] == 'AddArcPtTanPt':self.repr = ['<Curve>', 'AddArcPtTanPt', args[2], args[3], args[4], args[5]]
170+
elif args[1] == 'AddBlendCurve':self.repr = ['<Curve>','AddBlendCurve', args[2], args[3], args[4], args[5], args[6]]
171+
elif args[1] == 'AddCircle': self.repr = ['<Curve>', '']
174172
elif args[1] == 'AddCircle3Pt':
175173
pass
176174
elif args[1] == 'AddCurve':
@@ -240,9 +238,9 @@ def __init__(self, *args):
240238
elif args[1] == 'TrimCurve':
241239
pass
242240
else:
243-
self.text = "Curve of other Type"
241+
self.repr = "Curve of other Type"
244242
else:
245-
self.text = "Pring me here"
243+
self.repr = ['<Curve>', 'Ax, By, Cz, D', '</Curve>']
246244

247245
def __repr__(self):
248246
return str(self.repr)

GrasshopperSyntax/curve.py

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,15 @@ def AddArcPtTanPt(start, direction, end):
4747
Returns:
4848
id of the new curve object
4949
"""
50-
51-
return rc
50+
if not (isinstance(start, gh.Point)):
51+
raise Exception("start should be an instance of a gh.Point")
52+
elif not isinstance(end, gh.Point):
53+
raise Exception("end should be an instance of a gh.Point")
54+
elif not isinstance(direction, gh.Vector):
55+
raise Exception("direction should be an instance of a gh.Vector")
56+
else:
57+
rc = gh.Curve('<Curve>','AddArcPtTanPt', start, direction, end, '</Curve>')
58+
return rc
5259

5360

5461
def AddBlendCurve(curves, parameters, reverses, continuities):
@@ -62,8 +69,34 @@ def AddBlendCurve(curves, parameters, reverses, continuities):
6269
Returns:
6370
identifier of new curve on success
6471
"""
72+
if not isinstance(curves, list) \
73+
or len(curves) != 2 \
74+
or not isinstance(curves[0], gh.Curve) \
75+
or not isinstance(curves[1], gh.Curve):
76+
raise Exception("curves should be a list of two curves")
77+
elif not isinstance(parameters, list) \
78+
or len(parameters)!=2 \
79+
or not isinstance(parameters[0], float) \
80+
or not isinstance(parameters[1], float):
81+
raise Exception("parameters should be a list of two floats defining the blend end points ")
82+
elif not isinstance(reverses, list) \
83+
or len(reverses)!= 2 \
84+
or not isinstance(reverses[0], bool) \
85+
or not isinstance(reverses[1], bool):
86+
raise Exception("reverses should be a list of two boolean values specifying to use the natural or opposite direction of the curve")
87+
elif not isinstance(continuities, list) \
88+
or len(continuities)!= 2 \
89+
or not isinstance(continuities[0],int) \
90+
or not isinstance(continuities[1], int)\
91+
or continuities[0]>2 or continuities[1]>2\
92+
or continuities[0]<0 or continuities[1]<0 :
93+
raise Exception("continuities should be a list of two numbers specifying continuity at end points 0 = position, 1 = tangency, 2 = curvature")
94+
else:
95+
rc = gh.Curve('<Curve>','AddBlendCurve', curves, parameters, reverses, continuities, '</Curve>')
96+
return rc
6597

66-
return rc
98+
cc = AddBlendCurve([gh.Curve(), gh.Curve()],[1.3, 4.5], [True, False], [1, 0])
99+
print cc
67100

68101

69102
def AddCircle(plane_or_center, radius):

0 commit comments

Comments
 (0)