# has variables opening (in/out), openingU (IN/OUT), 
#               bladeEnd (le/te), bladeEndU (LE/TE), 
#               position (leading/trailing), positionT (Leading/Trailing), 
#               bladeNumber (1/2/3...)

Attribute: Geometry=CreatePoint.ccl, [bladeEnd]b[bladeNumber], Create Pitch Offset Geometry=on, \
                    Compute Reference Theta=on, Point Type=[bladeEndU], Create Alternate Geometry = yes, Blade Number = [bladeNumber]
Attribute: Geometry=CreatePoint.ccl, [bladeEnd] focal pointb[bladeNumber], Create Pitch Offset Geometry=on, \
                    Reference Theta Source=[bladeEnd]b[bladeNumber], Point Type = [bladeEndU]Focal, Create Alternate Geometry = yes, \
                    Blade Number = [bladeNumber]
Attribute: Geometry=TranslatedPoint.ccl, [bladeEnd] focal point highb[bladeNumber], \
                    Source Point = [bladeEnd] focal pointb[bladeNumber], Pitch Multiple = 1
Attribute: Geometry=CreatePoint.ccl, [opening] constant theta, Reference Theta Source=[bladeEnd]b[bladeNumber], \
                    Point Type = Object and Curve Key, Geometry Object = /GEOMETRY/[openingU]LET, \
                    Geometry Key = constant theta extended, Set Theta To Reference Theta = on, \
                    Create Alternate Geometry = yes
Attribute: Geometry=CreateCurve.ccl, [opening] ext, Create Pitch Offset Geometry=off, Source Point=[opening] constant theta, Curve Type = Rotation,\
                    Geometry Object = /GEOMETRY/[openingU]LET, Geometry Key = extended full, Create Alternate Geometry = yes
Attribute: Geometry=CreateBladeCurves.ccl, b[bladeNumber], Create Pitch Offset Geometry=on, \
                    Reference Theta Source=leb[bladeNumber], Create Alternate Geometry = yes, \
                    Blade Number = [bladeNumber], Blade Label = b[bladeNumber]
Attribute: Geometry=Expose.ccl, [position] closedb[bladeNumber], Geometry Source = b[bladeNumber], Geometry Reference Name = [positionT] Closed
Attribute: Geometry=Expose.ccl, low fullb[bladeNumber], Geometry Source = b[bladeNumber], Geometry Reference Name = Low Full
Attribute: Geometry=Expose.ccl, high fullb[bladeNumber], Geometry Source = b[bladeNumber], Geometry Reference Name = High Full
Attribute: Geometry=CurveFromPoints.ccl, [bladeEnd] passage focal ext b[bladeNumber], \
                    Point List = [bladeEnd] focal pointb[bladeNumber]$ [bladeEnd] focal point highb[bladeNumber]
Attribute: Geometry=ProjectedPoint.ccl, [bladeEnd] focal low b[bladeNumber], Source Point = [bladeEnd] focal pointb[bladeNumber], \
                    Use Pitch Offset Source Point = true, Projection Object = high fullb[bladeNumber], \
                    Reprojection Object=[bladeEnd] passage focal ext b[bladeNumber], Reprojection Iteration Count = 100, Working Space = Transformed
Attribute: Geometry=ProjectedPoint.ccl, [bladeEnd] focal high b[bladeNumber], Source Point = [bladeEnd] focal pointb[bladeNumber], \
                    Use Pitch Offset Source Point = false, Projection Object = low fullb[bladeNumber], \
                    Use Pitch Offset Projection Object = true, Reprojection Object=[bladeEnd] passage focal ext b[bladeNumber], \
                    Reprojection Iteration Count=100, Working Space = Transformed
#  
Attribute: Geometry=ProjectedPoint.ccl, [opening] [bladeEnd]b[bladeNumber] proj, Source Point = [bladeEnd]b[bladeNumber], \
                    Projection Object = [opening] ext, Create Pitch Offset Geometry = on, \
                    Reprojection Object=[position] closedb[bladeNumber], Working Space = Transformed

Attribute: Geometry=ProjectedPoint.ccl, [bladeEnd]b[bladeNumber] proj, Source Point = [opening] [bladeEnd]b[bladeNumber] proj, \
                    Projection Object = [position] closedb[bladeNumber], Create Pitch Offset Geometry = on, \
                    Working Space = Transformed
Attribute: Geometry=CurveFromPoints.ccl, [opening] to [bladeEnd]b[bladeNumber] proj, \
                    Point List = [bladeEnd]b[bladeNumber] proj$ [opening] [bladeEnd]b[bladeNumber] proj, Create Pitch Offset Geometry = on
Attribute: Geometry=CurveFromPoints.ccl, [bladeEnd] focal b[bladeNumber], Point List = [bladeEnd] focal high b[bladeNumber]$ [bladeEnd] focal low b[bladeNumber]
Attribute: Geometry=CurveFromPoints.ccl, [opening] [bladeEnd]b[bladeNumber], Point List = [opening] [bladeEnd]b[bladeNumber] proj$ [bladeEnd]b[bladeNumber] proj, \
                    Create Pitch Offset Geometry = true
Attribute: Geometry=ComputeDistance.ccl, [bladeEnd] to [opening]let, Source Point = [opening] [bladeEnd]b[bladeNumber] proj, \
                    Second Source Point = [bladeEnd]b[bladeNumber] proj, Working Space = Transformed
Attribute: Geometry=PassageCurve.ccl, [bladeEnd] passage focal b[bladeNumber], Passage Curve Type = [bladeEndU] Pinning Line, \
                    Passage Parameterization Source = passageb[bladeNumber], Pinning Line Model = Rounded
Attribute: Geometry=ProjectedPoint.ccl, [bladeEnd] passage low b[bladeNumber], Source Point = [bladeEnd] focal low b[bladeNumber], \
                    Projection Object = high fullb[bladeNumber], Use Pitch Offset Projection Object = off, \
                    Reprojection Object = [bladeEnd] passage focal b[bladeNumber], Working Space = Transformed
Attribute: Geometry=ProjectedPoint.ccl, [bladeEnd] passage high b[bladeNumber], Source Point = [bladeEnd] focal high b[bladeNumber], \
                    Projection Object = low fullb[bladeNumber], Use Pitch Offset Projection Object = on, \
                    Reprojection Object = [bladeEnd] passage focal b[bladeNumber], Working Space = Transformed
