62 import maya.OpenMaya
as OpenMaya
63 import maya.OpenMayaMPx
as OpenMayaMPx
66 kPluginCmdName=
"spHelix"
69 kPitchLongFlag =
"-pitch"
71 kRadiusLongFlag =
"-radius"
74 class scriptedCommand(OpenMayaMPx.MPxCommand):
76 OpenMayaMPx.MPxCommand.__init__(self)
82 nknots = spans+2*deg-1
87 argData = OpenMaya.MArgDatabase(self.syntax(), args)
88 if argData.isFlagSet(kPitchFlag):
89 pitch = argData.flagArgumentDouble(kPitchFlag, 0)
90 if argData.isFlagSet(kRadiusFlag):
91 radius = argData.flagArgumentDouble(kRadiusFlag, 0)
93 controlVertices = OpenMaya.MPointArray()
94 knotSequences = OpenMaya.MDoubleArray()
98 for i
in range(0, ncvs):
99 controlVertices.append( OpenMaya.MPoint( radius * math.cos(i),
100 pitch * i, radius * math.sin(i) ) )
102 for i
in range(0, nknots):
103 knotSequences.append( i )
107 curveFn = OpenMaya.MFnNurbsCurve()
109 nullObj = OpenMaya.MObject()
117 curveFn.create( controlVertices,
119 OpenMaya.MFnNurbsCurve.kOpen,
123 curveFn.createWithEditPoints(controlVertices,
124 3, OpenMaya.MFnNurbsCurve.kOpen,
127 sys.stderr.write(
"Error creating curve.\n" )
133 return OpenMayaMPx.asMPxPtr( scriptedCommand() )
137 syntax = OpenMaya.MSyntax()
138 syntax.addFlag(kPitchFlag, kPitchLongFlag, OpenMaya.MSyntax.kDouble)
139 syntax.addFlag(kRadiusFlag, kRadiusLongFlag, OpenMaya.MSyntax.kDouble)
143 def initializePlugin(mobject):
144 mplugin = OpenMayaMPx.MFnPlugin(mobject,
"Autodesk",
"1.0",
"Any")
146 mplugin.registerCommand( kPluginCmdName, cmdCreator, syntaxCreator )
148 sys.stderr.write(
"Failed to register command: %s\n" % kPluginCmdName )
152 def uninitializePlugin(mobject):
153 mplugin = OpenMayaMPx.MFnPlugin(mobject)
155 mplugin.deregisterCommand( kPluginCmdName )
157 sys.stderr.write(
"Failed to unregister command: %s\n" % kPluginCmdName )