Genius! from maya import OpenMaya as om1 def setNurbsCurve(shape, points, degree=1, form=om1.MFnNurbsCurve.kOpen): degree = min(3, max(1, degree))
cvs = om1.MPointArray() curveFn = om1.MFnNurbsCurve() data = om1.MFnNurbsCurveData() mobj = data.create() for point in points: cvs.append(om1.MPoint(*point)) curveFn.createWithEditPoints(cvs, degree, form, False, False, True, mobj) shapeFn = om1.MFnDagNode(shape) plug = shapeFn.findPlug("cached") plug.setMObject(mobj) mfn = om1.MFnDagNode() parent = mfn.create("transform") shape = mfn.create("nurbsCurve", "shape", parent) setNurbsCurve(shape, points=((0, 0, 0), (0, 1, 0), (0, 2, 0))) Now it makes sense what those *Data members are for; previously, I’ve passed a transform as argument for parent for the createWithEditPoints command, which would create a new curve and automatically parent it to that transform. But one of the issues I was having was that I wasn’t able to give that shape a name. But with this approach, it makes sense as that function probably isn’t designed to actually both create the geometry *and* the node, in which case I can create the node elsewhere and set the attribute like this. Thanks Serguei! On 13 July 2018 at 15:18, Serguei Kalentchouk <serguei.kalentch...@gmail.com > wrote: > Hi Marcus, > > It would be something like this (pseudo code): > > data = MFnNurbsSurfaceData() >> obj = data.create() >> surffn = MFnNurbsSurface(obj) >> surffn.create(...) >> plug.set(obj) >> > > > > On Fri, Jul 13, 2018 at 5:01 AM Marcus Ottosson <konstrukt...@gmail.com> > wrote: > >> Hi all, >> >> I’m trying to achieve this.. >> >> createNode transform -n "myCurve"; >> createNode nurbsCurve -n "myCurveShape" -p "myCurve"; >> setAttr "myCurveShape.cached" -type "nurbsCurve" >> 3 2 no no 3 >> 7 -2 -1 0 1 2 3 4 >> 5 >> 1.0 0.0 0.0 >> 1.0 0.0 1.0 >> 0.0 0.0 1.0 >> -1.0 0.0 1.0 >> -1.0 0.0 -1.0 >> ; >> >> ..using API (any version, Maya 2015+).. >> >> from maya.api import OpenMaya as om >> >> mfn = om.MFnDagNode() >> parent = mfn.create("transform", "myCurve") >> shape = mfn.create("nurbsCurve", "myCurveShape", parent=parent) >> attr = mfn.findPlug("cached", False) >> attr.set...(?) >> >> Does anyone know how to set this attribute? >> >> Best, >> Marcus >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Python Programming for Autodesk Maya" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to python_inside_maya+unsubscr...@googlegroups.com. >> To view this discussion on the web visit https://groups.google.com/d/ >> msgid/python_inside_maya/CAFRtmOD_%2Bw7CEsc%2B2R7KQ%3D4%3D3Qt%2BzhyXiPo_ >> atgDwqTCHa-HxA%40mail.gmail.com >> <https://groups.google.com/d/msgid/python_inside_maya/CAFRtmOD_%2Bw7CEsc%2B2R7KQ%3D4%3D3Qt%2BzhyXiPo_atgDwqTCHa-HxA%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > -- > You received this message because you are subscribed to the Google Groups > "Python Programming for Autodesk Maya" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to python_inside_maya+unsubscr...@googlegroups.com. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/python_inside_maya/CAPCVZ5O%2BuC3L%3D7N84U_nSy92P5qUE1%3DBB__ > ptvp9ZyzdAfj75A%40mail.gmail.com > <https://groups.google.com/d/msgid/python_inside_maya/CAPCVZ5O%2BuC3L%3D7N84U_nSy92P5qUE1%3DBB__ptvp9ZyzdAfj75A%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group. To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/CAFRtmOC-Gxv2Bu8iZZv-%2BF%3DvMsz_wQW9MCD8aFeDFCjjSgKfPw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.